C++ and Java 3 hour course lectures from the Fall of 2022

Last updated 01/22/2023.

Lectures not specifically denoted as Java lectures are C++ material.

  1. Intro. This is syllabus material, etc., and shared between the Java and C++ classes.
  2. Terminology. Defines a few terms we'll use in other lectures.
  3. Objects. Note that the UML for Address probably shows the main function as a member of the Address class.  It is not, and showing it as such is an error.
  4. Inheritance and virtual function calls.
  5. Hiding and statics.
  6. Constructors and destructors, and their call order.. Content after slide 26 will be more understandable after watching the References and parameter passing lecture below.
  7. Design patterns.
  8. The Singleton pattern.
  9. The Strategy pattern.
  10. A simple Factory pattern.
  11. Access levels and friends.
  12. Containers.
  13. References and parameter passing.
  14. Function resolution.
  15. Operator overloading.
  16. Templates.
  17. Casts and smart pointers.
  18. The Command pattern.
  19. Multithreading.
  20. Exceptions.
  21. The Observer pattern.
  22. The Adapter pattern.
  23. Multiple inheritance and the Class Adapter pattern.
  24. Java Objects, inheritance and virtual function calls.
  25. Java access levels, packages, parameter passing, function overloading.
  26. Java statics, abstract classes and interfaces.
  27. Java containers.
  28. Java exceptions, cloning and generics.
  29. Java multithreading.
  30. The Java JVM and reflection.
  31. Java garbage collection.
  32. LR values.
  33. Linkers and loaders.
  34. Namespaces.
  35. C++11 and 17 features.
  36. The Decorator pattern.

Purdue University School of Electrical Engineering