The rest of the chapters are coming soon!

This content was thoughtfully created and tailored for CS247 - Software Engineering Principles, for Software Engineering students at the University of Waterloo.

It features a collection of uniquely designed practice problems and in-depth explanations aimed at supporting students in mastering course concepts.

Table of Contents
  1. Ch. 01ADT Design
  2. Ch. 02Values, Entity, and Information Hiding
  3. Ch. 03Special Member Functions
  4. Ch. 04Modules
  5. Ch. 05Interface Specifications
  6. Ch. 06Assertions, Exceptions, and Smart Pointers
  7. Ch. 07STL Containers, Iterators. Algorithms, and Lambdas
  8. Ch. 08UML Modelling
  9. Ch. 09Introduction to Design Patterns
  10. Ch. 10Observer Pattern
  11. Ch. 11Decorator Pattern
  12. Ch. 12Factory Pattern
  13. Ch. 13Adapter and Facade Patterns
  14. Ch. 14Template Method Pattern
  15. Ch. 15Iterator and Composite Patterns
  16. Ch. 16State Pattern
  17. Ch. 17MVC Pattern