Course: Programming Methodology (using Java)

Programming Methodology (CS106A at Stanford University) is an Introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. Uses the Java programming language. Emphasis is on good programming style and the built-in facilities of the Java language.

 

Original Source (also contains handouts, assignments and slides)

Topics