Home / Course Information

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 (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.

1) Course Policies for Fall 2021 (this page may update up to the start of the course)

Students with no programming experience are encouraged to take the 9-credit course 6.s061, which covers all 6.0001 material over the full semester.*

This subject is aimed at students with little to 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 simple programs that allow them to accomplish useful goals.
The class will use the Python 3 programming language.

Lectures for the class occur from 3PM to 4:30PM in 26-100 on Mondays and Wednesdays. No recordings will be available. Students who are sick or in quarantine may join the class via a live Zoom session. Students in-class may also join the Zoom session to answer class polls and to type in questions in the chat. Be sure to log in to Zoom using your MIT kerberos/Touchstone account otherwise you will not be able to view the broadcast. We ask students to keep microphones muted and video turned off during the live broadcast.

Attendance is mandatory, and some lectures will hold microquizzes.

  • 6.0001 (6 units): first half of term, with 4 microquizzes.
  • 6.0002 (6 units): second half of term, with 3 microquizzes and a final.

All course material is linked from this site. The amount of work 6.0001 and 6.0002 require is equivalent to a 12 credit, full semester class.

2) 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, 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, like 6.009.

3) Lecture Attendance and Office Hours

A significant portion of the material for this course will be presented only in lecture, so students are expected to regularly attend lectures or view the videos. Some lectures days will hold microquizzes in-person, in the last 30-45 minutes of class. These lectures are noted on the calendar.

Optional recitations will be held on Fridays. These recitations will clarify material covered in lecture that week. You may attend any recitations you like.

We will hold office hours during times marked on the main course site. Office hours will be used for asking questions regarding the problem sets and course materials, and for problem set checkoffs. When you arrive at office hours, you should enter yourself on the Help Queue. The queue requires certificates. If you can't access the queue, speak with the TA in the room.You can get help for office hours by signing up for the either in-person (38-370) or via your own Zoom.

4) Finger Exercises, Problem Sets, and Quizzes

Each problem set and most finger exercises will involve programming in Python 3.

Finger Exercises: The finger exercises are very small Python programming problems that are automatically checked for correctness by an online system. They are designed primarily to help students confirm that they understand specific programming concepts. These exercises are mandatory, and will help prepare students for the problem sets. Students must successfully complete all mandatory finger exercises (get the green check). At the beginning of each lecture, mandatory finger exercises will be available on our website. In 6.0001, they will be due before the beginning of the following lecture. In 6.0002, they will be due within a week of release. As always, see the course calendar for exact dates. When submitting exercises, only the final submission (before the deadline) counts.

Problem Sets: Submissions will be uploaded to the Problem Sets website. Problem Sets will have two grade components:

  • Autograder Score: Automatically determined based on test cases you pass (depends on the problem set, typically between 5 and 7 points)
  • Checkoff Score: Based on a checkoff for code style (guide available under Help) and how well you can explain your code to a staff member (depends on the problem set, typically between 3 and 5 points)

Checkoffs for a problem set can only be done during scheduled office hours on Zoom. Checkoffs can be done from the day after the problem set is due until the 7 days following the due date of the problem set (fewer days at the end of the term). Checkoffs must be done within that time frame, regardless of whether you used late days on your problem set. After you do a checkoff, you are not allowed to re-hand in the problem set or re-do a checkoff. Checkoff deadlines can be found on the course calendar. Late days cannot be used to obtain a late checkoff. During a checkoff, you will go through your code with a TA or LA. They will ask you simple questions about your code and determine a score based on code style and understanding of the pset and code. Please allow for 10-15 minutes to complete your checkoff.

Problem Sets Buddies: At the beginning of 6.0001 and at the beginning of 6.0002, you may designate whether you'd like to be randomly assigned a partner to work with on problem sets. Here is how it works:

  1. We will open up a form until the Friday of the first week of class. In the form, you may check a box that says you'd like to be randomly assigned a pset buddy. Whatever decision you make will be valid for the entirety of the class. You may change your decision at the start of 6.0002.
  • Buddies are chosen at random, but with consideration to coding experience and timezones.
  • A different pset buddy will be assigned for each problem set.
  • Your buddy's name and email address will show up on the problem set page.
  1. Pset buddies may both hand in the same code (but does not have to be an exact copy).

  2. Checkoffs must be done individually.

Microquizzes: See course calendar for dates.

6.0001 will have 4 microquizzes, but no final exam. There are no conflict quizzes offered, but we will take the best 3 out of 4 scores to calculate the grade.

6.0002 will have 3 microquizzes and one final exam. There are no conflict quizzes offered, but we will take the best 2 out of 3 scores to calculate the grade.<

Each quiz will be available starting from approximately 4pm (Boston time) on specific lecture days (see calendar). Quizzes will be in-person during the last 20-40 minutes of class time. You may NOT use lecture notes and python code provided in class. You may NOT use the Internet and students may NOT collaborate with any other person. If you arranged for accommodations through MIT's Student Disabilities Service, please contact anabell@mit.edu early in the term.

5) Grading Policy (roughly computed as follows):

In 6.0001:

  • Problem sets: 45%
  • Completion of mandatory finger exercises: 10%
  • Microquizzes (best 3 out of 4): 45%

In 6.0002:

  • Problem sets: 45%
  • Completion of mandatory finger exercises: 5%
  • Microquizzes (best 2 out of 3): 20%
  • Final exam: 30%

6) Extensions

We offer late days. At the beginning of the term, all students are given 3 late days (24 hour extensions) to use in 6.0001 and 3 late days (24 hour extensions) to use in 6.0002. Late days can only be applied to problem sets, not to checkoffs or finger exercises. 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. For example, turning in Problem Set 2 on Saturday 7PM when it was due on Friday 5PM would cost two late days. You can use as many late days as you want on a problem set, but you will be responsible for handing in the following problem set on time. 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. We strongly urge you to see the late days as backup in case of an emergency. Your best strategy is to do the problem sets early before work starts to pile up.

Late days reset at the beginning of the 6.0002 material. Under special extenuating circumstances, supported by S^3, we may grant further extensions.

7) Collaboration Policy

The following applies to students who are not problem set buddies (as chosen by the system for a particular problem set). Students may collaborate on the problem sets, meaning you're free to seek help from LAs/TAs, the internet, or your friends (whether or not they are taking this course). If two or more students choose to solve a problem set together, they are required to write code independently and note all of the collaborators. Students cannot use the exact same code (for example, by dictating to each other). Students are not permitted to look at or copy each others code or code structure. Students are not permitted to share/send code to others. Our official collaboration policy is that two students may discuss a solution together, but the code must be written separately by each student. No plagiarism or copying of OpenCourseWare solutions, or any other solutions, is allowed. We will be running code similarity software on all code handed in. Violations of this policy will result in a 0 on the problem set.

Background on policy: Our first concern is 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 and their personal learning style. Much of the learning takes place while working on the problem sets. Working with other students on problem sets often enhances the learning process. Keep in mind that collaborative learning works best when the students working together have roughly the same level of knowledge and skill so that each participant in the collaboration can 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 or on a solution from a previous year, little to no learning takes place. If students choose to lean heavily on the work of others, such students will be cheating themselves and will learn less. Moreover, while these students may end up with excellent grades on the problem sets, they will almost surely struggle with the exams, which account for the majority of the final grade

8) Illness Policy

We ask all students to attend lectures in-person. Contact us at 6.00-staff@mit.edu if you are sick or in quarantine. In this event, you may watch the lectures live on Zoom and participate via the chat. We will not offer make-up quizzes if you must miss a class day with a quizzes.

9) Getting Help

We strongly encourage you to seek out help throughout the term. Ask questions early and often rather than waiting until the last minute. If you need lots of help with your code, or would like someone to look over your entire code file, consider coming to office hours.

If you can't make office hours, or just have a quick question, post it to the forum! It is Q&A style and we'll be using to enable both staff and students to help answer questions. On the forum, feel free to ask questions about psets, code segments, confusions from lecture or recitation, course policies, etc. We prefer that you make your posts public so that others can benefit from them as well. If your question is specific to your code or a grade you received, then please post privately.

  • During the 6.0001 half of the semester, please use the 6.0001 forum.
  • During the 6.0002 half of the semester, please use the 6.0002 forum.

If you need to privately contact the staff - for example, to arrange a meeting - you can email the TAs and professors at 6.00-staff@mit.edu . Please keep Python and homework questions off of this list, as we'll simply request that you post them to the forum instead.

If you're finding yourself falling behind and office hour help isn't enough one-on-one time, consider using the HKN tutoring service. HKN is the Course 6 honor society that provides free tutoring for Course 6 classes. Sign up for tutoring sooner rather than later, as slots fill up and it's harder to find a tutor late in the term. Seminar XL is also another alternative for MIT tutoring services, offered by the Office of Minority Education. More information can be found on their website.

We have created an MITx page for this course. The link is available from the class Stellar page. MITx contains supplemental material and practice exercises that will help you do better on the regular assignments and quizzes, so we advise that you take full advantage of it. However, this material will not substitute going to the physical lectures or turning in your quizzes and assignments. Before being able to access the site, you must install or update your personal certificates -- instructions available here. We have compiled a list of other Python resources that you may find helpful in the Additional Python Resources document on Stellar. It contains links to other online textbooks on Python, debugging tools, and fun online coding challenges.

10) Textbook

The textbook is Guttag, John. Introduction to Computation and Programming Using Python, Third Edition, With Application to Computational Modeling and Understanding Data, MIT Press. 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. The Open Course Ware (OCW) site for 6.0001 and 6.0002 have a lot of useful material and this course will closely parallel the material covered in the OCW version. Code and errata for the book can be found here.

11) Staff

Contact us at 6.00-staff@mit.edu with personal issues. Post other questions to the forum, and make your post private for personal questions.

12) FAQ

  • What do I need to hand in for this class?

    This website is the hub for this class. All links are on the navigation bar on the top of the page.

    1. Problem Sets
    2. Finger Exercises
    3. Microquizzes (on dates specified on calendar)
  • My grade is missing (problem set / checkoff / microquiz / exam).

    Make a private post on the forum. Enter your Athena kerberos username, problem set number, and an explanation of what the issue is.

  • I have special accommodations paperwork.

    Give your paperwork to the instructor and contact anabell@mit.edu to make arrangements.

  • Can I get grad credit for this class?

    We don't assign any extra work for grad credit. We suggest that you petition your department for credit in the class as-is.

  • I registered late for the class. How do I hand in work missed?

    Make a private post on the forum. Include your Athena username and details of when you joined the class. No extensions will be given for problem sets missed -- you will have to use your late days. Missed finger exercises may be noted by the staff.

  • Can I have an extension for this problem set?

    We grant extensions in special circumstances. We only consider requests that come from S^3.