Archived Versions

Video Lectures


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