Is registration limited? No, we don’t expect to limit registration, but we do recommend that you pre-register just in case. This also allows us to estimate the resources we need.

I’m a Wellesley (or Harvard) student. Can I register for the class? Of course! We’d be delighted to have you. Just register as usual, and one of the lecturers will happily approve your cross-registration.

Can I attend as a listener? Yes, listeners are welcome, and all class material will be available to listeners. You are also welcome to do the assignments and attend office hours. We are not able, however, to provide feedback on your work and you will not be able to join a final project team.

I can’t attend both weekly lectures. Can I still take the class? No. The main goal of the class is to teach design: to help you go beyond coding to bigger questions that shape software and its impact in the world. Many of the lecture sessions are focused on an approach to design that we have developed and honed over several years of teaching the class. In our experience, students who don’t attend in person and hope to catch up afterwards are unable to do so.

I’m taking another class that overlaps with this class. Can I leave early or come late? No. We appreciate how frustrating it can be when you want to take two classes that get scheduled at overlapping times, but it’s a bad idea to register for classes that overlap, because it means you cannot be fully invested in both. We suspect that overscheduling is one of the many causes of needless stress for students. In most universities, the registration system doesn’t even permit registering for overlapping classes. We wish MIT’s system worked this way!

Will video recordings of lectures be available online? No. Students are expected to attend in person. We may be able to provide recordings to individual students who missed particular lectures due to extenuating circumstances.

Do I really need the prereqs? See the class guide for more information about the prereqs. We don’t strictly enforce them, but in our experience students who have only some basic programming experience (eg, in Python) and are not adept with JavaScript will struggle to keep up, and will find learning the technology stack overwhelming. The class builds on program structuring fundamentals such as data abstraction (immutability, representation independence and representation invariants) and declarative specification (pre/post conditions). Students not familiar with these notions find it much harder to grasp the design ideas of the class.

How come the class is now 18 units? We realized that many students needed more time to complete the course work, and so we increased the number of units to 18 to reflect that. We do not expect the workload to be any higher this year from last year.

Is the class a CIM? No, it isn’t. Last year some students felt it should have been because of the extensive writing they did. This year we will be making our expectations clearer, to ensure that students understand that a lot of writing is not required to do well in the class.

How will this year’s class differ from last year’s? The class will be mostly the same. We plan to reintroduce some “preps”, which are short, focused assignments intended to help students get up to speed on some particular technical competencies. There will be more room for creativity in the individual assignments, with students given more choice about the functionality they design and implement.

Can students use GPT in their work? We are excited to explore how GPT might be used to improve students’ learning experiences. See the class guide for policy details.