MIT 6.100L Introduction to CS and Programming using Python, Fall 2022
This course covers elementary discrete mathematics for science and engineering, with a focus on mathematical tools and proof techniques useful in computer science. Topics include logical notation, sets, relations, elementary graph theory, state machines and invariants, induction and proofs by contradiction, recurrences, asymptotic notation, elementary analysis of algorithms, elementary number theory and cryptography, permutations and combinations, counting tools, and discrete probability.
- Lecture 1: Introduction to CS and Programming Using Python
- Lecture 2: Strings, Input/Output, and Branching
- Lecture 3: Iteration
- Lecture 4: Loops over Strings, Guess-and-Check, and Binary
- Lecture 5: Floats and Approximation Methods
- Lecture 6: Bisection Search
- Lecture 7: Decomposition, Abstraction, and Functions
- Lecture 8: Functions as Objects
- Lecture 9: Lambda Functions, Tuples, and Lists
- Lecture 10: Lists and Mutability
- Lecture 11: Aliasing and Cloning
- Lecture 12: List Comprehension, Functions as Objects, Testing, and Debugging
- Lecture 13: Exceptions and Assertions
- Lecture 14: Dictionaries
- Lecture 15: Recursion
- Lecture 16: Recursion on Non-numerics
- Lecture 17: Python Classes
- Lecture 18: More Python Class Methods
- Lecture 19: Inheritance
- Lecture 20: Fitness Tracker Object-Oriented Programming Example
- Lecture 21: Timing Programs and Counting Operations
- Lecture 22: Big Oh and Theta
- Lecture 23: Complexity Classes Examples
- Lecture 24: Sorting Algorithms
- Lecture 25: Plotting
- Lecture 26: List Access, Hashing, Simulations, and Wrap-Up