6.100 = 6.100A + 6.100B

    Starting in fall 2025, EECS is once again offering a 12-unit full-semester subject 6.1000, which combines the content of 6.100A and 6.100B.  This page answers some questions about the new course and its relationship to 6.100A and 6.100B, which continue to be offered.

    Why the change?

    Historically, this was the original design of the course.  This material was originally offered as a full-semester 12-unit subject, 6.00.  Later, it was split into two half-semester subjects that allowed first-year students to spread it out over two semesters — fitting the first 6 units of 6.100A into the 54-unit credit limit of the fall semester.

    We are reintroducing the full-semester version as a result of feedback, from both instructors and students, that 6.100A doesn’t work well as a half-semester course.  Because of the way MIT’s half-semester calendar works, it’s necessary to teach all the material for 6.100A in about six weeks.  Considering that the material covers all the essentials of Python, from variables and expressions up to functional and object-oriented programming, six weeks is much too fast.  For some students, the effort required to learn programming in Python — 6.100A — may be more than half of the original 12-unit subject.

    Merging 6.100A and 6.100B back together, as an integrated full-semester course without the arbitrary half-semester boundary, enables it to be more flexible in pacing and schedule, so that all the material can be taught better and learned better.

    The course website says “6.100,” but the catalog says “6.1000.”  What is the course number?  Is it 6.100 or 6.1000?

    EECS tends to call the course 6.100, omitting the final 0 for simplicity and so that it clearly relates to 6.100A and 6.100B.  But MIT’s systems refer to it as 6.1000, so you will find it in the Catalog and in registration websites as 6.1000.  Here is more explanation of the Course 6 numbering system.

    What about 6.100A and 6.100B?  Is it still possible to take this material in 6 unit chunks?

    Yes, 6.100A and 6.100B are still offered as 6-unit subjects, but each one is now taught over a full semester, not a half-semester.

    So there are now two ways to take this material:

    • either in one semester, by taking 6.100 as a 12-unit course;
    • or over two semesters, by taking 6.100A in one semester, and 6.100B (or 16.C20) in a later semester.

    What happened to 6.100L?  It’s still listed in the catalog, will it be offered again?

    Things get a bit confusing here, so bear with us.

    For several years, the 6.100A content has been offered as a 6-unit full-semester subject called 6.100L (“L” meaning “longer”).

    This experience has shown that 6.100L’s pace and structure — using the full semester to teach the 6.100A material — works much better than the half-semester 6.100A did.  So going forward, 6.100A will adopt 6.100L’s structure, as a full-semester course.

    In other words: 6.100L has not really gone away.  It has instead replaced the half-semester 6.100A, and assumed the 6.100A name.  What has gone away is the half-semester way of teaching 6.100A.

    The old 6.100L name still appears in the catalog only for temporary and historical reasons, because some subjects and degree requirements still mention it.  It won’t be offered under that name again.  If you wanted 6.100L, then just take 6.100A — that’s its new alias.

    If a prerequisite or degree requirement says “6.100A” or “6.100B” or “6.100A and 6.100B”, can I use 6.100 for it?

    Yes.  6.100 consists of the same material as 6.100A and 6.100B, so it can be used for the same purposes as either or both of those two subjects.  Some subject prerequisites and degree charts in the MIT catalog may not have caught up yet.

    I already took 6.100L — if a prerequisite or degree requirement says “6.100A”, can I use 6.100L for it?

    Yes.  6.100A and 6.100L cover the same material, so either one can be used to satisfy a “6.100A” requirement. 

    What about the Advanced Standing Exam for 6.100A? Will there be an ASE for the 12-unit 6.100?

    There will continue to be an ASE offered for 6.100A, covering Python programming skills, which many students can acquire outside of MIT.  The ASE is offered before every semester, currently in July and January.

    There are no plans at the moment to offer an ASE for the full 6.100 subject, which also includes data science material that relatively few students have prior experience with.

    I have done a lot of programming before MIT.  What should I take?

    If you know Python, or feel comfortable learning it on your own, you can take the 6.100A ASE, and then take 6.100B (or 16.C20).

    I have done some programming before, but not a lot.  What should I take?

    Take 6.100.  This is the best choice for most students.

    I have never programmed at all before.  What should I take?

    Try 6.100 first, if you can fit 12 units into your schedule.  If 6.100 proves too fast in the first few weeks, then fall back to 6.100A, which goes at a slower pace.

    If you can only fit 6 units into your registration, then take 6.100A, and then 6.100B (or 16.C20) in a future semester.

    How does this change affect the prerequisites for 6.101?

    6.1010 Fundamentals of Programming (which we call “6.101”) is the next programming course after 6.100.

    6.101 now requires 6.100 (or 6.100A + 6.100B, or 6.100A + 16.C20) as its prerequisite. Previously, it only required 6 units of programming exposure, 6.100A or 6.100L. But people who took 12 units first, both A and B, have been more successful in 6.101, which is the main reason 6.101’s prerequisite is changing.

    To smooth the transition, in fall 2025, 6.101 can be taken with only the old prerequisite, 6.100A or 6.100L. But we still strongly recommend taking a second 6-unit course (either 6.100B or 16.C20) first, before you take 6.101, because you will improve your odds of success in 6.101.

    6.101’s new prerequisite will be required starting in spring 2026.

    In spring 2026, 6.101 will also make an exception for passing 6.100A ASE. Passing the ASE has been sufficient preparation for success in 6.101 based on past experience, so if you pass the ASE, you will be able to take 6.101 in the 2025-26 without taking 6.100B or 16.C20 first. This exception may continue in future years, if passing the ASE continues to predict success in 6.101.

    How does this change affect the degree requirements for Course 6 majors?

    The 6-3 and 6-4 degrees will now require 6.100 (or 6.100A + 6.100B, or 6.100A + 16.C20), as the stepping stone into 6.101.

    The 6-5 degree continues to require only 6.100A, because 6-5 does not require 6.101. You can, of course, also use 6.100 to satisfy the 6.100A requirement, and you’re encouraged to do that.