CS-206 / 4 credits

Teacher(s): Odersky Martin, Kashyap Sanidhya

Language: English


Summary

The course introduces parallel programming models, algorithms, and data structures, map-reduce frameworks and their use for data analysis, as well as shared-memory concurrency.

Content

Keywords

Parallelism, threads, synchronization, locks, memory models.

Learning Prerequisites

Required courses

• Functional programming (CS-210)

• Algorithms (CS-250) 

• Computer Architecture (CS-208)

Recommended courses

System oriented programming (CS-207)

Important concepts to start the course

Functional programming and functional data structures

Algorithms and data structures

Learning Outcomes

By the end of the course, the student must be able to:

  • Construct parallel software.
  • Perform tuning parallel software.

Teaching methods

Ex cathedra, labs, exercices

Assessment methods

With continuous control

Resources

Notes/Handbook

Lecture notes, copies of the slides

In the programs

  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Parallelism and concurrency
  • Lecture: 1 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Parallelism and concurrency
  • Lecture: 1 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks
  • Semester: Spring
  • Exam form: During the semester (summer session)
  • Subject examined: Parallelism and concurrency
  • Lecture: 1 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Project: 2 Hour(s) per week x 14 weeks

Reference week

 MoTuWeThFr
8-9     
9-10     
10-11     
11-12     
12-13     
13-14     
14-15     
15-16     
16-17     
17-18     
18-19     
19-20     
20-21     
21-22