Electronic tools
- Gradescope: for submitting/grading exams, MPs, and literature review papers.
You need to know the following things about the autograder:
- Each assignment specifies which files you may modify. Modifications to any other file (or creating any other file) will cause the autograder to crash.
- You may include modules from the python standard library or pygame. Including any other module (e.g., numpy) will cause the autograder to crash.
- The autograder uses python's unittest facility. Unittest runs each test as a separate process. So if test B depends on a global variable that was set by test A, then it will fail – unittest closes down the process at the end of test A, restarts it, and then runs test test B. We did not warn you about this before the MP1 deadline, so if your MP1 submission crashes for this reason, you may ask for a manual re-grade. For future MPs, this is not a valid excuse: your code needs to assume that each test knows nothing about the other tests.
Overview
There will be 7 MPs, with 1-2 weeks to finish each one. A link will appear here as each MP is ready.
- MP 1
- MP 2
- MP 3
- MP 4 --- extra grace period: solutions will be accepted without penalty until April 1 at 11:59pm.
- MP 5
- MP 6
- MP 7
Policies
All MPs will be individual assignments.
It is difficult (nearing impossible) for us to grant individual extensions of the MP deadline. Therefore, instead of granting individual extensions, we have adopted the following policy:
- All MP deadlines have a 48-hour grace period. You may submit up to 48 hours late, with no penalty.
- Nothing that happens during the grace period will be considered a valid excuse.
- Disasters prior to the original deadline are still potential cause for an extension if (1) the disaster is unforeseen, (2) you have documentation, (3) the disaster prevents you from working more than twelve hours during the five days prior to the original deadline.
You may submit as many times as you like. It is wise, and recommended, that you submit every time you get part of the MP working, so that, in case of disaster, at least you'll get partial credit.
The worst MP grade will be dropped. Your average MP score will be the average of your six highest MP scores.
Code will be largely (probably entirely) graded automatically. We will provide basic test examples. The submission system will run basic tests each time you submit, to help you confirm that you've submitted the right files and there aren't any misunderstandings about the calling conventions. However, it is your responsibility to do further testing to make sure your code works correctly. We will test it on other examples, with other parameter settings, and/or with different/modified datasets.
Programming language
The MPs will be written in Python. If you've never used Python before, you should start getting used to it now, rather than waiting for the release of the first MP. A good place to start is the Python Tutorial (also available in hardcopy form). You should install version 3.6 or 3.7 on your computer, as well as the pygame graphics package.
Most of you will find it more convenient to develop code on your own machine. However, you can also use linux machines in the EWS labs. Notice that the software provided for certain MPs will require graphics, in which case it is unlikely to run over a remote terminal connection.
Your code may import extra modules, but only ones that are part of the standard python library. Unless otherwise specified in the instructions for a specific MP, the only external library available during our grading process will be pygame.
Submission and regrade procedures
MP code will be submitted to gradescope. See individual MP instructions for details. Regrade requests (if applicable) should be submitted on piazza, in the mpX-regrade folder, where X is the number of your MP.