6.031: Software Construction
Spring 2021 · Course Staff · MWF11-12:30
Quiz 2 will be on Thursday, May 27, 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 May 19, and as always, you can visit lab & office hours to ask quiz review questions, or post on Piazza.
If you have questions, please see the FAQ about grading questions.
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 (11am US Eastern).
If you don’t already know your group members, email them now to introduce yourself (and cc your TA mentor).
Before class tomorrow, please read through the project handout.
In tomorrow’s class, form a 3-person Whoosh group with your team. We will not be using Constellation in class tomorrow, so you won’t need to pair with a Constellation partner. After we take a nanoquiz and practice team version control with Git, you will meet with your team, check in with your TA mentor, create your group repo, write a team contract, and start working on the project. The team contract is due by the end of class.
You must check in with your TA mentor tomorrow and in every scheduled classtime during the project. If you are not in class tomorrow, and you hadn’t previously introduced yourself by email to your group and TA, then we may have to consider you missing and remove you from your project group.
As before, that page includes links to your alpha autograde report on Didit and your code reviews on Caesar (which you can also find by going to Didit or Caesar directly).
In autograding this iteration, many test cases were weighted less because the focus was on situations without concurrency. Those test cases will be worth more on the beta.
In manual grading, staff looked at your
Board abstraction function and rep exposure safety argument.
As you revise, try to both address their comments directly and generalize the feedback to improve your other ADTs.
The ps4 beta deadline is Wednesday at 10pm US Eastern time. Make sure you address all your code review comments from humans or marked #important by Checkstyle. If you need a slack day, remember to request it on Caesar.
Please ask questions on Piazza and visit lab or office hours.
- 01: Static Checking
- 02: Basic Java
- 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: 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: Team Version Control
- 30: Ethical Software Engineering