# How Long Does It Take to Complete the OSSU Computer Science Curriculum?

> Discover how long it takes to complete the OSSU computer science curriculum. Learn the estimated time commitment and course duration for this comprehensive program.

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

---

**The OSSU computer science curriculum takes approximately 2 years to complete when studying 20 hours per week, though the raw sum of all courses equals roughly 7 years of sequential study.**

The [ossu/computer-science](https://github.com/ossu/computer-science) repository provides a complete, free computer science education through carefully curated online courses. If you are wondering **how long it takes to complete the OSSU computer science curriculum**, the official estimate is approximately two years, though the underlying course data in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) reveals why this timeline requires strategic course parallelization.

## The Official Timeline: 2 Years at 20 Hours Per Week

According to the [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) in the ossu/computer-science repository, the curriculum is designed for completion in **about 2 years** by studying roughly **20 hours per week**. This estimate assumes intelligent parallelization—taking shorter foundational courses alongside longer core subjects rather than studying them sequentially.

The repository provides a **[curriculum timeline spreadsheet](https://docs.google.com/spreadsheets/d/1y2kMsIg9VaHMVmw35x_aH1hpty3V-ZMuV2jA13P_Cgo/copy)** that calculates your personal finish date based on your start date and weekly hour commitment. If you maintain the recommended 20-hour weekly schedule, you should complete the full program in approximately **104 weeks**.

## Understanding the Raw Sequential Course Load

If you were to complete every required course in the **Core CS** and **Advanced CS** sections back-to-back without overlap, the curriculum contains approximately **416 weeks** of content. This translates to roughly **7,200 total study hours** when summing the "Duration" (weeks) and "Effort" (hours/week) columns from the course tables in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md).

At a strict 20-hour-per-week pace with zero parallelization, this sequential path would require approximately **360 weeks** (6.9 years) to finish. This calculation reveals why the official 2-year estimate depends heavily on strategic course scheduling—such as taking the 2-week "Missing Semester" crash course concurrently with a 14-week introductory programming class.

## Calculating Timeline Estimates Programmatically

You can verify these numbers by parsing the markdown tables in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) directly. The following Python script extracts course durations and effort levels, then computes both the minimum sequential weeks and the realistic calendar time based on your weekly commitment.

```python
import re
import requests
from pathlib import Path

# URL of the README in the OSSU repo

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

def fetch_readme() -> str:
    """Download the raw README markdown."""
    return requests.get(README_URL).text

def parse_courses(md: str):
    """
    Find markdown tables with columns:
    Course | Duration | Effort | …
    Return a list of (duration_weeks, effort_hours_per_week).
    """
    course_pattern = re.compile(
        r"\|[^|]+\|\s*(\d+)\s*weeks?\s*\|\s*([\d‑]+)\s*hours/week",
        flags=re.IGNORECASE,
    )
    return [
        (int(m.group(1)), int(m.group(2).split("-")[0]))
        for m in course_pattern.finditer(md)
    ]

def total_time(courses):
    """Sum weeks and compute total effort."""
    total_weeks = sum(d for d, _ in courses)
    # Assume the user studies the max weekly effort (the higher end of a range)

    total_hours = sum(d * e for d, e in courses)
    return total_weeks, total_hours

if __name__ == "__main__":
    md = fetch_readme()
    courses = parse_courses(md)
    weeks, hours = total_time(courses)
    print(f"Minimum total weeks (if no overlap): {weeks}")
    print(f"Minimum total study hours: {hours}")
    print(
        "At 20 hours/week you'd need roughly "
        f"{(hours / 20):.1f} weeks ≈ {hours/20/52:.1f} years."
    )

```

**What the script does:**

- **Downloads** the raw [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) from the repository.
- **Extracts** duration and effort data using regex patterns matching the markdown table structure.
- **Calculates** total sequential weeks and study hours.
- **Projects** calendar time based on your specific weekly study commitment.

Running this against the current curriculum yields approximately **416 minimum weeks** and **7,200 study hours**, confirming that the 2-year completion target requires studying multiple courses in parallel.

## Essential Files for Timeline Planning

Several files in the ossu/computer-science repository contain the metadata driving these estimates:

- **[`README.md`](https://github.com/ossu/computer-science/blob/main/README.md)** — Contains the master course list with "Duration" and "Effort" columns, plus the headline 2-year estimate and link to the timeline spreadsheet.
- **[`FAQ.md`](https://github.com/ossu/computer-science/blob/main/FAQ.md)** — Addresses common questions about study pace, including explanations of the 20-hour weekly assumption and strategies for acceleration.
- **[`extras/courses.md`](https://github.com/ossu/computer-science/blob/main/extras/courses.md)** — Lists optional advanced courses with their week counts, useful if you plan to extend beyond the core curriculum.
- **[`CURRICULAR_GUIDELINES.md`](https://github.com/ossu/computer-science/blob/main/CURRICULAR_GUIDELINES.md)** — Defines the standards used to select courses and verify their time estimates.
- **`coursepages/*/README.md`** — Individual subject directories (e.g., [`coursepages/intro-cs/README.md`](https://github.com/ossu/computer-science/blob/main/coursepages/intro-cs/README.md)) contain detailed syllabi that may update duration estimates based on specific session offerings.

## Summary

- The OSSU computer science curriculum requires approximately **2 years** to complete when studying **20 hours per week** with strategic course parallelization.
- The raw sequential course load totals roughly **416 weeks** (7,200 hours), which would take nearly **7 years** without overlapping courses.
- The repository provides a **curriculum timeline spreadsheet** in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) for personalizing your schedule based on start date and weekly availability.
- You can programmatically verify time estimates by parsing the markdown tables in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) using the provided Python script.
- **Parallelization** is essential for the 2-year timeline—combine short foundational modules with longer core courses to maximize efficiency.

## Frequently Asked Questions

### Can I complete the OSSU curriculum faster than 2 years?

Yes, if you have prior programming experience or can dedicate more than 20 hours per week. The 2-year baseline assumes a beginner starting from scratch; experienced learners often parallelize more aggressively or test out of introductory material, potentially finishing in 12–18 months.

### What happens if I study fewer than 20 hours per week?

Your completion time scales linearly. At 10 hours per week, the 7,200 total study hours would require approximately **720 weeks** (13.8 years) if taken sequentially, or roughly **4 years** with moderate course overlap. Use the spreadsheet linked in [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) to model your specific availability.

### Is the 2-year estimate realistic for complete beginners?

Yes, provided you maintain the 20-hour weekly commitment and follow the recommended course order. The estimate accounts for the learning curve in early courses; however, consistency matters more than speed—gaps in study will extend the timeline proportionally.

### Where can I find the interactive timeline calculator?

The **Curriculum Timeline Spreadsheet** is linked directly in the repository's [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) and available at the Google Sheets URL referenced in the course documentation. This tool automatically calculates your projected finish date when you input your start date and weekly study hours.