Projects
All of the concepts you have learned throughout SPIS will culminate in a final project. In this project, you will apply your Computer Science and Engineering skills to a real-world application in one of three project areas. Be sure to follow the Presentation Guidelines below.
Videos should be around 3 minutes in length (no longer than 5 minutes)
Videos should start with an introduction of the team members, followed by a demo of the project (ideally with narration)
Your video should follow the naming convention PARTNER1FIRSTNAME_PARTNER2FIRSTNAME_TITLE.*** (where *** is the file extension)
Try to output your video in either 1080p or 720p resolution, and ideally in the mp4 or mkv file format using the H.264 or x264 video codec
If you're not sure what the above information means, don't worry about it: send us what you have, and we'll figure it out
Please upload your completed video to the following Google Drive folder by Thursday 9/2 at 12:00 PM:
https://drive.google.com/drive/folders/1ZyQaP1X83WDVAPWLrtl4Edp390bA0CZf?usp=sharing
You can upload updated versions of your video until 9:00 PM, but at least an initial version must be uploaded by 12:00 PM
Machine Learning
Lab 7 gave you a taste of machine learning, applied specifically to the domain of text classification and text generation. At the bottom of that lab there are some ideas for extensions you can implement for your project. But if you’re looking for even more ideas, here are some general ideas for directions you might go. See the linked website below for specific guidance on many of these:
Choose a different data set (text or otherwise) and perform some classification (using Naive Bayes or another classifier). We’ve linked some possible data sets here, or many more are linked to from the link below.
Learn how to use the scikit.learn library to apply another classifier to the data from Lab 7, or another data set.
Implement a clustering or classification algorithm from scratch.
For structured guidance, we highly recommend you follow the ideas and instructions on this page, which provides 8 hands-on machine learning projects for beginners: https://elitedatascience.com/machine-learning-projects-for-beginners
The following video may also be informational: https://www.youtube.com/watch?v=nKW8Ndu7Mjw
Video Games
Pygame has a lot of different features you can use to build your games.
If you need some inspiration, you can check out these videos on game ideas: video1, video2
A good way to find more information about particular functionalities, is just putting in the keywords in your search engine and let it lead you through the various resources people have created. One of those is this playlist of pygame videos, but there are many more available.
Another good way to learn is by looking at code others have written. Here are just some examples (youtube videos with links to the code): Snake, Space Invaders, Space Shooter, Golf Game.
Web Applications
Getting Started
First and foremost, checkout lab 8 -- it'll give you an overview of how to build a webapp. Once you've had a taste of building a web app, here are some potential project ideas:
Create a bot for the web - A way to interact with websites and automate tasks.
Webapp - Any website idea that you have (almost endless opportunities) that uses python, html, and css (Minimal Javascript).
Web Scraping - Can extract information from webpages using something like BeautifulSoup library in python.
Any other idea that you can come up with that interacts with the web and uses python! The ideas are endless. Feel free to look around on Google for more ideas.
Then, you can checkout these subjects below:
Repl.it required lots of changes in these pages, and you might run into Repl.it issues that weren't covered. Let a mentor know if you think an error is caused by Repl.it, so we can investigate and include solutions to it in the pages!
General
APIs/OAuth
Databases
Extra Topics:
Learning More about HTML
Some useful example webapps:
Advanced Topics:
There may or may not be time for the advanced topics below during SPIS. If there isn't, these are some topics for further study if you want to take your web app further after SPIS is concluded.
Even More Flask:
Book: Flask Web Development By: Miguel Grinberg Publisher: O’Reilly Media, Inc. Pub. Date: May 8, 2014 Print ISBN-13: 978-1-4493-7262-0
Full text, free from on campus at UCSD: http://proquest.safaribooksonline.com/book/programming/python/9781491947586
From off campus, you can use a VPN to UCSD
Web Scraping (getting data from other sites)
Book: Web Scraping with Python By: Ryan Mitchell Publisher: O’Reilly Media, Inc. Pub. Date: July 14, 2015 Print ISBN-13: 978-1-4919-1029-0
Available to read online, on UCSD campus, for free, here
To read from off campus, you can use a VPN to UCSD
Summaries
Summary of steps to making a web app from scratch (details are in lab 8)
Make a github repo
Make subdirectories for templates and static
Create layout.html, home.html, along with other necessary pages you have (i.e. about.html, contact.html, etc)
Set up static/style.css
Create the hello.py file that runs the project
Run and test locally with python hello.py
Summary of steps to run on Heroku (details are in lab 8)
First, you should have a heroku account (create one at heroku.com)
Add and commit a Procfile and a requirements.txt file to github repo
Procfile consists of one line that tells heroku what to do with the repo: web: gunicorn hello:app --log-file=-
requirements.txt lists needed Python modules and is created with one command: pip freeze > requirements.txt
Inside your project (make sure it's connected to your github repo), run: heroku login
Then run: heroku create
Then do: git push heroku master
The log messages will contain the URL of your app, which is now deployed.
You can manipulate the app at the dashboard of Heroku
If you run into errors, checkout the details in lab 8 (deploying from Repl.it might require a few extra steps on your side). Otherwise, ask a mentor for help.