# How to Find Courses by a Specific Professor in the cs-video-courses Repository

> Easily find courses by a specific professor in the cs-video-courses repository. Learn how to search the README using GitHub, grep, or Python for quick results.

- 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 all courses taught by a specific professor in the Developer-Y/cs-video-courses repository by searching the [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) file for the instructor's name using GitHub's web interface, local grep commands, or a Python script.**

The **cs-video-courses** repository maintains a curated list of computer science video courses in a single markdown file at the repository root. Because each course entry in [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) includes the professor's name when available (e.g., `Prof. Madhavan Mukund`), you can filter the collection using basic text search techniques.

## How Course Data is Structured in README.md

Every course entry in the repository is stored as a markdown list item inside **[`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)** (in the "Courses" section). Each line contains the course title, description, and instructor attribution when provided.

Unlike structured databases, this plain-text format means professor names are embedded directly in the markdown content rather than separate metadata fields. This design choice simplifies maintenance but requires text-based searching to filter by instructor.

## Method 1: GitHub Web Interface Search

The fastest way to find courses without cloning the repository is using GitHub's built-in code search.

1. Navigate to the repository: `https://github.com/Developer-Y/cs-video-courses`
2. Click the search bar at the top and select **"In this repository"**
3. Type the professor's name (including "Prof." if used in the entry) and press Enter
4. Filter results by clicking **"Code"** to highlight matching lines in [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)

This method highlights every occurrence directly in the browser, showing the full course title and URL context without downloading any files.

## Method 2: Local grep Search

For offline access or integration with shell workflows, clone the repository and use `grep` to search [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) directly.

```bash

# Clone the repository

git clone https://github.com/Developer-Y/cs-video-courses.git
cd cs-video-courses

# Search for a specific professor (case-insensitive)

grep -i "Prof\. Madhavan Mukund" README.md

```

**Sample output:**

```

- [Programming and Data Structures with Python, 2021-2022, Sem I - by Prof. Madhavan Mukund, CMI](https://www.cmi.ac.in/~madhavan/courses/python2021sep/)
- [Advanced Machine Learning, 2021-2022, Sem I - by Prof. Madhavan Mukund, CMI](https://www.cmi.ac.in/~madhavan/courses/aml2021)

```

According to the source code, matches for **Prof. Madhavan Mukund** appear at **line 113** and **line 639** in [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md). The command prints the complete markdown line, including the hyperlinked course title and institution.

## Method 3: Programmatic Parsing with Python

For structured extraction or building a custom course database, parse [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) programmatically to filter by professor.

```python
import re
from pathlib import Path

repo_root = Path("cs-video-courses")
readme = repo_root / "README.md"
professor = "Madhavan Mukund"

with readme.open(encoding="utf-8") as f:
    for i, line in enumerate(f, start=1):
        if re.search(rf"Prof\.? {re.escape(professor)}", line, re.I):
            print(f"L{i}: {line.strip()}")

```

This script enumerates through [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) and uses regular expressions to match professor names with optional abbreviation handling. It outputs line numbers and content, making it easy to extract URLs or build filtered lists programmatically.

## Key Repository Files

When searching for professor-specific content, focus on these root-level files:

- **[`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)** — Contains the master course list where professor names are embedded in markdown list items. This is the primary file to search.
- **[`NOTES.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/NOTES.md)** — Provides collection guidelines and metadata but does not contain the course list itself.
- **[`CONTRIBUTING.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/CONTRIBUTING.md)** — Documents how to add new courses or update existing entries, including professor attribution conventions.

## Summary

- **Course data** in Developer-Y/cs-video-courses lives entirely in [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) as plain markdown list items.
- **GitHub search** provides immediate browser-based filtering without cloning.
- **grep commands** offer fast terminal-based searching with line-specific results (e.g., lines 113 and 639 for Prof. Madhavan Mukund).
- **Python scripts** enable structured extraction and custom filtering for downstream applications.

## Frequently Asked Questions

### Does the repository have a separate database of professors?

No. As implemented in Developer-Y/cs-video-courses, professor names are embedded directly in the markdown text of [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md). There is no separate metadata file or structured database mapping instructors to courses.

### Why do some course entries not show a professor name?

Not all entries include instructor attribution. The repository relies on community contributions, and some submissions may omit professor names or list only the institution. Search results will only include courses where the professor is explicitly named in the markdown.

### Can I use regular expressions to match partial professor names?

Yes. Because the data is plain text, you can use regex patterns in `grep` or Python to match partial names or handle variations (e.g., "Prof. Mukund" vs "Madhavan Mukund"). The Python example above demonstrates using `re.escape()` to safely handle special characters in names.

### Is there an API to query courses by professor?

No. The repository is a static markdown collection hosted on GitHub. To query programmatically, you must parse [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) locally using scripts like the Python example provided, or use GitHub's code search API to query the file contents remotely.