# How to Track OSSU Curriculum Completion: The Official Google Sheets Method

> Easily track your OSSU curriculum completion using the official Google Sheets method. Log courses and study hours for automatic progress updates and stay on track with your computer science goals.

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

---

**The recommended way to track OSSU curriculum completion is to make a personal copy of the official OSSU Curriculum Tracker spreadsheet, enter your start date and weekly study hours in the Timeline tab, and log each course's completion date in the Curriculum Data tab to receive automatic progress updates.**

The `ossu/computer-science` repository provides a structured, self-taught pathway through the equivalent of a bachelor's degree in computer science. To help learners monitor their journey, the maintainers officially endorse a specific tracking workflow built around a shared Google Sheets template. This method allows you to track OSSU curriculum completion without external project management tools or manual date calculations.

## The Official Method: Using the OSSU Curriculum Tracker

The curriculum's [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) (line 54) explicitly directs learners to **this spreadsheet** as the primary mechanism for estimating completion dates and recording progress. The workflow consists of three distinct phases.

### Step 1: Create Your Personal Copy

Navigate to the spreadsheet link provided in the repository's README and click **"Make a copy"** to generate a private version stored in your own Google Drive. This ensures your personal timeline and completion data remain editable and separate from the public template.

### Step 2: Configure Your Timeline

Open the **Timeline** tab in your copied spreadsheet. Enter your **start date** and the number of **weekly study hours** you plan to commit. The sheet uses a baseline estimate of **20 hours per week** by default to calculate your initial projected graduation date. Adjusting this value automatically recalculates your expected completion timeframe.

### Step 3: Log Course Completions

As you finish each course, switch to the **Curriculum Data** tab. Enter the **actual completion date** for the corresponding course row. The spreadsheet's embedded formulas immediately recalculate your remaining workload and update the projected finish date based on your real-world pace.

## Why This Method Is Recommended

The Google Sheets tracker is the only officially supported method to track OSSU curriculum completion. According to the repository source code, this approach offers several advantages over manual tracking:

- **Centralized data management**: Your start date, weekly commitment, and per-course finish dates exist in a single source of truth.
- **Automatic recalculation**: Live formulas adjust your graduation projection without manual math.
- **Zero external dependencies**: The sheet functions in any modern browser without requiring additional software, command-line tools, or API keys.
- **Curriculum synchronization**: The spreadsheet is maintained to reflect the current course requirements, though the README notes it may occasionally lag behind the repository's master branch.

## Automating Your Tracker with Python

While most learners interact with the sheet manually, you can programmatically read or update your tracker using the `gspread` library. These examples assume you have either made the sheet publicly readable or configured Google Sheets API credentials.

### Reading Your Projected Graduation Date

```python
import gspread

# Connect to your personal copy (replace with your URL)

SPREADSHEET_URL = "https://docs.google.com/spreadsheets/d/your-copy-id/edit"

# Public read-only access

gc = gspread.public()
sh = gc.open_by_url(SPREADSHEET_URL)

# Timeline sheet stores projected end date in cell B2

timeline = sh.worksheet("Timeline")
projected_end = timeline.acell('B2').value
print(f"Projected graduation date: {projected_end}")

```

### Logging a Completed Course

```python
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# Requires service account with write access

SCOPES = ["https://www.googleapis.com/auth/spreadsheets"]
creds = ServiceAccountCredentials.from_json_keyfile_name("service_account.json", SCOPES)
gc = gspread.authorize(creds)

sh = gc.open_by_url(SPREADSHEET_URL)
curr_data = sh.worksheet("Curriculum Data")

# Append: [Course Name, Completion Date, Hours Spent]

new_row = ["Operating Systems (OSTEP)", "2026-03-15", "30"]
curr_data.append_row(new_row)
print("Course logged successfully.")

```

## Key Repository Files for Progress Tracking

Understanding the repository structure helps verify that you are using the most current tracking method. The following files contain authoritative information about curriculum completion:

- **[`README.md`](https://github.com/ossu/computer-science/blob/main/README.md)**: Contains the primary link to the curriculum-tracking spreadsheet and the official explanation of how to use it (line 54).
- **[`CHANGELOG.md`](https://github.com/ossu/computer-science/blob/main/CHANGELOG.md)**: Documents the addition of the "How to track and show your progress" section, confirming the spreadsheet method's official status.
- **[`extras/other_curricula.md`](https://github.com/ossu/computer-science/blob/main/extras/other_curricula.md)**: Lists alternative curricula for learners comparing multiple self-taught pathways.

Always verify course requirements against the **master branch** of the repository or the official OSSU CS website, as the spreadsheet may occasionally lag behind repository updates.

## Summary

- The only officially recommended way to track OSSU curriculum completion is the **OSSU Curriculum Tracker** Google Sheets spreadsheet linked in the repository's [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md).
- Learners must **make a personal copy**, configure their **Timeline** tab with start dates and weekly hours, and log **actual completion dates** in the **Curriculum Data** tab.
- The spreadsheet automatically calculates projected graduation dates using a **20-hour-per-week** baseline and updates projections as you log completed courses.
- Advanced users can interact with the sheet programmatically using the **Google Sheets API** and `gspread` Python library.

## Frequently Asked Questions

### Is there a way to track OSSU curriculum completion without Google Sheets?

While the Google Sheets tracker is the only officially supported method, you could theoretically replicate its functionality using project management tools like Trello, Notion, or a custom database. However, you would lose the automatic date calculations and the standardized format that the maintainers use to verify completion. For the most reliable experience, use the official spreadsheet.

### How does the spreadsheet calculate my projected graduation date?

The **Timeline** tab uses your entered **start date** and **weekly study hours** to compute the projection. It assumes a baseline of **20 hours per week** to complete the entire curriculum. If you study more or less than this baseline, the formula adjusts your projected end date accordingly. When you enter actual completion dates in the **Curriculum Data** tab, the sheet recalculates the remaining time based on your real pace.

### Can I use the Google Sheets API to automate progress updates?

Yes. Since the tracker is a Google Sheets document, you can use the **Google Sheets API** with libraries like `gspread` (Python) to read your projected graduation date or append completed courses programmatically. This requires either making your personal copy publicly readable or configuring OAuth/service account credentials. Most learners manually update the sheet, but automation is possible for advanced users building personal dashboards.

### Where can I find the most up-to-date course requirements for the OSSU curriculum?

Always refer to the **master branch** of the `ossu/computer-science` repository or the official **OSSU CS website**. While the curriculum tracker spreadsheet is maintained to reflect current requirements, the repository's [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) explicitly notes that the spreadsheet may occasionally lag behind repository updates. For authoritative course lists, check [`README.md`](https://github.com/ossu/computer-science/blob/main/README.md) directly rather than relying solely on the spreadsheet's curriculum tab.