6.100A: Introduction to CS and Programming using Python
#

6.100A is about:

  • solving problems using computation
  • the Python programming language
  • organizing modular programs
  • some simple but important algorithms
  • algorithmic complexity

Spring 2023
#

(previous semesters)

Lecture and reading notes
#

  • Lecture 1 (2023-02-06)
    • topics: what is computation, introduction to programming languages and Python, assignment, types, objects, branching, indentation
  • Lecture 2 (2023-02-08)
    • topics: strings, booleans, branching and conditionals, iteration (
      while
      and
      for
      loops), guess and check algorithms
  • Lecture 3 (2023-02-13)
    • topics: floats, approximate solutions, bisection methods
  • Lecture 4 (2023-02-15)
    • topics: decomposition, abstraction, functions
  • Lecture 5 (2023-02-21)
    • topics: lists, mutability, exceptions, assertions
  • Lecture 6 (2023-02-22)
    • topics: dictionaries, HOPs (higher-order procedures), recursion
  • Lecture 7 (2023-02-28)
    • topics: data abstraction, classes, subtyping
  • Lecture 8 (2023-03-01)
    • topics: inheritance, class attributes
  • Lecture 9 (2023-03-06)
    • topics: testing and debugging
  • Lecture 10 (2023-03-08)
    • topics algorithm analysis, implementing lists using indirection
  • Lecture 11 (2023-03-13)
    • topics: binary search, selection sort, merge sort, amortized analysis, hashing
  • Lecture 12 (2023-03-15)
    • topics: plotting, wrap-up
  • Lecture 13 (2023-10-17)
    • topics: review session

Recitation notes
#

Final exam review
#

Supplementary materials
#