General characteristics of designs and design methods. Survey of design methods: information hiding; object-oriented design; state machine methods; data flow design. Module specification techniques: first-order logic; algebraic specification; trace specification; weakest preconditions; the refinement calculus; abstract modeling. Transition from design to implementation. Three term-hours; lectures and seminars. PREREQUISITE Permission of the School.