6.031: Software Construction
Spring 2018 · Course Staff · MWF11-12:30 (34-101)
Announcements
Tue May 22: Project grades and final grades
Project grades and feedback from your TA are now available on Omnivore, and final letter grades should be available soon on WebSIS.
Have a great summer!
Tue May 15: Project reflection and last class
The group project is due tomorrow at 11am. Also due at 11am is your individual reflection about the project, so please don’t forget to fill that out.
Tomorrow is the last 6.031 class of the semester. We will have a brief wrap-up and summary of the course.
Mon May 7: Problem Set 4 grades
Overall ps4 grades and grade reports are now available on Omnivore.
To see your beta autograde report, go to Didit, follow the link to your psets/ps4 page, and click “beta” in the “Milestones” section.
Your manual grade was assigned by staff inspection of your specs, tests, implementations, thread safety docs, and your response to code reviews.
If you have questions, please see the FAQ about grading questions.
Fri May 4: Project erratum: >
should be \-
Because of a transcription error, the spec handout mentioned a lyric operator >
that doesn’t actually exist in abc notation.
It should be \-
(backslash-hyphen).
It appeared correctly in the BNF grammar.
The handout has been corrected, and the BNF grammar has been made a little more explicit that the backslash is a literal backslash character, not a string escape character as in \r
and \n
.
Thu May 3: Problem Set 4 reflection
Now that you’ve completed the last problem set 🎉, 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 tomorrow, May 4, at 10pm.
General
Getting Started
Readings
- 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 & Enumerations
- 13: Debugging
- 14: Recursion
- 15: Equality
- 16: Recursive Data Types
- 17: Regular Expressions & Grammars
- 18: Parsers
- 19: Concurrency
- 20: Thread Safety
- 21: Locks & Synchronization
- 22: Queues & Message-Passing
- 23: Sockets & Networking
- 24: Callbacks
- 25: Map, Filter, Reduce
- 26: Little Languages I
- 27: Little Languages II
- 28: Team Version Control