The Problem

Learners need a single, version‑controlled source that lists the free, self‑paced courses and supplemental material that make up the Open Source Society University (OSSU) Computer Science curriculum. Without a curated repo, students must manually gather links, track updates, and verify that each course still meets the OSSU criteria.

What This Does

The repository stores the entire curriculum as Markdown content (*.md) together with the minimal HTML scaffolding required for a static site. Core files such as _config.yml, _layouts/page.html, and the _includes/*.html fragments define the site template, while the coursepages/ directory groups the actual curriculum sections (e.g., intro-cs/README.md, ostep/README.md). The extras/ folder holds optional readings and practice problems. The top‑level README.md provides the public landing page, and LICENSE grants reuse rights.

How It Is Wired

The site is built by Jekyll (the default static‑site generator for GitHub Pages). Execution starts with the Jekyll command, which reads _config.yml for site‑wide settings, then:

  1. Layouts – _layouts/page.html is the sole layout; every page’s front‑matter points to it.
  2. Includes – _includes/nav-items.html, custom‑head.html, and footer.html are injected into the layout at build time.
  3. Content – All .md files in the repository root and under coursepages/ are parsed into HTML, preserving the directory hierarchy for URLs.
  4. Assets – Images in images/ are copied verbatim and referenced from the Markdown files (e.g., images/ossu-logo.webp in the README).

There is no runtime code, database, or network calls; the only “effect” is the generation of static HTML files that GitHub Pages then serves. No internal call graph beyond the Jekyll pipeline exists, and no cycles are present.

How To Use It

# Clone the repo (use the exact URL as requested)
git clone https://github.com/moses-y/computer-science
cd computer-science

# Install Jekyll (requires Ruby); the repo does not pin a version, so use the latest stable
gem install bundler jekyll

# Build and serve locally
bundle exec jekyll serve

The site will be available at http://localhost:4000. For production, push to the main branch; GitHub Pages will automatically run the built‑in Jekyll workflow (no Dockerfile or custom CI is required). No additional configuration files, environment variables, or secret keys are referenced in the source.

Real‑World Use

A university outreach program can fork this repo, add a custom CNAME (already present) pointing to a dedicated domain, and publish the curriculum as a static website. Students navigate to https://mydomain.com/ostep/README.md to view the Operating Systems course list, while the extras/ folder provides optional enrichment material without any backend changes.

Code Health & Issues

  • High – Pin third‑party GitHub Actions to a commit SHA – .github/workflows/* uses actions-cool/issues-helper@v3. Tags can be retagged, exposing the workflow to unexpected code. Replace @v3 with a full 40‑character commit SHA and keep the version comment for Dependabot updates.
  • Low – Set timeout‑minutes on workflow jobs – delete-empty-issues.yml defines a job with no timeout, risking overlap of scheduled runs. Add timeout-minutes: 30 (or another reasonable bound) to each job.

Additional observations from the measured audit: no test files, CI exists via GitHub Actions, a LICENSE file is present, and no secrets were found in the commit history.

The Bottom Line

The repo offers a clean, version‑controlled static site that aggregates OSSU’s free CS curriculum, useful for anyone needing a single source of truth. Its simplicity is a strength, but the lack of automated tests and the two CI‑related hardening tasks should be addressed before the site is used in a security‑sensitive environment. Engineers comfortable with Jekyll can extend or host it with minimal effort.