Course Description

In this course, students will learn to design/implement complicated system-level software in the C/C++ programming language and understand the internal architecture of unix/linux.

Important Notes

  • The class will be offline.
  • We will also run live over Zoom and record the lectures and upload the video on youtube, but please use them for exceptions.
  • We will use piazza for announcements and asking questions, but no KLMS.
  • To contact TAs, please use ee309@googlegroups.com instead of individual emails.

Lectures :

Meeting Time Meeting Place
Mon/Wed
09:00~10:30
EE309 Kim Beang-Ho Kim Sam-Youl ITC Building (N1) #113

Professors :

Name Office Hours Office Email
Insu Yun Wed 10:30 - 11:30 N1, 812 insuyun@kaist.ac.kr

Schedule:

Week Date Class / Assignment Slides
1 8/28 Mon Intro [Slides]
8/30 Wed EE209 Review 1 [Slides]
2 9/04 Mon EE209 Review 2
9/06 Wed File I/O [Slides]
3 9/11 Mon Files and Directories [Slides]
Precept: Assignment #1 [Slides]
9/13 Wed Allocation (Basic) [Slides]
4 9/18 Mon Allocation (Advanced) [Slides]
9/20 Wed Allocation (Practice) [Slides]
5 9/25 Mon Buffer overflow 1 [Slides]
Precept: Assignment #2 [Slides]
9/27 Wed Buffer overflow 2
9/29 Fri Due: Assignment #1
6 10/02 Mon Special holiday - no class
10/04 Wed Buffer overflow 3
7 10/09 Mon Hangul Day (Hangul Proclamation Day) - no class
10/11 Wed Network Programming 1 [Slides]
8 10/16 Mon Midterm week
10/18 Wed Midterm week
10/20 Fri Due: Assignment #2
9 10/23 Mon Network Programming 2 [Slides]
Precept: Assignment #3 [Slides]
10/25 Wed Network Programming 3
10 10/30 Mon Concurrent Programming 1 [Slides]
11/01 Wed Synchronization (Basic) [Slides]
11 11/06 Mon Synchronization (Advanced) [Slides]
Precept: Assignment #4 TBA
Due: Assignment #3
11/08 Wed Classical Encryption [Slides]
12 11/13 Mon Pseudoranomdness [Slides]
11/15 Wed OTPs, PRNGs, and proving security [Slides]
13 11/20 Mon Block ciphers [Slides]
11/22 Wed MACs and hashes [Slides]
11/24 Fri Due: Assignment #4
14 11/27 Mon Authenticated encryption [Slides]
11/29 Wed Undergraduate interview - no class
15 12/04 Mon Public key crypto [Slides]
12/06 Wed Modern systems [Slides]
16 12/11 Mon Finals week
12/13 Wed Finals week
12/15 Fri Due: Assignment #5

Teaching Assistants :

Name
Eunkyu Lee (Head TA) Dongok Kim


Textbooks:

Main

Highly recommended books


Computer Systems: A Programmer's Perspective (3rd Edition), by Randal Bryant and DaviO'Hallaron, Pearson 2015

Advanced Programming in the UNIX Environment (3rd Edition), by W. Stevens and Stephen Rago, Addison-Wesley 2013

Linux System Programming: Talking Directly to the Kernel and C Library, by Robert Love, O'Relly 2013

Understanding the Linux Kernel (3rd Edition) by Daniel Bovet and Marco Cesati, O'Reilly 2005

Introduction to Modern Cryptography (3rd edition), by Jonathan Katz and Yehuda Lindell, CRC Press 2020