CS 111 Final Project Instructions

Reading

The material on recursion, loops, and dictionaries should be especially relevant, but you may want to review any part of the class material that is relevant to your chosen project design.

About

This final project works a bit differently than most projects. In addition to turning in code that will be automatically graded, you will be presenting on your code and project design in class. Also, the final project is an individual project: you are NOT allowed to work with a partner.

For your final project, you must produce a program that brings together several core concepts from the course: conditionals, loops and/or recursion, and file input/output, at a minimum. You will present your results and code in class, submit your code on the last day of classes, and submit revisions by the end of finals period.

Project Timeline

Project Checkpoint (10 points)

You must submit a preliminary version of your project in Potluck in the finalProjectCheckpoint section on 4/27 with core features 1-3 (from the list in the next section) and docstrings for all function definitions. See the checkpoint instructions for a detailed rubric. This means you must have the basics of your code set up, but you do not have to actually include the main recursion or loop code yet. For example, if your project plan is to load and analyze some data using the CSV module, for the checkpoint you might load the data and just print the number of rows in the file, without doing the data analysis yet. Or if your project is a turtle drawing project where you plan to draw a complex pattern with colors and sizes determined by file input, for the checkpoint you might read the input file to determine a color and just draw a simple test shape. Your code for this checkpoint will have to deal with empty input files as specified above. You will get the usual automatic feedback from Potluck.

Project Requirements (40 points)

You can design your own project to showcase the skills you have learned. 40% of your final project grade will be based on meeting the following requirements (by the final deadline):

To earn these points, submit your final project on Potluck under the finalProject section by 5/3, and if necessary, complete revisions by 4 p.m. on 5/11. The final submission instructions have a detailed rubric.

Project Presentation (40 points)

You will present your final project in lecture on the last day of class, 5/2. This is worth 40% of your final project grade. Your presentation must:

Your slides must be submitted by noon on 5/1 by uploading them to the final presentations Google Drive folder for your lecture section:

  1. Lec 1: Anderson 8:30am,
  2. Lec 2: Anderson 9:55am,
  3. Lec 3: Lee 12:45pm,
  4. Lec 4: Turbak 2:10pm

as a PDF or Google Slides. For efficiency, everyone will present on the classroom computer.

You may record a video of your presentation instead of presenting live, and we encourage you to do this if it seems preferable, since this will allow more time per person in class. If time permits, we may play some submitted videos for the class so that others can see your work. If you plan to submit a video, you must fill out this form by 4/28 so that we can plan out the in-class presentations.

To submit your video, upload it (or a text file with a link to it if you want to put it on a hosting service like YouTube) to the shared drive corresponding to your lecture:

Your video must be submitted by 12:00 p.m. noon on Monday, May 1st, which is the same deadline for the presentation slides.

You will receive a feedback on your presentation by 5/8. We will indicate if there are major issues with your project then, so that you can submit a revision for your code (via Potluck) to address them if you need to.

Project Ambition (10 points)

The remaining 10% of your final project will be based on our assessment of the ambition and depth of your project. We expect you to put in 6-10 hours of work on your project. We will judge this based on your project presentation, in tandem with reviewing your final code submission.

How to Submit:

The Checkpoint

The Presentation

The Final Code

Dataset Sources

Here are some sites with datasets that you might be interested in using:

Remember that your program will need to work even with an empty data file, and that the first data file it looks for must be named inputs.txt, data.txt, ordata.json`. If you want to analyze a multi-file dataset, just make sure your program doesn't crash (and still uses one of the required data reading functions, or a turtle or audio function) even if the files aren't present.

Examples

The final project code instructions contain examples of what a completed final project might look like, but remember that there is no single correct answer here.