Final Project

Various Deadlines

Note

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).

Project Description

(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).

Project Proposal (Due Tuesday, April 23 at 2:25pm)

Project Description

Write a concise (two-page) description of the project you would like to execute. This description should include the following parts:

  1. Background: put your project idea in context.
  2. Claim: the specific hypothesis you plan to test (which is a statement, not a question).
  3. Data: a short description of your data source.
  4. Programming Elements: a few sentences describing the steps of your analysis and what programs you will use for each (e.g. Excel or Python).
  5. Milestones: You have 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?
  6. Potential Roadblocks: a list of potential obstacles.
  7. Project Modifications: address the following two scenarios:
    • Backup Plan: suppose your project is much harder than you anticipate. What parts of the project would you change to still get somewhat interesting results?
    • Increasing Degree of Difficulty: suppose your project is much easier than you anticipate. What ways would you extend the project?
  8. Your Goal: In an ideal world, what will the outcome of this project be? A set of plots displaying a trend? An interactive program? A KML file that users will be able to navigate?

Skeleton Code

Write skeleton code for your project, regardless of the tools you plan to use to build it.

Handin

Hand in the proposal (named YourName_FinalProject_Proposal.txt) and skeleton code (similarly named YourName_FinalProject_Proposal, with .xlsx for Excel, .py for Python, etc.) to cs0931handin@cs.brown.edu.

Project (Due Tuesday, May 7 at 2:25pm)

Carry out the project you proposed. It's OK if the project changes — that's why it was a proposal.

Code

Refer to previous project descriptions and rubrics for details about Excel and Python commenting / error handling / etc.

  1. You must have a small test dataset (or test Excel sheet) showing that your calculations are correct.
  2. You must comment all code (both in Excel and Python).
  3. For Excel files, the first sheet must describe all other sheets. Input cells should be highlighted and instructions for use should be clear.
  4. 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.

Website

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:

  1. Project description and hypothesis.
  2. Concise explanation of your methods.
  3. Your results, presented in a clear and informative manner.
  4. Discussion of the trends you see in your analysis. You should point out expected and unexpected results.
  5. Reflection of the project. What went well? What didn't?
  6. Python/Excel/Data files available for download.

Refer to the Final Project Rubric for more details on the code and website requirements.

Handin

Create a zip file named YourName_FinalProject.zip. It should contain a folder that includes the following:

  1. All files you used in your project, including Python files, Excel files, data files, and test files.
  2. (Optional) A text document named supplement.txt with additional information (tests,analysis,etc) that did not make it on the website.
  3. 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.

Hand in the zip file to cs0931handin@cs.brown.edu.

Meetings With the Course Staff (no handin)

You must meet with the course staff twice 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.

  1. During week 2 (after you hand in your proposal), you should meet with the course staff at least once to discuss your project.
  2. During week 3, you should meet with the course staff at least once to discuss your project.

Interactive Grading (Tuesday, May 7 thru Exam Period)

You will meet with Jadrian and discuss your project. Students will sign up for a time starting on May 7th and ending through the assigned Exam Period (Friday, May 10th from 9am to noon). This meeting has multiple goals:

  1. Ensure that the course staff has access to all the submitted materials (i.e. you remembered to add all the files in the final handin).
  2. Determine how well you understand your program.
  3. Provide feedback and advice about your analysis and results.