# Does the OSSU Curriculum Require Prior CS Knowledge? A Complete Guide

> Does the OSSU curriculum require prior CS knowledge? Learn what math and programming skills you need before starting this comprehensive computer science guide.

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

---

**Yes, the OSSU Computer Science curriculum assumes learners already possess a basic educational foundation outside of formal computer science coursework, specifically requiring high-school level mathematics and recommending informal programming exposure before tackling Core CS.**

The OSSU computer-science repository on GitHub is designed according to the degree requirements of undergraduate CS majors, minus general education requirements. According to the project documentation, this structure exists because most learners following this curriculum are already educated outside the field of CS. Understanding these baseline expectations is crucial before committing to the extensive course sequence.

## What the OSSU Documentation Says About Prerequisites

The repository's [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) explicitly outlines prerequisite assumptions in the dedicated **Prerequisites** section. These requirements are non-negotiable gates before entering the Core CS sequence.

### The Core Assumption: Education Outside CS

According to lines 33-35 of the [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md), the curriculum is *"designed according to the degree requirements of undergraduate computer science majors, minus general education (non-CS) requirements, as it is assumed most of the people following this curriculum are already educated outside the field of CS."*

This means the curriculum skips foundational writing, humanities, and social sciences that traditional university programs require, jumping directly into technical content under the assumption you've already developed general academic skills elsewhere.

### High School Mathematics Requirements

Lines 110-114 of the [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) specify strict mathematical prerequisites:

- **Algebra** – Essential for understanding algorithmic complexity and discrete mathematics
- **Geometry** – Required for graphics and spatial reasoning concepts
- **Pre-calculus** – Necessary before tackling calculus-based courses in the curriculum

These requirements are positioned before the Core CS section because mathematical maturity directly impacts success in algorithms, data structures, and theoretical computer science courses.

## Breaking Down the Intro CS Module

The curriculum includes an **Intro to CS** course, but its positioning and description reveal it is not a true "zero to hero" starting point for absolute beginners with no technical background.

### Is Intro CS a True Beginner Course?

According to lines 176-180 of the [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md), the Intro CS course is described as a way to *"try out CS to see if it's right for you"* and to *"get a flavor of the curriculum."* However, this course comes **after** the high-school math prerequisites in the recommended sequence.

In practice, students should be comfortable with basic programming concepts (particularly Python) before attempting even this introductory section. The course serves as a confirmation that CS is the right field for the learner, not as a remedial programming tutorial.

## Verifying Prerequisites Programmatically

You can programmatically verify the current prerequisite requirements by extracting the relevant sections from the repository's documentation. Below are practical examples for building an "admission checker" tool.

### Python Implementation

This script fetches the raw [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) and extracts the Prerequisites section:

```python
import requests
import re

# URL to the raw README file

README_URL = (
    "https://raw.githubusercontent.com/ossu/computer-science/master/README.md"
)

def fetch_prereqs():
    text = requests.get(README_URL).text
    # Extract the "Prerequisites" section

    match = re.search(r"## Prerequisites(.*?)(?:\n## |\Z)", text, re.DOTALL)

    return match.group(1).strip() if match else "No prerequisites found."

if __name__ == "__main__":
    print("OSSU CS Prerequisites:\n")
    print(fetch_prereqs())

```

### Bash One-Liner

For quick terminal verification of the high-school math requirement:

```bash
curl -s https://raw.githubusercontent.com/ossu/computer-science/master/README.md \
| grep -i "high school math"

```

These utilities demonstrate how the repository's documentation structure allows for automated prerequisite checking, useful for academic advisors or self-directed learners building custom curriculum trackers.

## Key Files That Define the Curriculum Standards

Understanding the prerequisite assumptions requires consulting multiple documentation files in the repository. These files establish the academic rigor and baseline knowledge expectations.

| File | Significance |
|------|--------------|
| [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) | Contains the explicit **Prerequisites** section (lines 110-114) and the core assumption about prior education (lines 33-35). |
| [`CURRICULAR_GUIDELINES.md`](https://github.com/ossu/computer-science/blob/main/CURRICULAR_GUIDELINES.md) | Defines the academic standards the curriculum adheres to, implicitly requiring baseline CS understanding for the advanced topics covered. |
| [`FAQ.md`](https://github.com/ossu/computer-science/blob/main/FAQ.md) | Addresses common concerns about preparation levels, including why prior exposure is recommended before attempting Core CS. |

These files collectively establish that the OSSU curriculum is not designed for absolute beginners in computing, but rather for self-taught learners or career-changers who already possess general academic competencies and mathematical foundations.

## Summary

The OSSU Computer Science curriculum explicitly requires prior knowledge before enrollment:

- **General education** is assumed to be completed outside the CS field, as the curriculum skips non-technical general education requirements
- **High-school mathematics** (algebra, geometry, and pre-calculus) is mandatory before starting Core CS
- **Basic programming exposure** is strongly recommended, as the Intro CS course serves as a "flavor" test rather than a remedial programming tutorial
- The curriculum structure in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) lines 33-35 and the Prerequisites section (lines 110-114) codify these requirements as non-negotiable gates

## Frequently Asked Questions

### Can I start OSSU with zero programming experience?

No, the curriculum is not optimized for absolute beginners. While the Intro to CS course is positioned early in the sequence, it is described as a way to "try out CS to see if it's right for you" rather than a comprehensive programming introduction. You should already be comfortable with basic Python syntax and computational thinking before attempting even the introductory sections.

### What math level is required before starting Core CS?

You must complete high-school level algebra, geometry, and pre-calculus before entering Core CS. According to the [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) Prerequisites section, these mathematical foundations are essential for understanding algorithms, discrete mathematics, and calculus-based courses later in the curriculum. Without this baseline, the theoretical computer science components will be inaccessible.

### How does the Intro CS course differ from Core CS?

Intro CS serves as a "flavor" course to confirm that computer science is the right field for your interests and aptitudes, whereas Core CS contains the rigorous, degree-equivalent technical content required for CS proficiency. The Intro course comes after math prerequisites but before the intensive Core sequence, acting as a bridge for learners transitioning from general education to specialized technical study.

### Where are the official prerequisites documented?

The official prerequisites are documented in the [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) file of the ossu/computer-science repository, specifically in the **Prerequisites** section (lines 110-114) and in the introductory paragraphs explaining curriculum design assumptions (lines 33-35). Additional context appears in [`FAQ.md`](https://github.com/ossu/computer-science/blob/main/FAQ.md) and [`CURRICULAR_GUIDELINES.md`](https://github.com/ossu/computer-science/blob/main/CURRICULAR_GUIDELINES.md), which explain the academic rationale behind requiring high-school mathematics and general education completion before starting the technical sequence.