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

> Discover programming assignment courses in the cs-video-courses repository. Learn how to filter GitHub links for assignments homeworks or projects within the README file.

- Repository: [Developer-Y/cs-video-courses](https://github.com/Developer-Y/cs-video-courses)
- Tags: how-to-guide
- Published: 2026-03-02

---

**You can locate courses with programming assignments by browsing the curated links in [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/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`](https://github.com/Developer-Y/cs-video-courses/blob/main/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/main/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`](https://github.com/Developer-Y/cs-video-courses/blob/main/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/main/CONTRIBUTING.md)](https://github.com/Developer-Y/cs-video-courses/blob/master/CONTRIBUTING.md)** provides guidelines for adding new courses, the [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/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/main/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.

### Local Grep Search

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

```bash
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.

### GitHub API Search

For a programmatic approach using the GitHub Search API:

```bash
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`](https://github.com/Developer-Y/cs-video-courses/blob/main/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`](https://github.com/Developer-Y/cs-video-courses/blob/main/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:

```python
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`](https://github.com/Developer-Y/cs-video-courses/blob/main/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`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) for the master list of course links pointing to external assignment materials
- **Documentation:** Check [`NOTES.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/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`](https://github.com/Developer-Y/cs-video-courses/blob/main/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`](https://github.com/Developer-Y/cs-video-courses/blob/main/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`](https://github.com/Developer-Y/cs-video-courses/blob/main/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`](https://github.com/Developer-Y/cs-video-courses/blob/main/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.