We plan 12 MPs. A link will appear here as each MP is ready.
MPs will be due at 11:59pm on Mondays.
All MPs are individual assignments.
See the syllabus for a discussion of what types of collaboration and copying are/aren't allowed.
You are expected to plan your work so that you can submit each MP by its posted deadline. We expect to see preliminary submissions well ahead of the deadline. Each deadline has a 2-day grace period to allow you to manage problems (e.g. illness) that arise before the deadline. The grace period will not be extended if you start work very close to (or after) the deadline and then problems arise during the grace period.
In the case of major problems beyond your control (e.g. extended illness), contact the instructor.
The lowest two MP grades will be dropped for 3-hour students. See syllabus for details. Be aware that some MPs build on previous MPs, notably pairs of adjacent MPs with similar names. This means that it's safe to skip some MPs and unwise to skip others. We will make these dependencies clear as the MPs are posted.
Code will be graded automatically. We will provide basic test examples, which you should be able to run on your personal machine. You are expected to do further testing on your own, including (when appropriate) creating new test examples, to ensure that your code works correctly. The autograder will typically re-run some of the provided test cases and also run additional tests. You will typically be able to see feedback on these additional tests (e.g. performance numbers) but not the internal details of the test. Expect that the additional tests may run your code with different parameter settings and/or on new or modified datasets.
We try to release a stable version of the autograder with the MP instructions. However, we may need to patch bugs that are identified (often by students) between the release date and the due date. If you finish the assignment early, recheck your submission close to the due date to make that it still passes the autograder tests.
If you submit in the obvious way, your grade for the MP is the autograder result for your last submission. If you wish us to use an earlier submission instead, you must select that submission explicitly from the gradescope interface. If you cannot do this, e.g. because you submited broken code right before the end of the grace period, please use the regrade procedure (below).
It is expected that you will use good style when writing your MP code. If your code is excessively hard to read, we will not help you find bugs in it. For example:
You are expected to do routine testing before asking us for help. You should be able to tell us which specific part of your code is running too slowly or producing the wrong output. If you can't think of a more sophisticated way to do this, add print statements. If the output on the provided test cases is too complicated, make a simpler test example (e.g. process only the first 5 input items).
Submit your code on Gradescope before asking a code-related question on piazza, unless you are asking a general question about Python.
Questions on piazza can usually be left world-readable, because your code on Gradescope is visible only to course staff. Often this is convenient because our answer may contain general advice useful to other students. However, if your question gives away significant details of your implementation, please set your piazza post private.
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. You should install version 3.8 on your computer, as well as the pygame graphics package. If you'd like a hardcopy reference for the basics, the hardcopy version 3.6 tutorial is still a good place to start because it covers features that haven't changed much.
The autograder for the MPs will be running Python 3.8. The provided code skeletons may not run under earlier versions of Python. If you are using a more recent release of Python, your code could fail to run on the autograder if you use features that were introduced after 3.8.
Please report any problems on piazza.
Using a virtual environment may make it easier to avoid problems with different versions of python or its libraries. See these instructions for how to set one up.
If you are using Windows Subsystem for Linux, look at these additional instructions.
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 libraries available during our grading process will be numpy, pygame, and tqdm.
We normally expect you to develop code on your own personal machine. As a backup plan (e.g. if your laptop breaks), you can also use linux machines in the EWS labs. For basic remote access, ssh to linux.ews.illinois.edu. Here are some links for more featureful access:
On EWS, follow these instructions to set up python and pygame in your login environment. Notice that the software provided for certain MPs will require graphics, in which case it is unlikely to run over a remote terminal connection.
MP code will be submitted to gradescope. See individual MP instructions for details.
We expect that most issues with the autograder will reported as you are developing and testing your code. However, if there are still issues remaining after the assignment closes, please post a request on the "regrade" folder on piazza.