6.102 — Software Construction
Spring 2023

Announcements Archive

Wed May 24: 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.

Final grades have now been submitted to the Registrar, so they should become available on WebSIS soon.

Have a great summer, everyone!

Thu May 18: Quiz 2 tomorrow

Quiz 2 will be tomorrow, Friday, 1:35-2:50pm, in assigned rooms.

You can also visit Quiz 2 itself now to preview the quiz instructions.

You must go to your assigned room. 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. Blank scratch paper is also allowed. You may not access any other materials, sites, tools, etc. during the quiz.

Mon May 15: Problem Set 4 reflection and grades

First, 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.

After you have filled out the reflection, your overall ps4 grade and grade report will become visible on Omnivore, with new information at the end of the page about your beta autograde and beta manual grade.

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

Fri May 12: Project reflection, and last class

The group 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.

Tuesday will be the last 6.102 class of the semester. There is no reading or nanoquiz or classwork grade for Tuesday’s class. Instead, we will have a brief wrap-up and summary of the course.

Mon May 8: Problem Set 3 reflection and grades

First, 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.

After you have filled out the reflection, your overall ps3 grade and grade report will become visible on Omnivore, with new information at the end of the page about your beta autograde and beta manual grade.

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

Fri May 5: more frequently-asked questions

  • I am unable to import NodeCanvasRenderingContext2D: Answer: import type { Canvas, CanvasRenderingContext2D as NodeCanvasRenderingContext2D } from 'canvas';

Wed May 3: more frequently-asked questions

  • I am stuck on the merge conflict part of the Gitstream exercise of Team Version Control reading.
    Answer: Git is probably popping up a tab in your VS Code editor; look for it there. If that doesn’t help, try using git config --global core.editor "nano -w" to temporarily have the merge conflict show up on your terminal. Then, switch back to git config --global core.editor "code --wait"
  • I saw this error CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
    Answer: From PS4 server.ts, use
    this.app.use((request, response, next) => {
      // allow requests from web pages hosted anywhere
      response.set('Access-Control-Allow-Origin', '*');
      next();
    });

Tue May 2: Quiz 2 during final exam period

Quiz 2 will be on Friday, May 19, 1:35pm-2:50pm. This is during the scheduled final exam period for 6.102, but the quiz is 75 minutes long, so we will not use the entire scheduled final exam slot.

To get your quiz location, 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 and nanoquizzes. You will need your laptop, and your seat may not be near a power outlet, so make sure you can take the quiz on battery power.

The quiz will cover readings 1-19. Any concepts from any of those readings may appear on the quiz, but you can expect a greater focus on readings 11-19, since those were not covered by Quiz 1.

Quizzes from previous semesters 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.

Mon May 1: Problem Set 4 alpha reports

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

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.

You will see staff comments about some specific parts of your problem set, as well as code review comments from humans or marked #important by Checkstyle. As you revise for the beta, you should not just address those specific comments in those specific places, but generalize the feedback to improve the rest of your code and documentation as well. The ps4 beta deadline is Monday May 8.

For help, please ask questions on Piazza and visit lab or office hours.

Wed Apr 26: Team version control

As you start your team project, you will now be using Git with other people.

A brief Team Version Control reading has a review of the key parts of Git (especially the git pull command that you did not need to use on problem sets but will now need to use frequently), along with a few exercises to help you practice the skills you will need to use Git effectively in a team, and avoid getting your group into a merge-conflict mess.

Please do this reading by the iteration #0 deadline and before you start iteration #1.

Tue Apr 25: more frequently-asked questions

  • Can I add new board files to the board folder to test our code? Yes. Please make sure to commit.

Wed Apr 26: Project groups and handout

Your project team, TA mentor, and worktime room 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.

For class tomorrow, come to the room shown on Omnivore (which for most of the class is not 26-100). 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. For the next two weeks, classtime is devoted to working on the project.

Tue Apr 25: more frequently-asked questions

  • Can I add new board files to the board folder to test our code? Yes. Please make sure to commit.

Tue Apr 25: Problem Set 4 code review open, due Friday noon

Problem Set 4 code reviewing opens after class today. Go to Caesar and click the “start code reviewing” button to find your reviewing assignments. You’ll have 4 files to review.

  • If you took slack day(s) on the alpha deadline, then you won’t be able to start code reviewing yet. It will open for you the morning after your deadline.
  • If you meant to take slack but forgot to change your deadline in advance, do not start code reviewing and ask for help right away.

Code reviews are due by noon on Friday.

Mon Apr 24: Problem Set 2 reflection and grades

First, 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.

After you have filled out the reflection, your overall ps2 grade and grade report will become visible on Omnivore, with new information at the end of the page about your beta autograde and beta manual grade.

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

Sun Apr 23: more frequently-asked questions

  • Will our tests be graded using staff implementation? Answer
  • Is it required for map() to not block other map() calls? Answer

Sun Apr 23: more frequently-asked questions

  • How do I test that an async function throws an error? Answer

  • What should I do if a player who is currently being blocked tries to flip over a new card? See this rule for when a player can turn over a second card

Thu Apr 20: more frequently-asked questions

  • Are we allowed to use the code for the Deferred class that was explained in the readings? Answer

  • How can I play Memory Scramble with the UI? Go here

Thu Apr 20: Project group signup

Starting on Thursday Apr 27, you will be working on the 6.102 final project in groups of three people. Please fill out the project signup form by Tuesday Apr 25 at the end of class (11am).

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 before the Tuesday signup deadline, and we will use your last submitted response. To find additional group members, you can use the Piazza teammates post.

Mon Apr 17: more frequently-asked questions

  • How do I run checkstyle on my test cases for PS4?

    Try removing the “test” line in .eslintignore. Use cd to go to your pset 4 folder on your terminal, and then run code .eslintignore to edit the file in VS Code.

Sun Apr 16: more frequently-asked questions

  • Does the image filename must have a valid file extension like .jpg? Check valid inputs listed here.

Sat Apr 15: Problem Set 3 alpha reports and Problem Set 4 released

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

You will see staff comments about some specific parts of your problem set, as well as code review comments from humans or marked #important by Checkstyle. As you revise for the beta, you should not just address those specific comments in those specific places, but generalize the feedback to improve the rest of your code and documentation as well. The ps3 beta deadline is Monday May 1.

Problem Set 4 has also been released; you can find it on the course website. The ps4 alpha deadline is Monday April 24.

For help, please ask questions on Piazza and visit lab or office hours.

Tue Apr 11: more frequently-asked questions

  • How do I test whether image() returns the correct image?
    See examinePixelsOfSimpleImage() in examples.ts

Tue Apr 11: Problem Set 3 code review open, due Friday noon

Problem Set 3 code reviewing opens after class today. Go to Caesar and click the “start code reviewing” button to find your reviewing assignments. You’ll have 4 files to review.

  • If you took slack day(s) on the alpha deadline, then you won’t be able to start code reviewing yet. It will open for you the morning after your deadline.
  • If you meant to take slack but forgot to change your deadline in advance, do not start code reviewing and ask for help right away.

Code reviews are due by noon on Friday.

Mon Apr 10: more frequently-asked questions

  • If our RI is true, is checkRep() still required?
    Answer

Sun Apr 9: more frequently-asked questions

  • Are filenames of images that don’t exist in the library allowed?
    Answer

Fri Apr 7: more frequently-asked questions

Tue Apr 4: Quiz grading questions can only be handled in instructor office hours

Please don’t post on Piazza for any quiz grading errors. Bring grading issues or questions to instructor office hours.

Mon Apr 3: 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. Grade distribution statistics are included in the email from Gradescope.

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.

Mon Apr 3: Problem Set 1 reflection and grades

First, 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.

After you have filled out the reflection, your overall ps1 grade and grade report will become visible on Omnivore, with new information at the end of the page about your beta autograde and beta manual grade.

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

Fri Mar 24: Problem Set 3

Problem Set 3 is now available. The ps3 alpha deadline is Monday April 10.

Wed Mar 22: Quiz 1 tomorrow

Quiz 1 will be tomorrow, Thursday, 9:35-10:25am, in assigned rooms.

You can also visit Quiz 1 itself now to preview the quiz instructions.

You must go to your assigned room. 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. Blank scratch paper is also allowed. You may not access any other materials, sites, tools, etc. during the quiz.

Mon Mar 20: more frequently-asked questions

  • My implementation of add throws an error. Why is it failing the autograde for this case?
    Please read your stack trace of the test case and note testing ADT operations.

  • Why are my tests for City failing on Didit early?
    Check if there are bugs in both your RegionSet implementations.

Sun Mar 19: Problem Set 2 alpha reports

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

You will see staff comments about some specific parts of your problem set, as well as code review comments from humans or marked #important by Checkstyle.

As you revise for the beta, you should not just address those specific comments in those specific places, but generalize the feedback to improve the rest of your code and documentation as well.

Read all the feedback. If a staff comment says you should fix something, then fix it, even if no points were lost for it on the alpha. Unfixed problems may lose points on the beta.

The ps2 beta deadline is Monday April 17.

For help, please ask questions on Piazza and visit lab or office hours.

Tue Mar 14: remote lab hours today because of snow closing

Because of MIT’s snow closing at 3pm, today’s 4pm-10pm lab hours will be held remotely. Use this form to ask for help during lab hours.

You can also still come to 32-044 during lab hours if you want to work there, since the campus buildings are not closed. 6.102 staff members may or may not be in the room; if they are, you can ask for help in person.

Tue Mar 14: Problem Set 2 code review open, due Friday noon

Problem Set 2 code reviewing opens after class today. Go to Caesar and click the “start code reviewing” button to find your reviewing assignments. You’ll have 4 files to review.

  • If you took slack day(s) on the alpha deadline, then you won’t be able to start code reviewing yet. It will open for you the morning after your deadline.
  • If you meant to take slack but forgot to change your deadline in advance, do not start code reviewing and ask for help right away.

Code reviews are due by noon on Friday.

Mon Mar 13: Quiz 1 next week

Quiz 1 will be on Thursday, March 23, 9:35am-10:25am. That’s the usual class time, but not necessarily the usual class location. Please go to your quiz location to find out where you should take the quiz.

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

The quiz will cover readings 1-10, from the start of the semester to Tuesday’s class on Equality. Any and all concepts from readings 1-10 may appear on the quiz. Quizzes from previous semesters 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 it must be charged so that 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.

Sun Mar 12: more frequently-asked questions

  • If a function spec allows throwing an error, are we allowed to mutate the object? Check here and here.

  • If I use an observer to test a mutator, is it an issue that we can’t tell which method is wrong if a test fails? Answer

Wed Mar 8: more frequently-asked questions

Fri Mar 3: Problem Set 1 alpha reports and Problem Set 2 released

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

You will see staff comments about some specific parts of your problem set, as well as code review comments from humans or marked #important by Checkstyle. As you revise for the beta, you should not just address those specific comments in those specific places, but generalize the feedback to improve the rest of your code and documentation as well. The ps1 beta deadline is Monday March 20.

Problem Set 2 has also been released; you can find it on the course website. The ps2 alpha deadline is Monday March 13.

For help, please ask questions on Piazza and visit lab or office hours.

Tue Feb 28: Problem Set 1 code review open, due Friday noon

Problem Set 1 code reviewing opens after class today. Go to Caesar and click the “start code reviewing” button to find your reviewing assignments. You’ll have 3 files to review.

  • If you took slack day(s) on the alpha deadline, then you won’t be able to start code reviewing yet. It will open for you the morning after your deadline.
  • If you meant to take slack but forgot to change your deadline in advance, do not start code reviewing and ask for help right away.

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 by noon on Friday.

Mon Feb 27: more frequently-asked questions

Here are some frequently-asked questions from the last few days.

  • Can we define interfaces? Yes, but make sure you follow the helper guidelines.

  • For computeProgress(), how do I test that a function throws errors/exceptions? Answer BUT before creating the test check here

Sun Feb 26: more frequently-asked questions

Here are some frequently-asked questions from the last few days.

Fri Feb 24: Problem Set 0 reflection and grades

First, 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.

After you have filled out the reflection, your overall ps0 grade and grade report will become visible on Omnivore, with new information at the end of the page about your beta autograde and beta manual grade.

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

Fri Feb 24: more frequently-asked questions

Here are some frequently-asked questions from the last few days.

  • npm test -- -f ... isn’t working to run a single test.
    Answer

  • npm start gives the error ReferenceError: describe is not defined.
    Answer

  • I can’t call computeProgress() from its tests.
    Answer

Thu Feb 23: some frequently-asked questions

Here are some frequently-asked questions from the last few days.

Tue Feb 21: some frequently-asked questions

Here are some frequently-asked questions from the last few days.

  • How do I address comments I don’t agree with or reviewers with opposing perspectives? Check the guidelines for different options.

  • Am I required to have regression tests for failed test cases? Answer.

  • Is exporting constants/functions from turtle.ts allowed? No. You may copy any constants or functions you find useful into turtlesoup.ts as you can use any code provided by the 6.102 staff.

  • ESLint complains about using magic numbers in arrays, but isn’t storing numbers in data structures more DRY? Unfortunately, ESLint only does simple detection for magic numbers. You may store numbers in well-organized and well-named data structures; human readers (not just ESLint) will look at what you wrote and decide whether it is magic.

Fri Feb 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 Tuesday at 10pm. You can take slack on this deadline using Caesar (limited to 1 day extension this time, because of the long weekend).

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.

Thu Feb 16: PS1 released

Problem Set 1 is now available. The ps1 alpha deadline is Monday, February 27.

Tue Feb 14: some frequently-asked questions

Here are some frequently-asked questions from the last few days.

Testing
  • Does ps0 require writing test cases for existing and/or helper functions?
    Answer
  • Will there be hidden test cases?
    Yes
Specs
  • What are the restrictions on degree for Turtle.turn()?
    See the spec (also found in turtle.ts).

  • What does it mean to DRY drawSquare and drawApproximateCircle?
    Read the specs carefully – can you legally call drawApproximateCircle from drawSquare? See reading 3 for other ideas.

  • What is the initial direction of a new Turtle?
    See the spec.

Troubleshooting
  • git push produces error: failed to push some refs to ....
    Harmless but update Git.

  • git push produces fatal: unable to access ... SSL certificate problem: certificate has expired.
    Update Git.

  • npm test or npm start produces sh: ... command not found.
    Answer

Tue Feb 14: Problem Set 0 code review open, due Friday noon

Problem Set 0 code reviewing opens after class today. Go to Caesar and click the “start code reviewing” button to find your reviewing assignments.

  • If you took slack day(s) on the alpha deadline, then you won’t be able to start code reviewing yet. It will open for you the morning after your deadline.
  • If you meant to take slack but forgot to change your deadline in advance, do not start code reviewing and ask for help right away.

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 by noon on Friday.

Tue Feb 7: Readings 1-2 and Problem Set 0

Welcome to 6.102!

Instead of lectures, 6.102 has readings with interactive exercises. The reading exercises are generally due 10pm the evening before class, so reading 1 and reading 2 are due by 10pm Wednesday night. Your progress on reading exercises can be seen on Omnivore. In class on Thursday we will take a nanoquiz on reading 2.

Classwork grades (which combine the reading exercises, nanoquiz, clicker questions, constellation programming, and other work you do before and during a particular class) are usually posted in the evening after class. Today’s class is an exception to this; because reading 1 isn’t due until tomorrow night, the classwork grade for class 1 will be posted by Thursday evening instead. The course website has more information about classwork grading and makeups.

Problem Set 0 is now available. PS0 gets you started learning TypeScript, Visual Studio Code, and Git. PS0 is due Monday, February 13, at 10pm. The course website has more information about problem set deadlines and extensions.

For almost all questions, Piazza is the place to ask. If you need help, you can visit lab hours at the times and locations shown on the calendar. Once again, welcome to 6.102!

Mon Jan 30: welcome

You’re getting this message because you preregistered for 6.1020 [formerly called 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.

  2. 6.101 [formerly called 009] is a required prerequisite for this course. If you haven’t taken 6.009, you won’t be able to take 6.102.

  3. You will need to bring a laptop to every 6.102 class meeting, including the first meeting on Tue Feb 7.

  4. Before the first class on Tue Feb 7, please install the software you will need for 6.102 on your laptop, by following the instructions in Getting Started.

See you next week!