6.031: Software Construction
Fall 2021 · Course Staff · MWF11-12:30
Announcements
Wed Dec 15: Project, Quiz 2, and final grades
Project grades and feedback are now available on Omnivore.
Quiz 2 has been graded, and you will receive an email from Gradescope with a link to your graded quiz. Quiz 2 solutions are posted on the web site.
And final grades have been submitted to the registrar, they should become available on WebSIS soon.
Have a wonderful winter break!
Fri Dec 3: Project, reflection, and last class
The last group project check-in meetings are today, and the project is due this evening at 10pm. Also due at 10pm 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.
(Now is a good time to check that you have also submitted all the problem set reflections and your overall problem set grades are shown on Omnivore.)
Next week: there will be a quiz review during class time on Monday, and then Wednesday will be the last 6.031 class of the semester. There is no reading or nanoquiz or classwork grade for Wednesday’s class, instead we will have a brief wrap-up and summary of the course.
Tue Nov 30: Quiz 2 during final exam period
Quiz 2 will be on Tuesday, December 14, 11:05am-11:55am during the usual class time. This is during the scheduled final exam period for 6.031, but the quiz is only 50 minutes long, so we will not use the entire scheduled final exam slot.
Your quiz may not necessarily be in the location shown on the final exam schedule.
To get your quiz location, you must visit the Quiz 2 Room Assignment page.
You will only be able to check-in for the quiz in your assigned room.
Quiz 2 will have a similar format to Quiz 1, and be offered through the same online system as Quiz 1. You will need your laptop, and you may not be assigned a seat near a power outlet, so make sure you can take the quiz on battery power.
The quiz will cover readings 1-29. Any concepts from any of those readings may appear on the quiz, but you can expect a greater focus on readings 16-29, since those were not covered by Quiz 1.
Quizzes from previous semesters of 6.031 can be found in the quiz archive, although their content may differ a bit from the topics we’ve discussed this semester.
The quiz is closed-book, closed-notes, and you may not use anything on your laptop other than the quiz site, but you may bring a single 8.5×11″ double-sided page of notes. This page may be either handwritten or computer-printed, but it 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.
A quiz review will be held during class time on Monday, December 6, and as always, you can visit lab & office hours to ask quiz review questions, or post on Piazza.
Tue Nov 30: Problem Set 4 grades
Overall ps4 grades and grade reports are now available on Omnivore.
If you have questions, please see the FAQ about grading questions.
Wed Nov 24: Problem Set 4 reflection
Once you’ve completed ps4 beta, please fill out the required Problem Set 4 reflection, which asks a few questions about how you worked on ps4. It should take only a minute to fill out, and is due by Monday classtime.
General
Getting Started
Readings
- 01: Static Checking
- 02: Basic TypeScript
- 03: Testing
- 04: Code Review
- 05: Version Control
- 06: Specifications
- 07: Designing Specifications
- 08: Mutability & Immutability
- 09: Avoiding Debugging
- 10: Abstract Data Types
- 11: Abstraction Functions & Rep Invariants
- 12: Interfaces, Generics, & Enums
- 13: Debugging
- 14: Recursion
- 15: Equality
- 16: Map, Filter, Reduce
- 17: Recursive Data Types
- 18: Regular Expressions & Grammars
- 19: Parsers
- 20: Callbacks & Graphical User Interfaces
- 21: Concurrency
- 22: Promises
- 23: Mutual Exclusion
- 24: Message Passing
- 25: Networking
- 26: Little Languages I
- 27: Little Languages II
- 28: Ethical Software Engineering
- 29: Team Version Control