This is an independent* assignment with one exception (hence the asterisk). Outside of class time, you may discuss this assignment with course staff only. In class, you may discuss your assignment with anyone (the instructor, the TAs, or your classmates).
(Independent*) Pose a computational question based on numerical data, textual data, or a combination of both. Refer to Projects 1 and 2 for examples of data sources. For your project you must present a testable hypothesis, carry out the required analyses, report your findings in a clear and understandable way, and discuss your results. To present your results, you may use any format(s) you want (a table, a graph, a Google Earth screenshot, etc.). You must make relevant files available on the website (e.g. the KML file for Google Earth) unless you are not allowed to make your data public. You are responsible for making sure you are using and uploading data properly, and respecting any copyright or license terms.
Project Proposal (Due Tuesday, November 24 at 11:59pm)
Write a concise (one to two pages) description of the project you would like to execute. You will be graded based on the project rubric, so double-check that before handing in your proposal. In general, your proposal should include the following parts:
- Claim: the specific hypothesis you plan to test (which is a statement, not a question) and some background context.
- Data: a short description of your data source.
- Programming Elements: number the steps of your analysis and list what programs and tools you will use for each (e.g. Spreadsheets/Excel or Python). You should also describe your expected milestones. You have about three weeks to complete this project. By the first week, you will have this proposal written and some start on the programming/data formatting. What parts do you expect to complete in week 2? What parts do you expect to complete in week 3?
- Potential Roadblocks: a list of potential obstacles.
- Interactivity: a description of how you will make your project interactive.
- Visual Presentation: a description of how you will visually present your results for your website (e.g., table, chart, screenshot, etc.).
It is a good idea for you to include skeleton code in your proposal, but it is not required. Use what you've learned from the past two projects to organize your code early on. This will set you up for success as you finish your code and analysis.
- Skeleton code for Google Spreadsheets/Excel is a loosely-sketched-out workbook with descriptive spreadsheet names, column headings, and one or two text boxes on each sheet concisely describing the data that will appear in that sheet and how (in the abstract) it will be computed from data in other sheets. The leftmost sheet should contain a sketch of the public "take-homes" of your analysis or interactive elements, as well as a description of the other sheets. You should order the sheets so that the data in a given sheet will generally be computed only from sheets to its right. The rightmost sheets will contain raw data (though they don't have to be filled in in your skeleton version).
- Skeleton code for Python should follow the style guidelines described for Project 2, both in the original handout and in the feedback email that I sent. This means that every function should contain a documentation string describing its behavior, inputs, and outputs. Functions should be ordered in the file from highest-level at the top to lowest-level at the bottom — you should order them so that each function will generally only call functions that are positioned below it. The bodies of most functions in your skeleton code, especially the higher-level ones, should include calls to lower-level functions to demonstrate how the different functions use each other, as well as explanatory comments to describe things to be implemented or steps you will need to figure out.
Hand in the proposal (named
YourName_FinalProject_Proposal.txt) and optional skeleton code (similarly named
.xlsx for Excel,
.py for Python, etc.) to
email@example.com with the subject "Final Project Proposal".
Project (Due Wednesday, December 9 at 11:59pm)
Carry out the project you proposed. It's OK if the project changes — that's why it was a proposal.
Refer to previous project descriptions and the project rubric for details about grading. Keep in mind that:
- You must have a small test dataset (or test spreadsheet) or test function showing that your calculations are correct.
- You must comment all code (both in Spreadsheets/Excel and Python).
- For spreadsheets, the first sheet must describe all other sheets. Input cells should be highlighted and instructions for use should be clear.
- For Python files, comments at the top of the program should explain what the program does. Comments throughout the code should make your program easy to follow.
You will also create a website that presents your analysis and results. The site may be accessible only by people with a Brown email address or public. The site should contain the following things:
- Project description and hypothesis.
- Concise explanation of your methods.
- Your results, presented in a clear and informative manner.
- Discussion of the trends you see in your analysis. You should point out expected and unexpected results.
- Reflection of the project. What went well? What didn't?
- Python/Spreadsheet/Data files available for download.
Refer to the Final Project Rubric for more details on the code and website requirements.
Create a zip file named
FirstLast_FinalProject.zip. It should contain a folder that includes the following:
- All files you used in your project, including Python files, Spreadsheet/Excel files, data files, and test files.
- (Optional) A text document named
supplement.txt with additional information (tests,analysis,etc) that did not make it on the website.
- A text file named
README that contains (1) the URL of your web page and (2) a list of all files contained in the zip folder with a short description of what they are.
Meetings With the Course Staff (no handin)
You must meet with the course staff before you hand in your project. You can go to TA hours or meet during class time. These meetings are intended to help you with your project, and can be brief if you have no unforseen obstacles.
- To get full credit, you must print out a copy of the rubric and grade yourself, then discuss this with the TA or instructor. Where do you expect to lose points? Have you met all the criteria?
In-Class "Flash Talk" During the Last Class
You must present a one to two minute overview of your project, including your claim, your approach, your data, your results, and the limitations of your analysis. This is a super short talk, and you do not need to make slides. That said, you should practice beforehand. Sometimes giving a short talk is harder than giving a long one, and the time limit will be enforced so we can get to everyone. You will be able to use the projector to display any materials on your project webpage.