My team and I have developed an alternative approach to the first-year courses on programming and computing. Unlike conventional approaches, ours focuses on designing programs in a systematic manner. The syntax of the chosen programming languages (both Java and Scheme) is only discussed as needed to support design principles. Field tests with over 500 high schools and a dozen colleges have shown that the approach produces better students than conventional approaches that use a single language. In several controlled studies, we could also show that students find our curriculum more appealing than the AP curriculum.
In my talk, I will provide an overview of the project, especially its intellectual premises and principles. My goal is to encourage you to think about the first year in a different way. The old ones are of questionable value. If we want our beautiful discipline to survive, we must find a good way of teaching it.
Matthias Felleisen is a Professor in the College of Computer science at Northeastern University. The primary goal of his research is to discover how to design programs, components, and programming systems and to write this down in a manner that is accessible to undergraduate students:
How to Design Programs is the first book in this series. It covers the systematic design of individual stand-alone programs, mostly in the spirit of functions that consume inputs and produce outputs. These functions are either launched via a batch process, as scripts in reaction to events, or as callbacks to GUI events. The book appeared with MIT Press in 2001; the full text is available gratis on the Internet.
Andrew Black