How to Find Courses with Programming Assignments in the cs-video-courses Repository

You can locate courses with programming assignments by browsing the curated links in README.md and filtering for URLs that contain assignment-related path segments like /assignments/, /homeworks/, or /projects/.

The Developer-Y/cs-video-courses repository serves as a comprehensive index of free computer science video lectures. Since the repository stores pointers to external course materials rather than the content itself, finding courses that include programming assignments requires inspecting the linked course pages. You can locate these practical components by analyzing the master list in README.md and using targeted searches to identify entries that lead to assignment-rich syllabi.

Browse the Master Course Index in README.md

The bulk of the course data lives in [README.md](https://github.com/Developer-Y/cs-video-courses/blob/master/README.md). Each entry appears as a Markdown bullet containing a hyperlink that directs you to the original course homepage, typically hosted on university OCW sites, YouTube playlists, or institutional portals.

To find programming assignments:

  1. Open the raw README.md file on GitHub
  2. Scan the Markdown links for course titles that interest you
  3. Click through to the course's external homepage
  4. Look for "Syllabus," "Assignments," or "Projects" sections on the destination site

These external pages host the actual problem sets, coding projects, and lab specifications referenced by the repository. While [CONTRIBUTING.md](https://github.com/Developer-Y/cs-video-courses/blob/master/CONTRIBUTING.md) provides guidelines for adding new courses, the README.md file remains the primary index for discovering existing content.

Consult NOTES.md for Assignment Clues

[NOTES.md](https://github.com/Developer-Y/cs-video-courses/blob/master/NOTES.md) explains the repository's data model and explicitly mentions that "syllabus/notes/assignments" are reachable via the linked URLs. This file confirms that while assignments are not embedded directly in the repository, the provided links lead to course structures that include them.

Reviewing this documentation helps you understand that you should treat each link as a gateway to the full course experience, including weekly problem sets and programming exercises.

Search for Explicit Assignment Keywords

Although most assignment materials reside externally, the repository occasionally includes the word "assignment" in entry descriptions or comments. You can surface these references using local grep commands or GitHub's search interface.

Run this command in your local clone to find any explicit mentions:

grep -iR "assignment" . | cut -d: -f1,2

This outputs the file path and line number where the term appears (for example, NOTES.md:4), allowing you to jump directly to relevant entries.

For a programmatic approach using the GitHub Search API:

curl -s "https://api.github.com/search/code?q=assignment+repo:Developer-Y/cs-video-courses" |
jq '.items[] | {path: .path, line: .html_url}'

The JSON response lists files containing the keyword (such as NOTES.md) along with direct links to the specific lines on GitHub.

Automate Discovery with Python

To systematically identify courses likely to contain programming assignments, you can parse README.md programmatically and filter URLs for common assignment-related path patterns.

The following script fetches the raw repository data and extracts links pointing to assignment sections:

import re
import requests
from urllib.parse import urljoin

# 1️⃣  Load the raw README from GitHub

raw_url = ("https://raw.githubusercontent.com/Developer-Y/"
           "cs-video-courses/master/README.md")
text = requests.get(raw_url).text

# 2️⃣  Extract Markdown links: [title](url)

links = re.findall(r'\[([^\]]+)\]\((https?://[^\)]+)\)', text)

# 3️⃣  Filter for URLs that look like they host assignments

assignment_links = []
for title, url in links:
    # Common patterns used by universities for assignment pages

    if re.search(r'/assign|/hw|/project|/lab', url, re.IGNORECASE):
        assignment_links.append((title, url))

# 4️⃣  Show the candidates

for title, url in assignment_links:
    print(f"{title}: {url}")

How it works:

  • Lines 6-8: Retrieves the live README.md content directly from GitHub's raw content domain
  • Line 11: Uses a regular expression to capture all Markdown link structures [title](url)
  • Lines 16-17: Filters URLs containing typical academic assignment path fragments (assign, hw, project, lab)
  • Lines 20-21: Outputs the filtered list of course titles and their assignment-page URLs

This automation saves time when scanning hundreds of entries for hands-on coding content.

Validate Through Course Syllabi

Once you identify a candidate link using the methods above, open the URL in a browser and navigate to the course syllabus. Most university OCW sites organize content by week or module, listing problem sets, labs, and project specifications directly alongside the video lectures.

Look for these specific page elements:

  • Weekly Assignments tabs or sections
  • Problem Sets with downloadable PDFs or starter code
  • Projects requiring implementation submissions
  • Labs with hands-on programming exercises

Summary

  • The cs-video-courses repository functions as a curated index of external course links rather than a host for assignment files
  • Primary source: Inspect README.md for the master list of course links pointing to external assignment materials
  • Documentation: Check NOTES.md for confirmation that assignments are accessible through the provided URLs
  • Search techniques: Use grep locally or the GitHub Search API to find entries explicitly mentioning "assignment"
  • Automation: Parse README.md with Python to filter URLs containing /assign/, /hw/, /project/, or /lab/ patterns
  • Validation: Visit the linked course pages and locate syllabus sections that list programming assignments

Frequently Asked Questions

Does the cs-video-courses repository store actual programming assignments?

No. According to the repository structure documented in NOTES.md, the project stores curated links to external course materials. The actual programming assignments, problem sets, and project specifications reside on the university OCW sites, YouTube descriptions, or course portals that the links point to. You must visit these external URLs to access the hands-on coding content.

How can I quickly filter hundreds of courses to find those with coding projects?

Use the Python script provided in the automation section to programmatically scan README.md. The script filters URLs for common assignment-related path fragments such as /assignments/, /homeworks/, /projects/, or /labs/. This automated approach identifies course links likely to contain programming work without manually clicking through each entry.

What file should I check to understand how course assignments are organized in this repository?

Refer to NOTES.md at the repository root. This file explains the data model and explicitly states that "syllabus/notes/assignments" are reachable via the linked URLs. It provides the conceptual framework for understanding that the repository serves as a directory to full course experiences, including their practical programming components.

Can I use GitHub's search to find courses with assignments directly?

Yes, but with limitations. You can use the GitHub Search API to find occurrences of the word "assignment" within the repository files, as shown in the curl example. However, since most assignment content is external, this search only finds entries where the maintainer explicitly mentioned assignments in the description. For comprehensive discovery, combine this with URL pattern filtering and manual syllabus inspection.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →