Course Meeting Times

Lectures: 2 sessions / week, 1 hour / session

Recitations: 1 sessions / week, 1 hour / session


6.0001 Introduction to Computer Science and Programming in Python or permission of instructor.

Course Information

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.

Note on 6.0001, 6.0002 and 6.00

  • 6.0001 (6 units): First half of term
  • 6.0002 (6 units): Second half of term
  • 6.00 (12 units): Full term

6.00 satisfies all degree / minor requirements that can be satisfied by taking both 6.0001 and 6.0002.

Students taking 6.00 will attend the 6.0001 and 6.0002 lectures and do the problem set for 6.0001 and 6.0002. The 6.0001 final will serve as a 6.00 midterm. The 6.0002 final will serve as the 6.00 final.

OCW has additional versions of 6.00 that include useful materials; this course will closely parallell the material covered in these versions:


  • Provide an understanding of the role computation can play in solving problems.
  • Help students, including those who do not necessarily plan to major in Computer Science and Electrical Engineering, feel confident of their ability to write small programs that allow them to accomplish useful goals.
  • Position students so that they can compete for research projects and excel in subjects with programming components.


The textbook is Buy at MIT Press Buy at Amazon Guttag, John. Introduction to Computation and Programming Using Python: With Application to Understanding Data. 2nd ed. MIT Press, 2016. ISBN: 9780262529624. [Preview with Google Books] The book and the course lectures parallel each other, though there is more detail in the book about some topics. It is available both in hard copy and as an e-book.

Lecture and Recitation Attendance

A significant portion of the material for this course will presented only in lecture, so students are expected to regularly attend lectures.

Recitations give students a chance to ask questions about the lecture material or the problem set for the given week. Sometimes, new material may be covered in recitation. Recitation attendance is encouraged but not required.

Problem Sets and Final Exam

Each problem set will involve programming in Python. There will be 5 problem sets in the course.

There will be one final exam. The exam is open book / notes but Not open Internet and Not open computer. Please print whatever you may want to use during the quiz.

Grading Policy

Grades will be roughly computed as follows:

Problem sets 50%
Completion of mandatory finger exercises 10%
Final Exam 40%

Problem sets will be graded out of 10 points. Submissions that do not run will receive at most 20% of the points.

Note: Finger exercises are not available on OCW.

Extension and Dropping Problem Sets Policy

We do not grant any extensions. Instead, we offer late days and the option of rolling at most 2 problem set grades into the final exam score.

Late Days

At the beginning of the term, students are given two late days that they can use on problem sets. Starting with Problem Set 1, additional late days can be accumulated for each assignment, one late day for each day the assignment is turned in ahead of the deadline. Up to three late days may be accumulated in this fashion in this course, i.e., you can only have a maximum of 3 late days at any point in time. Late days are discrete (a student cannot use half a late day). The staff will keep track of late days and feedback for each problem set will include the number of late days the student has remaining. Any additional late work beyond these late days will not be accepted. To avoid surprises, we suggest that after you submit your problem set, you double check to make sure the submission was uploaded correctly.

Rolling Over Problem Sets

As we assign final grades, we will maximize your score based on the choice to roll the weight of at most two problem sets into your final exam score. If rolled, the percent that the problem sets are worth will be rolled into the final exam score. We strongly urge you to see the late days and dropping the problem sets as backup in case of an emergency. Your best strategy is to do the problem sets early before work starts to pile up.


1 Introduction and Optimization Problems Problem set 1 out
2 Optimization Problems  
3 Graph-theoretic Models  
4 Stochastic Thinking

Problem set 1 due

Problem set 2 out

5 Random Walks  
6 Monte Carlo Simulation

Problem set 2 due

Problem set 3 out

7 Confidence Intervals  
8 Sampling and Standard Error

Problem set 3 due

Problem set 4 out

9 Understanding Experimental Data

Problem set 4 due

Problem set 5 out

10 Understanding Experimental Data (cont.)  
11 Introduction to Machine Learning  
12 Clustering  
13 Classification Problem set 5 due
14 Classification and Statistical Sins  
15 Statistical Sins and Wrap Up Final Exam