So far, you have performed data analysis on a variety of data sources, to solve realistic problems from science, engineering, and business. Now it's your turn to choose and analyze a problem. This is good practice for how you will use Python in the remainder of your career.
There are two parts to this assignment, due separately. Part I is due on Thursday, August 9. Part II is due on Thursday, August 16.
For this assignment, you are permitted to work with a partner; the two of you will submit just one solution. You are not required to work with a partner, and groups may not be larger than two people. Only one of you will submit the assignment — do not submit duplicates. If you work with a partner, we will expect your project to be twice as substantial as a project done individually.
Propose a data analysis project to the course staff. This can be almost anything that you choose. You might select a project from your field of study, from your extracurricular interests, from open government or public policy, or from elsewhere. We are just looking for you to show that you have absorbed the lessons of CSE 190p. Impress us!
Think of your proposal as a pitch to a venture capitalist, a foundation, or a scientific review panel. Your data analysis proposal must clearly state the problem, in the form of one or more questions that you will seek to answer. It must explain your algorithm or other analysis, and you must have already located a pre-existing dataset that your code will analyze.
More specifically, you should turn in a draft report, in the format required in Part II of this assignment. Your report should include all of the parts required in the final report, except for the results in part 1, part 5 (results), and part 6 (reproducing results).
Your proposal will probably be about 2 pages long. Submit your proposal in PDF (not in plain text nor in proprietary binary formats like Microsoft Word or Rich Text Format).
The course staff will review your proposal and will either approve it or will require you to make changes. They will base their assessment on:
Hints about datasets: A good approach is to start with a problem of interest and then look for data. Alternately, you can start with a dataset. Here are some possible data sources, but many more exist:
Implement your analysis, process your data, and interpret the results. Then, submit a report that describes the results and conclusions of your analysis. It might include graphs, tables of numbers, or just a few key computations. Remember that plots and other visual representations of data are very useful in conveying your conclusions.
Submit your report in PDF (not in plain text nor in proprietary binary formats like Microsoft Word or Rich Text Format). Your report will probably be about 4-6 pages of text long, but there are no fixed upper or lower bounds on its size. You should write at an appropriate length: neither so briefly that you omit information, nor so verbosely that you pad your report or bury the important information under irrelevant details.
Your report should contain at least the following parts. You are permitted to write additional sections as well.
Also, submit your commented source code. Your source code should be clear enough for another programmer, such as the course staff, to understand and modify if needed. Your source code documentation may assume that the programmer has already read your report.
Submit your files via Catalyst CollectIt (a.k.a. Dropbox).
You will present your work to the rest of the class on Friday, August 17.
It is recommended that you use slides (which you can prepare using PowerPoint, KeyNote, Impress, etc.). Your presentation will be strictly limited to 5 minutes. It is strongly recommended that you practice your presentation ahead of time. You will only have time to present the most important results from your project. Be sure to clearly state the research questions and your answers to them.