Course Information

You are not logged in.

If you are a current student, please Log In for full access to the web site.
Note that this link will take you to an external site ( to authenticate, and then you will be redirected back to this page.

Course Description

Introduces fundamental concepts of programming. Designed to develop skills in applying basic methods from programming languages to abstract problems. Topics include programming and Python basics, computational concepts, software engineering, algorithmic techniques, data types, and recursion and tail recursion. Lab component consists of software design, construction, and implementation of design.


An understanding of programming in Python is a necessary prerequisite to this course. 6.0001 or 6.S080+(6.01 or 6.S08) can serve as the prerequisite.

This prerequisite is strictly enforced. If you have not met the prerequisite for this course, you will not receive a grade.

Course 6 Requirements

6.009 is required for 6-3's in the new EECS curriculum and is a prerequisite for 6.031 and a co-requisite for 6.006. 6.009 is also required for the Minor in Computer Science.


There is no textbook for this class. There are a variety of resources available on the web for Python programming such as: We will provide tutorial material as necessary throughout the term.