6.031 — Software Construction
Spring 2021

Announcements Archive

Fri May 28: Project, Quiz 2, and final grades

Project grades and feedback are now available on Omnivore.

Quiz 2 has now been graded, so you should get an email from Gradescope with a link to your graded quiz.

Quiz 2 solutions are posted on the web site. Note that parts of the quiz were randomized. Gradescope shows the complete quiz, including the parts you weren’t asked as faded-out text. The solutions include answers to all the possible parts.

Final grades have also been submitted to the registrar, so should become available on WebSIS.

Have a good summer!

Wed May 26: Quiz 2 tomorrow

Quiz 2 will be tomorrow, Thursday, 11:05-11:55am US Eastern 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!

Sat May 15: Quiz 2 during final exam period

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.

Mon May 10: 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.

Fri May 7: 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 (11am US Eastern).

Tue May 4: Project groups and handout

Your project team and mentor for the group project are posted on Omnivore, and the project handout is posted on the course web site.

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.

Sun May 2: Problem Set 4 alpha reports

Alpha grade reports and code reviews for ps4 are now available.

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.

Fri Apr 30: Problem Set 4 code review open, due Sunday 2pm

Problem Set 4 code reviewing is now open. Go to Caesar to find your reviewing assignments. You’ll have 6 files to review, including 1 practice review.

Please see the Code Reviewing page for guidelines and instructions. Remember that your classmates are people like you who are trying hard like you. Be nice.

Code reviews are due on Sunday afternoon at 2pm.

Mon Apr 26: Problem Set 3 grades

Overall ps3 grades and grade reports are now available on Omnivore.

If you have questions, please see the FAQ about grading questions.

If you did not submit a reflection, you must do that before your grades are made available (Omnivore will give you a link to the reflection page).

Fri Apr 23: PS4 alpha/beta deadlines extended, project shortened

Because the schedule for ps4 and the project are very compressed and we are up against the end of the semester, we have decided to cut the project in half, and extend the deadlines for ps4 alpha and beta.

ps4 alpha is now due next Wednesday, April 28 (with up to 2 days of slack as usual). ps4 beta is now due the following Wednesday, May 5 (again with up to 2 days of slack).

The project kickoff (class 29) originally scheduled for next Friday, is now Wed May 5. The project will be rescoped to be doable by a group of 3 during the week of May 10, and its due date will continue to be May 14. The rescoping means the project’s value in the final grade will be cut roughly in half, with the remaining points redistributed evenly across ps1-4 and quiz1-2.

Please ask questions on Piazza, and visit lab or office hours for help with ps4.

Wed Apr 21: Project group signup

Starting on Friday April 30, you will be working on the 6.031 final project in groups of three people. Please fill out the project signup form by next Wednesday April 28 at classtime (11am US Eastern).

Every member of a group must submit the signup form, so that we have confirmation from all proposed group members. If you do not fill out the form yourself, you will not be part of a group. We will assume you have dropped the course.

You can fill out the form right now, even if you don’t have a group of three: just choose the appropriate option on the form. You can resubmit another response if your plans change by next Wednesday, and we will use your last submitted response. To find additional group members, use the Piazza teammates post.

Project groups need to consist of people taking the same version of the course. A group can’t mix members from 6.031 Java and 6.031 TypeScript.

Fri Apr 16: Problem Set 4

Problem Set 4 is now available. The ps4 alpha deadline is Monday, April 26, at 10pm MIT time, and you may request slack days as usual.

After you wrap up ps3, please fill out the required Problem Set 3 reflection, which asks a few questions about how you worked on ps3. It should take only a minute to fill out, and is due by next Friday at 10pm.

Fri Apr 16: Problem Set 3 alpha reports

Alpha grade reports and code reviews for ps3 are now available.

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, your Expression type and Commands methods were tested against staff tests.

In manual grading, staff looked at your Expression datatype definition, the specs of some Expression operations, and the implementation of one variant. As you revise, try to both address their comments directly and generalize the feedback to improve your other specs and implementations.

The ps3 beta deadline is Wednesday at 10pm MIT 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.

Wed Apr 14: Problem Set 3 code review open, due Friday 11am

Problem Set 3 code reviewing is now open. Go to Caesar to find your reviewing assignments. You’ll have 6 files to review, including 1 practice review.

Remember that your classmates are people like you who are trying hard like you. Be nice.

Code reviews are due on Friday morning.

Thu Apr 8: Quiz 1 grades

Quiz 1 grades are now available on Omnivore.

You can review your graded quiz on Gradescope. You will receive an email from Gradescope, and if you haven’t used it in another class, the email will explain how to log in.

Quiz 1 solutions are posted on the web site.

As with all assignments, please bring grading issues or questions to instructor office hours. Gradescope has a “regrade request” feature, but we are not using it.

  Good work on a challenging quiz!

Mon Apr 5: Problem Set 3

Problem Set 3 is now available. The ps3 alpha deadline is Monday, April 12, at 10pm MIT time, and the usual slack day rules apply.

Sun Apr 4: Quiz 1 tomorrow

Quiz 1 will be tomorrow, Monday, 11:05-11:55am US Eastern time, at quiz.mit.edu/quiz1.

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!

Sun Apr 4: Problem Set 2 grades

Overall ps2 grades and grade reports are now available on Omnivore.

If you have questions, please see the FAQ about grading questions.

If you did not submit a reflection, you must do that before your grades are made available (Omnivore will give you a link to the reflection page).

Thu Apr 1: Problem Set 2 reflection

After you’ve wrapped up ps2, please fill out the required Problem Set 2 reflection, which asks a few questions about how you worked on ps2. It should take only a minute to fill out, and is due by Sunday at 11am.

Sun Mar 28: Problem Set 2 alpha reports

Alpha grade reports and code reviews for ps2 are now available.

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, your implementations were tested against staff tests, and your IntervalSet & MultiIntervalSet tests were tested using correct and incorrect staff implementations.

In manual grading, staff looked only at your RepMap- and RepList­IntervalSet AFs and RIs. As you revise, try to both address their comments directly and generalize the feedback to improve your other ADTs.

The ps2 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. Do check the calendar for changes in lab hours due to the Wednesday beta deadline.

Fri Mar 26: Problem Set 2 code review open, due Sunday 2pm

Problem Set 2 code reviewing is now open. Go to Caesar to find your reviewing assignments. You’ll have 6 files to review, including 1 practice review.

Please see the Code Reviewing page for guidelines and instructions. Remember that your classmates are people like you who are trying hard like you. Be nice.

Code reviews are due on Sunday afternoon at 2pm.

Mon Mar 22: Quiz 1 in two weeks

Quiz 1 will be on Monday, April 5, 11:05am-11:55am EDT during the usual class time.

The quiz is 50 minutes long, so class will end early that day.

You will take the quiz using yet another bespoke 6.031 web site (surprise!). We will start using that system in class this week so that you’ll have experience with it before Quiz 1.

The quiz will cover readings 1-15, from the start of the semester to Wednesday’s class on equality. Any and all concepts from readings 1-15 may appear on the quiz. 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 it this semester.

A quiz review will be held during part of class time on Fri Apr 2, and as always, you can visit lab & office hours to ask quiz review questions, or post on Piazza.

Mon Mar 22: Quiz system preview

Starting this week, nanoquizzes will use the same system as Quiz 1 so that you are familiar with that system before the quiz on Monday April 5.

If you’d like to try out this new system before we use it for NQ15 on Wednesday, I encourage you to visit this example quiz.

You can start or restart the example quiz any time by clicking “Restart” at the top of the page. The quiz should have three questions: a pick-all, a pick-one, and a text box. This example quiz does not include feedback on correctness: you’ll see how that works on Wednesday.

Fri Mar 19: Problem Set 1 grades

Overall ps1 grades and grade reports are now available on Omnivore.

If you have questions, please see the FAQ about grading questions.

If you did not submit a reflection, you must do that before your grades are made available (Omnivore will give you a link to the reflection page).

Mon Mar 15: Problem Set 2

Problem Set 2 is now available. Because of the holday, deadlines for ps2 are shifted from the usual schedule: the ps2 alpha deadline is next Wednesday at 10pm.

After you wrap up ps1, please fill out the required Problem Set 1 reflection, which asks a few questions about how you worked on ps1. It should take only a minute to fill out, and is due by this Thursday at 10pm.

Fri Mar 12: Problem Set 1 alpha reports

Alpha grade reports and code reviews for ps1 are now available.

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, your implementations were tested against staff tests, and your tests were tested using correct and incorrect staff implementations.

At the Omnivore link above, you will see staff comments about your toBucketSets testing strategy, but not about your other test suites. As you revise, try to both address those comments on toBucketSets and generalize the feedback to improve your other test suites.

The ps1 beta deadline is Monday at 10pm. Make sure you address all your code review comments from humans or marked #important by Checkstyle. Checkstyle’s comments also appear in Eclipse, both as yellow highlights in the code and in the Problems tab. Pay attention to warnings!

If you need a slack day or two, remember to make the request in advance on Caesar.

Good work so far on a challenging problem set, and good luck on the beta! Please ask questions on Piazza and visit lab or office hours.

Tue Mar 9: Problem Set 1 code review open, due Friday 11am

Problem Set 1 code reviewing is now open. Go to Caesar to find your reviewing assignments. You’ll have 10 files to review, including 1 practice review.

Some of your review files may be test suites. When you are reviewing a test suite, consider not only the SFB/ETU/RFC of the code, but also correctness, thoroughness, and size. You can make comments on the testing strategy (e.g., correctness and thoroughness of partitioning) and on individual test cases (e.g., correctness of how the test case is asserting a postcondition).

Please see the Code Reviewing page for other guidelines and instructions. Remember that your classmates are people like you who are trying hard like you. Be nice.

Code reviews are due on Friday morning.

Fri Mar 5: Problem Set 0 grades

Overall ps0 grades and grade reports are now available on Omnivore.

To see your beta autograde report, go to Didit, follow the link to your psets/ps0 page, and click “beta milestone.”

Your manual grade was assigned by staff inspection of your personal art code and your response to code reviews.

If you have questions, please see the FAQ about grading questions.

If you did not submit a reflection, you must do that before your grades are made available (Omnivore will give you a link to the reflection page).

Mon Mar 1: Problem Set 1

Problem Set 1 is now available. The ps1 alpha deadline is next Tuesday at 10pm US Eastern time. You can take slack on this deadline using Caesar, but note that you can use at most 1 slack day on your ps1 alpha deadline (because the deadline was delayed by the long weekend).

After you wrap up ps0 (due tonight), please fill out the required Problem Set 0 reflection, which asks a few questions about how you worked on ps0. It should take only a minute to fill out, and is due by Thursday at 10pm.

Fri Feb 26: Problem Set 0 alpha reports

Alpha grade reports and code reviews for ps0 are now available.

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, your submission was tested both by the public tests that were shown to you and by hidden tests. If you failed any hidden tests, you’ll see the name of the test that failed and a stack trace of where it failed. The test case inputs or code will not be revealed to you, either by Didit or by staff. The hidden tests are like bug reports from users in the field, where you get a rough idea of what the user was trying to do (the test name) and a stack trace of where the failure occurred. You need to figure out what’s wrong with your code from those clues.

You should revise ps0 for the beta deadline on Monday at 10pm. You can take slack on this deadline using Caesar.

Your revised version of ps0 should fix any bugs found by the hidden tests, and you must address code review comments. In particular, you must eliminate all magic numbers from your solution. See the addendum about addressing ps0 code review comments for more information. The addendum tells you how to turn on Checkstyle in Eclipse, which will help you find your magic numbers.

You can also see the problem set handout for a breakdown of approximately how your overall ps0 grade will be calculated.

Good luck! Please ask questions on Piazza and visit lab or office hours.

Wed Feb 24: Problem Set 0 code review open, due Friday 11am

Problem Set 0 code reviewing is now open. Go to Caesar and click the “start code reviewing” button to find your reviewing assignments.

You’ll have 3 files to review, and the first one may be a “practice” review, with code written by the staff rather than by another student. Problem Set 0 is a relatively short problem set; code reviews on future problem sets will involve more files.

Please see the Code Reviewing page for guidelines and instructions. Remember that your classmates are people like you, who are trying hard, like you. Be nice.

Code reviews are due before class on Friday.

Thu Feb 18: Finding people to work with

In Friday’s class, we will start doing in-class programming with Constellation, which requires you to work with a partner.

You can always find a partner at the start of class, but if you want a more deliberate way to find people to work with, not only for in-class work, but also for problem sets (staying aware of the collaboration policy), or for the group project at the end of the semester, here are some places to help you connect:

Don’t forget to have all the tools set up and ready before class at 11am US Eastern time on Friday. See Part I (problems 0 to 4) of ps0.

For almost all questions, Piazza is the place to ask.

Wed Feb 17: Problem Set 0 and Getting Started

Problem Set 0 is now available.

For help getting started with Java, Eclipse, and Git: visit lab hours today or tomorrow, at the times shown on the calendar, at whoosh.mit.edu/6.031-lab. TAs and LAs will be there to help you install and set up the tools you need for 6.031.

You will need to have all the tools set up and ready before class at 11am US Eastern time on Friday. See Part I (problems 0 to 4) of ps0.

ps0 alpha is due Monday, February 22, at 10pm US Eastern time. ps0 beta will be due Monday, March 1. See the General Information page for a description of problem set submission deadlines.

If you need help with course material or programming in Java, please see the calendar of office and lab hours, which will be updated as we finalize the schedule.

For almost all questions, Piazza is the place to ask. Once again, welcome to 6.031!

Wed Feb 17: Reading exercises, nanoquizzes, and other classwork

Welcome to 6.031!

In class today you completed some reading exercises in reading 1, took a first nanoquiz, and did some clicker questions.

Reading exercises are generally due 10pm US Eastern time the evening before class, so reading 1 and reading 2 are due at 10pm US Eastern time tomorrow. Your progress on reading exercises can be seen on Omnivore.

In class on Friday we will take a nanoquiz on reading 2.

Classwork grades (which combine the reading exercises, nanoquiz, clicker questions, and other work you do before and during a particular class) are usually posted in the evening of the day of the class. Class 1 is an exception to this – because reading 1 isn’t due until tomorrow, the classwork grade for class 1 will be posted by Friday morning. See classwork grading and makeup for details about classwork grading and ways to make up for lost points.

If you have questions, please ask on Piazza.

Tue Feb 16: Tomorrow’s class, and getting started in 6.031

Hello! First some details about class tomorrow, then important instructions for getting started in 6.031, and a reminder about the required signup form!

6.031 online classes meet in Whoosh (not Zoom), at whoosh.mit.edu/6.031. Please use a Chrome-family web browser to connect. If you have technical difficulties with Whoosh, there is a backup Zoom link on the course website, but Zoom will not be our primary meeting place.

6.031 needs you to get up to speed quickly, setting up tools and learning the basics of Java. Get started here. Deadlines:

  • By 10pm Thursday US Eastern time, you should complete the class 1 reading and class 2 reading, including programming exercises using the 6.031 Java Tutor in Eclipse.

  • By 11am Friday US Eastern time before class 2, you should complete all the exercises on the Getting Started page, and Part 1 of Problem Set 0. Problem Set 0 will be officially released tomorrow after class.

You can find these deadlines on the course calendar, plus lab hours where you can get help starting on Wednesday.

If you have a question, please ask on Piazza.

The only thing you need to do for the first class tomorrow is show up. It’s OK if you’re not set up with Java yet, and you don’t need to do reading 1 yet. If you did not receive our previous announcement, please keep reading…

Tue Feb 2: Welcome to 6.031!

You’re getting this message because you preregistered for 6.031 (or the pilot version 6.S911). Welcome! A few announcements:

  1. In order to join the class properly, you must fill out this short signup form. Please fill it out now. 6.031 gets rolling quickly, so you must fill out this form before the end of the first class meeting on Wed Feb 17 or else you won’t have access to the first problem set.

  2. 6.009 is a required prerequisite for this course. If you haven’t taken 6.009, you won’t be able to take 6.031 for credit, but you are very welcome to join the class as a listener.

  3. 6.031’s “final” during final exam week is not a multi-hour comprehensive exam, it is the second of two 1-hour quizzes in the course, and will focus primarily on the second half of the semester. We’ve scheduled that quiz during final exam week to relax the course schedule at the end of the semester, but please keep it in mind as you make end-of-semester plans.

  4. The course will be taught fully online, and more information about the online class meetings will be sent out before the first class.

See you in two weeks!