6.102: Software Construction
Spring 2026 · Course Staff · Tues & Thurs 9:30-11am in 26-100
Announcements
Thu May 14: Exam 2 tomorrow
Exam 2 will be tomorrow, Friday, 1:30-3:30pm, in 26-100.
Please visit the Exam 2 page now to preview the exam instructions.
You must go to your assigned room as shown on the exam page. Bring your laptop with a fully-charged battery.
As announced previously, the exam is closed-book, but you may bring a single 8.5×11″ double-sided page of notes, handwritten directly on paper (not created with a computer or tablet, not printed out or photocopied). Blank scratch paper is also allowed. You may not access any other materials, sites, tools, etc. during the exam.
Fri May 8: Project reflection and last class
The group project is due this evening at 9pm. Also due at 9pm is your individual reflection about the project, so please don’t forget to write and submit that reflection. It’s OK to submit the reflection a bit late if you’re wrapping up project work close to the deadline.
Tuesday will be the last 6.102 class of the semester. There is no reading or nanoquiz or classwork grade for Tuesday’s class. Instead, we will have a brief wrap-up and summary of the course.
Fri May 8: Practice quizzes during lab hours
Exam 2 is next Friday afternoon during the finals period. See the previous announcement about exam content and essential details.
To help review for the exam, we invite you to use the upcoming lab hours as an opportunity to practice past 50-75-minute quizzes (shorter than Friday’s 120-minute exam) and ask questions about them. All of these past quizzes are found in the exam archive:
- Sunday lab hours: spring 2021 quiz 2
- Monday: fall 2021 quiz 2
- Tuesday: spring 2022 quiz 2
- Wednesday: spring 2023 quiz 2
Thu May 7: Problem Set 4 beta reports
Please fill out the Problem Set 4 reflection, which asks a few questions about how you worked on ps4. It should take only a minute or two to complete.
After that, your beta grade report and overall ps4 grade will become available on Omnivore, including your beta autograde and beta manual grading feedback.
If you have questions, please see the FAQ about grading questions.
Fri May 1: Exam 2 during final exam period
Exam 2 will be on Friday, May 15, 1:30-3:30pm, in 26-100. This is during the scheduled final exam period for 6.102, but the exam is 2 hours long, so we will not use the entire scheduled final exam slot.
Exam 2 will have a similar format to Exam 1 and will be in the same online system as Exam 1 and the nanoquizzes. You will need your laptop, and it must be charged so that you can take the exam on battery power.
The exam will cover readings 1-19. Any concepts from any of those readings may appear on the exam, but you can expect a greater focus on readings 11-19, since those were not covered by Exam 1. Exams from previous semesters can be found in the exam archive, although their content and length may differ from this semester’s exam.
The exam is closed-book, closed-notes, and you may not use anything on your laptop other than the exam site, but you may bring a single 8.5×11″ double-sided page of notes. This page must be handwritten directly on the paper (not created with a computer or tablet, not printed out or photocopied), must be readable without a magnifying glass, and must be created by you. Since the process of creating a crib sheet conveys most of its learning benefit, you may not share these notes or use someone else’s.
General
- General information
- Collaboration and public sharing
- Code reviewing
Calendar
semester view: deadlines and quiz dates
week view: this week’s classes, lab hours, office hours
Tools
- Git 1: Version Control due Mon Feb 9
- Git 2: Disaster Recovery due Mon Feb 23
- Git 3: Team Version Control due Wed Apr 22
- Basic TypeScript due Mon Feb 9
Readings
- 01: Static Checking code due Wed Feb 4
- 02: Testing code due Wed Feb 4
- 03: Code Review code due Mon Feb 9
- 04: Specifications code due Wed Feb 11
- 05: Designing Specifications code due Wed Feb 18
- 06: Abstract Data Types due Mon Feb 23
- 07: Abstraction Functions & Rep Invariants code due Wed Feb 25
- 08: Interfaces & Subtyping code due Mon Mar 2
- 09: Equality code due Wed Mar 4
- 10: Functional Programming code due Mon Mar 9
- 11: Recursive Data Types code due Wed Mar 11
- 12: Grammars & Parsing code due Mon Mar 16
- 13: Debugging code due Mon Mar 30
- 14: Concurrency code due Wed Apr 1
- 15: Promises code due Mon Apr 6
- 16: Mutual Exclusion code due Wed Apr 8
- 17: Callbacks & Graphical User Interfaces code due Mon Apr 13
- 18: Message-Passing & Networking code due Wed Apr 15
- 19: Little Languages code due Mon Apr 20
Problem Sets
- PS0: Turtle Graphics alpha due Mon Feb 9code review due Fri Feb 13beta due Tue Feb 17
- PS1: Specific Graphics alpha due Mon Feb 23code review due Fri Feb 27beta due Mon Mar 2
- PS2: Multi-Startup Set alpha due Mon Mar 9code review due Fri Mar 13beta due Mon Mar 16
- PS3: Memely alpha due Mon Apr 6code review due Fri Apr 10beta due Mon Apr 13
- PS4: Memory Scramble alpha due Tue Apr 21code review due Sun Apr 26beta due Wed Apr 29
Project
- Star Battle reading due Wed Apr 22team contract due Thu Apr 23iteration 0 due Tue Apr 28iteration 1 due Tue May 5project due Fri May 8reflection due Fri May 8