Computer systems
CS-202
Media
CS-202 Introduction to Computer Systems | Lundi | Spring 25
17.02.2025, 15:29
60933
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
28.05.2025, 11:54
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
17.02.2025, 15:48
CS-202 Introduction to Computer Systems | Lundi | Spring 25
26.05.2025, 11:39
CS-202 Introduction to Computer Systems | Lundi | Spring 25
17.02.2025, 15:29
Special Topic 2 : Virtualization
21.05.2025, 11:41
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
21.05.2025, 11:49
L11 - DNS & P2P applications
20.05.2025, 18:04
Special Topic 1 : Parallelism & Concurrency
19.05.2025, 11:11
CS-202 Introduction to Computer Systems | Lundi | Spring 25
19.05.2025, 11:44
L17- The Link Layer
14.05.2025, 11:11
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
14.05.2025, 11:51
L16 - Routing & BGP
12.05.2025, 11:37
CS-202 Introduction to Computer Systems | Lundi | Spring 25
12.05.2025, 11:42
L15 - Forwarding and IP
07.05.2025, 11:43
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
07.05.2025, 11:49
L14 - Transport layer & TCP
05.05.2025, 11:37
CS-202 Introduction to Computer Systems | Lundi | Spring 25
05.05.2025, 11:44
L13 - Internet Performance
28.04.2025, 11:09
CS-202 Introduction to Computer Systems | Lundi | Spring 25
28.04.2025, 11:41
L12 - Network system calls & the Internet
16.04.2025, 11:42
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
16.04.2025, 11:48
L10 - Client/server and the Web
09.04.2025, 11:10
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
09.04.2025, 11:48
Intermediate Recap III (Q&A)
07.04.2025, 11:38
CS-202 Introduction to Computer Systems | Lundi | Spring 25
07.04.2025, 11:39
Intermediate Recap II
02.04.2025, 11:13
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
02.04.2025, 11:50
Intermediate Recap I
31.03.2025, 11:37
CS-202 Introduction to Computer Systems | Lundi | Spring 25
31.03.2025, 11:44
L09 - CPU Scheduling
24.03.2025, 11:11
CS-202 Introduction to Computer Systems | Lundi | Spring 25
24.03.2025, 11:45
L08 - IO
19.03.2025, 11:13
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
19.03.2025, 11:50
L07 - File System II
17.03.2025, 11:11
CS-202 Introduction to Computer Systems | Lundi | Spring 25
17.03.2025, 11:45
L06 - File System I
12.03.2025, 11:12
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
12.03.2025, 11:50
L05 - Paging
05.03.2025, 11:13
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
05.03.2025, 11:52
L04 - Memory
03.03.2025, 11:38
CS-202 Introduction to Computer Systems | Lundi | Spring 25
03.03.2025, 11:43
L03 - Sharing the CPU
24.02.2025, 11:10
CS-202 Introduction to Computer Systems | Lundi | Spring 25
24.02.2025, 11:45
L02 - All about processes
19.02.2025, 11:42
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
19.02.2025, 11:48
Case study: in-place tokenization
15.03.2024, 17:10
argc & argv: example
06.03.2024, 22:10
argc & argv
06.03.2024, 22:10
L99.arch-essentials.mp4
06.03.2024, 22:05
Makefiles
28.02.2024, 22:21
more on header files
28.02.2024, 22:01
[opt] linker & loader explained
28.02.2024, 21:49
separate compilation
28.02.2024, 21:40
L20.4-VMM construction
23.02.2024, 14:39
L20.3-virtual machines
23.02.2024, 14:39
L20.2-aggregation
23.02.2024, 14:39
L20.1-virtualization
23.02.2024, 14:37
ptr4-bonus-1: flexible array member
23.02.2024, 14:31
ptr4-3: sizeof
18.02.2024, 20:39
ptr4-2: pointer arithmetic
18.02.2024, 19:30
ptr4-1: pointers and arrays
18.02.2024, 17:45
ptr3-5: casting
16.02.2024, 13:15
ptr3-4: recap on type reading
16.02.2024, 12:24
ptr3-3: pointers to functions and genericity (void*)
16.02.2024, 12:23
ptr3-2: strings 2: tool functions
16.02.2024, 10:47
ptr3-1: strings 1: intro + initialisation
16.02.2024, 10:05
ptr2-8: case study (dyntab) part 2
14.02.2024, 17:28
ptr2-7: realloc
14.02.2024, 16:59
ptr2-6: case study (dyntab) part 1: context
14.02.2024, 16:53
ptr2-5: initialization and good practice
14.02.2024, 16:35
ptr2-4: example (malloc + free)
14.02.2024, 16:32
ptr2-3: free
14.02.2024, 15:38
ptr2-2: malloc & calloc
14.02.2024, 15:22
ptr2-1: intro to dynamic allocation
14.02.2024, 14:35
basics-1: intro; C language; compilation
12.02.2024, 16:20
basics-10: file IO
10.02.2024, 18:41
basics-9: standard IO
10.02.2024, 18:40
basics-5: functions
10.02.2024, 18:03
basics-8: more types and keywords
10.02.2024, 17:01
basics-7: enum, typdef and struct
10.02.2024, 16:49
basics-6: arrays
10.02.2024, 16:43
basics-2: variables and types
10.02.2024, 16:24
basics-bonus-1: ++x versus x++
10.02.2024, 16:07
basics-4 : control structures
10.02.2024, 16:04
basics-3 : operators
10.02.2024, 16:02
ptr1-6: pointer versus reference
29.01.2024, 21:03
ptr1-5: pointers and const
29.01.2024, 20:53
ptr1-4: pass by reference
29.01.2024, 20:45
ptr1-3: pointers in C
29.01.2024, 20:30
ptr1-2: pointer = address storage
29.01.2024, 20:24
ptr1-1: what use is a pointer?
29.01.2024, 19:59
L19.04-pthread_mutex.mp4
29.01.2024, 17:10
L19.03-lockingprimitives.mp4
29.01.2024, 17:10
L19.02-threadabstraction.mp4
29.01.2024, 17:10
L19.01-concurrency.mp4
29.01.2024, 17:10
L08.4-fsperf.mp4
29.01.2024, 17:09
L08.3-HDD.mp4
29.01.2024, 17:09
L08.2-devicedrivers.mp4
29.01.2024, 17:09
L08.1-iodevices.mp4
29.01.2024, 17:09
L07.4-filesystems.mp4
29.01.2024, 17:09
L07.3-mount.mp4
29.01.2024, 17:09
L07.2-FSabstraction.mp4
29.01.2024, 17:09
L07.1-IOstack.mp4
29.01.2024, 17:08
L06.4-COW and swapping.mp4
29.01.2024, 17:08
L06.3-TLB.mp4
29.01.2024, 17:08
L06.2-page tables.mp4
29.01.2024, 17:08
L06.1-page-based-VM.mp4
29.01.2024, 17:08
L05.4-fragmentation-segmentation.mp4
29.01.2024, 17:07
L05.3-case for VM.mp4
29.01.2024, 17:07
L05.2-Address space abstraction.mp4
29.01.2024, 17:07
L05.1-Intro to memory.mp4
29.01.2024, 17:07
L04.4-MLFQ.mp4
29.01.2024, 17:07
L04.3-Policies.mp4
29.01.2024, 17:07
L04.2-Internals and Metrics.mp4
29.01.2024, 17:07
L04.1-scheduling mechanisms.mp4
29.01.2024, 17:06
L03.4-Interrupts.mp4
29.01.2024, 17:06
L03.3-System calls.mp4
29.01.2024, 17:06
L03.2-Limited Direct Execution.mp4
29.01.2024, 17:06
L03.1-Isolation and Protection.mp4
29.01.2024, 17:06
L02-4-shell redirection
29.01.2024, 16:59
L02-3-fork illustrated
29.01.2024, 16:59
L02-2-process states
29.01.2024, 16:59
L02-1-process abstraction
29.01.2024, 16:58
L01-4-OS as Glue
29.01.2024, 16:58
L01-3-Referee
29.01.2024, 16:58
L01-2-Illusionist
29.01.2024, 16:57
L01-1-Role of OS
29.01.2024, 16:56
CS-202 Introduction to Computer Systems | Wednesday | Spring 25
17.02.2025, 15:48
General Information
Where and When:
- Monday lectures: 9:15am-11:00am; STCC Room C, except April 14 and May 26: room to be announced;
- Monday exercices: 1:15pm-3:00pm; CO-02[013] + INF[12] + CO260
- Wednesday lectures: 9:15am-11:00am; auditorium RLC E1 240 (aka Rolex);
- Wednesday exercices: 1:15pm-3:00pm; CO-02[013] + INF[23] + CO5
Live-streaming:
- Monday lectures: https://mediaspace.epfl.ch/media/0_wtoko2tr
- Wednesday lectures: https://mediaspace.epfl.ch/media/0_7wzga0k8
- and past recordings can be found on our usual channel: https://mediaspace.epfl.ch/channel/channelid/60933
Project:
Important dates:
- Quizzes: every week (Wednesday -- Sunday)
- C bootcamp assessment: Wednesday March 12th 1:15pm-2:00pm or 2:15-3:00 (45 min per student)
- Midterm: Monday April 7th 1:15pm-3:00pm (1:45)
- Project deadline 1: Sunday May 4th 11:59pm
- Project deadline 2: Sunday June 1st 11:59pm
- Final Exam:
TBD (3:00)
Grading Scheme:
- Project (P): 25% bootcamp + 25% first deliverable + 50% final deliverable
(and also questions in final exam; see E below) - Midtem (M): about weeks 1-6
- Weekly quizzes (Q)
- Final exam (E): about everything; 8% of which about the project
- Total: 60% E + 20% P + 15 % M + 5% Q
Tentative semester schedule: (updated May 24th)

News/Discussions:
Week 01 - Introduction, Processes, C boot camp (1/3)
- Logistics (Google slides) (URL)
- Lecture 01: Introduction (Google slides, script in notes) (URL)
- Lecture 02: All about processes (Google slides, script in notes) (URL)
- C Bootcamp instructions/pedagogy (Page)
- C01 - Basics: slides (File)
- C01a - Basics: videos part 1/2 (URL)
- C01b - Basics: videos part 2/2 (URL)
- Exercices Week 01 (both Monday and Wednesday) (File)
- Solutions to Exercises Week 01 (File)
- Recap video: Computer Architecture Essentials (18:50) (URL)
Week 02 - Sharing the CPU, L01-L03 exercises, C boot camp (2/3)
This Wednesday morning, instead of a lecture, we will have an exercise session in rooms AAC008, AAC014 and AAC231 .
- L03: Sharing the CPU (Google slides, script in notes) (URL)
- Feedback on Lecture 03 (Feedback)
- C02 - Pointers 1& 2: basics (File)
- C02a - Pointers 1/4: what are pointers and what are they for? (URL)
- C02b - Pointers 2/4: dynamic allocation (URL)
- Exercises Week 02, Monday and Wednesday afternoon (File)
- Solution to Exercises Week 02, Mon and Wed afternoon (File)
- Exercises Week 02, Wednesday morning (L01 - L03) (File)
- Solutions to Exercises Week 02, Wednesday morning (L01 - L03) (File)
Week 03 - Memory, C boot camp (3/3)
- Lecture 04: Memory (Google slides, script in notes) (URL)
- Feedback on Lecture 04 (Feedback)
- Lecture 05: Paging (Google slides) (URL)
- Feedback on Lecture 05 (Feedback)
- C03 - [video slides] Pointers 3 & 4: complements (strings, pointer arithm., ptr vs array, ...) (File)
- C03a - Pointers 3/4: char*, function pointers, casting (URL)
- C03b - Pointers 4/4: pointers versus arrays, pointer arithmetics, sizeof[, flexible array members (optional)] (URL)
- Exercices week03 (both Monday and Wednesday) (File)
- Solution to the exercices (week 03) (File)
Week 04 - Memory exercises, File systems (1/2), C bootcamp assignement and project warmup
This Monday morning, instead of a lecture, we will have an exercise session in rooms CO-020, CO-021, INF 1 and INF 3.
- Lecture 06: File Systems I (Google slides) (URL)
- Feedback on Lecture 06 (Feedback)
- Exercises Week 04, Monday morning (L04 - L05) (File)
- Solutions to Exercises Week 04, Monday morning (L04 - L05) (File)
- [optional] C case study video: in-place tokenization (URL)
- [optional] C case study: in-place tokenization (starting code) (File)
- C case study (in-place tokenization): solution (File)
- C: Separate compilation (slides) (File)
Week 05 - File systems (2/2), I/O
- Lecture 07: File Systems II (Google slides) (URL)
- Feedback on Lecture 07 (Feedback)
- Lecture 08: IO (Google slides) (URL)
- Feedback on Lecture 08 (Feedback)
- Exercises Week05, Monday afternoon (L06-L07) (File)
- Solutions to Exercises Week05, Monday afternoon (L06-L07)) (File)
Week 06 - Scheduling & Catch-up exercises
This Wednesday morning, instead of a lecture, we will have an exercise session in rooms AAC008, AAC014, AAC020, and AAC108.
- Lecture 09: Scheduling (Google slides) (URL)
- Feedback on Lecture 09 (Feedback)
- Exercises Week06, Monday afternoon (L08-L09) (File)
- Solutions to Exercises Week 06, Monday afternoon (L08 - L09) (File)
Week 07 - Midterm preparation
- Intermediate recap I (Google slides) (URL)
- Intermediate recap II (Google slides) (URL)
- Last year midterm (File)
- Last year midterm solution (File)
- Express study guide (doesn't cover C) (Page)
Week 08 - Midterm + Client/server & the web
- Lecture 10: Client/server & the web (Google slides, with script) (URL)
- Midterm solution (File)
- Midterm grading scale (Page)
Week 09 - DNS + Network syscalls & the Internet
This Monday morning, the lecture will be on zoom, because STCC is occupied.
- Lecture 11 zoom link (URL)
- Lecture 11: DNS (& P2P) (Google slides, with script) (URL)
- Lecture 11 recording (URL)
- Lecture 12: Network syscalls & the Internet (Google slides, with script) (URL)
- Exercises Week09, Monday afternoon (L10-L11) (File)
- Solutions to Exercises Week09, Monday afternoon (L10-L11) (File)
- Workload feedback (Feedback)
Easter break
Week 10 - Internet performance
This Wednesday morning, instead of a lecture, we will have an exercise session in AAC0 14, AAC0 20, AAC1 08 and AAC2 031.
- Lecture 13, previously (Google slides) (URL)
- Lecture 13, main part (PDF, with script) (URL)
- Exercises Week10, Mon afternoon + Wed morning (L12-L13) (File)
- Solutions to Exercises Week10, Mon afternoon + Wed morning (L12-L13) (File)
Week 11 - Transport layer & TCP, Network layer & IP
- Lecture 14: Transport layer & TCP (Google slides, with script) (URL)
- Lecture 15: Forwarding & IP (KeyNote, script as notes) (URL)
- Lecture 15: IP forwarding & IP (PDF, script as notes) (URL)
- Exercises Week 11, Monday afternoon (L14) (File)
- Solutions to Exercises Week11, Mon afternoon (L14) (File)
Week 12 - Routing & BGP, Link layer & Ethernet
- Lecture 16: Routing & BGP (KeyNote, script as notes) (URL)
- Lecture 16: Routing & BGP (PDF with script) (URL)
- Lecture 17: The Link Layer & Ethernet (Keynote, script as notes) (URL)
- Lecture 17: Link layer & Ethernet (PDF with script) (URL)
- Exercises Week 12, Monday afternoon (L15-L16) (File)
- Solutions to Exercises Week 12, Monday afternoon (L15-16) (File)
Week 13 - Parallelism & Concurrency, Machine virtualization
- Special topic I: Parallelism & Concurrency (URL)
- Special topc II: Virtualization (URL)
- Exercises, Week 13, Monday afternoon (L17) (File)
- Solutions to Exercises Week 13, Monday afternoon (L17) (File)
Week 14 - Recap
The Monday lecture is online at https://epfl.zoom.us/my/katerina.argyraki
- Monday recap, part I (URL)
- Monday recap, part II (URL)
- Monday lecture recording (URL)
- Exercises Week 14, Monday afternoon (L18) (File)
- Solutions to Exercises Week 14, Monday afternoon (L18) (File)
- Zone texte et média (Text and media area)
Final exam preparation
- Should CompSys be mandatory for SysCom? (Questionnaire)
- Express study guide (Page)
- Final Exam 2024 (File)
- Final exam 2024 solution (File)
- Past Computer Networks exams (Folder)
- 2023 C Course final exam (File)
- 2023 C Course final exam SOLUTION (File)
- Midterm 2025 (File)
- Final Exam 2025 (File)
Resources
- Explicit list of lecture recordings (2025) (Page)
- C A C primer; C reference manual. (Text and media area)
- Explicit list of C bootcamp videos (Page)
- C Summary slides (File)
- C codes (Page)
- All raw files (Folder)