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 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).
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
One easy way to make a video is login to Zoom at https://ucsd.zoom.us,
Sign in (upper right) with your UCSD email credentials
Create your own zoom room (perhaps inviting your pair partner), with "Host a Meeting" (upper right)
Use the "Record to Computer" feature. You can share your screen to make a demo of your code, and your faces will also be in the video, which is a nice feature.
This should produce a .mp4 file. To find it, go to your Documents folder, look for a Zoom folder, then look for a folder with the date/time.
Please upload your completed video to the following Google Drive folder by Thursday 9/1 at 12:00 PM:
https://drive.google.com/drive/folders/1Fn_1xjvc6RaqjfnllixNX_dx1C8yAf8I?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
Sharing Video on Zoom
When you share video on zoom, be sure that you click these two buttons:
About the project presentations
Thursday (Preparing for Friday Morning)
Prepare an elevator pitch for your project. Imagine you have just an elevator ride to convince someone to invest in your project, or hire you on the basis of your project. What would you say in just the time it takes an elevator to from the ground floor to the 3rd floor?
That's what you should be prepared to say to guests that come into your breakout room on Friday.
Also: your final opportunity to update your project title, source code url, and web page url is Thursday afternoon, before 5pm.
Use this link
Be sure you are logged into Google with your UCSD email.
8:45am-9am Friday Morning
Please arrive in the zoom session by 8:45am and join your breakout room.
You'll be in a zoom breakout room with one or two other pairs (see https://bit.ly/spis2022-pairs ).
Use the period from 8:45am-9am to:
Get your screen set up to be ready to demo your app
Get your screen set up to be ready to play your pair's video
Practice sharing your screen, being sure that you click these two boxes (lower left corner of Zoom share screen dialog):
☐ Share sound ☐ Optimize for video clipMake sure that others can hear your sound and see your video
Practice your elevator pitch
9am-11am Friday Morning
At least one of the two folks from each pair should be in the assigned breakout room at all times.
Take turns if you need a break, or want to explore the other breakout rooms to see the projects of other students in SPIS.
The two or three pairs should take turns presenting their projects; you can give your elevator pitch, play your video, or give a live demo.
But keep an eye on the time! If your pair has been presenting for more than 10 minutes, it's time to give another pair an opportunity.
Guests will be coming and going, so you may go through your presentation several times over the two hour period.
Be aware of guests arriving and leaving, and greet them warmly.
11am-12:30pm Friday: Closing Ceremony
11am-12:30pm Friday: Closing Ceremony
We will return to the main zoom room (same zoom session).
This will be similar to a closing circle, except that the first part will be led by Mohan, and include some remarks by faculty and a couple of SPIS mentees.
The second part will be sharing appreciations and gratitude, one last time as we close SPIS 2022.
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
Kaggle has a lot of public datasets you might want to use: https://www.kaggle.com/datasets
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
There is also a cool youtube channel that discusses a lot of things about game design. Here is a playlist that they made about "games you may have never heard of" with some really nice ideas.
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:
Basics (rooted in Python and Flask, i.e. the stuff you learned in lab8)
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)
Older Materials:
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 main.py file that runs the project