Program by Design
Professional Activities
Student Organizations

Program by Design

Program by Design Project is a comprehensive introduction to computing and programming. The foundations are laid in the TeachScheme! component introduced more than fifteen years ago. The ReachJava! component with the textbook How to Design Classes transitions to the class based design using object-oriented programming language(s) (Java). I have worked on the implementation of the How to Design Classes curriculum in the classroom since 2002.

The Program by Design Project reaches out to teachers who wish to understand the new approach to teaching introductory computer science. This project wants to turn Computing and Programming into an indispensable part of the liberal arts curriculum. Students who learn to design programs properly learn to analyze a problem statement; express its essence, abstractly and with examples; formulate statements and comments in a precise language; evaluate and revise these activities in light of checks and tests; and pay attention to details. This benefits all students, not just those who wish to study computing. For students who wish to pursue other disciplines, this curriculum shows how they can use computing to model the phenomena they will encounter elsewhere.

ReachJava! (Local Pages)

Curriculum for teaching class-based programming and object oriented program design in an introductory computer science course

The ReachJava! (HtDC) Project builds on the foundations of the TeachScheme! project to present a systematic design of class based programs in an object-oriented language (Java). A series of design recipes guides the student through the definition of class hierarchies representing problem data, the design of methods for these classes, and the design of abstractions arising from recurring patterns of program structures. The design recipe is a pedagogical framework and intervention tool that defines the design steps with identifiable, measurable outcomes, and guidelines for achieving and assessing these outcomes. Students following this curriculum gain a solid understanding of object-oriented computation in any language, and programming discipline in general.

The systematic design of tests that is a part of the design recipe instills a life-long design discipline. The design of the curriculum for learning how to design and evaluate tests is growing into a separate project.

last updated on Tue Jul 5 08:38:04 EDT 2011generated with DrRacket