TEACHSCHEME!: a functional-first approach to beginning programming
Stephen Bloch · Journal of computing sciences in colleges · 2007
Description: What is a first course in computer programming (for majors or non-majors) about? If you ask the teacher, the answer will probably involve Big Ideas like data types, stepwise refinement, testing, design for re-use and modifiability, recursion, etc. If you ask a student in the same course, the answer will probably be a list of programming-language features --- I/O statements, assignment statements, declaration statements, if/else statements, order of operations, arrays, class fields, semicolons, curly-braces, parentheses... --- and perhaps a few rules for using the development environment. The programming language has distracted students from the real course material. How can we convince students that it's not about the language (which will be obsolete in a few years), and have them concentrate their energy on learning transferable, long-lasting practices of good programming?