After many years of teaching Scratch at my local elementary school, I decided to start teaching an after-school session at my local Middle School. With diverse interests and abilities (not to mention, I’m considerably more busy during my day job), I thought I’d try a new approach: nothing.
With amazing environments, like Scratch, and on-demand lecture series, like CodeAcademy and Khan Academy, I shouldn’t need to prepare much…just turn them loose, following their interests, but be available to help.
Wrote up the description in the school paper:
Interested in making computer games instead of just playing them? Don’t know how to program? No problem. This class is for beginners. We’ll get you started learning based on your interests:
- Scratch for making games
- HTML and CSS for making web sites
- Python for solving math problems
This club is student directed and collaborative, meaning that you can work on projects by yourself or with your friends. The teacher will get you started, but you’ll need to be self-motivated.
Yes, I would rather just teach them Racket, but I’ll wait for high school for that. ;-)
While the students will learn on their own, I would like to spend 5 to 10 minutes at the beginning of each class spotlighting something interesting from the wonderful world of computing.
No plans to teach these, just wanting to expose and intrigue them. Here is a list of my initial thoughts, but would love to hear from you:
When I was your age (assuming, of course, that you’re in middle school), the Apple ][ was release. This computer changed the world, but you probably wouldn’t know that by looking at it.
A photo from Snapchat doesn’t go from one computer directly to another computer (even if it seems like it). We use special computers called servers that store information (like photos).
The original spreadsheet, Visicalc, changed the world. Behind typing prose, it may be the second most used application for most people: technical or not.
Counting in different bases is a classic computer problem, but I think I could get the idea if instead of our standard numerals, I used a sort of cipher of wingdings.
Founder of programming … a bit about her life and her contribution to software.
A visual overview of this classic data structure. What example would intrigue these students?
Prefix vs Infix vs Postfix Notation
Yeah, gotta slip in my Lisp and Forth. Nothing too extreme, but just to show that we have multiple ways to do things.
Nothing too technical, but a visual overview to demonstrate the concept of how we care about the speed of sorting things.
Summary (Updated June 2017)
What I found for general success was a blend of structure and freedom. Each day, I would show them some feature or technique in Scratch, and then let them do what they want. Usually, it was something like showing how to make a realistic jump, or a side scroller where the background could move, or how to shoot things, etc. Each of these mini-lessons were interesting and inspiring enough, that I didn’t have much issue with the students “checking out” and just playing games.
However, after splitting my time between middle school programming and my high school robotics group, I’ve decided to focus on the robotics at high school. I hope to get back to Middle School next year.