6.031 — Software Construction
Fall 2021

Announcements Archive

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.

Sat Nov 20: 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 web site.

If you don’t already know your group members, email them now to introduce yourself.

Before class tomorrow, read through the project handout.

In tomorrow’s class, after we take a nanoquiz and practice 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 class time during the project. Classes this week (MW) and next week (MWF) are devoted to working on the project.

Fri Nov 19: 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 Monday at 10pm. 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 Nov 17: Problem Set 4 code review open, due Friday 11am

Problem Set 4 code reviewing is now open. Go to Caesar to find your reviewing assignments. You’ll have 6 files to 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 Friday morning.

Mon Nov 15: Project group signup

Starting on Monday Nov 22, you will be working on the 6.031 final project in groups of three people. Please fill out the project signup form by this Thursday Nov 18 at 10pm.

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.

Fri Nov 12: 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).

Mon Nov 8: Problem Set 4

Problem Set 4 is now available. The ps4 alpha deadline is Monday, November 15, at 10pm, 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 or two to fill out, and is due by this Thursday at 10pm.

Fri Nov 5: 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 functions 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 Monday at 10pm. 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 Nov 3: 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 3 files to review.

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

Code reviews are due on Friday morning.

Fri Oct 29: 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.

Tue Oct 26: Quiz 1 tomorrow

Quiz 1 will be tomorrow, Wednesday, 11:05-11:55am, at quiz.mit.edu/quiz1.

You can visit that page now to preview the quiz instructions.

And you must visit quiz.mit.edu/quiz1-room and go to the room listed on that page. Bring your laptop with a fully-charged battery.

As announced previously, the quiz is closed-book, but you may bring a single 8.5×11″ double-sided page of notes on paper. You may not access any other materials, sites, tools, etc. during the quiz.

Mon Oct 25: 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).

Wed Oct 20: Problem Set 3

Problem Set 3 is now available. The ps3 alpha deadline is Monday, November 1, at 10pm.

After you wrap 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 or two to fill out, and is due by this Sunday at 10pm.

Tue Oct 19: Quiz 1 next week

Quiz 1 will be on Wednesday, October 27, 11:05am-11:55am during the usual class time. To get your quiz location, you must visit the Quiz 1 Room Assignment page. You will only be able to check-in for the quiz in your assigned room.

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

The quiz will cover readings 1-15, from the start of the semester to last 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.

This quiz will use the same online system we use for nanoquizzes. 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 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, October 25, and as always, you can visit lab & office hours to ask quiz review questions, or post on Piazza.

Sun Oct 17: 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 tests were tested using correct and incorrect staff implementations.

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

The ps2 beta deadline is Wednesday at 10pm. 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 Oct 15: 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 4 files to 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.

Fri Oct 8: 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).

Tue Oct 5: Caesar down

Caesar is down because of a CSAIL systems outage, so if you had extended your ps1 beta deadline to either tonight (1 slack day) or Wednesday night (2 slack days), then your ps1 beta deadline is now Wednesday night at 10pm and uses only 1 slack day. If Caesar does not come back up tonight, there will be an alternative way to get access to code review comments.

Mon Oct 4: Problem Set 2

Problem Set 2 is now available. Because of the holiday, 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 or two to fill out, and is due by this Thursday at 10pm.

Fri Oct 1: 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 as ESLint issues, either by running npm run lint or by installing the ESLint VS Code extension. 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.

Wed Sep 29: 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 4 files to 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 Sep 24: 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).

Tue Sep 21: Problem Set 1 clarification & correction

We have posted a clarification and a correction to the specifications in Problem Set 1:

  • Bucket numbers and day numbers in our flashcard system are always nonnegative integer numbers.

  • In the provided spec for toBucketSets(), strengthen “nonnegative number” to “bucket number:”
    @param bucketNumbers maps each flashcard to a bucket number

Please do apply that correction to your copy of algorithm.ts.

Mon Sep 20: Problem Set 1

Problem Set 1 is now available. The ps1 alpha deadline is next Monday at 10pm. You can take slack on this deadline using Caesar.

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 Sep 17: 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 ESLint in Visual Studio Code, 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.

Fri Sep 17: Experimental remote lab hours next week

Starting next week, some of the lab hours on Monday/Tuesday/Wednesday afternoons will be remote lab hours, which means they will be online rather than in the usual Stata basement location. The calendar shows which hours are remote, and provides a link to an online queue where you can request help during those times.

We’re trying remote lab hours for two reasons – first because the usual lab room is used by other classes during these times, and second because at some point in the semester, there may be some 6.031 students who are self-isolating and may need remote help. (We aren’t aware of any such cases at the moment.)

It’s far easier to get and give help in person, however, so please do come to the in-person lab hours as much as you can and need to.

Wed Sep 15: 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. 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.

Wed Sep 8: Problem Set 0 and Getting Started

Problem Set 0 is now available.

For help getting started with TypeScript, Visual Studio Code, and Git: visit lab hours today or tomorrow, at the times and locations shown on the calendar. 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 on Friday. See Part I (problems 0 to 4) of ps0.

ps0 alpha is due Monday, September 13, at 10pm. ps0 beta will be due Monday, September 20. See the General Information page for a description of problem set submission deadlines.

If you need help with course material or programming in TypeScript, 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 Sep 8: 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. (We had some technical issues with the network in the classroom today, so we’re going to consider it just practice this time; it’s okay if you were unable to reach today’s nanoquiz or access the clicker.)

Reading exercises are generally due 10pm the evening before class, so reading 1 and reading 2 are due at 10pm 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; and because of technical issues today, class 1’s classwork grade will not include nanoquiz or clicker questions, only the reading exercises.

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 Sep 7: Getting started in 6.031

Hello! 6.031 requires you to get up to speed quickly, setting up tools and learning the basics of TypeScript. Get started here. Deadlines:

  • By 10pm Thursday night, you must complete the class 1 reading and class 2 reading, including programming exercises using the 6.031 TypeScript Tutor in Visual Studio Code.

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

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

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

Sun Aug 29: Welcome to 6.031!

You’re getting this message because you preregistered for 6.031. 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 Sep 8 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. You will need to bring a laptop to every 6.031 class meeting, including the first meeting on Wed Sep 8. If you don’t have a laptop, IS&T can lend you one.

See you in September!