Schoolhouse.world: peer tutoring, for free.
Free SAT® Prep, as part of a research study.
SAT® Bootcamps
Free SAT® Prep, as part of a research study.
Get free help applying to college.
College Admissions Workshops
Get free help applying to college.
1-on-1 conversations on global topics
Dialogues
1-on-1 conversations on global topics
A global network of volunteers.
Explore Tutors
A global network of volunteers.

Computer Science

Computer Science

Home

Sessions


Channels

Announcements

Discussion

CS Help

Introductions


Join this subworld to ask questions, participate in discussions, and attend sessions.

Starting Soon

Computer Science Series

9

Breaking Down the Box: Exploring Computer Components

Starts

In this lecture-based session, we’ll take a guided tour through the internal parts of a desktop computer
This session is designed to help students of all backgrounds understand the 10 essential hardware components that make up a PC, from the CPU and RAM to the GPU, storage, and power supply. Each component will be introduced with its function, importance, role, and lastly paired with a human body analogy to simplify and solidify understanding.

Throughout the lecture, students will:
- Learn the name, purpose, and basic function of each key hardware component
- Understand how the parts interact to create a fully functioning computer
- Visualize complex systems through easy-to-follow metaphors and analogies
- Build a strong foundation for future technical learning or PC-related projects

*This is a lecture-style session with no hands-on component; ideal for learners who prefer structured, conceptual learning with visual aids. By the end of the session, students will have a clear idea of how the components of a PC work together to bring a computer to life.*

Mohammed A

0/20

Track, Commit, Collaborate: Version Control with GitHub

2nd session

Imagine if you're responsible for managing a large software project. How do you keep your code bug-free? How do you integrate the contributions of many developers into one final product? And how do you prevent a random hacker from deleting everything?

There's a common tool that developers use - git - that aims to address these problems. It's a tool that 99.9% of software developers use, making it even more of a shame that it isn't taught in a lot of high schools.

Daniel C

7/15

Competitive Programming Basics

2nd session

This is a 3-week, weekly course where we teach the basics of competitive programming, including some USACO Bronze topics and CodeForces problems about 800-1000 in rating. Each session, we'll go over one concept from competitive programming. The topics we will likely cover are:

1. Introduction + math
2. Strings
3. Data structures
4. Simulation/brute force
5. Sorting
6. Greedy problems

Prerequisites: familiarity with Python, Java, or C++ (if you haven't learned these, please visit w3schools for a tutorial)

Rafa d

8/12

Basics of Game Design with Unity

3rd session

Hello! Every week, we will cover the basics of creating a simple video game with Unity! You'll learn simple movement, platforming, and more! You'll be expected to write some code and occasionally answer a few of my questions on how the code works. No previous experience necessary!

Pedro Henrique C

10/15

Introduction to C++

3rd session

Each week, by using W3Schools and Leetcode, we will go over C++ one by one!

Taehun K

2 spots left!

An Intro to Fundamental Concepts in Computer Engineering

7th session

Learn the fundamental concepts in computer engineering, from computer number systems to digital electronics!

We will cover topics like prefix/postfix/infix notation, boolean algebra (a combination of logic and algebra), and the basics of graph traversals and adjacency matrices.

This course will follow American Computer Science League (ACSL) materials, and will help prepare you for the contests. It will equip you with the necessary knowledge to start your computer engineering journey, even if you don't plan on taking the contests!

Please note that this course is meant to teach you the core concepts in computer engineering, which will be helpful for both engineering and computer science. These topics are useful in programming, but as we will not be covering programming tasks, no programming experience is required.

Sharan P

4/10

Intro to Competitive Programming

11th session

Every session, we'll go over a fundamental concept in competitive programming and solve practice questions based on them! The series will start from the basics, so a good understanding of basic programming in any language (preferably C++, Java, or Python) should be enough. Whether you're preparing for contests like USACO, Codeforces, or just want to strengthen your problem-solving skills, this series will help you build a solid foundation step by step! Hope to see you all in the series :)

Yudhish K

2 spots left!

Learn C++ from Scratch

14th session

This series is meant to teach you how to code in C++ as well as introduce you to some common computer science topics. No prior programming knowledge is necessary.

I'll be using VS Code for programming, though if you have another preference, that will work. We'll start with installing VS Code (if necessary) and eventually work on some real-world projects.

Alexander J

2 spots left!

How ideas from Computer Science and Physics affect our lives

37th session

We'll go through important ideas in the domain of Computer Science (Game Theory, Exploration/Exploitation tradeoff, Search and Decision making in uncertainty etc.) and Physics (Concept of relativity and time, resonance, entropy/information etc) and understand how we can apply these concepts to understand aspects of our own lives. These sessions will be interactive, so you'll be the explorers and I'll be your guide.

Pratik A

Registration full.