prev next
 

Final Projects

At the end of the semester, students prepare and present a final coding project to demonstrate the skills they have learned throughout the semester. This is an open ended project, and you can basically pick whatever you like to work on (with a few exceptions). Some examples of good (and bad) final project ideas are discussed below. The purpose of the project is to write a longer, more intricate piece of code. We are not looking for anything crazy, but we do want to see around 300 lines of code (give or take) working together to accomplish a certain task. Final projects don't need to be astronomical in nature, so anything is fair game.

The second component of final projects is the presentation, which will happen in the last few class sessions. During presentations, you will demonstrate your code in action, and then go through your code and explain how it works. (We don't mean line by line, but rather just the major functions and structures you used to make it work). One of the purposes of forcing you all to present is that if you pursue any sort of research in college (be it in the physical sciences or otherwise), a primary part of your job will be weekly or monthly presentations to the group on your progress, so everyone can be informed on the group's overall progress. We don't want you all to stress out- it's going to be a casual environment, so try not to worry!

Some Examples

There have been lots of cool python final projects in the past. One of the popular choices is to attempt to code a classic board game in python. Think about how you might implement code to play something like Battleship or Scrabble. If you get fancier with your graphical output, we've seen things like Risk as well. If you get REALLY fancy, you can even follow in some students footsteps and code frogger or tetris like games. One nice thing about classic board games and classic video games is that they usually operate on a relatively simple set of rules. Additionally, there are usually limited inputs and outputs. They also have the advantage of being able to build. Maybe once you get the core of the game down, you can add in two player functionality, or more levels, etc.

In addition to games, you can also write code to accomplish interesting tasks, like encrypting and decrypting a message, or solving a system of linear equations. Speaking of mathematical tasks, if you really can't come up with a project idea, you can check out the website for Project Euler. This has a bunch of math problems you can solve, though we ask you choose one of the higher level ones. But to be honest, these are not usually very interesting to present, so I'd suggest using them as a last resort.

There is one main thing we DON'T want you to do. Please don't write a "choose your own adventure" style text adventure. The main reasons we dis-allow this are that a)it is kind of boring and b) it only requires user input and if-statements. The goal is to most or all of the skills you've learned, and use your base knowledge to do some learning on your own!