1. Introduction and Goals; Data Types, Operators, and Variables Go to this video
  2. Branching, Conditionals, and Iteration Go to this video
  3. Common Code Patterns: Iterative Programs Go to this video
  4. Abstraction through Functions; Introduction to Recursion Go to this video
  5. Floating Point Numbers, Successive Refinement, Finding Roots Go to this video
  6. Bisection Methods, Newton/Raphson, Introduction to Lists Go to this video
  7. Lists and Mutability, Dictionaries, Introduction to Efficiency Go to this video
  8. Complexity: Log, Linear, Quadratic, Exponential Algorithms Go to this video
  9. Binary Search, Bubble and Selection Sorts Go to this video
  10. Divide and Conquer Methods, Merge Sort, Exceptions Go to this video
  11. Testing and Debugging Go to this video
  12. Debugging, Knapsack Problem, Introduction to Dynamic Programming Go to this video
  13. Dynamic Programming: Overlapping Subproblems, Optimal Substructure Go to this video
  14. Introduction to Object-oriented Programming Go to this video
  15. Abstract Data Types, Classes and Methods Go to this video
  16. Encapsulation, Inheritance, Shadowing Go to this video
  17. Computational Models: Random Walk Simulation Go to this video
  18. Presenting Simulation Results, Pylab, Plotting Go to this video
  19. Biased Random Walks, Distributions Go to this video
  20. Monte Carlo Simulations, Estimating pi Go to this video
  21. Validating Simulation Results, Curve Fitting, Linear Regression Go to this video
  22. Normal, Uniform, and Exponential Distributions Go to this video
  23. Stock Market Simulation Go to this video
  24. Course Overview; What Do Computer Scientists Do? Go to this video