# How to Contribute a New Course to the cs-video-courses List

> Easily contribute a new course to the cs-video-courses list by editing the README.md and submitting a pull request. Follow our simple format and share your favorite computing courses today.

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

---

**To contribute a new course to the cs-video-courses list, edit [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) to add a markdown list entry under the appropriate topic section following the format `[Title – Institution – Platform] (URL)`, then submit a pull request to the `master` branch.**

The **Developer-Y/cs-video-courses** repository is a curated collection of computer science video lectures maintained as a plain-text markdown document. Because the entire list lives in a single file, contributing a new course requires no code compilation—only precise editing of [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) according to the conventions defined in [`CONTRIBUTING.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/CONTRIBUTING.md).

## Locate the Correct Section in [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)

All courses reside in **[`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)** at the repository root. The file organizes content by topic using ATX headings (e.g., `### Data Structures and Algorithms`, `### Artificial Intelligence`).

1. Open [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md) in your forked repository.
2. Find the heading that matches your course’s primary subject.
3. Identify the insertion point by reviewing the existing list’s academic level progression.

Courses within each section follow a rough ordering from undergraduate to graduate level. Insert your entry in the appropriate position to maintain this hierarchy.

## Format Your Course Entry

Each course is a single unordered list item using standard markdown link syntax. The repository mandates a specific pattern to ensure consistency and searchability.

The required format is:

```markdown
- [Course title – optional subtitle – Institution (Semester/Year) – Platform] (URL)

```

**Critical requirements from [`CONTRIBUTING.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/CONTRIBUTING.md):**
- The URL must point **directly to the video collection or playlist**, not to a course registration page or university portal.
- Use an en-dash (–) or hyphen (-) to separate fields within the title text.
- Precede the entry with a hyphen and space (`- `) to maintain list structure.

**Example entry for a machine learning course:**

```markdown
- [CS 330 – Introduction to Machine Learning – University of XYZ – Fall 2024 – YouTube] \
  (https://www.youtube.com/playlist?list=PLxxxxxxxxxxxxxxxx)

```

## Preserve Course Ordering

Maintaining logical flow is essential for readability. Within each topical section, entries are roughly sorted by academic progression:

```markdown

### Machine Learning

- [CS 229 – Machine Learning – Stanford – Fall 2023 – YouTube] (https://youtu.be/xxxx)
- [CS 330 – Introduction to Machine Learning – University XYZ – Fall 2024 – YouTube] (https://youtu.be/yyyy)
- [CS 484 – Deep Learning – Carnegie Mellon – Spring 2025 – YouTube] (https://youtu.be/zzzz)

```

Place introductory undergraduate courses earlier in the list, followed by advanced graduate-level content.

## Submit Your Contribution via Pull Request

After editing [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md), submit your changes through the standard GitHub workflow. The repository’s CI workflow only verifies that the PR builds successfully; no compilation or test suite execution is required.

**Complete contribution workflow:**

```bash

# 1. Fork the repository via the GitHub web interface

# 2. Clone your fork locally

git clone https://github.com/<your-username>/cs-video-courses.git
cd cs-video-courses

# 3. Create a descriptive branch

git checkout -b add-ml-course

# 4. Edit README.md, inserting your entry under the correct heading

# 5. Stage and commit with a clear message

git add README.md
git commit -m "Add CS 330 – Intro to Machine Learning (University of XYZ) to ML section"

# 6. Push to your fork

git push origin add-ml-course

# 7. Open a Pull Request targeting the upstream master branch

```

Ensure your PR description references the specific course and verifies that the link points directly to video content as mandated by the contribution guidelines.

## Key Files Reference

- **[`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)**: Contains the searchable master list of all video courses, organized by computer science topic.
- **[`CONTRIBUTING.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/CONTRIBUTING.md)**: Defines formatting standards, quality rules, and ordering conventions for new entries.

## Summary

- **Edit [`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)** to add your course; the repository stores all data in this single file.
- **Follow the strict format**: `- [Title – Institution – Platform] (Direct-Video-URL)`.
- **Maintain ordering**: Insert undergraduate courses before graduate-level content within each section.
- **Target the `master` branch** with your pull request; no code compilation is required for the CI check.
- **Reference [`CONTRIBUTING.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/CONTRIBUTING.md)** for detailed quality standards and formatting rules.

## Frequently Asked Questions

### What file do I edit to add a new course?

Edit **[`README.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/README.md)** at the repository root. This file contains the entire curated list, organized by topic sections. Do not create new files or modify other documents unless specifically requested by maintainers.

### What is the exact format required for a course entry?

Use a markdown list item with a structured title and direct URL: `- [Course Title – Institution – Year – Platform] (URL)`. The link must point directly to the video playlist or lecture series, not to a university registration page, according to the rules in [`CONTRIBUTING.md`](https://github.com/Developer-Y/cs-video-courses/blob/main/CONTRIBUTING.md).

### Do I need to run tests or compile code before submitting?

No. The **cs-video-courses** repository contains no executable code. The CI workflow only checks that the pull request builds the repository successfully. However, you should verify that your markdown renders correctly and that all URLs are accessible.

### How are courses organized within each section?

Courses are roughly ordered by academic level, progressing from undergraduate introductions to advanced graduate seminars. When adding a new entry, scan the existing list in that section and insert your course in the appropriate position to maintain this logical flow.