Related to the idea of "Notional Machines" (§4) I recently realised that what I'm calling "denotational strategies" can be vastly more efficient for learning than "operational strategies". For example, learning recursion via an operational semantics / abstract machine model can make recursion seem very complex. Maintaining the stack and tracing through the control flow is hard. Alternatively one can use structural recursion patterns (think proof by induction) in which case you don't have to think through the control flow. The correctness is guaranteed if the individual cases are correct.<p>Probably this statement isn't so understandable from the above description. It really needs a blog post of its own.
Just want to say I really enjoyed your chapter on “Visuals and Blocked Languages”.<p>My career got started programming Flash. Mostly because I loved the visuals and wanted to code it. Even though there is scratch, and other block based languages it seems text is still the king.<p>Text as you’ve identified is not the most new comer friendly.<p>I still think the holy grail of visual programming is still to come. Most of coding is describing abstract syntax trees. A nice visual tree/graph manipulation editor has yet to be invented. Being able to have a hybrid text and visual seems like a good place to be.<p>I’ve spent many years thinking and obsessed about this concept. Especially around the ideas of code completion/intellisense.<p>What are your opinions on how kids in a decade will code?
Good read. I feel the title should be "Teaching Programming Paradigms and Beyond" since the text assumes familiarity with complete CS landscape and comments on success of several teaching methods.<p>I would recommend (also misleadingly titled) talk The Future of Programming by Bret Victor [1] which goes over some groundbreaking paradigms that have since become mostly forgotten.<p>[1] <a href="https://www.youtube.com/watch?v=8pTEmbeENF4" rel="nofollow">https://www.youtube.com/watch?v=8pTEmbeENF4</a>
Programming Paradigms and Beyond
Shriram Krishnamurthi, Kathi Fisler
The Cambridge Handbook of Computing Education Research, 2019<p>Programming Language education blind spots and opportunities for research. Recommended for anyone who teaches, learns or writes programming languages.
I’m sad that such extensive research on paradigms and behavior doesn’t mention any of the very important and truly innovative work of Dr Harel such as “Statecharts: A visual formalism for complex systems” (1986) and “Behavioral programming” (2012)
Attended a talk about teaching programming to kids by the first author that was well attended by programmers and teachers. It was a very enriching experience. I'm definitely going to read this through.
Interesting paper. I’m missing Peter van Roy’s “Programming paradigms for dummies” in the list of references, though.<p><a href="https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf" rel="nofollow">https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf</a>