Today I get to experience success. My students passed the final test with super high scores. They rated the programming course very highly. There were problems of course - a lot of them. But the core concept held up. My original teaching method seems to hold water.
Lectures are super boring. The opposite of that is giving students the tools and letting them figure it out. In programming at least, this is actually possible. Give a goal, show them the tools, see what happens.
Answer questions, but don't explain before they ask. Give them hints, but only once they're already struggling with the issue. Help them across, but only after they've tried enough.
I taught programming to 17 students using my own invented platform for a full week.
The student is given instructions and the code (blue in the top image), but the code is in the wrong order. This hinting system is very primitive, it'll get better. But for now, it actually worked pretty well.
The student can always check out the Goal tab, where the task is finished already. It's a visual explanation of the current task. I'd say the students didn't really know what the task was really about most of the time, but they did learn syntax and logic without me having to explain it in the standard lecture format.
Every day was a new project. A homepage, a chat app, a game, a sophisticated website design. By the end of the day the code was pretty messy and many didn't finish, so starting from scratch every day was a great trick. These projects however were much more interesting than the usual console based Python stuff.
Any code they wrote was immediately shown on the right. This is immensely important to create relationships between the abstract text that is code and the concrete result that is a familiar app or website.
The most amazing part of all of this is that it actually worked! Friday's tests proved that they actually learned some important concepts in programming. And even though the projects were super difficult and I could see the students losing motivation because of it - we made it to the other side and many of them thought it was the best thing they've done all year.
What an amazing feeling. I've been teaching programming for a long time to university students and grownups. Somehow school kids have a different vibe. It feels more gratifying. Perhaps it's because they aren't looking to get a job. They're here to have fun and learn cool stuff. That's the way I like to learn things myself.
This was a paid gig btw. Teachers salary is not something a programmer will jump for joy at. But from a startup perspective it's the ultimate validation.
Students, teachers, head of school, parents - they all want programming to be in schools. There just aren't enough programmers in schools. Mostly because the salary is much lower and the stress is higher. This can be solved with a platform that automates the teachers job. It has courses pre-made and well designed. Guaranteed to be fun and low-stress for both the teacher and student. Then anyone can teach programming.
I'm going to solve this problem. Programming is going to reach schools finally. "Read, Write, Code" may be overly hyped for some. For me, it's a matter of principle. Not everyone has to become a programmer. But everyone should know how to create software, not only consume it.
There is still a lot to do. This is barely the beginning.