We plan about 7 MPs, with a typical one taking two weeks. All MPs will be done in Python. Each MP may be done individually or in a group of 2-3 people. Feel free to use Piazza to help form groups. Needless to say, working in a group will not necessarily make your lifeeasier, as the overhead of group coordination can easily outweigh the benefits.
All members of the group must be enrolled for the same number of semester hours, e.g. a 4sh student must work only with other 4sh students. Auditors may not work with students taking the course for credit. Groups may change from one MP to the next.
For each MP, you will submit Python code, a pdf written report and (if working in a group) a brief statement about who did which parts of the work. We will grade only one submission from each group. Normally everyone in the group will receive the same grade, but we reserve the right to award different grades if it becomes clear that the distribution of work was very unequal.
The focus of this course is on problem solving, not programming. Therefore, grading will be based primarily on the quality of your solutions and your analysis, as documented in your written report. If you want to get credit for some code feature, make sure it's in the report. Your report and code should be properly formatted and easy to read. Python code will be run and/or inspected to the extent that we have time and/or feel the need. If we cannot easily get your code to run, or cannot interpret its output, we may ask you to demo it for us.
Teams are expected to keep copies of their work in a shared repository such as https://github-dev.cs.illinois.edu and to make preliminary submissions well ahead of the deadline. This should allow you to recover from most small glitches, even close to the deadline. There will be a short grace period (i.e. for people who make clock-reading mistakes). After that, submissions will lose a letter grade (10%) for each day they are late. Work will not be accepted if it is more than four days late.
Regrade requests should be submitted to cs440-fa18-regrades@lists.cs.illinois.edu . Put "MP" and the MP's number in the subject line of your email (e.g. "MP 3") so that we can easily see which staff member should handle it. If the grading comments on your MP say that we could not get your code to run, use the regrades mailing list to contact the TAs and set up a plan for you to demo your code. Do NOT attach revised code to your initial email.
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. 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.
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.
MPs will be submitted via moodle (see link in the top menu). Some details depends on whether you are submitting individually or as a group. On the main moodle page, there is a section for each MP. In that, you should see a "declaring a group" activity and probably just one "submission" activity. (If both submission activities are visible, then one will be marked as inaccessible to you.)
Please upload all python code files individually to moodle unless the MP instructions specify that you should upload a tar or zip archive.
You should be able to submit new versions of your files up until the MP deadline.
Notice the above polices about late submissions. If you have a compelling reason for needing to submit late, you must contact the instructor. In particular, moodle will not let you submit more than four days late unless we give you an explicit extension.
Individual If you are submitting individually, ignore the "declaring a group" activity. You should see an "individual submission" activity. Use that to upload the files specified in the MP description, which would typically include a pdf report and (depending on the MP) one or more python code files.
Group If you are submitting as a group, first use the "declaring a group" activity to set up your group. Make sure that all group members have added themselves to the same group. The righthand column "group members" has a button labelled "show." Click on this to make sure the names in your group are what you expect.
When you've finished setting up your group, you should see a "group submission" activity for this MP on the top-level moodle page. Use that to upload the files specified in the MP description, which would typically include a pdf report, a brief statement of how each group member contributed to the project, and (depending on the MP) one or more python code files. Any group member can do the upload. The resulting submission, and eventually your grade and feedback comments, should be visible to all of you.
Links to the MPs