6.00 | Fall 2008 | Undergraduate
Introduction to Computer Science and Programming


Course Meeting Times

Lectures: 2 sessions / week, 1 hour / session

Recitations: 1 session / week, 1 hour / session


This subject is aimed at students with little or no programming experience.


This subject has several related goals:

  • Provide an understanding of the role computation can play in solving problems.
  • Help students, including those who do not necessarily plan to major in Course VI, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals.
  • Position students so that they can compete for UROPs and excel in subjects such as 6.01.


The original textbook for 6.00 and the course lectures parallel each other, though there is more detail in the book about some topics. The book is NOT required. We will not be referring to it in assignments or depending upon it to cover holes in the lectures.

Buy at MIT Press Guttag, John. Introduction to Computation and Programming Using Python. Spring 2013 edition. MIT Press, 2013. ISBN: 9780262519632.

A new edition of the textbook is now available. However, there may be some discrepancies between the original course lectures included on this course site and the sections in this revised and expanded edition of the textbook.

Buy at MIT Press Guttag, John. Introduction to Computation and Programming Using Python. Revised and expanded edition. MIT Press, 2013. ISBN: 9780262525008.

If you choose not to purchase this book, you will probably find it useful to buy or borrow another book that covers Python. You might check your local public library’s resources, or search online for a free Python text, such as How to Think Like a Computer Scientist or An Introduction to Python (PDF).

Lecture and Recitation Attendance

A significant portion of the material for this course will be 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, though attendance and participation may be taken into account in the case of grades on letter borderlines. Please attend the recitation to which you were assigned, if possible.

Homeworks and Quizzes

Each problem set will involve programming in Python. Students will make extensive use of libraries, so that it will be possible to write programs that solve real problems. There will be three quizzes: two during the semester, administered in evenings, and one during the final exam time-slot.

Collaboration Policy

Problem Sets

Our policy is simple: unless otherwise noted in the assignment itself, feel free to collaborate with each other on all the individual problem sets, but note with whom you collaborated. Portions of some of the problem sets may have been used in previous terms; please do not look at old solutions or course “bibles.” Collaboration with non-team members in team problem sets is not allowed. The assignments are intended to help you understand the material. Know the code and be prepared for occasional individual code reviews. During these reviews we may ask you to make modifications to your code while we watch.

  1. Our first concern is for what the students in the class learn. We assume that everyone in the class is here because they want to learn, and will behave in a manner consistent with that goal.
  2. Working with other students on problem sets often enhances the learning process. That is why we have a relatively liberal collaboration process. Getting honest evaluations and critiques of your work is also part of the learning process. That is one of the reasons we want you to submit your work individually, and why it is important that the work you submit is truly yours.
  3. Collaborative learning works best when the students working together have roughly the same level of knowledge and skill. Each participant in the collaboration should contribute more or less equally to solving the problem. When one student is consistently showing another how to do things, it is not a true collaboration. When one student bases their solution on the completed work of another, it is certainly not a collaboration.
  4. We are certainly not opposed to students who understand things helping out those who don’t, but that is not the same as collaboration. Also, it is important to understand the difference between helping someone to learn something, and helping them to get a problem set done. The former can be accomplished by explaining how some feature of Python or how some algorithm works. The latter can be accomplished by providing a solution to the problem set. That is not permitted by our collaboration policy.


You should not collaborate on quizzes.

Grading Policy

Grades will be roughly computed as follows:

Problem sets 55%
Quiz 1 10%
Quiz 2 15%
Quiz 3 20%

Over the course of the term, students will have two “late days” that they can use on problem sets. Any additional late work beyond these two late days will not be accepted, unless an extension has been approved by the professors.

Course Info
Learning Resource Types
assignment Problem Sets
theaters Lecture Videos
grading Exams with Solutions