# What Are the Course Categories in the OSSU Curriculum? A Complete Guide

> Discover the five OSSU Computer Science curriculum course categories. Learn about Prerequisites Intro CS Core CS Advanced CS and the Final Project. Your complete guide.

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

---

**The OSSU Computer Science curriculum organizes learning into five sequential categories—Prerequisites, Intro CS, Core CS, Advanced CS, and Final Project—structured to mirror a traditional undergraduate CS degree.**

The Open Source Society University (OSSU) provides a free, self-paced computer science curriculum equivalent to a four-year degree. Understanding the course categories helps learners navigate the repository and plan their educational journey effectively.

## Overview of the Curriculum Architecture

The canonical curriculum structure lives in the repository's root [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) file, specifically between lines 48 and 106. This document defines the high-level progression from foundational knowledge through advanced specialization, culminating in a capstone project.

The OSSU maintains a strict hierarchical organization where **Core CS** represents roughly the first three years of undergraduate study, while **Advanced CS** corresponds to the final year of specialization.

## The Five Main Course Categories

Each category serves a distinct purpose in the learner's progression, with specific sub-categories grouping related technical topics.

### Prerequisites

The **Prerequisites** section (lines 110-116 of [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md)) establishes baseline knowledge expectations before beginning formal computer science coursework. This category covers high-school level mathematics and physics concepts necessary for algorithmic thinking.

Learners should verify competency in these areas before proceeding to Intro CS, as later courses assume this foundational preparation.

### Intro CS

**Intro CS** provides a single entry-point course designed for absolute beginners. According to lines 117-124 of the main README, this section introduces basic computation, imperative programming fundamentals, and elementary data structures.

This starter module ensures all learners possess essential programming literacy before tackling the intensive Core CS sequence.

### Core CS

The **Core CS** category (lines 131-196) constitutes the curriculum's backbone, containing eight distinct sub-categories that cover traditional undergraduate computer science topics:

- **Core programming** – Programming paradigms and software construction
- **Core math** – Discrete mathematics and linear algebra
- **CS Tools** – Version control, shell scripting, and development environments
- **Core systems** – Computer architecture, operating systems, and networks
- **Core theory** – Algorithms, data structures, and computational complexity
- **Core security** – Information security fundamentals
- **Core applications** – Software engineering and database systems
- **Core ethics** – Professional responsibility and computing ethics

These sub-categories collectively deliver comprehensive coverage equivalent to years 1-3 of a university CS program.

### Advanced CS

**Advanced CS** (lines 301-389) enables specialization during the final stages of study. This category contains five advanced sub-categories allowing learners to pursue niche interests:

- **Advanced programming** – Compilers, functional programming, and software verification
- **Advanced systems** – Distributed systems and computer architecture
- **Advanced theory** – Complex algorithms and cryptography
- **Advanced information security** – Network security and cryptographic protocols
- **Advanced math** – Probability, statistics, and numerical methods

Learners select courses from these sub-categories based on career objectives and personal interests rather than completing every offering.

### Final Project

The **Final Project** (lines 398-405) serves as the curriculum capstone. This category requires learners to synthesize knowledge from all previous sections by completing a substantial real-world project or solving a complex technical problem.

The final project demonstrates practical competency and portfolio-ready work samples for potential employers.

## Repository Structure and Implementation

The curriculum leverages a data-driven approach where category definitions in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) reference detailed course specifications stored throughout the repository.

Individual course entries reside in the `coursepages/` directory. For example, the Systematic Program Design course referenced in the Intro CS section maintains its full description in [`coursepages/spd/README.md`](https://github.com/ossu/computer-science/blob/main/coursepages/spd/README.md).

A typical course entry appears in the main curriculum table using this markdown format:

```markdown
| [Systematic Program Design](coursepages/spd/README.md) | 13 weeks | 8-10 h/week | none | chat: [part 1](https://discord.gg/RfqAmGJ) / [part 2](https://discord.gg/kczJzpm)

```

Supplemental resources for each category appear in the `extras/` directory, while [`_config.yml`](https://github.com/ossu/computer-science/blob/main/_config.yml) handles Jekyll site generation for the curriculum's web presentation.

## Summary

- The OSSU curriculum defines **five main categories**: Prerequisites, Intro CS, Core CS, Advanced CS, and Final Project.
- **Core CS** contains eight sub-categories covering foundational computer science topics from programming to ethics.
- **Advanced CS** offers five specialization tracks for final-year study.
- Category definitions reside in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) (lines 48-406), while individual courses populate the `coursepages/` directory.
- The structure mirrors a traditional four-year CS degree, enabling self-paced but comprehensive education.

## Frequently Asked Questions

### What are the sub-categories within Core CS?

Core CS contains eight sub-categories: Core programming, Core math, CS Tools, Core systems, Core theory, Core security, Core applications, and Core ethics. These divisions group related coursework covering everything from discrete mathematics to software engineering principles and professional ethics.

### How is the OSSU curriculum structured in the GitHub repository?

The primary structure appears in the root [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) file, which defines all categories and sub-categories. Individual course details live in separate markdown files within the `coursepages/` directory hierarchy, while supplementary materials reside in `extras/`. This separation keeps the main curriculum readable while allowing detailed course specifications.

### Can I skip Prerequisites and start with Core CS?

The Prerequisites section (lines 110-116 of [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md)) lists expected high-school mathematics and physics knowledge. While learners with existing STEM backgrounds may bypass explicit review, the curriculum assumes competency in these areas before Intro CS. Skipping prerequisites risks difficulty with the mathematical rigor present in Core CS theory and algorithms courses.

### Where are individual course details stored in the OSSU repository?

Specific course information resides in the `coursepages/` directory, with each major course maintaining its own subdirectory containing a [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) file. For instance, [`coursepages/spd/README.md`](https://github.com/ossu/computer-science/blob/main/coursepages/spd/README.md) contains the full syllabus, prerequisites, and study resources for the Systematic Program Design course referenced in the Intro CS category.