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.
Presentations should be around 3 minutes in length (no longer than 5 minutes)
Presentations should start with an introduction of the team members, followed by a demo of the project (ideally with narration)
Your presentation should make it clear what your starting point was (i.e., did you work from an existing code base or implement everything from scratch), and what your team's contribution was (i.e., what was added).
As a backup option to play in case something breaks, also make a short video (around 3 minutes).
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 read the following page, which summarizes the general classes of machine learning problems:
https://developers.google.com/machine-learning/intro-to-ml/what-is-ml
We also 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
Kaggle has a lot of public datasets you might want to use: https://www.kaggle.com/datasets
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 that uses APIs - 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:
Basics (rooted in Python and Flask, i.e. the stuff you learned in lab8)
Authentication with OAuth (coming soon)
Getting started with Postgres SQL databases (coming soon)
Advanced Topics (including JavaScript)
While we encourage folks to stick to Python and Flask, some app ideas may require some JavaScript code. If you need to learn JavaScript, here are some tutorial materials:
https://blog.appseed.us/10-javascript-concepts-for-react-beginners/ (A good general intro to JavaScript with an eye towards what you need for working with React.)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript (a good general intro to JavaScript for web development)
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 main.py file that runs the project