- Intro, clean code
- Coupling and encapsulation
- Encapsulation, immutability, cohesion
- (Some of the) SOLID principles, polymorphism, Composite design pattern
- Visitor design pattern
- Unit testing and test adequacy
- Designing for testability (dependency injection, test doubles)
- Strategy and Command design patterns, Lambdas
- Observer pattern, generics
- OpenDSA content on Heaps and Heapsort (Project 3 prep)
- Serializatoin
- OpenDSA content on Buffer Pools (Project 3 prep)
- Proxy and Adapter patterns
- Builder design pattern
- Streams
- Processes and threads
- Thread synchronisation
- Mutex and Semaphore
Coursenotes index | CSC 305 Individual Software Design and Development | Ayaan M. Kazerouni