0% found this document useful (0 votes)
120 views10 pages

CS3211 - Parallel and Concurrent Programming: Admin Information

This document provides administrative information for the course CS3211 - Parallel and Concurrent Programming, including the teaching staff, teaching assistants, an overview of what the course covers including parallel programming paradigms like C++20, Go Lang and Rust, and how students will be assessed with assignments, quizzes and a final exam. The course aims to help students understand concurrency challenges, use synchronization mechanisms, and apply parallel programming principles across different languages.

Uploaded by

Caiyi Xu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
120 views10 pages

CS3211 - Parallel and Concurrent Programming: Admin Information

This document provides administrative information for the course CS3211 - Parallel and Concurrent Programming, including the teaching staff, teaching assistants, an overview of what the course covers including parallel programming paradigms like C++20, Go Lang and Rust, and how students will be assessed with assignments, quizzes and a final exam. The course aims to help students understand concurrency challenges, use synchronization mechanisms, and apply parallel programming principles across different languages.

Uploaded by

Caiyi Xu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

CS3211 – Parallel and

Concurrent Programming
Admin Information
Teaching Staff – Lecturer
• Dr. Cristina Carbunaru
• Contact Information:

Phone number: 65168850


Email: [email protected]

• Comments / suggestions welcome

• Email in advance to book a consultation slot

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.

Concurrent programming is pervasive nowadays


and software development should be carefully crafted with this in mind.

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++

3 Synchronization Primitives T1: Threads and Synchronization in C++ Release A1

4 PH: CNY PH: CNY


(Recorded make-up lecture if needed)

5 Lock-free Programming T2: Atomics in C++

6 Problems in Concurrent Programs T3: Solving concurrency bugs in C++


(Debugging)

Recess Fri, 2pm - Assignment 1

7 Concurrency with Go Coroutines T4: Introduction to Golang Release A2

8 Communication T5: Synchronization in Go


in concurrent programs

9 Synchronization Problems T6: Comparison of Different Synchro Problems in C++ / Go

10 Safety in Rust T7: Introduction to Rust Fri, 2pm - Assignment 2

11 (If time allows: Model-checking for Concurrent Programs) T8: Flexible (Rust) Release A3

12 Introduction to Distributed Systems T9: Recap

13 Recap Fri, 2pm - Assignment 3

Exam In-person Open-book Exam 5 May, 9am - Exam


CS3211 L0 - Admin 12
Minimal overlap with other modules
• CS3210
• CS4231
•?

CS3211 L0 - Admin 13

You might also like