Polygence blog / Research Opportunities and Ideas

Top 20 Computer Science Research and Passion Project Ideas for High School Students

13 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, try out one of these 20 computer science project ideas that you can pursue in the comfort of your own home!

What are Some Computer Science Project Ideas in Game Design?

Games are a really fun way for high schoolers 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 on to 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 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 computer science mentor Logan (me!)

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 as your heart desires. You’ll learn the basic principles of programming, such as how loops and functions work.

Idea by computer science 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 (i.e., “X” or “O”) on the board. After each player moves, the computer will check to see 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. 

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.

/Intermediate

Idea by computer science 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, a typing game, or anything else that you want!

 /Advanced

Idea by computer science 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.

 /Advanced

Idea by computer science mentor Sahil

Do your own research through Polygence!

Polygence pairs you with an expert mentor in your area of passion. Together, you work to create a high quality research project that is uniquely your own.

What Are Some Computer Science Projects in Design?

1. There’s an app for that!

If you have been coding for a while and have an idea of 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 on 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.

 /Advanced

Idea by computer science 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 computer science 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 computer science mentor Amira

What Are Computer Science Projects in Data Analysis?

1. Combining datasets to extract insights

Data comes in many different places and is often most powerful when combined. This project is simple and open-ended. Find two or more datasets regarding some topic of your choice that you think might add additional insight when taken together. Your goal will be to join those datasets together and find out something cool! Depending on your ambition/comfort with Javascript, HTML, and CSS, you can even try creating a basic dashboard that allows other people to find out information about your topic.

For instance, the mentor who proposed this project once created a dashboard that combined housing data from Zillow, US Census data, and business information from Yelp to create an app that would help prospective movers find areas that fit their lifestyle on a certain budget. This project will likely make heavy use of SQL, as well as Python for preprocessing.

Idea by computer science 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 computer science 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 are 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 a particular mental health condition.

Idea by computer science mentor Camille

Learn more about the Impact of Social Media on the Mental Health of Middle and High School Students

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 computer science mentor Thomas

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 source tools developed such as CLAM that you could use for this project.

Idea by computer science mentor Sharifa 

Dig deep into that code

Interested in Computer Science? We'll match you with an expert mentor who will help you explore your next project.

How Can I Start a Computer Science Project in Machine Learning?

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, you will begin by gathering 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 computer science 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 negative words, like “I didn’t like the movie.” Test how your algorithm compares to the NLTK!

Idea by computer science 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 computer science 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 computer science 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 use machine learning 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!

 /Advanced

Idea by computer science 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, and 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 computer science 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 Natural Language Processing (NLP)? Well, this project might be the right one for you! In 2018, Google released BERT, a neural language model that 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 computer science mentor Arnav

Start YOUR Computer Science Project

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 or try out our Project Ideas Generator.

Check out the full Polygence student project database that has even more computer science research projects to inspire you!

Feeling Inspired?

Interested in doing an exciting research project? Click below to get matched with one of our expert mentors!