Course Information

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.
Course Policies for Spring 2024 (this page may update up to the start of the course)

This class is a full-semester version of 6.100A (formerly 6.0001). The material covered is the same, but the pace is slowed down. Our goal with this course is to give students who have never programmed the time to practice the concepts.

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 1-190 on Mondays and Wednesdays. No recordings will be available. No live class Zoom will be available.

Attendance is mandatory, and some lectures will hold microquizzes.

Typical Class Flow
  1. BEFORE CLASS: Watch lecture video, "Pre-class: lect video" link from our course calendar. In the video page, you may comment on parts you find confusing, interesting, funny, etc. (this counts as participation!)

  2. BEFORE CLASS: Go through the lecture slides that accompany the video, "Pre-class: lect slides" from our course calendar. The video and slides present the basic concepts for that lecture.

  3. IN-CLASS: Come to class prepared with questions or comments. We will discuss the lecture and do in-class exercises, showcasing key ideas from that lecture. This "in-class content" link in our course calendar is due 30 mins after the end of that class. (this counts as participation!)

  4. IN-CLASS: Some lectures will have quizzes. They will typically start sometime between 3:30pm and 4pm (no specific time guaranteed) and go for approximately 30 minutes.

One of our goals is to get students to understand how they best learn. If you learned the lecture by watching the video and are doing well on the quizzes, then you don't need to come to the in-class portion. If you learn better in a discussion setting and by doing exerises, come to the in-class portion (after watching the video!). We will not review the lecture video or content during class time - class is an extended discussion of some of the topics already presented in the video.

Goals of 6.100L
  • 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.100B and 6.1010.
Class Attendance and Office Hours

A significant portion of the material for this course will be presented only in the class portions, so students are expected to regularly attend lecture. Some lectures days will hold microquizzes in-person, starting sometime in the second half of class time. These lectures are noted on the calendar.

Participation will contribute to your grade. If you show us that you are putting in effort into this class, then you'll get full points for this grade. These are the following ways that you can get this grade:

  • watch lecture videos before class time
  • make comments on the lecture video
  • raise questions or comments during class time
  • do the in-class exercises during class time

We do not have mandatory recitations. A significant portion of class time will be spent in a recitation-style. We will do one or more of the following things during class:

  • discuss confusing parts of the video lecture
  • allow students to do practice exercises (alone or in pairs)
  • discuss solutions to code exercises
  • give students time to work on the problem set
  • make connections across course content

Our optional recitations will introduce students to computation ideas from class in a real-world context. We believe this will help solidify the concepts you see in class. The optional recitations will not have much coding. Instead, they will be a discussion on what happens in the real-world. You'll have a chance to learn about generative AI and large-language-models, and opportunities to use them.

We will hold office hours during times marked on the main course site. You can get help for office hours by signing up for the Help Queue either in-person (38-370) or via your own Zoom.

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: 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. They should take you about 10 minutes or less to do. If you are consistently taking longer than this to do them, seek guidance from staff. 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. They will be due before the beginning of the following lecture. 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 take about 5 hours to complete on average. They pull together various ideas - programming syntax, programming paradigms, and computational conceps - and will be an iterative process to complete. They give you a taste of what it feels like to put together a larger project involving computation. Problem Sets will have three grade components:

  • Halfway Hand-in: Hand in some code (specified by the problem set) approx. one week after the problem set is released (10% of problem set grade).
  • Autograder Score: At problem set deadline, automatically determined based on test cases you pass (depends on the problem set, typically 60% of problem set grade).
  • 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. This interview will ensure that you understand the code you wrote and that you understand key concepts that the problem set is covering. The interview typically takes no more than 15 minutes.

  • Checkoffs generally start the day after the problem set is due.
  • The window for completing a checkoff is usually 7 days after that.
  • After you complete a checkoff, you are not allowed to re-submit the problem set or redo a checkoff.

Microquizzes: See course calendar for dates. We will hold 10 microquizzes, but no final exam.

As beginner programmers, practice is very important. To help you stay on track, we hold these weekly quizzes. They are helpful for the staff to keep track of student progress, and more importantly, helpful for the students to solidify your knowledge of that week's topics or identify gaps in it.

  • There are no conflict quizzes offered, but we will take the best 7 out of 10 scores to calculate the grade.
  • Each quiz will be taken in-class in the last 30-45 minutes on specific lecture days (see calendar).
  • If you are sick on a quiz day, you must speak with S^3 for support and email 6.100-staff@mit.edu BEFORE the quiz. Alternate arrangements may be made but not guarateed.
  • You may NOT use any course materials as aids. You may NOT use the Internet. 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.
Grading Policy (roughly computed as follows):
  • Problem sets: 40%
  • Completion of mandatory finger exercises: 10%
  • Microquizzes (best 7 out of 10): 45%
  • Participation: 5%

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 (without any violations of any course policies) 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.

Collaboration Policy

No collaboration or Internet access is allowed during the quizzes. Students must take quizzes in-person. Any student who violates our quiz taking policies will receive a non-droppable 0 for the quiz AND drop down one final letter grade.

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.

A high standard of academic integrity expected of all students at the Institute. It is essential to the learning process that you are the one doing the work. The various granularity of assessments (lecture-by-lecture finger exrecises, weekly quizzes, and every-other week problem sets) in this course to enable you to gain a mastery of the course material. Failing to do the work yourself will result in a lesser understanding of the content, and therefore a less meaningful education for you. It is important that there be a level playing field for all students in this course and at the Institute so that the rigor and integrity of the Institute’s educational program is maintained.

Extensions

We typically do not grant extension requests. Instead, we offer 3 late days in the whole 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 strongly urge you to consider late days as a worst-case backup. 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.

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. The Talented Scholars Resource Room (TSR^2) is another option for tutoring, offered by MIT's Office of Minority Education. TSR^2 is located in 16-159 and offers P-set nights, exam reviews, facilitated study groups and one-on-one appointments that are led by facilitators who are academically advanced undergraduates or graduate students. These academic resources are free of charge, and are available every semester. 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.

Finally, we have 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.

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.100A (was 6.0001) and 6.100B (was 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.

Staff

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

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

    1. Finger Exercises
    2. Problem Sets
    3. Microquizzes (on dates specified on calendar)

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

    Email staff at 6.100-staff@mit.edu. 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?

    Email staff at 6.100-staff@mit.edu. 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.

  • I'm sick on a quiz day. What do I do?

    Email staff BEFORE the quiz at 6.100-staff@mit.edu. Contact S^3 BEFORE the quiz. We may make alternate arrangements only with S^3 support but don't guarantee this.