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.

Course Policies for 6.100A/B (formerly 6.0001/2) in Spring 2023

1) Overview and Contact

This subject is for students with little to no programming experience. It aims to provide an understanding of the role computation can play in solving problems. It also aims to help students – regardless of their major – to feel confident of their ability to write simple programs that accomplish useful goals. This can position students to better compete for UROPs and excel in later subjects (such as 6.1010[6.009]).

  • 6.100A (6 units): first half of term, with 3 microquizzes and a final.
  • 6.100B (6 units): second half of term, with 4 microquizzes (NO final exam).

The amount of work required for 6.100A and 6.100B altogether is equivalent to a 12-credit, full-semester class.

Students with no programming experience are encouraged to take the 9-credit course 6.100L, which covers all 6.100A material over the full semester.

All course material and assignment submission is on this website, not Canvas. We use Canvas only for sending email announcements.

This class uses the Python 3 programming language. If you have questions about course content or policy, make a public post on our course Piazza, so that others can benefit. Use private posts only for situations involving your own code or grades, to avoid sharing solutions.

  • During the 6.100A half of the semester, please use the 6.100A Piazza.
  • During the 6.100B half of the semester, please use the 6.100B Piazza.

If you have a personal issue, or need to schedule a meeting, do not use Piazza, but email us at 6.100-staff@mit.edu. Conversely, please keep Python and homework questions off this list, and post on Piazza instead.

2) 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. It is available both as a hard copy and as an e-book, with code and errata online.

The book supplements the course lectures with more detail on some topics. You may also refer to the OpenCourseWare (OCW) site for 6.0001 (6.100A) and 6.0002 (6.100B), which closely parallels this course.

3) Lectures, Recitations, and Office Hours

Lectures: Class is on Mondays and Wednesdays 3:00 PM to 4:30 PM in 26-100. 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 ask questions via chat. You must be logged in with your MIT Zoom account, and we ask that you mute your microphones and turn off video.

A significant portion of the course material will be presented only in lecture, so attendance is mandatory. Some lectures days will hold microquizzes in-class, typically in the last 30–45 minutes. These lectures are noted on the calendar.

Recitations: These are optional and will be held on Fridays. These recitations will clarify material covered in lecture that week. The times and locations are posted on the front page. You may attend any section you like.

Office Hours: These are are held in 38-370 every weekday 9 AM to 9 PM, except Fridays which go until 5 PM, and none during lecture. Office hours are for asking questions about the course material and problem sets, and for completing problem set checkoffs.

When you arrive at office hours, enter yourself on the Help Queue for either in-person or via your own Zoom link. You must be logged in via MIT Kerberos/Touchstone to access the queue. If you are having trouble, speak with the TA in the room.

4) Finger Exercises, Problem Sets, and Quizzes

These are the assignments you will submit for grading. In all cases, only the final submission (before the deadline) counts. The pages for these assignments are linked to from the course calendar and the navigation bar.

Finger Exercises: These are small problems, to confirm understanding of specific programming concepts in preparation for the problem sets. The exercises are mandatory, and made available at the beginning of each lecture.

  • In 6.100A, they will be due before the beginning of the following lecture.
  • In 6.100B, they will be due within a week of release.

Problem Sets: You will submit your code file(s) at the end of each problem set page. Each problem set has two grade components:

  • Autograder Score: Automatically determined based on test cases you pass, generally worth 70%.
  • Checkoff Score: Based on code style (typically 15%) and how well you can explain your code to a staff member (typically 15%). Style guidelines are listed under the About tab.

Checkoffs must be completed in office hours, during which a TA or LA will interview you about your code. The interview typically takes no more than 15 minutes.

  • Checkoffs generally start the day after the problem set is due, and the window for completing a checkoff is usually 7 days after that. See the course calendar for exact deadlines.
  • Show up at office hours well before the deadline. We cannot guarantee checkoffs if you come towards the end, and there are others in the queue in front of you.
  • After you complete a checkoff, you are not allowed to re-submit the problem set or redo a checkoff.

Microquizzes: These are conducted in approximately the last 30–45 minutes of specific lectures. No conflict quizzes are offered. Instead, we will drop your worst microquiz score.

  • 6.100A will have 3 microquizzes and one final exam. The final exam takes place during the last scheduled class, and cannot be dropped.
  • 6.100B will have 4 microquizzes and no final exam.

During quizzes and the final, you may NOT use the lecture notes and Python code provided in class. You may NOT use the Internet, and you may NOT collaborate with anyone else. If you have arranged for accommodations through MIT's Student Disabilities Service, please contact anabell@mit.edu early in the term.

5) Grading Policy

In 6.100A:

  • Finger Exercises: 10%
  • Problem Sets: 40%
  • Microquizzes (best 2 out of 3): 20%
  • Final Exam: 30%

In 6.100B:

  • Finger Exercises: 10%
  • Problem Sets: 45%
  • Microquizzes (best 3 out of 4): 45%

Letter Grades:

Your total numeric score is not the final deteminer of your letter grade. We consider additional factors, such as the effort the course staff feels you've put into the class, and the relative difficulty of quizzes across terms.

However, if your total numeric score meets the thresholds below, you are guaranteed the following letter grades.

  • 90+: A
  • 80+: B
  • 70+: C
  • 60+: D
  • < 60: no guarantee of passing

For grades near and below these thresholds, we consider them on a case-by-case basis. Note that if you are a first-year student, you need a C to receive credit for the course.

6) Collaboration Policy

No collaboration or Internet access is allowed during the quizzes.

On finger exercises and problem sets, you may discuss solution approaches with others (including fellow students, TAs/LAs, students who have taken the course before), but you must think of and write your own code, and note your collaborators. In particular:

  • Your code should not share the same syntactic structure as others'.
  • You may not look at, dictate, or otherwise share code with others.
  • When collaborating, keep the discussion at the level of strategy, and don't share details that could result in identical line-by-line structure.

You are free to seek additional resources on the Internet, but you may not copy or base your solution on any posted code (e.g., from OpenCourseWare, Stack Overflow, ChatGPT).

We run code similarity software on all code handed in. Violations of this policy will result in a 0 on the assignment, and when warranted, a letter to file with the Office of Student Conduct.

Background on policy:

Our first concern is that students are learning. We assume everyone in the class shares that goal, and will behave in a manner consistent with it and their personal learning style. Much of the learning takes place through working on the problem sets, and it can be helpful to discuss ideas with others. However, you still need to take responsibility for what you put in your own brain.

Collaborative learning works best when the participants have roughly the same level of knowledge and skill, so that they can each contribute equally. When one student is consistently showing another how to do things, it is not a true collaboration. And when one student bases their solutions on others' completed work, little to no learning takes place.

If students choose to lean heavily on the work of others, they will be cheating themselves of learning. Moreover, while such students may end up with excellent grades on the problem sets, they will almost surely struggle with the quizzes, which does not reflect well when considering final letter grades.

7) Extensions

We generally do not grant extension requests. Instead, we offer 3 late days in each half-term course. Each late day is a discrete, 24-hour extension (you cannot use half a late day). For example, submitting Problem Set 2 on Saturday 11 PM when it was due on Friday 9 PM would cost two late days.

Late days can only be applied to problem set submissions, not to checkoffs or finger exercises. Checkoffs must be completed within the posted time frame, regardless of whether you used late days on the problem set.

The course website automatically applies late days to each submission, viewable on your Scores page. Any work submitted beyond the 3 late days will not be accepted. We urge you to treat using late days as a worst-case scenario. Your best strategy is to complete the problem sets early before work starts to pile up.

Because the website needs to accept problem set submissions up to three days after the official due date, any submission you upload during that window will use your late days. To avoid surprises, please check that your final submission is uploaded correctly, and then do not make further uploads.

Beyond the late days, any extensions we grant are only for special circumstances, and need to be supported by S^3.

8) Getting Help

If you are falling behind, please ask for help early! We do not look favorably upon last-minute requests.

Your first resource is to come to office hours. TAs and LAs can help you with code debugging and conceptual questions.

If you can't make it to office hours, or just have a quick question, post it to Piazza! Feel free to ask questions about psets, code segments, confusions from lecture or recitation, course policies, etc. Just remember to post privately for questions specific to your submissions (and include your MIT Kerberos username). All other posts should be public, so that other students can help you and be helped as well.

Finally, personal requests may be emailed to 6.100-staff@mit.edu. If it is for extenuating circumstances, remember to speak to S^3 first, and CC them when emailing us.

Additional Resources:

If office hours aren't enough one-on-one time, consider using the HKN tutoring service. HKN is the EECS honor society that provides free tutoring for Course 6 classes. TSR^2 is another option for tutoring, offered by MIT's Office of Minority Education. More information can be found on their websites. Be aware that slots fill up quickly, and it's harder to find a tutor late in the term.

We have a supplemental MITx page with videos and practice exercises, accessible via MIT Kerberos/Touchstone login. The link is available from the Help tab. However, this material does not substitute for going to lecture or turning in your assignments.

We have also compiled a list of Python resources that you may find helpful on the Programming Resources page. It contains links to online textbooks on Python, debugging tools, and fun online coding challenges.

9) FAQ

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

    1. Finger Exercises
    2. Problem Sets
    3. Microquizzes (on dates specified on calendar)
    4. Final Exam (for 6.100A only)

    All submissions are through this website, and the relevant links can be found through the navigation bar.

  • My grade is missing on (problem set / checkoff / microquiz / exam).

    Make a private post on Piazza. Include your MIT Kerberos username, assignment number, and an explanation of the issue.

  • I have special accommodations paperwork.

    Give your paperwork to an 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. You could petition your department for credit in the class as-is, but be aware that the Office of Graduate Education is unlikely to approve such petitions.

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

    Make a private post on Piazza. Include your MIT Kerberos 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 only in special circumstances. You must talk to S^3 in advance and CC them on your email to 6.100-staff@mit.edu.