The EECS department introduces 6.100, a 12-unit subject that combines 6.100A and 6.100B
The change aims to improve the pacing and schedule of the introductory programming course
Beginning in Fall 2025, the Electrical Engineering and Computer Science (EECS) department will offer 6.100, a 12-unit full-semester subject that combines 6.100A and 6.100B. 6.100 is based on the structure of 6.00, another 12-unit full-semester subject first offered in 2005 by Prof. John Guttag. The official number for 6.100 in the course catalog is 6.1000.
In the 2014-2015 academic year, 6.00 was divided into two 6-unit half-semester subjects (6.0001 and 6.0002), allowing students to take half-semester subjects over two semesters. By doing so, first-years could take 6.0001 in the fall semester without exceeding the 54-unit credit limit. According to a 2014 article in The Tech, the other reason for the change was to provide “two different entry points into the 6.00 curriculum” based on students’ level of programming experience.
However, student and instructor feedback suggested that 6.100A’s structure as a half-semester course did not work well because of the course’s fast pace. “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,” the website states. The department believes that combining 6.100A and 6.100B into 6.100 will offer more flexibility in the pacing of the course, ultimately leading to a better teaching and learning experience.
6.100A and 6.100B will still be offered in the 2025-2026 academic year as 6-unit subjects, but they will be taught over a full semester instead of a half-semester. 6.100L will replace the 6-unit half-semester subject 6.100A. The department will continue to offer the 6.100A Advanced Standing Exam (ASE) but does not plan to offer an ASE for 6.100 in the meantime.
According to the website, 6.100 is recommended for students with some level of programming experience, while 6.100A is recommended for students with little to no programming experience.
The introduction of 6.100 affects the 6-3 (Computer Science) and 6-4 (Artificial Intelligence and Decision Making) degree requirements, as they will now require 6.100 or 6.100A and 6.100B before taking 6.101 (Fundamentals of Programming, a Python-based class). 16.C20 can be taken instead of 6.100B. Previously, the prerequisite for 6.101 was either 6.100A or 6.100L.
According to Prof. Rob Miller, the Education Officer for Computer Science, the reason for changing the prerequisites is that they found students who took both 6.100A and 6.100B to be more successful in 6.101.
Csilla Fulop ’27 thinks the offering of 6.100 is a “great idea,” but doesn’t agree with the changes to the prerequisites for 6.101. Fulop cited the 54-unit fall credit limit, which would restrict some freshmen to taking 6.100A in the fall. As a result, the additional requirement of 6.100B for 6.101 would make them “have to wait another semester to take 6.101, which is a very useful class for others as well.”
For Fall 2025, 6.101 can be fulfilled with the old prerequisite, though the department strongly recommends taking 6.100B before taking 6.101. The new prerequisites will be required in Spring 2026.
However, the department will make an exception for those who passed the 6.100A ASE, meaning that they can take 6.101 without taking 6.100B. The exception may continue for future semesters.