Introducing programming in a functions-first manner, using the Program by Design approach
Sharon M. Tuttle · Journal of computing sciences in colleges · 2011
Matthias Felleisen was awarded the 2011 SIGCSE Award for Outstanding Contribution to Computer Science Education for his and his research team's work on the TeachScheme! project, which was begun in 1995, and is now called by Design. This functions-first approach to teaching introductory programming and problem-solving features a robust software design methodology called the design recipe, and emphasizes good software engineering practices, such as early testing, from the beginning. These are combined with an integrated development environment (IDE), DrRacket, designed for beginners, featuring different language levels of the Scheme-like language, Racket, that combines simple syntax with customized error messages and support for graphics and animation accessible even for beginning programmers. The Program by Design project then includes support for transitioning to object-oriented programming in Java. However, many of this approach's concepts can be applied in different programming languages (such as Java, Python, or C++), or one can choose to start with this approach and then transition to different programming paradigms and/or languages at a pace appropriate to your situation.