Computer Science Virtual Research Project Ideas for High Schoolers: Our Top 20
12 minute read
Computer Science (CS) is fast becoming one of the most popular academic majors in US colleges. At Stanford University, CS has risen to take the number 1 spot as the most popular undergraduate major, followed by economics, engineering, human biology, and my major, Symbolic Systems. If you’re a high school student itching to try your hand at an independent project in computer science this summer, try out one of these 20 virtual computer science project ideas that you can pursue in the comfort of your own home:
Games are a really fun way to get started with computer science. You get to develop your skills as a computer scientist while having fun with something you made! Here are a few ideas of games that you can make:
1. Number Guessing Game
If you only have a little bit of experience with computer science, try implementing this game before moving onto the more complex projects. You’ll program the computer to think of a number between 1 and 10. The player guesses what number the computer is thinking of, and the player has to keep guessing until they get it right. You can also make the reverse version of the game - the player thinks of a number and the computer guesses what the player is thinking.
Even though the basic idea of this game is simple, there are actually lots of fun and complex variations that you can add. For example, when the player is guessing the number, you can write code to tell the player if the number they guessed is higher or lower than what the computer is thinking and/or alert the player if they guess a number that they already guessed before. When the computer is guessing the number, you can write code to detect if the player changed their number and/or guess the number faster by asking the player if their number is higher or lower than what the computer guessed.
Idea by mentor Logan (me!)
The Polygence Pathfinders Program
Pathfinders is a career discovery mentorship experience designed to help you explore different career paths and gain more clarity about your future. Learn from three world class mentors in the fields of your choice and discover your passions!
2. Choose-your-own-adventure story!
In a choose-your-own-adventure game, players are presented with situations like: You are in a dark room and you hear a knock at the door, what do you want to do?: 1) Open the door or 2) Explore the room. Based on what the player chooses, the story goes in different directions! In this project, you will have the full creative freedom to build a choose-your-own-adventure game with as many twists and turns your heart desires. You’ll learn the basic principles of programming, such as how loops and functions work.
Idea by mentor Carina
3. Tic Tac Toe
In this project, you’ll create a board that players can use to play tic tac toe. Players will alternate placing their marker (e.g., “X” or “O”) on the board. After each player moves, the computer will check if the player won the game.
Let’s face it, basic tic tac toe is a little boring, so time to add some excitement by implementing more complex versions! Adapt your game board so that players can play odds/evens tic tac toe and odds/evens tic tac toe with parity. You can check out the details of those tic tac toe variations here.
In the beginner version of this project, players won’t be able to click on the game board. Instead, you’ll use letters to mark each letter on the board. Thus, each tile will be marked by a letter from a - i. Each player will type the letter of the tile that they want to put their marker on.
In the intermediate version of the project, you’ll create a Graphical User Interface (GUI) so that players can click on the board.
Idea by mentor Logan
4. Educational Video Game
There are many ways to teach nowadays, and more often than not, games are one of the best facets to encourage learning that is both fun and constructive. From infancy through adulthood, games have been used to share information and teach fundamental concepts. You can make a math game, typing game, or anything else that you want!
Idea by mentor Hannah
5. 2D or 3D Game
For students who are interested in game development and have some prior experience with computer science, designing your own game is a great passion project! You get to conceptualize, design, and implement your very own game. You can decide to make a 2D game like Galaga or Donkey Kong, a 3D game where you fight monsters, or any other kind of game.
Idea by mentor Sahil
1. There’s an App for That!
If you have coding for a while and have an idea for just what the world needs next in the app world, this might be the perfect project for you! Learn to design, code, and create an app from start to finish and share it with your friends and family. If you want, you can even publish it onto the app store (for a small fee) and see what kind of traction you get! You can use MIT's App Inventor or Code.org's App Lab as resources as you embark on your app development journey.
Idea by mentor Abigail
2. Make your own Website
In this project, you will learn the fundamentals of web development by creating your own website. You will deploy this website to the world wide web, and create several different pages with content of your choice. Will you make a professional page with your resume and bio? A site with games for your friends? Maybe a blog or collection of articles?
Idea by mentor Sam
3. Design Research and Development
Design is rooted in problem solving and creating elegant solutions. You will identify an issue, do social research, and analyze data. Ultimately, you will develop a design solution that can be integrated into daily life. Projects could include designing an app, website, product, or virtually anything that needs fixing. This project is different from the previous two in that you will investigate your issue and design a solution without having a set end goal in mind. Everything in our lives is designed, so let's design it better!
Idea by mentor Amira
1. Combining Datasets to Extract Insights
Idea by mentor Daniel
2. A Comprehensive Analysis of Passwords
You probably have seen that many websites have certain password requirements like, "Must contain one capital letter, a symbol, a number, etc.” Using some form of rule induction, pattern recognition, or machine learning, as well as one of the many datasets of password leaks available online, find the patterns in how people choose passwords, and how those can be protected. For instance, if people are using a capital letter, does it often appear at the beginning of the password? How often are passwords just English words, as opposed to a random set of characters?
Idea by mentor Hirsh
3. Understanding Mental Health through Social Media
Social media can be a lens into the lives and well-being of individuals. Using the social media platform of interest, you can study how useful posts, interactions, and other information is in predicting and understanding mental health and mental illness. You will use statistical and machine learning tools to search for relationships between social media and mental health. You can also survey people who use social media to complement your analysis. It would be especially interesting to study this topic for a specific demographic, a niche social media platform or online community, or for a particular mental health condition.
Idea by mentor Camille
4. Formula 1 Racing
Are you a fan of Formula 1 racing? Formula 1 is one of the most watched sports in the world! Extreme engineering, nail-biting precision, and excellent team dynamics are key to the participation and success of any team. The moment anyone decides to go rogue, the whole team is impacted - and may even be disqualified! For those of you who enjoy working with data and have a little bit of data science and CS skills under your belt, an interesting project would be to analyze an F1 dataset and look at patterns in attributes like drivers, race times, season data, and pitstop status. For example, you can calculate correlations and regressions to better understand the relationships between those attributes.
Idea by Polygence mentor
5. Analyzing Cancer Genomes
The Cancer Genome Atlas (TCGA) is a wealth of open source data including patient health records, genomic sequencing and histology slides. You can analyze this data to calculate correlations between morphological histology, features, and mutations. Using machine learning, you can also predict patient survival based on histology or genomic data. Focusing on a rare cancer would be ideal for this project as rare cancers tend to be understudied and even analyses utilizing small datasets could lead to interesting discoveries. There are multiple open sources tools developed such as CLAM that you could use for this project.
Idea by: Sharifa
1. Introduction to Sentiment Analysis
If you are brand new to machine learning, try using Python’s Natural Language Toolkit (NLTK) to analyze the text of your choosing! Sentiment analysis is a type of Natural Language Processing (NLP) that gives a number indicating whether a person feels positive, negative, or neutral towards what they’re talking about. For example, it can tell you how much a person did or did not like a movie based on a movie review.
In this project, first you will gather text-based data. It’s best to use “real-world” data so that you can answer a research question! You can write your own text snippets in the code file, import some text that you have on your computer, or scrape data from online. To scrape (“collect”) data, you’ll use an API that allows you to easily get information from that website by using code, e.g., the Reddit API. Then, you’ll use the NLTK to analyze the text.
Idea by mentor Logan
2. Continuing with Sentiment Analysis
You can do this project after the previous one about sentiment analysis, or you can dive straight in if you already have some programming experience. Try out developing your own sentiment analysis algorithms in this project. What are some words that indicate someone feels positive or negative towards a topic? How will you handle phrases with negation words, like “I didn’t like the movie.” Test how your algorithm compares to the NLTK!
Idea by mentor Logan
3. Build a Music or Movie Recommender!
Have you ever been impressed with how websites like Netflix, Spotify, and Pandora seem to know what you enjoy? Doing a project where you build your own recommender is a great way to explore the various methods of content recommendation! You will learn concepts like content filtering, collaborative filtering, user/product embedding methods, graph-based techniques, and more. The goal of this project is for you to experiment with various types of recommenders and build your own for a product or media of your own choosing.
Idea by mentor Eli
4. Detecting bots on Twitter
Bots are everywhere now! With fake news and bot detection becoming ever more important as a social and political issue, you might want to try your hand at a computer science bot detection project. You can do a project where you measure and quantify how easily it is to detect tweets that have been written by bots. You can start by going through the following four steps: 1) Collect some data, ideally labeled already as "fake.” 2) Observe properties of "real" vs. "fake" tweets. 3) Write a program (an example might be a Naive Bayes classifier) to label new, incoming tweets as either “real” or “fake”. 4) Evaluate how good the program is using a sensible metric.
Idea by mentor Clayton
5. Designing your own Autocorrect Algorithm
This is a project with two focal ideas - one in computer science and one in machine learning. The first idea is called dynamic programming and is one of the traditional ways in computer science to implement an autocorrect algorithm. Depending on your level, you can design it from scratch or just focus on the algorithm. After that, one option is to then use machine learning in order to create different, personalized, and more accurate versions of autocorrect for individuals. The goal of this project is for you to get comfortable with a complex class of algorithms that are typically only learned in the later undergrad years!
Idea by mentor Ryan
6. Guiding Musicians with Machine Learning
If you’ve ever learned an instrument, you know how much help you need with tone quality, embouchure, managing hand placement, pitch correction, among many other things! This is an advanced project where you will use your camera and microphone to explore ways to use machine learning and artificial intelligence to identify areas of improvement and suggest corrections. If you’ve been looking for ways to combine your interest in computer science and music, this is a great place to get started!
Idea by mentor Ross
7. Natural Language Processing with BERT
Do you already have a good foundation in computer science? Did you recently develop a fascination with NLP (Natural Language Processing)? Well, this project might be the right one for you! In 2018, Google released BERT, a neural language model which helped NLP practitioners outperform previous state of the art benchmarks in language tasks (e.g. question answering, sentiment analysis, machine translation) across the board.
You can do a project where you learn how deep learning researchers approach quantitative problems in classifying and analyzing language. You will develop an understanding of the concept of contextual word embeddings and the motivation for BERT. Last but not least, write code to apply BERT to a language task of your choosing! One example to get your creative juices flowing is quantifying gender bias in news articles or tweets.
Idea by mentor Arnav
Research projects are great because they give you an edge on your college application. You may want to write a research paper after finishing your research. If research papers aren’t your thing, check out this list of creative ways you can explore your passions.
Check out the full Polygence project database that has even more computer science research projects to consider. Excited to do one of these 20 virtual project ideas in computer science? Register to get matched with a mentor here!
Interested in doing an exciting research project? Click below to get matched with one of our expert mentors!