Video Lectures:

Lecture 1: Introduction to 6.00

Lecture 2: Core Elements of a Program
Recitation 1: Introduction to Coding Concepts

Lecture 3: Problem Solving

 Lecture 4: Machine Interpretation of a Program  
Recitation 2: Loops, Tuples, Strings and Functions

Lecture 5: Objects in Python

Lecture 6: Recursion
Recitation 3: Lists and their Elements, Sorting, and Recursion

Lecture 7: Debugging
Recitation 4: Recursion, Pseudo code and Debugging

Lecture 8: Efficiency and Order of Growth
Optional Recitation: Algorithm Complexity and Class Review

Lecture 9: Memory and Search Methods

Lecture 10: Hashing and Classes

Lecture 11: OOP and Inheritance
Recitation 5: Quiz 1 Answers and Object-Oriented Programming

Lecture 12: Introduction to Simulation and Random Walks

Lecture 13: Some Basic Probability and Plotting Data

Lecture 14: Sampling and Monte Carlo Simulation

Lecture 15: Statistical Thinking
Recitation 6: Probability and Statistics

Lecture 16: Using Randomness to Solve Non-random Problems

Lecture 17: Curve Fitting
Recitation 7: Distributions, Monte Carlo, and Regressions

Optimization Problems and Algorithms
Lecture 18: Optimization Problems and Algorithms

Lecture 19: More Optimization and Clustering

Lecture 20: More Clustering
Recitation 8: Hierarchical and k-means Clustering

Lecture 21: Using Graphs to Model Problems, Part 1
Lecture 22: Using Graphs to Model Problems, Part 2
Recitation 9: Directed and Undirected Node Graphs

Lecture 23: Dynamic Programming

Lecture 24: Avoiding Statistical Fallacies
Recitation 10: Introduction to Dynamic Programming

Lecture 25: Queuing Network Models

Lecture 26: What Do Computer Scientists Do?

Meta Search Engine