# Prerequisites for the OSSU Computer Science Curriculum: Complete Requirements Guide

> Master the OSSU computer science curriculum. Discover essential math and Core CS prerequisites to succeed in this advanced track. Your complete requirements guide.

- Repository: [Open Source Society University/computer-science](https://github.com/ossu/computer-science)
- Tags: getting-started
- Published: 2026-02-24

---

**The OSSU computer science curriculum expects learners to possess high-school mathematics (algebra, geometry, and pre-calculus) before starting Core CS, while Advanced CS requires completion of the entire Core CS track and Advanced Systems recommends basic physics.**

The OSSU (Open Source Society University) computer science curriculum is a self-paced, modular collection of free courses designed to provide a complete CS education equivalent to a bachelor's degree. According to the repository's documentation in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md), learners must meet specific prerequisites for the OSSU computer science curriculum before tackling each major section, ensuring they have the foundational knowledge necessary for success.

## High-School Mathematics Requirements

### The Minimal Entry Point

According to the Prerequisites section in the repository's [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md), the absolute minimum requirement for starting the Core CS track is a solid background in high-school mathematics. Specifically, learners should be comfortable with:

- **Algebra**
- **Geometry**
- **Pre-calculus**

These mathematical foundations are assumed for all Core CS courses, including programming, discrete math, and algorithms. The repository explicitly states that no additional formal coursework beyond high-school math is required to begin the Core CS track.

## Advanced CS Prerequisites

### Core CS Completion

Once you have the mathematical foundation and complete the Core CS curriculum, you unlock the Advanced CS track. The repository documentation specifies that Advanced CS assumes you have **completed the entire Core CS curriculum**, covering programming, math, tools, systems, theory, security, applications, and ethics. You must also be comfortable independently selecting electives from specialized sub-tracks.

### Physics for Advanced Systems

For learners targeting the **Advanced Systems** sub-track—which covers computer architecture and operating systems—the curriculum recommends completing a basic physics course such as AP Physics. This recommendation appears in the Prerequisites section of [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) alongside the Core CS requirements, though it is only necessary for those specifically pursuing systems-level coursework.

## Pre-College Math Resources

If your high-school math skills need reinforcement before starting the prerequisites for the OSSU computer science curriculum, the project maintains a curated pre-college math curriculum at `ossu.dev/precollege-math`. This resource, linked directly from the README, provides targeted review materials for algebra, geometry, and pre-calculus to ensure you meet the baseline requirements documented in [`coursepages/intro-cs/README.md`](https://github.com/ossu/computer-science/blob/main/coursepages/intro-cs/README.md).

## Verifying Your Readiness

While the curriculum does not enforce automatic checks, you can validate your readiness using the documented requirements. The following Python helper demonstrates how to verify prerequisite coverage based on the specific topics listed in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md):

```python

# prerequisites_check.py

# Simple helper to validate OSSU curriculum prerequisites

REQUIRED_MATH = {"algebra", "geometry", "pre‑calculus"}
REQUIRED_PHYSICS = "basic physics"

def has_math_background(skills):
    """Return True if all required math topics are present."""
    return REQUIRED_MATH.issubset(set(skills))

def has_physics_background(skills):
    """Return True if basic physics is present."""
    return REQUIRED_PHYSICS in skills

if __name__ == "__main__":
    # Example user input (could be read from a config file or prompt)

    user_skills = {"algebra", "geometry", "pre‑calculus", "basic physics"}

    if has_math_background(user_skills):
        print("✅ Math prerequisites satisfied.")
    else:
        print("❌ Missing required math topics.")

    if has_physics_background(user_skills):
        print("✅ Physics prerequisite satisfied (needed for Advanced Systems).")
    else:
        print("⚠️ Physics not required unless you plan Advanced Systems.")

```

This script checks for the three mandatory math topics required for Core CS and the optional physics background needed for Advanced Systems, mirroring the structure defined in the repository's [`CURRICULAR_GUIDELINES.md`](https://github.com/ossu/computer-science/blob/main/CURRICULAR_GUIDELINES.md).

## Key Curriculum Files Defining Requirements

Several files in the `ossu/computer-science` repository establish these prerequisite standards:

- **[`README.md`](https://github.com/ossu/computer-science/blob/main/README.md)**: Contains the authoritative Prerequisites section and overall curriculum layout, specifying high-school math as the entry point and Core CS completion for advanced work.
- **[`coursepages/intro-cs/README.md`](https://github.com/ossu/computer-science/blob/main/coursepages/intro-cs/README.md)**: Details the introductory CS course requirements, reaffirming the need for high-school algebra before beginning programming coursework.
- **[`CURRICULAR_GUIDELINES.md`](https://github.com/ossu/computer-science/blob/main/CURRICULAR_GUIDELINES.md)**: Provides sequencing guidance that reinforces the prerequisite expectations between Core and Advanced CS tracks.

## Summary

- **High-school mathematics** (algebra, geometry, pre-calculus) is the mandatory minimum for starting Core CS in the OSSU curriculum.
- **Core CS completion** is required before attempting any Advanced CS coursework.
- **Basic physics** is recommended specifically for the Advanced Systems sub-track covering architecture and operating systems.
- Pre-college math resources are available at `ossu.dev/precollege-math` for learners needing to review foundational concepts.
- Prerequisites are documented in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md), [`coursepages/intro-cs/README.md`](https://github.com/ossu/computer-science/blob/main/coursepages/intro-cs/README.md), and [`CURRICULAR_GUIDELINES.md`](https://github.com/ossu/computer-science/blob/main/CURRICULAR_GUIDELINES.md).

## Frequently Asked Questions

### Do I need a computer science degree to start OSSU?

No. The OSSU computer science curriculum is designed for independent learners without prior degrees. The only academic requirement is high-school mathematics; no previous programming experience or computer science coursework is necessary to begin Core CS according to the repository's [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md).

### What if I never took pre-calculus in high school?

You can still start the curriculum after completing the pre-college math curriculum hosted at `ossu.dev/precollege-math`. This resource covers all required mathematical foundations including pre-calculus concepts, allowing self-taught learners or career-changers to meet the prerequisites for the OSSU computer science curriculum.

### Can I skip Core CS courses if I already know the material?

The curriculum strongly recommends completing the entire Core CS track before Advanced CS. According to [`CURRICULAR_GUIDELINES.md`](https://github.com/ossu/computer-science/blob/main/CURRICULAR_GUIDELINES.md), Advanced CS assumes comprehensive coverage of all Core topics including math, systems, and theory, making full completion the safest path to success.

### Is physics required for all Advanced CS specializations?

No. Basic physics is only recommended for the Advanced Systems sub-track, which includes courses on computer architecture and operating systems. Other Advanced CS electives in artificial intelligence, data science, or software engineering do not require physics background.