I spent a bunch of the day today working on a Javascript curriculum that I’ll be teaching a bunch of kids next week.
For the interested, you can take a look at my Javascript lesson plan here.
One of the things I’m kinda excited about is trying out a totally different way of teaching JS. First off, the kids will have already been introduced to both HTML/CSS and Python: a few days of each. But most importantly, I’m gonna try diving straight into making things.
Changing colors dynamically, moving shit around, animation, building your own image search engine, etc. they’re all in the first few hours of learning the language.
What I’m not touching on is the fundamentals. ”This is an array”. ”This is passed by value, this is passed by reference”. “This is an object.”
It’s an interesting (and potentially dangerous) way to approach this stuff. For example, they won’t have a memory model of how a lot of these things work, which I suspect is going to really hurt debugging. But we’ll see.
On the other hand, I suspect we’re gonna get a lot more enthusiasm from the kids than we did with the same class last year. It’s kinda hard to keep them awake through yet another syntax lesson.
Anyway, I’m still iterating on the lesson plan. (And it doesn’t contain all my voice overs.) But feedback welcome!

I advocate this approach. I once read an article on presentation by someone who got a higher feedback at a conference than Damian Conway (I know, impossible!)
He said something like: Don’t give them the history. Don’t give them the background. Don’t give them the 10,000ft view. Go right into concrete but useful examples. It will get and keep their attention.
(I’ve seen the reverse, where people go right into useless nitty gritty. Don’t be those people, either.)
I really like the approach. its awesome. Personally i find it hard to get a grasp of something unless I really do it. I could sit tight and watch tons and tons of videos on youtube read tutorials etc. but it will not be fruitful, unless I have some starter sample project of some kind and then build the stuff as I progress through lessons is a much more thorough experience.
Good Luck and Cheers
I’ve been trying to do basically that for producing graphs in R. I think it’s a lot more compelling for students, and you need to catch their attention before you can teach anything, but it does make it hard to do arbitrary things afterwards.
I don’t believe in eliminating the foundation. It’s a house of cards approach in the end. Understand wanting to bait them in. The beauty is in understanding the foundation anyway; that’s the science part, the rest is just factory work.
I totally agree. You also don’t learn English by first getting a lecture about verbs and nouns, you just do it. I think some basic fundamentals are nice to know, for example frontend versus backend (why is all my data gone when I reload) and program versus data (CPU versus memory).
I think it’s a great way for introduction. You set up discovery, then let then explore, then they run into trouble and you are they’re to back them up. A teacher to guide them. Once they’ve gotten a abundance of experience in discovery its time to push that up a level. This would probably a good chance to introduce the fundamentals. It’s like building a foundation. Teach them a little in order for them to again discover and explore something new to the toolbox. Set them free so to speak, then they run into trouble and rely on your expertise for guidance. Then again the cycle add another piece of learning the fundamentals and set them free again. It’s a long process no doubt. But wisdom isn’t taught in hours.
Here is hoping it works out!