CS3211 - Parallel and Concurrent Programming: Admin Information
CS3211 - Parallel and Concurrent Programming: Admin Information
Concurrent Programming
Admin Information
Teaching Staff – Lecturer
• Dr. Cristina Carbunaru
• Contact Information:
5 [ CS3210 - AY2122S1 - L0 ]
Teaching Assistants
• Hao Wei Tee
• Thomas Tan
• Zongran Mo
• Keven Loo
• Gary Lim
CS3211 L0 - Admin 6
Overview
• CS3211 teaches the challenging field of parallel and concurrent programming
• At the end of the module
• Understand and confidently use concurrency in major programming paradigms popular nowadays
• Write programs understanding the concurrency overhead
• Understand safety constraints, robustness, and
• Know the differences among different concurrency paradigms.
CS3211 L0 - Admin 7
Not just one topic…
• Cover new parallel and concurrent programming paradigms and programming languages
• C++20
• Go Lang
• Rust
• Full set of principles and challenges that need to be followed and addressed in any piece of concurrent
software.
CS3211 L0 - Admin 8
Concurrency is pervasive
• Not only in the real-world
• Our computers have
• Several cores + several types of memories
• Operating system
• Compilers
• Programming languages
• Concurrent code often runs in parallel
CS3211 L0 - Admin 9
Learning Outcomes
By the end of the module, the students should be able to
• explain the concurrent programming challenges.
• define and correctly use different synchronization mechanisms.
• apply concurrent programming principles in programs in different
programming languages.
• define and identify different issues in the concurrent programs.
• adapt the concurrent programming principles to new programming languages
or paradigms.
CS3211 L0 - Admin 10
Assessment
• 5% - Tutorial attendance
• 15% - Quizzes
• 40% - 3 Assignments
• Modern C++ (C++20) ~20%
• Golang ~ 10%
• Rust ~ 10%
• 40% - In-person open-book final exam
CS3211 L0 - Admin 11
Week Lecture Tutorial / Lab Deadlines
Tue, 12-2pm (Wed-Thu)
2
Tentative schedule – aka Topics covered
Introduction to Concurrency
Threads, Tasks and Shared Memory T0: Startup with Modern C++
11 (If time allows: Model-checking for Concurrent Programs) T8: Flexible (Rust) Release A3
CS3211 L0 - Admin 13