跳转至

算法编程

写代码和设计算法是所有工程研究的基础工具。这个板块从编程语言入门到算法分析,覆盖做硬件研究也需要掌握的软件能力。

课程关系

graph LR
    subgraph E[编程入门]
        direction TB
        P[Python]
        C[C / C++]
        R[Rust]
    end
    E --> A[数据结构与算法]
    A --> L[编程语言设计与分析]

    classDef intro fill:#EFF6FF,stroke:#3B82F6,stroke-width:1.5px
    classDef core fill:#F0FDF4,stroke:#16A34A,stroke-width:2px
    classDef adv fill:#F8FAFC,stroke:#64748B,stroke-width:1.5px
    class E,P,C,R intro
    class A core
    class L adv

三个子板块构成一条直线,编程入门 → 数据结构与算法 → 编程语言设计与分析,依次递进。编程入门内部的几门语言(Python、C/C++、Rust)相互独立,选一门主修即可。


编程入门 — Python、C/C++、Rust;选一门语言打扎实基础。对微电子研究者来说 Python(数据处理、ML 框架)和 C++(硬件仿真器、EDA 工具开发)最常用。

数据结构与算法 — CS61B、MIT 6.006、Algorithms Iⅈ图算法、动态规划、复杂度分析;EDA 算法研究的直接前置,也是系统类研究的通用工具。

编程语言设计与分析 — 类型系统、程序分析、形式验证;与编译原理和硬件验证研究有交叉。

相关科研方向

对应科研方向 推荐子板块 为什么
EDA 与设计自动化 数据结构与算法 EDA 本质是图算法 + 大型 C++ 工程,Yosys/OpenROAD 都是百万行级代码
处理器架构与编译系统 编程语言设计与分析 LLVM/MLIR/TVM 的本体就是程序分析
硬件安全与可信计算 编程语言设计与分析 侧信道分析与形式验证依赖类型系统、抽象解释
AI 算法与系统 编程入门 (Python) + 数据结构 PyTorch 生态全部 Python,算法功底决定上限
任何方向 编程入门 写得清楚的代码是合作和可复现性的基础——所有方向都需要