6.031: Software Construction
Fall 2020 · Course Staff · MWF11-12:30
Go to…
- Online classes
for technical difficulties:
go to tech help Zoom
- Online lab hours
for technical difficulties:
please post on Piazza
Announcements
Fri Dec 18: Quiz 2 grades and final grades
Quiz 2 has now been graded, so you should get an email from Gradescope with a link to your graded quiz.
Final grades have also been submitted to the registrar, so should become available on WebSIS.
Quiz 2 solutions are posted on the web site. Note that parts of the quiz were randomized. Grading only considered the questions that you were actually asked, but Gradescope shows the complete quiz, including the parts you weren’t asked as faded-out text with an empty answer box. The solutions include answers to all the possible parts.
Have a great winter break!
Tue Dec 15: Quiz 2 tomorrow
Quiz 2 will be tomorrow (Wednesday), 11:05-11:55am MIT time, at quiz.mit.edu/quiz2.
As announced previously, the quiz is open-book: you may access any 6.031 or other resources, but you may not communicate with anyone except the course staff.
During the quiz, if you want to ask a clarification question, visit whoosh.mit.edu/6.031 and click “raise hand” to talk to a staff member.
Good luck!
Fri Dec 11: Project grades
Project grades and feedback are now available on Omnivore.
If you have questions, please see the FAQ about grading questions.
Fri Dec 4: Project, reflection, and last class
The group project is due today at classtime. Also due at the end of class (12:30pm) is your individual reflection about the project, so please don’t forget to fill that out.
Monday will be the last 6.031 class of the semester, meeting in Whoosh as usual. There is no reading or nanoquiz or classwork grade for Monday’s class. Instead, we will have a brief wrap-up and summary of the course.
Next Wednesday, a quiz review will happen during classtime.
Thu Dec 3: Quiz 2 during final exam period
Quiz 2 will be on Wednesday, December 16, 11:05am-11:55am MIT 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.
Quiz 2 will have a similar format to Quiz 1, and be offered through the same online system as Quiz 1.
The quiz will cover readings 1-30. Any concepts from any of those readings may appear on the quiz, but you can expect a greater focus on readings 16-30, 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 open-book: you may access any 6.031 or other resources, but you may not communicate with anyone except the course staff. In past semesters, quizzes were closed-book with one double-sided page of notes allowed. The process of creating such a crib sheet conveys most of its learning benefit, so we still recommend doing it this semester as part of your studying.
A quiz review will be held during class time on Wed Dec 9, and as always, you can visit lab & office hours to ask quiz review questions, or post on Piazza.
General
Getting Started
Readings
- 01: Static Checking
- 02: Basic Java
- 03: Code Review
- 04: Testing
- 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: Recursive Data Types
- 17: Regular Expressions & Grammars
- 18: Parsers
- 19: Programming with ADTs
- 20: Concurrency
- 21: Thread Safety
- 22: Locks & Synchronization
- 23: Queues & Message-Passing
- 24: Sockets & Networking
- 25: Callbacks
- 26: Map, Filter, Reduce
- 27: Little Languages I
- 28: Little Languages II
- 29: Ethical Software Engineering
- 30: Team Version Control