Computer science is one of the best fields for high school research.

Why? You don't need access to expensive labs or equipment. You can work from anywhere with a laptop. And the field is moving so fast that even high schoolers can contribute meaningful work.

This guide shows you how to do publishable CS research.

  1. Low barrier to entry: Need a laptop, not a lab
  2. Free resources: Open-source tools, free cloud computing, public datasets
  3. Remote-friendly: Work from anywhere
  4. Rapid iteration: Test ideas quickly
  5. High demand: CS skills valued everywhere
  6. Diverse applications: Apply CS to any field (biology, economics, art, etc.)
  • Machine learning/AI: Classification, prediction, NLP, computer vision
  • Data science: Analysis, visualization, pattern discovery
  • Software engineering: New tools, applications, systems
  • Algorithms: Efficiency improvements, new approaches
  • Cybersecurity: Vulnerability detection, privacy tools
  • Human-computer interaction: Usability, accessibility
  • Computational biology: Genomics, drug discovery, protein analysis
  • Applied CS: Using computation to solve problems in other fields

Building models to learn from data.

Common project types:

  • Classification (predicting categories)
  • Regression (predicting values)
  • Natural language processing (text analysis)
  • Computer vision (image analysis)
  • Recommendation systems
  • Anomaly detection

Example projects:

  • "Using deep learning to detect diabetic retinopathy from retinal images"
  • "Sentiment analysis of mental health discussions on Reddit"
  • "Predicting student success using machine learning on educational data"

Tools: Python, TensorFlow/PyTorch, scikit-learn, Jupyter notebooks

Extracting insights from datasets.

Common project types:

  • Exploratory data analysis
  • Statistical modeling
  • Data visualization
  • Pattern discovery
  • Trend analysis

Example projects:

  • "Analysis of factors predicting COVID-19 spread at the county level"
  • "Examining gender disparities in movie dialogue using computational analysis"
  • "Urban heat island effect: Data-driven analysis of temperature patterns"

Tools: Python, R, Pandas, Matplotlib, Tableau

Building novel software solutions.

Common project types:

  • New applications addressing unmet needs
  • Accessibility tools
  • Educational software
  • Automation tools
  • Open-source contributions

Example projects:

  • "Mobile app for early dyslexia detection in children"
  • "Browser extension for detecting misinformation"
  • "Platform for connecting student researchers with mentors"

Tools: Python, JavaScript, React, Flutter, various frameworks

Improving computational approaches.

Common project types:

  • Efficiency improvements
  • New algorithm development
  • Optimization techniques
  • Theoretical analysis

Example projects:

  • "Improved algorithm for route optimization in delivery networks"
  • "Novel approach to graph partitioning for social network analysis"

Tools: Python, C++, algorithm visualization tools

Applying CS to problems in other fields.

Common project types:

  • Computational biology
  • Digital humanities
  • Environmental modeling
  • Social science analysis
  • Healthcare applications

Example projects:

  • "Machine learning for predicting protein structures"
  • "Computational analysis of linguistic patterns in historical texts"
  • "Using satellite imagery and ML to detect deforestation"

Tools: Varies by domain + CS tools

Programming (pick one to start):

  • Python: Best for ML, data science, general research
  • R: Strong for statistics and data analysis
  • JavaScript: Good for web-based tools

Version control:

  • Git and GitHub for code management

Basic statistics:

  • Understand distributions, hypothesis testing, correlation

Programming:

Machine Learning:

Data Science:

A common trap: waiting until you've completed every tutorial.

Better approach: Learn enough basics (2-4 weeks), then start your project and learn as you go.

Good CS research questions:

  • Solve a real problem
  • Can be answered computationally
  • Have clear success criteria
  • Are original (or apply existing methods to new domains)

Questions to ask yourself:

  • What problems do I notice that computation might solve?
  • What existing solutions could be improved?
  • What data exists that hasn't been fully analyzed?
  • What would I want to exist as a tool?

Search for existing work:

What to look for:

  • What's been done?
  • What methods are used?
  • What datasets exist?
  • What gaps remain?

For ML projects:

  • What type of problem? (classification, regression, etc.)
  • What data will you use?
  • What models/algorithms will you try?
  • How will you evaluate success?

For software projects:

  • What will it do?
  • Who is the user?
  • What's the technical architecture?
  • How will you test it?

Data sources:

Computing resources:

  • Your local machine (fine for many projects)
  • Google Colab (free GPU access)
  • Kaggle Kernels (free notebooks)
  • Cloud credits for students (AWS, Google Cloud, Azure)

1. Exploratory phase

  • Understand your data
  • Try simple approaches first
  • Identify challenges

2. Development phase

  • Implement your approach
  • Iterate and improve
  • Keep detailed records

3. Evaluation phase

  • Test rigorously
  • Compare to baselines
  • Analyze results

4. Documentation phase

  • Write up methods and findings
  • Create visualizations
  • Prepare code for sharing

Code organization:

  • Use consistent file structure
  • Comment your code
  • Use meaningful variable names
  • Break code into functions

Documentation:

  • Keep a research log
  • Document experiments and results
  • Save intermediate versions

Reproducibility:

  • Record all parameters
  • Set random seeds
  • Document environment (packages, versions)
  • Share code and data when possible
  1. Not understanding your data: Always explore before modeling
  2. Data leakage: Test data must be completely separate from training
  3. No baseline: Compare your model to simple approaches
  4. Wrong evaluation metrics: Choose metrics appropriate to your problem
  5. Overfitting: Validate on held-out data
  6. Cherry-picking results: Report honest, complete results

Journals accepting student work:

  • Journal of Emerging Investigators
  • Young Scientists Journal
  • Various IEEE student publications

Preprint servers:

Conferences (some have student tracks):

  • IEEE high school conferences
  • Regional science symposiums
  • University undergraduate conferences

Abstract: Summary of problem, approach, results

Introduction:

  • Problem and motivation
  • Why it matters
  • What gap you fill
  • Your contribution

Related Work: What's been done before

Methods:

  • Data description
  • Technical approach
  • Implementation details

Results:

  • Experimental setup
  • Performance metrics
  • Comparison to baselines
  • Analysis

Discussion:

  • Interpretation
  • Limitations
  • Future work

References: All cited work

In CS, sharing code is expected and valued:

  • Create a clean GitHub repository
  • Include a README with setup instructions
  • Consider a license (MIT is common)
  • Share data if possible (or link to public sources)
  1. Technical rigor: Is the approach sound?
  2. Originality: Is this novel or just a tutorial project?
  3. Results: Does it work? How well?
  4. Understanding: Can you explain the technical details?
  5. Presentation: Is the project clearly communicated?

Weak:

  • Following a tutorial without modification
  • "I built a website" with no research component
  • Using pre-built tools without understanding them
  • Undefined success criteria

Strong:

  • Novel application of techniques
  • Clear research question
  • Rigorous evaluation
  • Compared to baselines
  • Addresses a real problem

Title: "Deep Learning Approach to Early Detection of Crop Disease from Mobile Phone Images"

Why it's strong:

  • Real problem (crop disease causes economic loss)
  • Novel application (mobile-phone based detection)
  • Technical rigor (proper ML methodology)
  • Clear metrics (accuracy, comparison to existing methods)
  • Practical impact (deployable solution)

CS research benefits enormously from mentorship. A mentor can:

  • Help you find the right problem
  • Guide technical decisions
  • Review code and methodology
  • Help you avoid common mistakes
  • Support publication

The YRI Fellowship provides:

  • 1:1 PhD mentorship: Work with computer scientists from top universities
  • Technical guidance: Get your ML/algorithms right
  • Publication support: Format and submit to journals
  • Competition preparation: Win science fairs with CS projects

Many YRI students have published CS research and won competitions. See our guide on AI/ML Research for High School Students.

Development environment:

  • VS Code or PyCharm (coding)
  • Jupyter Notebooks (data exploration)
  • Google Colab (free cloud computing)

Libraries (Python):

  • NumPy, Pandas (data handling)
  • Matplotlib, Seaborn (visualization)
  • Scikit-learn (ML basics)
  • TensorFlow/PyTorch (deep learning)
  • NLTK, spaCy (NLP)

Collaboration:

  • GitHub (code management)
  • Overleaf (paper writing)
  • Notion/Obsidian (research notes)

Do I need a powerful computer for CS research? Not necessarily. Google Colab provides free GPU access for ML projects. Many projects can run on a basic laptop. Cloud resources are available for larger projects.

What programming language should I learn for research? Python is the most versatile choice for research, especially ML and data science. It has the best library ecosystem and is widely used in academia.

Can I publish CS research without access to a university? Yes. Preprint servers like arXiv are open. Several journals accept high school work. Your mentor can help identify appropriate venues.

How do I find a novel research problem? Read recent papers to understand the field. Look for limitations mentioned in papers. Think about problems you personally encounter. Apply existing techniques to new domains.

Is it okay to use existing code and models? Yes, but be transparent about what you built versus what you used. Using pre-trained models or open-source libraries is standard practice. Your contribution should be clear.

How long does a CS research project take? Typically 8-12 weeks for a solid project. ML projects may need time for training and iteration. Plan for unexpected challenges.

  1. Choose your area: ML, data science, software, algorithms?
  2. Build prerequisites: Learn basics of programming and relevant tools
  3. Find your question: What problem will you solve?
  4. Gather resources: Data, computing, tools
  5. Get mentorship: Expert guidance accelerates progress

Apply to YRI Fellowship →

Related guides:

Share this article

Help others discover this research