General information about homework
- Homework will be submitted on Gradescope.
- 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. For this reason, you should make sure that each of your methods or classes implements the function specified in the MP, without depending on any global variables set anywhere else in your code.
Assignments
There will be 6 MPs, with two weeks to finish each one. A link will appear here as each MP is ready.
- MP 1 - search
- MP 2 - naive Bayes
- MP 3 - neural nets
- MP 4 - HMM
- MP 5 - games
- MP 6 - reinforcement learning
Policies
All MPs will be individual assignments.
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. Your last submission is the one counted, unless you tell us otherwise.
Not all tests are visible. We will provide test examples, to help you determine whether or not your code is working correctly. In addition to these tests, the autograder will also run other tests. It is your responsibility to do testing as necessary to make sure your code meets the assigned requirements.
Late penalty: your autograder score will be multiplied by 0.5+0.5*exp(-t/168), where t is your Gradescope "lateness" score, in hours. You can earn up to 50% by submitting your homework at any time before the end of the semester. The main assignment and the extra credit assignment can each have a different late penalty, if they are submitted on different days. If an MP has multiple assignments (as on MP4), then you can submit each assignment on a different date. We will only grade one submission per assignment; we will grade the latest one submitted, unless you choose a different one using the "grade this submission" feature on Gradescope.
Regrade requests: may be submitted using gradescope's regrade request feature.
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.8 or 3.9 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.