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!
@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
@aparrish So like the input of the exercise would be some problem. The output would be a HYPOTHESIS as to how you MIGHT model it in code. But don't bother digging in and falsifying. Just move on. One hypothesis a day. Maybe at the end of the class review them all and self-critique?
@tinysubversions I've been trying to incorporate material like that. also when I introduce a new bit of syntax, I try to start with the kinds of problems that require the new syntax to solve, and ask students to "design" the relevant syntax for solving those problems. I guess I need to write those exercises down and be a bit more consistent/directed with them
@aparrish Yeah that sounds pretty good!
@aparrish @tinysubversions this is the method by which I was taught theoretical-linguistics Syntax, and it was so great and empowering! Now I want to see how many other things can be taught this way, instead of by rote. (And programming is clearly one of them).
@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.
@aparrish One thing that I'd be interested to try is a daily whiteboarding excercise. So students only do the abstraction part and you do it as a group for like the first ten minutes of class every single day.
If you look at it at two skills it's the abstraction that's usually the harder part than the synthesis, so I think just working those abstraction muscles through daily calisthenics is the way to go.