Programming and Data Structures

PDF version of this text.

This document was built on Feb 02, 2024.

List of Lectures

  1. Introduction and Machine Model

  2. Procedural Abstraction and Testing

  3. Pointers

  4. Arrays

  5. Strings, Streams, and I/O

  6. Compound Objects

  7. Abstract Data Types in C

  8. Abstract Data Types in C++

  9. Inheritance

  10. Polymorphism

  11. Container ADTs I

  12. Container ADTs II

  13. Memory Models and Dynamic Memory

  14. Managing Dynamic Memory

  15. The Big Three

  16. Linked Lists

  17. Iterators

  18. Recursion

  19. Structural Recursion

  20. Function Pointers, Functors, and Impostor Syndrome

  21. Maps, Auto, and Range-Based For Loops

  22. Error Handling and Exceptions

  23. Containers of Pointers


These notes were written by Amir Kamil in Winter 2019 for EECS 280. They are based on the lecture slides by James Juett and Amir Kamil, which were themselves based on slides by Andrew DeOrio and many others.

This text is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license.