MIT
- References
- Lectures:
- Lecture 1: Introduction to 6.00
- Topics covered: Purposes of the course, declarative and imperative knowledge, flow of control, algorithms, fixed program and stored program computers, termination conditions, interpretation, compilation, syntax, static semantics, semantics, and types of errors.
- Lecture slides (PDF)
- Lecture 2: Core Elements of a Program
- Topics covered: IDLE, types of objects, operators, overloading, commands, variables, assignment, input, straight line and branching programs, looping constructs, turing completeness (w), conditionals, nesting.
- Lecture code handout (PDF) (PY)
- Recitation 1: Introduction to Coding Concepts
- Topics covered: Syntax, semantics, object types, comparison, loops, coding.
- Lecture 3: Problem Solving
- Topics covered: Termination, decrementing functions, exhaustive enumeration, brute force, while loop, for loop, approximation, specifications, bisection search.
- Lecture code handout (PDF) (PY)
- Loops. An Introduction to Python.
- Lecture 4: Machine Interpretation of a Program
- Topics covered: Decomposition, module, function, abstraction, formal parameter, actual parameter, argument, assert, scope, mapping, stack, last in first out, LIFO, strings, slicing.
- Lecture code handout (PDF) (PY)
- Recitation 2: Loops, Tuples, Strings and Functions
- Topics covered: Loops, tuples, concatenating tuples and strings, string operations, immutability, range function, slicing, types of data structures, decrementing function, global and local variables, global keepers.
- Lecture 5: Objects in Python
- Topics covered: Tuples, lists, dictionaries, methods, identifiers, modifying objects, aliasing, mutability.
- Further Study
- 8. Lists. How to Think Like a Computer Scientist.
- 9. Tuples. How to Think Like a Computer Scientist.
- 10. Dictionaries. How to Think Like a Computer Scientist.
- 5.1 More on Lists. he Python Tutorial.
- 5.3 Tuples as Sequences. The Python Tutorial.
- 5.5 Dictionaries. The Python Tutorial.
- Lecture 6: Recursion
- Topics covered: Dictionaries, modular abstraction, divide and conquer, recursion, tower of Hanoi, base case, Fibonacci sequence.
- Recitation 3: Lists and their Elements, Sorting, and Recursion
- Topics covered: Tuples, lists, iteration, list elements, sorting lists, mutability, keys, dictionaries, chain method, recursion, base case, Tower of Hanoi (w).
- Further Readings:
- 4.9 Recursion. How to Think Like a Computer Scientist.
- Recursion. An Introduction to Python.
- Comparing Recursion and Looping. An Introduction to Python.
- Lecture 7: Debugging
- Topics covered: Binary, float, floating point, approximations, debugging, runtime error.
- Further Readings
- 8. Errors and Exceptions. Python v2.7.2 Documentation.
- Appendix A: Debugging. How to Think Like a Computer Scientist.
- Lecture 8: Efficiency and Order of Growth
- Topics covered: Efficiency, problem reduction, RAM, best case, worst case, expected case, growth, exponential growth, polynomial growth, logarithmic growth, global variables.
- Lecture 9: Memory and Search Methods
- Topics covered: Memory, storage, indirection, sorting.