CSE 163, Spring 2019: Final Project: Part 2

Overview

Implement your analysis, process your data, and interpret the results. Then, complete your report to include the results and conclusions of your analysis. Plots and other visual representations of data are very useful in conveying your conclusions.

Report

Submit your report in PDF 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. Visualizations can definitely make your report longer - which is fine!

Please annotate any visualizations with the method used to produce them (e.g. did your python program produce them or did you create them using some other method). Please include plots in your report, not as separate files! At this time you may also go back and improve any of the previous sections you have written.

Your report should contain at least the following parts. You are permitted to write additional sections as well.

  1. Title and author(s).
  2. Summary of research questions AND RESULTS. Repeat your research questions in a numbered list.
    After each research question, clearly state the answer you determined. Don't give details or justifications yet — just the answer.
  3. Motivation and background.
  4. Dataset.
  5. Methodology (algorithm or analysis).
  6. Results. Present and discuss your research results. Treat each of your research questions separately. Focus in particular on the results that are most interesting, surprising, or important. Discuss the consequences or implications. Interpret the results: if the answers are unexpected, then see whether you can find an explanation for them, such as an external factor that your analysis did not account for. Include some visualization of your results (a graph, plot, bar chart, etc.). These plots should be created programmaticaly in the code you submit. If you have to create plots by hand using a program like Excel, you must provide a good reason why it was not possible to create the plot you wanted using Python.
  7. Reproducing your results. Give clear and explicit instructions for obtaining the data and for running the analysis — this is usually a set of commands that can be typed to the command line (not in canopy). We should be able to follow these directions to run your code ourselves. Also explain how to interpret the results or to find the interesting parts in the output.
    These instructions must make it possible for the course staff to re-create, without any additional data entry or interaction, both (a) every number or figure that appears in your report and (b) any other results that support your argument but that you did not include in your report.
  8. Work Plan Evaluation. Include your work plan and evaluate it. How accurate were your work plan your estimates from Part I? Why were your estimates good or bad?
  9. Testing. Describe how you tested your code. Did you use asserts? Smaller data files? Be sure to submit your tests and any testing files when you submit your code. Why should we trust your results?
  10. Live Presentation or Video? Tell us whether you are planning to give A) a ~2 minute presentation about your project on Tuesday June 11, 2019 2:30-4:20pm OR B) submit a 4 minute video of your presentation. For either option, all your materials are due by Tuesday June 11, 2019 at 12pm (Noon).
  11. Collaboration. State which students or other people (besides the course staff and your project partner, if any) helped you with the assignment, or that no one did.

Code

Your source code should be well-written and well-commented. It should be clear enough for another programmer, such as the course staff, to understand and modify if needed. Your source code documentation should assume that the programmer has already read your report — you do not need to repeat any of those details, but may wish to use concepts that it introduced. A typical final project might contain around 200 lines of well-structured code without duplicated functionality, though longer or shorter is possible.

It is acceptable for you to scale back, or to expand, the scope of your project if necessary. It's better to do a great job on a subset of your original proposal, than to do a bad job on a larger project. If you have to scale back, then explain why the task was more difficult than you estimated when you wrote your proposal. This will help you to make a better estimate for your next project. It will also convince the course staff that you have done an acceptable amount of work for CSE 163.

Submission

For this part of the project, you will submit:

  • Your report as a PDF. Do not turn in a Word document or plain text
  • Your code as one or more Python files and any other supporting files you need. You do not need to submit your dataset for this part, but there should be clear instructions in your report for the course staff to download the data so they can run your program.

One group member should submit your report on Gradescope and should use Group Members functionality to add the appropriate partner if you have one. If you want to learn about how to add Group Members on Gradescope, please see instructions here. Group members that are not listed in Gradescope by the late-cutoff will be marked as not submitted.

Reminder: You can only submit Part 2 one day late regardless of the number of late days you may have remaining.