Every Liberal Arts Major Should Learn to Design Programs
Every computer scientist knows that the design of a computer program requires logical and systematic thinking. Hence, almost every computer scientist claims that everyone will benefit from an introduction to programming. These statements and claims clearly raise the question as to how students benefit from computer programming and how we should teach programming to maximize this benefit.
For the past 15 years, my team and I developed and deployed a programming curriculum with the goal of introducing every child in high school to the art of programming. Our "Program by Design" curriculum emphasizes the systematic design of programs in two directions: process and data. Along the first dimension, we teach students how to solve a problem in a step-by-step fashion where each step has a concrete, check-able outcome. Along the second dimension, we introduce students to different forms of data, starting with atomic forms all the way to forms of data whose rigorous description demands self-referential definitions. Our research demonstrates that while programming per se may not help every novice programmer, teaching a design-oriented approach lives up to its promises.
My talk will describe the essential components of the "Program by Design" curriculum. It will illustrate how the curriculum helps programmers and how it also benefits future journalists, doctors, lawyers, and many other non-technical professionals.
Bio: Matthias Felleisen obtained his Ph. D. from Indiana University under the supervision of Daniel P. Friedman. He is currently a Trustee Professor in the College of Computer Science at Northeastern University and the chief intellectual officer behind the Racket programming language. He has co-authored over 126 peer-reviewed publications and six books including the revolutionary and highly influential textbook How to Design Programs (MIT Press, 2001) that introduces students to a systematic way of designing solutions to problems. In 2009, he was inducted as a Fellow of the ACM (Association for Computing Machinery).
In 2011, he received the SIGCSE Award for Outstanding Contributions to Computer Science Education for the creation of a design-focused introductory curriculum, for educational outreach programs for K-12, and for many PhD students who continue to merge programming language research and education. In 2012, he received the ACM SIGPLAN Programming Languages Achievement Award for exemplary and fundamental contributions across the entire spectrum of the field of programming languages through work that covers theory, practice, and education.
Questions? Contact Dr. Marco T. Morazan at firstname.lastname@example.org.
For more information please contact: