Final Project
The final project is really meant to be an opportunity for you to go as deep as you want on a Python project. Create anything that you want to build! You will be allowed to work in groups up to 3.
Requirements
Given the open-ended nature of the project, these guidelines are not solid, but more for you to get a grasp of what effort we’re looking for. As a rule of thumb, we’re looking for something of at least the scale of the homeworks per group member. That is, if there are 3 people in a group, the project should be around the effort of 3 homeworks.
Also, if you pick something ambitious, it’s totally fine to have something that’s is just an MVP!
- At least one class definition
- A couple of first-party packages (
collections
,time
,json
, etc) - A couple of third-party packages (
django
,pandas
,keras
, etc) - Well documented code, i.e. in-line comments
- A
README.md
with installation instructions and explanation of code
Milestones
Project Proposal
Due Date: Friday 4/11 11:59PM
The first deadline will be the project proposal. Write no longer than a page about your idea and how you will attempt to accomplish it. Identify what you think will be the hardest portion of the project. What packages do you think you will need to use? What’s the end goal of the project?
Keep in mind that the earlier you submit your proposal the earlier I can give feedback!
Project Presentation
Due Date: In Class 4/29
Create a short presentation about your project, aim for no longer than 7-8 minutes. Your presentation should cover:
- What your idea is/motivation
- A roadmap of your implementation plan
- Any challenges you ran into
- A demo if applicable
Code Submission
Due Date: Wednesday 4/30 11:59PM
The final code will be due on the last day of classes. Alongside your code, please include a README.md
that at least covers the following:
- A description of your project
- An explanation of code structure
- Instructions to install and run the project
Zip your code and submit it on Canvas.
Potential Project Ideas
- Image Classification: this will likely require adapting an existing neural network or replicating some research papers (e.g. AlexNet). You may want to use Google CoLab, which provides GPUs for free.
- Data science: find a dataset that interests you and answer some insightful questions about the dataset and train a model for it. Check out Kaggle for free datasets.
- Web Development: create a website for an idea you have. Hosting it is not required.
- Web Scraping: write a web scraper to index and crawl the web. You may want to use something like BeautifulSoup to read the webpages.
- Game Development: check out Pyxel, a pixel game engine for Python.