Skip to content

CS101 · Learning materials

Twelve chapters. Each is self-contained: outcome, primary reading, teaching, misconceptions, worked example, self-check, problem set, solutions.

Primary texts

  • MIT 6.100L lectures (Fall 2022) — lecture numbers given per chapter.
  • Guttag, Introduction to Computation and Programming Using Python, 3rd ed., MIT Press 2021 — chapter/§ given per chapter.

Assessment: problem sets 20 marks per chapter (formative, 240 total); coursework labs per the module page; examination 100 marks per the paper.

  1. Names, values, and expression evaluation
  2. Branching, iteration, and loop invariants
  3. Floats, exact arithmetic, and numeric error
  4. Functions, scope, and specifications
  5. Structured types and higher-order functions
  6. Mutability, aliasing, and copying
  7. Testing: designing a test set, not writing tests
  8. Exceptions and assertions
  9. Dictionaries and modelling records
  10. Recursion and recursive data
  11. Classes, objects, and information hiding
  12. Complexity and choosing an algorithm