Course Information for 6.100A/B in Fall 2024

You are not logged in.

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) 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 give a broad introduction to the role that computation can play in solving problems. Familiarity with this way of thinking is increasingly important in many disciplines. While later subjects (such as 6.101[6.009]) go into more detail and rigor, our goal is simply to build your confidence in writing programs.

  • We don't assume prior programming experience in 6.100A, but 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 spreads the 6.100A material over the full semester.

6.100A, 6.100B, and 6.100L are staffed by a common team of Instructors, Teaching Assistants (TAs), and Lab Assistants (LAs). The staff email list is 6.100-staff@mit.edu, which reaches Instructors and TAs, but not LAs. Please use this list instead of emailing us individually. The Course Staff page, under About in the menu bar, is available to help identify anyone you've spoken with.

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

2) Class sessions

6.100A and 6.100B are taught through a combination of lectures, optional recitations, and extensive office hours. Times and rooms are listed on the course homepage.

Lectures

Led by course instructors, these are the primary vehicle of introducing course material, so attendance is expected. We do not offer recordings or live Zooms. Some lectures will hold microquizzes in class.

There are associated textbook readings with each lecture, supplementing with more detail. 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.

Some lectures in 6.100A will be taught in active learning format: You will be expected to read pre-lecture notes in advance, and class time will be dedicated to problem-solving strategies. These classes are indicated in the course calendar.

Recitations

These are optional sessions led by TAs to review and practice material covered in lecture that week. You may attend any section you like.

Office hours

These are in-person sessions, staffed by TAs and LAs, for help with course material and problem sets. Office hours are also required for completing mandatory problem-set checkoffs (see below). It is inefficient to debug code and offer help remotely, so there is no Zoom option.

When you arrive at office hours, add yourself to the Help Queue, which is accessible under Help in the menu bar. 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.

Additionally, Andrew will offer instructor office hours at the time listed on the homepage. These are not for pset help or checkoffs you could otherwise receive at regular office hours, but rather for conceptual questions.

3) Assignments

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 menu bar.

Finger exercises

These small problems confirm understanding of specific 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 menu bar. Style is worth 10%, and explanation is worth 20% in 6.100A and 30% in 6.100B.

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 start the day after the problem set is due, and the window for completing a checkoff is usually one week after that. See the calendar for exact deadlines.

    • In 6.100B, you must sign up for a scheduled 15-minute checkoff time slot. Slots will become available towards each pset's due date.
  • 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 25 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. The last microquiz will be about twice as long as the other ones.

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.

4) Grading policy

Assignments are weighted according to these percentages:

6.100A

  • Finger exercises: 10%
  • Problem sets: 40%
    • Pset 1: 6%
    • Pset 2: 7%
    • Psets 3–5: 9% each
  • Microquizzes: 30%
  • Final exam: 20%

In 6.100A, we will drop your lowest microquiz score.

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.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.

Letter grade determination

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 qualify for 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 exam/quiz thresholds):

  • 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).

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

5) 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, Copilot, Gemini, Claude, etc.
  • 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.

GenAI exception in 6.100B

  • For 6.100B psets, we will not prohibit you from using GenAI tools in your work. Usage of such tools is optional, not required.
  • Whether you use such tools, you are responsible for understanding the purpose and mechanism (the why and how) of each line in your submitted code.
  • You are also responsible for understanding the computational concepts underlying your code.

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 notes, double-sided, and a single blank sheet for scratch work.

Consequences

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.

6) 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 Tuesday at 11 pm when it was due Monday at 10 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

When you register for the course, you commit to being able to attend regular class. All of our quizzes and the final exam are during class time, so as a general rule, we do not offer makeup quizzes or excuse them. Class time takes precedence over other Institute activities like clubs or athletics. The first quiz you miss for any reason will thus become your dropped score.

  • If you absolutely cannot make it to a quiz or the final exam due to a conflict with other Institute activities, we need to know well in advance. Our course schedule is published on the website by the first day of classes (for each half-term), and you have until the end of the second week to inform us of any such conflicts. We also need your club advisor, coach, or Student Support Services (S-cubed, S^3) to contact us to verify the situation. The first such quiz you miss will still be your dropped score, but we will consider your situation when assigning final letter grades.

  • If you become unexpectedly ill and cannot come to class, the same policy applies. The only difference is we expect to hear from S^3 when it happens rather than in advance. If you are ill, we want you to rest, and we will consider your performance on the remaining quizzes. It it thus in your best interest to not rely on doing better on future quizzes. It is also worth taking care of your health at all times!

If you miss a second quiz, or Microquiz 4 in 6.100B, for one of the reasons above, have your advisor or S^3 contact us again, and we will work something out.

7) Getting help

It is normal to not grasp everything immediately the first time around. We are 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 or have a personal issue, you are welcome to request 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 questions, and instructor office hours can offer more in-depth discussion of concepts.

We also have a course Piazza, which is accessible under Help in the menu bar. Feel free to make public posts asking about course content or policy, and TAs or other students may help answer. However, more detailed questions are better handled in-person, so Piazza is not a substitute for office hours.

  • To respect the collaboration policy, if your post includes your own code, you must make it a private post, and include your MIT Kerberos username (not ID number), so we can identify you on our course website.

Don't forget about the textbook readings! Spending time with the textbook lets you reflect on material from lecture and gain deeper understanding.

If you need more one-on-one time than the staff can provide, consider the following tutoring services:

  • HKN tutoring: HKN is the EECS student 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 menu bar:

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

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 strive 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 assignments in that situation.

Accomodations

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