Final Project (100 pts)

Choose a problem to solve using Python programs. You will work in teams of 2-3 students. Your group will present the problem, your coded solution, and your results.

This project will be completed in stages.

  1. [15] Project proposal: Each team will submit to Moodle the following
    • the title of your project,
    • the name of all team members, and
    • 3 paragraph description of what your final project will look like once complete. Be as detailed and specific as possible in your description. It should provide a clear understanding of your project idea. As best as you can, describe what approach you would take (i.e., use a dictionary to store an inventory of items, use turtle library to draw a picture, use while loop to read input from the user, etc.). It’s okay if there are some aspects for which you don’t know what approach you would take, as this will be part of the exploration step of your project implementation. However, in this case, be very clear in the description exactly which part(s) you expect the most challenges with and what resources you will use to overcome them (e.g., a link to documentation, ideas for potential modules you could use, etc.). The more details you provide, the better I can tailor my feedback to help you reach your project goals.
  2. [15] Intermediate results: share with the class the current state of your project. It should run and produce some output, but it doesn’t need to be complete.

  3. [30] Source code: Submit your software in Moodle. Keep it well organized, use functions, and document your code using comments. Part of the code must be written by you - not just code from the textbook or from another source. If you use a resource you must cite it! Otherwise, it is plagiarism and will result in an F. Your source code should have:
    • Comments with names of all team members at the top of the file
    • One paragraph (5-6 sentences) per team member describing their main contribution in comments
    • Comments at the top of each function
    • Several functions (at least 3, but you will likely have more)
    • Good use of variables and choice of variable names
    • Conditional statements (if, for, while)
  4. [30] Presentation: powerpoint slides presented in class (~10 minutes per team) and submitted to Moodle. Slides should be clear, uncluttered, readable, informative, and contain slide numbers. Your presentation will include:
    • 1 slide: title, team names, class with semester/year
    • 1-2 slides: present the problem / goal of your project
    • 1-2 slides: present the solution (e.g., bullet point of ideas, diagram, function names and descriptions). Be clear what each team member’s main contribution is.
    • 1-2 slides: results (e.g., pictures, graphs, numbers)
    • Conclude with a live demo of your software
  5. [10] Peer grade: feedback from your peers on your project/presentation and the quality of feedback that you provide your peers.

Grading

You will be graded on the above criteria as well as:

Ideas

You are free to solve any problem, but here are some possible ideas with corresponding details on where you can look to get started. I encourage exploration of other python modules and of chapters that we haven’t covered.

Additional References

Projects from previous years

Here is a sample of projects from 2020.

Previous years also included:

Games - battleship, blockout, hangman, space invaders

Encryption with images (image contains a secret message embedded within the pixel differences)

Image processing

Landscapes

Images created by recursive functions

Solar system

Charts / visualizations