This programming course is unique in focusing on learning a design method rather than a programming language. This practical method builds on years of research into the structure of good programs that will help you channel your creativity to program well in any language.
A primary challenge in programming is deciding exactly what our program should do. The first contribution of the design method is a set of techniques that help you systematically develop your program requirements. You will also learn to produce programs with consistent structure that are easy to modify later. This is important because useful programs always require later improvements. In addition, you will learn how to make your programs more reliable by building tests as an integral part of the programming process.
Systematic Program Design - Part 2: Arbitrary Sized Data
Systematic Program Design - Part 3: Abstraction, Search and Graphs