In the background survey at the start of the semester, there were a lot of reasons for why students are learning to program and what you're hoping to get out of the course. This assignment is a chance to apply the topics discussed in class (or will be discussed or won't be discussed but you want to learn anyway) to a problem that is interesting to you.
Assignment 5 consists of multiple parts which will be due over the course of the rest of the semester. Tentative list of parts:
The grade breakdown for assignment 5 is:
If you do not want to work on the program you proposed, you may work on this alternate proposal, for the game Battleship.
Consider a project that is interesting to you. It may be related to your studies, help you with other course work, be for a group or club you belong to, or anything that interests you. Write a project description. The description must clearly explain what your program will do. Explain why you chose this project. If the program is designed to help solve a problem, please explain the problem in some detail. If it will help with the clarity of your proposal, you may include examples of how your program may work or what it might look like. While there is no page requirement, one to two pages is a good length to strive for. If you choose to include examples, then you may need more than two pages.
In your project description, you should also list what topics you might use and how you could use them. Topics to consider include:
In addition to the topics above, you may want to use additional Python modules or libraries. Some examples are listed below, but you are welcome to consider others:
You are not required to use the topics and libraries you discuss in your proposal (especially since we have not covered them yet). This is a chance to start thinking about how your proposed program might be implemented.
A sample proposal can be found here: Applying Machine Learning to Predict the Stock Market
Submit your proposal to CourseWeb under Assignments, in "Assignment 5 Preliminary Proposal".
The grading rubric can be found here: Rubric (doc).
The proposal is due Friday, June 12 by 11:30 am. As with all assignments, you have unlimited uploads (before the deadline), so you may upload the assignment before the deadline. If you later decide to upload another, you may do so without penalty (as long as it's before the assignment deadline). The last submission uploaded before the deadline will be the one graded. If you would like ungraded feedback on a proposal, you may send an email to the instructor and ask for feedback.
During the week of July 13, meet with the instructor to discuss the progress of your project and any issues you are having or are anticipating. Expect the meetings to last between 15 and 45 minutes, depending on how much you want to talk about. Come prepared for the meeting with:
There will be a survey on CourseWeb to schedule a time. The schedule will be available in early July.
For the final program, you must submit a complete, working program with documentation. The documentation should include how to run the program and any other information that might be useful for the grader to know when running/testing your program (e.g. file formats for input files).
Part of your grade for the program will be how you use the various topics (and libraries if you're using any other modules/libraries). Submit which topics you want to be graded on. The grader will take this into account when grading your program. If you're using a module/library, you will be graded on the use of your library.
Submit your final program to CourseWeb under Assignments, in "Assignment 5 Complete Program".
The grading rubric can be found here: Rubric (doc).
The program is due Monday, July 27 by 11:59 pm. As with all assignments, you have unlimited uploads (before the deadline), so you may upload the assignment before the deadline. If you later decide to upload another, you may do so without penalty (as long as it's before the assignment deadline). The last submission uploaded before the deadline will be the one graded. If you would like ungraded feedback on your program, you may send an email to the instructor and ask for feedback.