1. Lecture 0: Introduction module
2. Lecture 1: Using Annotation in Object Oriented Programming
3. Lecture 1c: Design validation & Coding
4. Lecture 2,3(a): Type hierarchy design
5. Lecture 3(b): Software engineering method and process models
6. Lecture 3(c): Introduction to Requirement analysis (1)
7. Lecture 4(a): Introduction to Requirement analysis (2): Requirement modelling & specification
8. Lectures 4(b)-6: Object oriented software design: principles & techniques (with UML)