# cs-video-courses User Guide

**What this is:** A maintained index of **748+ free online video lectures for university-level Computer Science courses**, organized into 43 topic categories. Every entry links directly to the original source — a university site, YouTube playlist, or OpenCourseWare archive.

It is **not** a course platform, a MOOC aggregator, or a video host.

---

## 1. Quick Start

**Get to the list in one step:**

```text
https://github.com/Developer-Y/cs-video-courses
```

The entire catalog is the `README.md` file on that page. Everything is on one scroll — click a category in the table of contents at the top, or press `Ctrl+F` / `Cmd+F` to search by professor name, course number, or topic.

> [!TIP]
> If you already know what you want (e.g. "MIT 6.006" or "Andrew Ng"), browser in-page search is faster than scrolling. Open the README and press `Ctrl+F`.

**Key features:**
- 748+ courses from MIT, Stanford, CMU, UC Berkeley, Princeton, Harvard, IIT, and dozens of other universities
- 43 topic categories from Intro CS to Quantum Computing
- No registration, no paywall — every listed link is directly watchable
- Description-free entries — the list is designed for fast scanning, not reading
- Community-maintained via GitHub pull requests

**Prerequisites:** A browser and internet access. No software to install.

---

## 2. How to Browse the List

The canonical entry point is `README.md` in the root of the repository. Three ways to find a course:

1. **Table of contents** — every category is linked at the top of the README. Click the topic (e.g. "Machine Learning", "Database Systems") and jump there.
2. **Browser in-page search** — search for a course number (`CS 186`), a professor's name (`Andrew Ng`), a university abbreviation (`MIT`, `CMU`), or a keyword (`dynamic programming`). Fastest when you know what you want.
3. **Read `NOTES.md` first** if you are new. It explains the entry format and link policy.

> [!NOTE]
> GitHub's "outline" button in the file viewer renders the table of contents as a sidebar — useful for navigating 43 categories on mobile or screen readers.

---

## 3. Reading a Course Entry

Entries are markdown bullets following a consistent format:

```text
- [<Course-Number> - <Course-Name> - <Year/Semester> - <Prof Name> - <University>](<link>) ([Video Playlist](<videos>))
```

### What the metadata means

| Field | Example | Purpose |
|---|---|---|
| Course number | `CS 186`, `6.006`, `COMP6991` | Each university uses its own code. Useful for finding notes and exams on the course's own site. |
| Course name | `Introduction to Algorithms` | Human-readable topic. |
| Year / semester | `Fall 2020`, `Spring 2011` | Prefer more recent offerings — they reflect current tooling. |
| Prof name | `Erik Demaine`, `Andrew Ng` | Different instructors teach the same course very differently. |
| University | `MIT`, `Stanford`, `UC Berkeley`, `IIT Kanpur` | Indicates the course's home and usual rigor. |
| Primary link | Course page on the university site | Authoritative source for syllabus, readings, problem sets. |
| Optional video link | YouTube playlist, OCW archive | Direct playable video when the primary page does not embed lectures. |

### Why descriptions are missing

The list is deliberately description-free. From `NOTES.md`: 80–90% of courses on the same topic overlap heavily in content, subjective reviews do not scale to 700+ entries, and descriptions turn a 15-page index into a 60-page index. If you want a description, open the course's own link — every university page has its own syllabus.

> [!TIP]
> Try the first two lectures of a course before committing. Different professors diverge on notation, depth, and pacing. The first hour usually tells you whether the course suits you.

---

## 4. Full Category Directory

The list groups 748+ courses into 43 categories arranged roughly foundational → specialist.

### Foundations

| # | Category | What you will find |
|---|---|---|
| 1 | Introduction to Computer Science | First-year programming (Python, Racket, Scheme, C++), CS50, 6.0001/6.001, BJC |
| 2 | Data Structures and Algorithms | Arrays/lists/trees/graphs, algorithm analysis, advanced algorithms |
| 3 | Math for Computer Scientist | Discrete math, linear algebra, probability, information theory, logic |

### Systems

| # | Category | What you will find |
|---|---|---|
| 4 | Systems Programming: Operating Systems | xv6, Linux internals, scheduling, virtual memory |
| 5 | Systems Programming: Distributed Systems | MIT 6.824, Paxos/Raft, MapReduce, consensus |
| 6 | Systems Programming: Real-Time Systems | Scheduling, worst-case execution time, embedded real-time |
| 7 | Database Systems | CMU 15-445, Berkeley CS 186, query optimization, transactions |
| 8 | Computer Networks | Stanford CS 144, TCP/IP, routing, network security |
| 9 | Computer Organization and Architecture | CPU design, memory hierarchy, ISA, parallelism |
| 10 | Embedded Systems | Microcontrollers, firmware, IoT architectures |
| 11 | Real time system evaluation | Benchmarking, profiling, verification of real-time software |

### Software Engineering

| # | Category | What you will find |
|---|---|---|
| 12 | Software Engineering: Object Oriented Design | Patterns, SOLID, encapsulation, inheritance hierarchies |
| 13 | Software Engineering: Software Engineering | Process, testing, requirements, team workflow |
| 14 | Software Engineering: Software Architecture | Large-system design, microservices, architectural styles |
| 15 | Software Engineering: Concurrency | Threading, locks, message-passing, async/await |
| 16 | Software Engineering: Mobile Application Development | iOS, Android, cross-platform frameworks |

### AI / ML / Data

| # | Category | What you will find |
|---|---|---|
| 17 | Artificial Intelligence | Search, planning, constraint satisfaction, knowledge representation |
| 18 | Machine Learning: Introduction to Machine Learning | Andrew Ng, Tibshirani, foundational ML courses |
| 19 | Machine Learning: Data Mining | Frequent patterns, clustering at scale, stream mining |
| 20 | Machine Learning: Probabilistic Graphical Modeling | Bayes nets, Markov random fields, variational inference |
| 21 | Machine Learning: Deep Learning | CNNs, RNNs, transformers, foundation-model training |
| 22 | Machine Learning: Reinforcement Learning | David Silver's course, DeepMind lectures, policy gradients |
| 23 | Machine Learning: Advanced Machine Learning | Graduate-level topics, theory, modern architectures |
| 24 | Machine Learning: Natural Language Processing | CS 224N, classic NLP, neural NLP, attention |
| 25 | Machine Learning: Generative AI and LLMs | LLM training, RLHF, prompt engineering, model internals |
| 26 | Machine Learning: Computer Vision | Classic CV, CS 231N, 3D vision, generative imagery |
| 27 | Machine Learning: Time Series Analysis | Forecasting, state-space models, econometrics crossover |
| 28 | Machine Learning: Optimization | Convex optimization, Boyd's course, non-convex methods |
| 29 | Machine Learning: Unsupervised Learning | Clustering, dimensionality reduction, generative models |
| 30 | Machine Learning: Misc Machine Learning Topics | Specialized ML subtopics that don't fit the other buckets |
| 31 | Image Processing and Computer Vision | Pre-ML image processing, classical CV algorithms |

### Specialized / Interdisciplinary

| # | Category | What you will find |
|---|---|---|
| 32 | Web Programming and Internet Technologies | Stanford CS 142, full-stack web, web protocols |
| 33 | Theoretical CS and Programming Languages | Complexity, computability, types, compilers, PL semantics |
| 34 | Security | Applied cryptography, systems security, web security, reverse engineering |
| 35 | Computer Graphics | Rendering, shaders, animation, simulation |
| 36 | Computational Physics | Numerical methods for physics, simulation |
| 37 | Computational Biology | Sequence alignment, phylogenetics, protein structure |
| 38 | Quantum Computing | Quantum algorithms, complexity, error correction |
| 39 | Robotics and Control | Kinematics, control theory, SLAM, perception |
| 40 | Computational Finance | Pricing, risk, Monte Carlo, stochastic calculus |
| 41 | Network Science | Graph structure in real networks, epidemics, community detection |
| 42 | Blockchain Development | Cryptocurrencies, smart contracts, consensus protocols |
| 43 | Misc | Anything that defies the other categories |

---

## 5. Highlights by Category

Widely-cited entry points from each major area — popular first stops, not the only or "best" entries.

### Introduction to CS
- CS 50 (Harvard, David Malan) — the single most recommended intro course on the internet.
- 6.0001 / 6.001 (MIT) — Python and SICP/Scheme. 6.001 is the classic "SICP" course.
- CS 61A (UC Berkeley) — Structure and Interpretation of Computer Programs, Python edition.

### Data Structures & Algorithms
- MIT 6.006 — Erik Demaine's introduction to algorithms.
- Robert Sedgewick's Princeton algorithm courses.
- MIT 6.046 (advanced algorithms).

### Operating Systems
- MIT 6.828 / 6.S081 — xv6, the definitive hands-on OS course.
- CMU 15-410 — kernel project course.

### Distributed Systems
- MIT 6.824 (Robert Morris) — the distributed-systems course of record.
- Stanford CS 244B.

### Databases
- CMU 15-445 (Andy Pavlo) — relational internals, query optimization, storage.
- Berkeley CS 186.

### Machine Learning
- Stanford CS 229 (Andrew Ng).
- Stanford CS 231N (computer vision).
- Stanford CS 224N (NLP).
- David Silver's RL course (DeepMind).
- Stephen Boyd's Convex Optimization course.

### Compilers / PL Theory
- Stanford CS 143 (Aiken).
- CMU 15-150 (functional programming).

### Security
- MIT 6.858 (Computer Systems Security).
- Stanford CS 253 (Web Security).
- Applied Cryptography from Christof Paar.

### Quantum Computing
- MIT 8.370x / 18.435.
- Peter Shor's lectures.
- Scott Aaronson's courses.

> [!NOTE]
> The list does not grade or review courses — it lists them. Quality and teaching style vary between professors and universities. Try the first couple of lectures from a few options before committing.

---

## 6. Picking a Course to Start With

The list does not prescribe an order, but it links to several official curriculum guides you can use as scaffolding:

- **[MIT EECS Curriculum](https://www.eecs.mit.edu/academics/undergraduate-programs/curriculum/)** — MIT's undergraduate course prerequisites.
- **[Stanford Program Sheets](https://cs.stanford.edu/degrees/ug/ProgramSheets.shtml)** — Stanford's CS major requirements by track (AI, systems, theory, etc.).

### A pragmatic self-study path

If you are starting from scratch:

1. **Intro programming** — CS 50 or 6.0001.
2. **Discrete math** — any of the Math for CS courses.
3. **Data structures & algorithms** — MIT 6.006.
4. **Computer systems** — CS 61C (Berkeley) or an equivalent architecture course.
5. **Operating systems** — MIT 6.828 or 6.S081.
6. **Databases** — CMU 15-445.
7. **Networks** — Stanford CS 144.
8. **Distributed systems** — MIT 6.824.
9. **Specialize** — pick the category (ML, security, graphics, PL) that matches your goals and go deep.

> [!WARNING]
> Watching without coding leaves 80% of the value on the table. Most courses assume you have done the lab and problem-set work yourself. A course watched passively is a course incompletely learned.

---

## 7. Contributing

Contributions are welcome. The full contract is in `CONTRIBUTING.md`, summarized here.

### What is accepted
- **University-level courses** with comprehensive lecture material covering a subject in ample detail.
- **Direct video links** — the videos must be playable without registration or platform signup.

### What is rejected
- 4–5 hour MOOCs that skim a topic.
- Small tutorials, bootcamp ads, YouTube channel promotions.
- Courses whose videos are only accessible through a paid platform.
- Empty issues filed to pad a GitHub contributor count (spammers are blocked).

### Entry format to follow

```text
- [<Course-Number> - <Course-Name> - <Year> - <Prof Name> - <University/Platform>](<link>) ([Video Playlist](<link>))
```

Match the spacing, separator, and link structure of the surrounding entries exactly.

### Submitting the PR

1. Fork the repo.
2. Edit `README.md`.
3. Open a pull request on `master`.
4. Describe briefly *why* the course qualifies (which university, what level, what topics it covers).

The maintainer reviews PRs directly — there is no bot or CI check.

> [!IMPORTANT]
> Pull requests fixing dead links are preferred over filing issues. If you find a broken link, submit the fix directly rather than reporting it.

---

## 8. Reporting Broken or Dead Links

- Open a GitHub issue.
- Title it clearly: `Broken link: <Course Number> <University>`.
- Paste the broken URL and, if found, the new or archived URL.
- Link to a Wayback Machine snapshot (`web.archive.org`) if the video is gone entirely — the list preserves the historical record for high-quality lectures.

---

## 9. Requesting a Course Takedown (for professors)

If you are a professor and your course is listed, you can have it removed. From `NOTES.md`:

> If you are University Professor for any course listed in this repository and You would like your course to be removed from the list, please raise a pull request with comment stating its your content and you would like it to be removed.

The process:
1. Open a pull request removing the specific line for your course from `README.md`.
2. In the PR description, state that the course is yours and that you are requesting removal.
3. The maintainer will review and merge.

---

## 10. FAQ

**Q: Is this an "awesome" list?**

Effectively yes — it follows the same pattern (curated, README-only, GitHub-hosted, PR-driven) as the `awesome-*` ecosystem, though it is not formally branded `awesome-cs-courses`.

**Q: Why are there no ratings or reviews?**

From `NOTES.md`: the maintainer rejected descriptions and reviews because they do not scale, introduce subjectivity, and triple the file size without meaningfully improving discoverability. Use the course's own site for syllabi and reviews.

**Q: Do all courses have free video access?**

Yes, by policy. The list rejects entries that require registration before you can watch. If you find a link that has become paywalled, report it as broken.

**Q: Are assignments, problem sets, and lecture notes included?**

Not directly. The list points at the course page, where the professor publishes (or does not publish) those materials. When excellent notes exist at a non-obvious URL, contributors sometimes add a second link inline.

**Q: Can I get certificates from these courses?**

Not from this list. For certificates you need to enroll officially with the university, edX, Coursera, etc.

**Q: The README is huge — is there a searchable site?**

Only GitHub's own file viewer (which supports browser in-page search) and the outline panel. There is no separate website.

**Q: How often is it updated?**

Via community pull requests whenever new courses appear or old ones change URL. The commit history shows the cadence.

**Q: I'm not a CS student — can I use this?**

Yes. Self-learners, engineers re-skilling, data scientists filling in CS foundations, and mathematicians crossing over all use the list. Start with the introductory sections and treat the prerequisite charts as an implicit learning graph.

**Q: Can I use it offline?**

Clone the repo and you have the full index offline. The actual video lectures are hosted elsewhere and require internet access.

**Q: How do I pick between two courses on the same topic?**

Try the first two lectures of each. The one whose first hour feels clear and well-paced is usually the one you will finish.

---

_Generated May 2026 from Developer-Y/cs-video-courses at fcd263d. AI-generated documentation. The library is checked by sampling (three repositories so far); this guide was not individually reviewed. Verify against the project before relying on it. Unofficial; not affiliated with or reviewed by the project._
