6.00SC Introduction to Computer Science and Programming

6.00SC Introduction to Computer Science and Programming (Spring 2011, MIT OCW). Instructor: Professor John Guttag. This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python programming language. (from

Lecture 06 - Recursion

This lecture finishes the discussion of dictionaries, then introduces inductive reasoning and recursion. Examples include generating the Fibonacci sequence and solving the Towers of Hanoi problem.

Recursion | Unit 1
Resources: Lecture code handout (PDF); Lecture code (PY). Recitation Videos. Check Yourself. Problem Sets. Further Study: Readings.

Go to the Course Home or watch other lectures:

Unit 1
Lecture 01 - Introduction to 6.00
Lecture 02 - Core Elements of a Program
Lecture 03 - Problem Solving
Lecture 04 - Machine Interpretation of a Program
Lecture 05 - Objects in Python
Lecture 06 - Recursion
Lecture 07 - Debugging
Lecture 08 - Efficiency and Order of Growth
Lecture 09 - Memory and Search Methods
Unit 2
Lecture 10 - Hashing and Classes
Lecture 11 - OOP and Inheritance
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
Lecture 16 - Using Randomness to Solve Non-random Problems
Lecture 17 - Curve Fitting
Lecture 18 - Optimization Problems and Algorithms
Lecture 19 - More Optimization and Clustering
Unit 3
Lecture 20 - More Clustering
Lecture 21 - Using Graphs to Model Problems, Part 1
Lecture 22 - Using Graphs to Model Problems, Part 2
Lecture 23 - Dynamic Programming
Lecture 24 - Avoiding Statistical Fallacies
Lecture 25 - Queuing Network Models
Lecture 26 - What Do Computer Scientists Do?