Your final project for this class is to create a program that does something new and interesting, potentially in your own field of study, although that is not a strict requirement.
This is 20% of your final grade.
The size of your project should be roughly equivalent to TWO labs. This means a program which inputs data from one small file and produces a single type of graph output -- is not large enough. You want to look for problems that have enough data which your program must do multiple operations on, perhaps a problem that has multiple avenues for analysis. Related, merging two types of data from two sources into one useful output/analysis is a great idea. You aren't limited to data, though, and the following are suggestions:
Data Analysis: This will probably be the most popular project area. Find an interesting dataset and write a program that helps to analyze what is in the data. You'll want to look for large datasets or datasets that allow for multiple avenues of analysis. Here are just a few websites with open datasets:
Build an "App": Lots of websites have APIs where you can call them from code. Go back to our ChatBot Lab 3 to remind yourself we queried Wikipedia! This type of project would be a friendly user program that queries websites for the user without requiring a web browser. Many websites have APIs, like Wikipedia, Reddit, and Yahoo Finance. You could make a program read and post to Reddit, for instance.
Machine Learning: You could build a machine learning program to make predictions from data. The upcoming Author ID lab introduces one such machine learner. The main characteristic here is that you want to find some labeled data for your topic of interest. For instance, data about home sales have known sales prices. Speeches made on the Senate floor have known political parties by who made the speech. Stocks have closing prices (up or down). Your project would mainly focus on inputting your data, getting it into a learnable format, and run the machine learner on it.
Image Manipulation: We've had a couple labs with images (Lab 2, 4, and event 7). Image manipulation can quickly become complex and interesting. For instance, perhaps you liked Lab 7 with the GPS tracker but didn't get to the drawing stage. You could find a different GPS dataset online, learn to parse it, and do some drawing on the map to analyze it.
Simulation or Games: Your project doesn't have to involve data. Perhaps you are studying a field like Physics and want to simulate some natural phenomena. Or perhaps you want to make a video game! We haven't done any labs in this area, so this topic would be a good exploratory one with sufficient challenge.
Research Project: Some of you have upcoming research ideas. A valid project is doing some preliminary programming for a chunk of the research. Finding a result is not required in this case, but the program must be of sufficient complexity and usefulness to the future research.
Last Year's Topics: Varsity Sport Stats Tracker, MechE material strength simulator, Eye Pupil Detector, Simulate Canons, Zillow Data Analysis, Buying v Renting Real Home Data, Stock Price Prediction, Baking Recipe Suggestions, Book Word Usage.
Due March 26 (5% penalty each day late)
Write one substantial paragraph describing the topic and your general approach to programming a solution for it. You must describe at a minimum:
Due May 4 @ 2359 (10% penalty each day late)
The following is required upon turnin of your project:
Due May 4
Show the class! Our final lab time will be devoted to presentations. You will have ~10 minutes each to show your code (yes you'll show the code), explain any data used, and show the program running. You may use slides and visuals when appropriate. Some project topics might be more code-based, and others data analysis which relies on output analysis.
If I cannot run your program based on your submission, your grade will be penalized.