# How to Find Courses That Use Specific Programming Languages in the CS Video Courses Repository

> Easily find CS video courses using specific programming languages. Learn how to search the Developer-Y cs-video-courses repository with grep, Python regex, or GitHub.

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

---

**To find courses that use specific programming languages, search the [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) file in the Developer-Y/cs-video-courses repository for language keywords using `grep`, Python regex, or the GitHub web interface.**

The Developer-Y/cs-video-courses repository aggregates thousands of computer science lectures from universities like MIT, Stanford, and Berkeley in a single, searchable markdown file. Because the entire catalog lives in [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) as plain text with embedded language tags, you can filter courses by programming language using standard text-search tools without needing a database or complex API.

## Searching the Master Course Catalog

The repository stores all course listings in **[`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)** at the root level. Each entry follows a consistent bullet-point pattern:

```

- [Course Title - University] (URL) ... *Programming language(s)*

```

Programming languages—such as **Python**, **C++**, **Java**, or **Rust**—typically appear in the course title or in italics at the end of the line. Since the file is static markdown, the most reliable way to find courses that use specific programming languages is direct keyword search.

## Method 1: Command-Line Search with Grep

### Basic Case-Insensitive Search

Use `grep` with the `-i` flag to perform a case-insensitive search for a single language across the entire catalog:

```bash
grep -i "python" README.md

```

This returns every line mentioning "python", including entries like *CS 61A - Structure and Interpretation of Computer Programs [Python], UC Berkeley* and *6.0001 - Introduction to Computer Science and Programming in Python - MIT OCW*.

### Regex Search for Multiple Languages

To search for several languages simultaneously, use extended regular expressions with the `-E` flag and the `|` operator as an OR delimiter:

```bash
grep -Ei "c\+\+|java|python" README.md

```

This command finds all courses that mention **C++**, **Java**, or **Python** in a single pass, returning the full matching lines from [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md).

## Method 2: Automated Filtering with Python

For reusable queries or formatted output, implement a Python helper script that reads [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) line-by-line using the `re` module:

```python
#!/usr/bin/env python3
import re, pathlib

def find_courses(language: str, path: str = "README.md"):
    pattern = re.compile(language, re.IGNORECASE)
    with open(path, encoding="utf-8") as f:
        for line in f:
            if pattern.search(line):
                print(line.strip())

if __name__ == "__main__":
    # Example: list all Rust courses

    find_courses("rust")

```

Save this script in the repository root and execute it with `python3 script.py "java"` to retrieve all Java-related courses. The script compiles a case-insensitive regex pattern and streams matching lines from the markdown file.

## Method 3: Using the GitHub Web Interface

You can find courses that use specific programming languages directly in the browser without cloning the repository:

1. Navigate to [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) in the Developer-Y/cs-video-courses repository.
2. Press `t` to activate the file finder, then type [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) to open it.
3. Click the **Search file** button in the top-right corner.
4. Enter the language keyword (e.g., `C++`). GitHub highlights every matching occurrence and displays the total count.

Alternatively, use the repository's main search bar, though file-specific search (`t` shortcut) filters results to the catalog file only.

## Understanding Supplementary Files

While [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) contains the primary data, two additional files help interpret the catalog structure:

- **[`NOTES.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/NOTES.md)** – Documents formatting conventions and explains how programming languages are annotated in course entries.
- **[`CONTRIBUTING.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/CONTRIBUTING.md)** – Provides guidelines for contributors, detailing the standard entry style when adding new courses with specific language tags.

Consult these files if you need to understand edge cases, such as courses that use multiple languages or unconventional naming schemes.

## Summary

- The **Developer-Y/cs-video-courses** repository stores all courses in a single file: **[`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)**.
- Use **`grep -i "language"`** for quick command-line filtering.
- Use **`grep -Ei "lang1|lang2"`** to search for multiple programming languages at once.
- Implement a **Python regex script** for automated, reusable searches across the catalog.
- Use the **GitHub web interface** (`t` shortcut) to search without downloading the repository.

## Frequently Asked Questions

### What file contains the complete list of courses?

The entire catalog resides in **[`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)** at the repository root. This single markdown file contains every course entry as a bullet point with hyperlinks and language annotations.

### Can I search for multiple programming languages simultaneously?

Yes. Use `grep` with the `-E` flag for extended regex support, allowing you to chain languages with the pipe character: `grep -Ei "python|go|rust" README.md`. This returns all courses mentioning any of the specified languages.

### Is there an API or database to query courses programmatically?

No. The repository uses a **static markdown file** architecture. There is no REST API, database, or JSON index. All queries are performed as plain-text searches against [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md), which makes the repository portable and version-controlled.

### How are programming languages indicated in course entries?

Programming languages typically appear in **square brackets** within the course title (e.g., `[Python]`) or in **italics** at the end of the entry line (e.g., `*C++*`). The [`CONTRIBUTING.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/CONTRIBUTING.md) file specifies these formatting conventions for maintainers.