UniMate AI

COMP3151

并发编程基础

6 学分难度 超难

课程定位 COMP3151 是 UNSW 计算机专业在‘高性能与可靠性’领域的进阶硬核课。在多核 CPU 普及的今天,单线程代码已经无法发挥硬件性能。这门课教你不仅是‘开线程’,而是教你如何‘管理复杂性’。它解决了计算机科学中最令人头秃的问题:竞态条件、死锁及非确定性错误。它是通往分布式系统架构师、高频交易系统开发及云平台后端岗位的绝对基石。它不仅是编程课,更是一门关于‘同步逻辑’的哲学与数学课。 技术栈与学习内容 课程基于‘共享内存’与‘消息传递’两大范式。核心技术栈包括:Java 并发工具包 (Locks, Semaphores, Monitors)、以及用于形式化验证的 Promela 建模语言与 SPIN 检查器。学习内容涵盖:互斥协议的严格证明(Peterson 算法)、无锁 (Lock-free) 数据结构、线性化 (Linearizability) 定义、同步原语的实现细节、以及基于 CSP 模型的分布式通信。课程极其强调‘形式化建模’,要求学生利用数学工具证明代码的正确性。 课程结构 10 周理论高压与模型验证结合。前期死磕互斥理论与经典同步难题,中期转向高阶的 Promela 建模,后期深入分布式并发逻辑。评估由每周的‘智力脱发’级 Lab、两个极具挑战性的项目(Assignment,通常涉及编写复杂的同步协议并用 SPIN 证明其无死锁)、以及一场极其考验思维严密性的期末大考组成。该课极其强调‘逻辑的一致性’。 适合人群 计算机专业大三学生、对多线程底层感兴趣的同学。必须具备扎实的 COMP1521 (系统基础) 功底。如果你逻辑感极强、享受从几万种可能执行路径中寻找那一处错误,这门课会让你感到智力的快感。建议每周投入 20 小时以上进行模型验证与调试。

Course decision

选课先看

先看考核重心、截止节奏和入门要求,再决定这门课是否适合你的学期安排。

考核总权重

100%

3 项考核

最高单项

40%

Final Examination

期末考试

以官方 outline 为准

Hurdle

1 项

需要单独满足

Deadline map

考核时间线

按截止周排列作业节点;持续考核会保留在下方完整考核结构中。

Week 9

System Verification Project

35%

独立为一个复杂的分布式或多线程系统建立形式化模型,并证明其满足特定的活性与安全性需求。

Week 10

Weekly Modeling Labs

25%

利用 Promela 或 Java 实现特定的同步难题(如读写者问题),要求代码经过 SPIN 验证无误。

Week 11

Final Examination

40%

综合考察同步协议推导、线性化判定及 LTL 逻辑证明的深度笔试,含大量逻辑分析题。

Syllabus

每周大纲

默认只展示每周独有的知识重点;节奏、考核、Tutorial 和避坑信息按需展开。

  1. 1

    并发导论与基本模型

    非确定性执行,Interleaving 语义,共享内存模型,阿姆达尔定律 (Amdahl's Law)。

  2. 2

    互斥协议 (Mutual Exclusion)

    Peterson 算法,Bakery 算法,安全度 (Safety) 与活性 (Liveness) 的形式化证明。

  3. 3

    同步原语:信号量与管程

    Semaphores 深度应用,Monitor 模型及其在 Java 中的实现,条件变量控制逻辑。

  4. 4

    形式化验证:Promela 入门

    Spin 工具链,LTL 逻辑,模型检查 (Model Checking) 原理,如何搜索状态空间。

  5. 5

    无锁算法与线性化

    CAS 指令,Lock-free 队列实现,线性化点 (Linearization point) 的判定准则。

  6. 6

    灵活性周 (Flex Week)

    复习互斥理论,冲刺第一个高难 Promela 建模 Assignment。

  7. 7

    消息传递模型 (CSP)

    Go 语言风格的并发模型,Channel 通信,同步 vs 异步消息传递。

  8. 8

    死锁、活锁与饥饿

    资源分配图分析,死锁检测算法,如何设计公平的调度策略。

  9. 9

    分布式并发基础

    逻辑时钟,向量时钟,分布式互斥算法(Ricart-Agrawala),Paxos 初步概念。

  10. 10

    全课大复盘与机考模拟

    从硬件原子性到软件正确性的闭环;全学期高难考点串讲。

Assessment

考核结构

Weekly Modeling Labs

利用 Promela 或 Java 实现特定的同步难题(如读写者问题),要求代码经过 SPIN 验证无误。

25%

Week 10

System Verification Project

独立为一个复杂的分布式或多线程系统建立形式化模型,并证明其满足特定的活性与安全性需求。

35%

Week 9

Final ExaminationHurdle

综合考察同步协议推导、线性化判定及 LTL 逻辑证明的深度笔试,含大量逻辑分析题。

40%

Week 11

From Seniors

学长留下的

基础信息谁都查得到,真正值钱的是过来人的经验。

学姐说

比你早一年的学长留下的真实经验 —— ChatGPT 给不了。

这门课还没有学长经验,你可以是第一个 —— 注册后在课内分享。

往年考点 / 踩坑

这门课暂无往年考点记录。

毕业生去向(整体)

下面是匠人学院毕业生整体去过的公司分布(来自脱敏校友证言)。这是全平台的总体去向,不代表选这门课的人一定去这些公司。

统计自 317 份脱敏校友证言

Deloitte

6 位校友

岗位:Graduate Program · Graduate Consulting · Platform Engineer · Web developer · Platform engineer

Zerologix

4 位校友

岗位:Frontend Dev · junior frontend developer · Front-end Developer · Full Stack Developer

Servian

4 位校友

岗位:Full-stack Developer · Data Engineer · Consultant

关于这块数据,我们说实话

雇主墙来自脱敏毕业生证言(testimonials)的整体分布,无法关联到具体学员或其所选课程;仅作为毕业生去向的总体社会证明展示。

我们没有"某位学长选了这门课、后来进了哪家公司"这种可查询的个人去向档案 —— 校友证言是脱敏的,无法关联到具体的人或他选过的课。所以这里只给整体分布,不给个人路径,不编。