Program By Design: graphics-first programming without drowning in syntax
Stephen Bloch · Journal of computing sciences in colleges · 2011
The Program By Design (nee TeachScheme!) curriculum has been used to great success in middle schools, high schools, community colleges, liberal-arts colleges, and research universities, and won Matthias Felleisen the two highest awards in computer science education, the ACM Karlstrom award and the SIGCSE Distinguished Educator award. The curriculum starts with a beginner-friendly IDE (DrRacket) and a simple language (a tiny subset of Scheme), emphasizing an explicit, concrete problem-solving strategy and motivating central CS and math concepts (variables, functions, composition, data types, classes, polymorphism, etc.) with graphics and animation. Using this curriculum, I routinely teach non-CS-majors to write separable-model, event-driven GUI programs involving higher-order functions and recursive traversal of linked data structures, all within their first semester. For CS majors, we then show (in a second semester) how the same concepts and strategies apply in a more difficult language like Java.