hey mastodon, throw all your programming pedagogy links at me. I teach a lot of beginner programmers and I want to get better at it!
specifically the trouble I have is getting beginners from the "I understand the syntax and can modify examples" stage to the "I can model problems as programs and apply my knowledge of the language to build these programs" stage. the first stage is pretty easy and most tutorials for beginners are oriented toward that kind of literacy... the second is harder to achieve and harder to teach, and it seems like most people only reach that stage with self-directed practice

@aparrish We had a whole class in my electrical engineering undergrad that tried to teach that, but mostly failed at it. I think project-based work, where you give people progressively larger and larger problems to solve, is pretty much the way to do it.

The principle from the class I alluded to still applies: abstraction and synthesis. Students must abstract a problem and then synthesize that into the relevant language concepts

@tinysubversions @aparrish I agree with Darius. I teach a class that is almost purely project based and my model is basically, give them a bunch of building blocks during class, then ask them to put it all together in an assignment, then build on top of that with more complex building blocks.