Main Categories of CS Courses in PKUFlyingPig/cs-self-learning: The Complete 2024 Guide

The cs-self-learning repository organizes computer science education into 23 distinct course categories ranging from foundational mathematics to advanced deep learning, all defined as hierarchical headings in docs/CS学习规划.md.

The PKUFlyingPig/cs-self-learning repository serves as a comprehensive bilingual roadmap for self-taught computer science students. Its curriculum structure categorizes university-level CS education into logical learning tracks, making it easy to navigate from basic programming to cutting-edge machine learning research. The main categories of CS courses are explicitly enumerated as level-3 markdown headings in the central planning document.

The 23 Main Categories of CS Courses

The learning roadmap in docs/CS学习规划.md defines 23 primary course categories using ### level headings. These categories progress from theoretical foundations to specialized applications.

Mathematical Foundations

The roadmap dedicates three distinct tiers to mathematics:

  • 数学基础 (Mathematical Foundations) – Essential math for CS undergraduates
  • 数学进阶 (Advanced Mathematics) – Linear algebra, probability, and discrete math
  • 数学高阶 (Higher Mathematics) – Graduate-level mathematical methods and optimization

Core Computer Science

Building from programming basics to systems architecture:

  • 编程入门 (Programming Introduction) – First programming courses in languages like Python and C
  • 电子基础 (Electronics Fundamentals) – Digital logic and circuit basics
  • 数据结构与算法 (Data Structures and Algorithms) – Core algorithmic thinking and complexity analysis
  • 软件工程 (Software Engineering) – Development methodologies, testing, and project management
  • 体系结构 (Computer Architecture) – CPU design, memory hierarchies, and hardware/software interface

Systems and Infrastructure

Deep systems programming tracks:

  • 系统入门 (Systems Introduction) – Preparatory systems courses bridging hardware and software
  • 操作系统 (Operating Systems) – Kernel design, concurrency, and system programming
  • 并行与分布式系统 (Parallel and Distributed Systems) – Scalable system design and cloud computing
  • 系统安全 (System Security) – Security engineering, cryptography, and vulnerability analysis
  • 计算机网络 (Computer Networks) – Network protocols, TCP/IP stack, and architecture
  • 数据库系统 (Database Systems) – Data management, SQL engines, and storage internals
  • 编译原理 (Compilers) – Language processing, parsing, and code optimization

Application and Specialized Domains

Practical and emerging fields:

  • Web 开发 (Web Development) – Full-stack development and modern web frameworks
  • 计算机图形学 (Computer Graphics) – Rendering pipelines, geometric modeling, and simulation
  • 数据科学 (Data Science) – Statistical computing, data analysis, and visualization

Artificial Intelligence Track

A five-tier progression from general AI to specific deep learning domains:

  • 人工智能 (Artificial Intelligence) – Classical AI, search algorithms, and knowledge representation
  • 机器学习 (Machine Learning) – Supervised and unsupervised learning theory
  • 深度学习 (Deep Learning) – Neural network architectures and training methodologies
  • 深度学习系统 (Deep Learning Systems) – ML infrastructure, frameworks, and hardware acceleration
  • 深度生成模型 (Deep Generative Models) – GANs, VAEs, diffusion models, and generative AI

How Categories Are Defined in the Source Code

Each category originates as a level-3 heading (###) in the markdown source. The repository explicitly excludes "PC 端环境配置" (PC Environment Setup) and "服务器端环境配置" (Server Environment Setup) from academic course listings, as these sections contain configuration guides rather than curricular content.

The hierarchical structure in docs/CS学习规划.md follows this pattern:


### 数学基础

Course recommendations and links...

### 编程入门

Course recommendations and links...

This flat hierarchy under the main planning document allows the static site generator (configured in mkdocs.yml) to render each category as a navigable section linking to specific course recommendations.

Extracting Course Categories Programmatically

You can parse the roadmap structure directly from the repository files. Below are two methods to extract the complete list of categories.

Python Extraction Script

This script reads docs/CS学习规划.md and filters out the environment setup sections:

import re
from pathlib import Path

# Path to the markdown file inside the cloned repository

md_path = Path(
    "/__modal/volumes/vo-cSqLfqnnIwYXEonuEJnnZa/"
    "repos/github.com/PKUFlyingPig/cs-self-learning/master/docs/CS学习规划.md"
)

# Read the whole file

content = md_path.read_text(encoding="utf-8")

# Find all lines that start with exactly three #'s followed by a space

categories = re.findall(r"^###\s+(.*)", content, flags=re.MULTILINE)

# Filter out the two environment‑setup sections

skip = {"PC 端环境配置", "服务器端环境配置"}
filtered = [c for c in categories if c not in skip]

print("Main CS course categories:")
for c in filtered:
    print(f"- {c}")

Bash One-Liner

For quick terminal inspection:

grep -E '^### ' docs/CS学习规划.md \

| grep -v -E 'PC 端环境配置|服务器端环境配置' \
| cut -c5-

Both methods return the 23-category list in the order they appear in the roadmap, preserving the intended learning progression from mathematics to specialized AI domains.

Key Repository Files Supporting the Category Structure

File Purpose
docs/CS学习规划.md Central roadmap defining all 23 categories and linking to specific courses
mkdocs.yml Site configuration rendering the markdown structure into a searchable knowledge base
README.md Repository overview and entry point to the learning roadmap
template.md Standardized template for adding new courses to existing categories

Summary

  • The cs-self-learning repository defines 23 main categories of CS courses in docs/CS学习规划.md.
  • Categories span mathematics, programming, systems, applications, and AI, ordered by progressive difficulty.
  • Each category is implemented as a ### heading in the markdown source, excluding two environment setup sections.
  • The structure supports both manual navigation and programmatic extraction using regex patterns on the source files.

Frequently Asked Questions

How many course categories does the cs-self-learning repository contain?

The repository contains 23 main categories of computer science courses, ranging from mathematical foundations to deep generative models. This count excludes the two environment configuration sections (PC and server setup) that appear as headings but do not contain curricular content.

Where are the course categories officially defined?

All categories are defined as level-3 markdown headings (###) in the file docs/CS学习规划.md. This file serves as the master roadmap, with each heading introducing a subject area followed by links to recommended courses, textbooks, and video lectures.

What is the difference between 数学基础, 数学进阶, and 数学高阶?

These represent three ascending tiers of mathematical preparation. 数学基础 covers essential undergraduate calculus and discrete math; 数学进阶 includes linear algebra, probability theory, and formal methods; 数学高阶 addresses graduate-level topics like optimization, advanced algorithms, and theoretical computer science mathematics.

Can I contribute a new course to an existing category?

Yes. The repository uses template.md as a standardized format for new course entries. Contributors add course details following this template and place them under the appropriate ### category heading in docs/CS学习规划.md, ensuring consistency with the existing 23-category taxonomy.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →