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:

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 clip

  • Make 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

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:


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:

  • The main Flask website

  • 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


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


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