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 in Spring 2024

1) Overview and Contact

6.100A and 6.100B are 6-unit subjects each, offered in the first and second half of the term, respectively. Together, these classes provide an introduction to the role that computation can play in solving problems. Familiarity with this way of thinking will be useful for taking later subjects (such as 6.101[6.009]) or developing your own projects (such as UROPs). To that end, we aim to build your confidence in writing simple programs that accomplish useful goals.

While we don't assume prior programming experience in 6.100A, the course moves at a fast pace, and past students have found it helpful to have at least some background. Students with no programming experience are encouraged to take 6.100L, which covers all the 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.

If you have quick questions about course content or policy, make a public post on our course Piazza, so the entire class can see our response. The Piazza link is available under Help in the top menu.

For situations involving your own code, make a private post that includes your MIT Kerberos username. Be aware that debugging over Piazza can be quite inefficient; you are better off getting in-person help at office hours. If you have a personal issue, a question about your scores, or need to schedule an individual meeting, do not use Piazza, but email us at 6.100-staff@mit.edu.

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.
https://github.com/guttag/Intro-to-Computation-and-Programming

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

3) Lectures, Recitations, and Office Hours

Lectures: Class is on Mondays and Wednesdays 3:00 PM to 4:30 PM in 26-100. This is the primary method of introducing course material, so attendance is expected. Some lecture days will hold microquizzes in class, typically towards the end.

Recitations: These optional sessions on Fridays review and practice material covered in lecture that week. See the homepage for hours and locations. You may attend any section you like.

Office Hours: These are for questions about the course material and problem sets, and for completing problem set checkoffs. See the homepage for each day's hours and location.

When you arrive at office hours, enter yourself on the Help Queue. The Help Queue is available under Help in the top menu. You must be logged in via your MIT Kerberos account to access the queue. If you are having trouble, speak with the TA-in-charge in the room.

Starting in the second half of the semester (i.e., when 6.100B is in session), we will offer only in-person office hours. There will no longer be a Zoom option.

4) Finger Exercises, Problem Sets, and Quizzes

These are the assignments you will submit to our website 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 top menu.

Finger Exercises

These small problems confirm understanding of specific programming concepts in preparation for the problem sets. The exercises are released at the end of each lecture.

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

Problem Sets

We provide template files for you to fill in and run some tests locally. When finished, you will upload your file(s) to the problem set page, and the autograder runs a larger set of tests. Always re-download the files you upload, and check they are your latest work.

Each problem set has two grade components:

  • Autograder Score: Automatically determined based on test cases you pass In 6.100A, this portion is worth 70%. In 6.100B, this is worth 60% to account for the increased weight on checkoffs.
  • Checkoff Score: Based on code style and how well you can explain your code to a staff member. The course's Style Guide is available under About in the top menu. In 6.100A, style and explanation are both worth 15%. In 6.100B, style is worth 10%, and explanation is worth 30%.

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

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

Microquizzes and Final Exam

Quizzes are held in class, typically during the last 30–45 minutes of specific lectures. These lectures are noted on the calendar.

  • 6.100A will have four microquizzes and one final exam. The final exam is for the entire duration of the last scheduled class.
  • 6.100B will have four microquizzes and no final exam.

You are responsible for bringing a charged laptop with a working Wi-Fi connection to access the quiz page. We do not grant quiz time extensions due to computer issues. We recommend you bring your IS&T-issued loaner iPad as a backup method of accessing the quiz page.

During quizzes, we may take photos of the room to help verify attendance. These photos will not be shared with anyone outside of course staff.

5) Grading Policy

Assignments are weighted according to these percentages:

In 6.100A:

  • Finger Exercises: 10%
  • Problem Sets: 40%
  • Microquizzes: 30%
  • Final Exam: 20%

In 6.100B:

  • Finger Exercises: 10%
  • Problem Sets: 45%
  • Microquizzes: 45%
    • Microquiz 4 is worth twice as much as each of the other quizzes.

In 6.100A, we will drop your lowest microquiz score. In 6.100B, if your lowest score is on Microquizzes 1 through 3, we will drop it. If it is on Microquiz 4, we will count it only as much as the other quizzes.

Your total numeric score is not the only determination of your letter grade. In 6.100A, you need at least 75%, 65%, 55%, or 45% on the final exam to receive an A, B, C, or D, respectively. In 6.100B, you need to achieve similar thresholds for the average of your Microquiz scores (after the lowest drop has been taken into account).

You are then guaranteed certain letter grades if your total score meets the thresholds below (and you meet the final exam condition for 6.100A):

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

For scores near and below the thresholds, we consider them on a case-by-case basis and seek input from TAs (not LAs).

Note that if you are a first-year student, you need a C or above to receive credit for the course.

6) Communication and Collaboration Policy

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 list your collaborators. In particular:

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

Regarding online resources:

  • You are free to look up documentation or examples of using language features.
  • However, you may not copy or base your solution on any code you did not write yourself, with the exception of code presented in class. For example, you may not use any output from generative AI (genAI) tools like ChatGPT.
  • You may not post or submit your code online in any form, except to our course website. This includes putting your code in a GitHub repository that others can see, or submitting your code to ChatGPT for debugging.

A goal of this class is to develop your skill in writing code independently. For your learning, it is thus important that others not do that work for you, even in part.

6.100B Exception: In 6.100B, we will demonstrate in class responsible usage of generative AI. For 6.100B problem sets, you may use genAI to help generate code that you assemble into your solution. However, you must interact with genAI on your own, and upload a transcript of your interaction or a link to it, alongside your submission. We will take this into account when determining whether students collaborated too closely.

Microquizzes and Final Exam

Quizzes and the final exam are closed-book and in-person. You may not communicate with anyone about a quiz or exam until scores are released. During a quiz or exam:

  • You must remain only on the quiz/exam webpage, and you may not access the Internet in any other form.
  • You may not access any other tabs or extensions in your browser.
  • You may not access your IDE or any files or other programs on your computer.
  • The only additional resource you may have is a single sheet of handwritten notes, double-sided, and a single blank sheet for scratch work.

Consequences

We run code similarity software on all code handed in. Violations of our policy will result in a 0 on the assignment. If the violation is on a microquiz, the 0 is non-droppable – i.e., all quiz scores will count – AND you will drop one final letter grade. Instructors also have the discretion to submit a letter to file with the Office of Student Conduct.

7) Extension and Makeup Policy

Finger Exercises and Problem Sets

We do not grant extensions for finger exercises.

For problem sets, we offer three 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 a Friday at 11 pm when it was due Thursday 9 pm would use up two late days.

Late days are intended to alleviate temporary conditions, like heavy courseloads or mild illness. We urge you not to rely on late days and instead treat them as a backup for such situations. Your best strategy is to work on assignments early before they start to accumulate.

Late days only apply to problem set submission deadlines for the autograder. Checkoffs must be completed by their posted deadline, 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 in the top menu. Any work submitted beyond the three late days will not be accepted.

Because the website needs to accept potential late submissions up to three days after the deadline, any submission you upload during that window will use your late days. After you have made and checked your final submission, do not make further uploads.

Microquizzes and Final Exam

Because lecture attendance is expected, we generally do not grant makeup quizzes or excuse them. The only situations we consider are:

  • if you are traveling due to athletics or extracurriculars, or,
  • if you are ill and cannot make it to class.

Your first such conflict with a quiz will be your dropped score. You still need to have your coach, club advisor, or Student Support Services (S-cubed, S^3) contact us to verify the situation. If you have a second such conflict, have them contact us again, and we will work something out.

8) Getting Help

It's normal to not grasp everything immediately the first time around. We're here to support you, but please ask for help early! We do not look favorably upon last-minute requests.

If you are concerned about your course performance, you are welcome to schedule an individual meeting with an instructor. Email 6.100-staff@mit.edu to schedule.

Help with course content

Your first resource is to come to office hours. TAs and LAs can help you debug code and answer conceptual questions. If it's a quick question, you can post it to Piazza.

Beyond office hours, the textbook is a great resource for deeper understanding and reflection on a topic. And if you need more one-on-one time, consider the following tutoring services:

  • HKN tutoring: HKN is the EECS honor society. One of their services is to match Course 6 students to tutor for Course 6 classes.
    https://hkn-tutoring2.mit.edu/
  • Talented Scholars Resource Room (TSR^2): This is provided by MIT's Office of Minority Education. They offer pset nights, exam reviews, and one-on-one appointments that are led by advanced undergraduates or graduate students.
    https://ome.mit.edu/tsr2/

Finally, our webpage contains the following resources under Help in the top menu:

  • A supplemental MITx 6.0001/2 page with videos and practice exercises, accessible via your MIT Kerberos account.
  • A collection of Extra Coding Practice problems.
  • A list of Python resources on the Programming Resources page.

Help with deadlines

Any extensions beyond our official policy need to be supported by S^3, and we make the final decision. Speak with an S^3 dean first, and CC them when emailing us at 6.100-staff@mit.edu. We try to be sensitive to individual situations while also being fair to all students.

If you registered late and we approved, we do not extend deadlines beyond the normal late days. We will make note of any missed finger exercises in that situation.

Accomodations

If you require test-taking accommodations, please coordinate with MIT's Disability & Access Services, and then contact 6.100-instructors@mit.edu early in the term.