Skip to content

Commit

Permalink
[COURSE] Add KAIST CS431: Concurrent Programming (#514)
Browse files Browse the repository at this point in the history
  • Loading branch information
Qi-Zhan committed Oct 3, 2023
1 parent c14dde8 commit 6b3482e
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
22 changes: 22 additions & 0 deletions docs/编程入门/cs431.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# CS431: Concurrent Programming

## Descriptions

- Offered by: KAIST
- Prerequisites: Basic Understanding of Concurrency and Rust Programming
- Programming Languages: Rust
- Difficulty: 🌟🌟🌟🌟
- Class Hour: 50 hours

CS431 is a course about concurrent programming, mainly using Rust. The course consists of two parts: theory and practice. The theory part focuses on building a programming model under concurrent situations, while the practice part mainly focuses on understanding the implementation principles of locks and lock-free data structures in Rust-related libraries.

This course is accompanied by a series of assignments with small code size but not simple to consolidate your understanding of concurrent programming, from the design of concurrent safe cache and linked list based on locks, to lock-free hash table and the famous [hazard pointer](https://ieeexplore.ieee.org/document/1291819). Like many high-quality courses, these assignments are of high quality and come with detailed local tests, which are suitable for self-study.

This course is much more in-depth than I expected. The knowledge I know about spin locks and mutex locks is the most basic in this course, while the introduction of promising semantics, memory model and lock-free data structures gives me a deeper understanding of concurrency and Rust.

## Course Resources

- Course Website:[Website](https://github.com/kaist-cp/cs431)
- Recordings:[Youtube](https://www.youtube.com/playlist?list=PL5aMzERQ_OZ9j40DJNlsem2qAGoFbfwb4)
- Textbooks: [Slides](https://docs.google.com/presentation/d/1NMg08N1LUNDPuMxNZ-UMbdH13p8LXgMM3esbWRMowhU/edit?usp=sharing)
- Assignments: [Homework](https://github.com/kaist-cp/cs431/tree/main/homework)
22 changes: 22 additions & 0 deletions docs/编程入门/cs431.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# CS431: Concurrent Programming

## 课程简介

- 所属大学:KAIST
- 先修要求:Rust 编程基础与对并发的初步了解
- 编程语言:Rust
- 课程难度:🌟🌟🌟🌟
- 预计学时:50 小时

CS431是一门讨论并发编程的课程,主要使用 Rust 语言。课程内容主要包括理论与实践两个部分。理论部分聚焦于建立并发情形下的编程模型,而实践部分则主要是理解 Rust 相关库中锁与无锁数据结构的实现原理。

这门课程同时配有一系列代码量不大但并不简单的作业来巩固你对并发编程的理解,从基于锁的并发安全缓存设计和链表,到无锁的哈希表和著名的 [hazard pointer](https://ieeexplore.ieee.org/document/1291819). 和众多高质量课程一样,这些作业质量较高且配有详细的本地测试,适合自学。

这门课程比我预想的要深入的多,我所知晓的关于自旋锁,互斥锁的知识在该门课程中都是最基础的,而对于 promising semantics, 访存模型和无锁数据结构的介绍让我对并发和 Rust 都有更深入的理解。

## 课程资源

- 课程网站:[Website](https://github.com/kaist-cp/cs431)
- 课程视频:[Youtube](https://www.youtube.com/playlist?list=PL5aMzERQ_OZ9j40DJNlsem2qAGoFbfwb4)
- 课程教材:[Slides](https://docs.google.com/presentation/d/1NMg08N1LUNDPuMxNZ-UMbdH13p8LXgMM3esbWRMowhU/edit?usp=sharing)
- 课程作业:[Homework](https://github.com/kaist-cp/cs431/tree/main/homework)
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ nav:
- "AmirKabir University of Technology AP1400-2: Advanced Programming": "编程入门/AUT1400.md"
- "Haskell MOOC": "编程入门/Haskell-MOOC.md"
- "Cornell CS3110: OCaml Programming Correct + Efficient + Beautiful": "编程入门/CS3110.md"
- "KAIST CS431: Concurrent Programming": "编程入门/cs431.md"
- 电子基础:
- "EE16A&B: Designing Information Devices and Systems I&II": "电子基础/EE16.md"
- "UCB EE120 : Signal and Systems": "电子基础/signal.md"
Expand Down

0 comments on commit 6b3482e

Please sign in to comment.