A critique of Abelson and Sussman or why calculating is better than scheming
ACM SIGPLAN Notices
Structure and interpretation of computer programs
Structure and interpretation of computer programs
An introduction to functional programming
An introduction to functional programming
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
The Haskell school of expression: learning functional programming through multimedia
The Haskell school of expression: learning functional programming through multimedia
SP/k: a system for teaching computer programming
Communications of the ACM
Programming by numbers: a programming method for novices
The Computer Journal
Revised report on the algorithmic language scheme
ACM SIGPLAN Lisp Pointers
The Cathedral and the Bazaar
An Interpreter for Extended Lambda Calculus
An Interpreter for Extended Lambda Calculus
The risks and benefits of teaching purely functional programming in first year
Journal of Functional Programming
DrScheme: a programming environment for Scheme
Journal of Functional Programming
Design of a simple functional programming language and environment for CS2
Journal of Computing Sciences in Colleges
Teach Scheme, reach Java: introducing object-oriented programming without drowning in syntax
Journal of Computing Sciences in Colleges
The chilling descent: making the transition to a conventional curriculum
Proceedings of the 2008 international workshop on Functional and declarative programming in education
A robot in every classroom: robots and functional programming across the curriculum
Proceedings of the 2008 international workshop on Functional and declarative programming in education
A functional I/O system or, fun for freshman kids
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
FIE'09 Proceedings of the 39th IEEE international conference on Frontiers in education conference
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Engaging high school students in computer science via challenging applications
Proceedings of the 2011 conference on Information technology education
The case for teaching functional programming in discrete math
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Hi-index | 0.00 |
Twenty years ago Abelson and Sussman's Structure and Interpretation of Computer Programs radically changed the intellectual landscape of introductory computing courses. Instead of teaching some currently fashionable programming language, it employed Scheme and functional programming to teach important ideas. Introductory courses based on the book showed up around the world and made Scheme and functional programming popular. Unfortunately, these courses quickly disappeared again due to shortcomings of the book and the whimsies of Scheme. Worse, the experiment left people with a bad impression of Scheme and functional programming in general. In this pearl, we propose an alternative role for functional programming in the first-year curriculum. Specifically, we present a framework for discussing the first-year curriculum and, based on it, the design rationale for our book and course, dubbed How to Design Programs. The approach emphasizes the systematic design of programs. Experience shows that it works extremely well as a preparation for a course on object-oriented programming.