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 kaist-ee309@googlegroups.com instead of individual emails.

Lectures :

Meeting Time Meeting Place
Tue/Thu
09:00~10:30
EE309 Kim Beang-Ho Kim Sam-Youl ITC Building (N1) #102

Professors :

Name Office Email
Insu Yun N1, 812 insuyun@kaist.ac.kr

Schedule:

Week Date Class / Assignment Slides
1 09/03 Tue Intro Slides
1 09/05 Thu EE209 Review 1 Slides
2 09/10 Tue No class (Business trip)
2 09/12 Thu EE209 Review 2 Slides
3 09/17 Tue Chuseok, Korean Thanksgiving
3 09/19 Thu File I/O Slides
4 09/24 Tue Files and Directories Slides
4 09/26 Thu Files and Directories
Precept: Assignment #1 Slides
5 10/01 Tue Temporary holiday (Armed Forces Day)
5 10/03 Thu National Foundation Day of Korea
6 10/08 Tue Allocation (Basic) Slides
6 10/10 Thu Allocation (Advanced) Slides
6 10/11 Fri Due: Assignment #1
7 10/15 Tue Allocation (Practice) Slides
Precept: Assignment #2 Slides
7 10/17 Thu
8 10/22 Tue No midterm!
8 10/24 Thu No midterm!
9 10/29 Tue Buffer overflow
9 10/31 Thu DEP & ASLR
9 11/01 Fri Due: Assignment #2
10 11/05 Tue Return-oriented programming (ROP)
10 11/07 Thu Network Programming 1
Precept: Assignment #3
11 11/12 Tue Network Programming 2
11 11/14 Thu Network Programming 3
12 11/19 Tue Concurrent Programming
12 11/21 Thu Synchronization (Basic)
12 11/22 Fri Due: Assignment #3
13 11/26 Tue Synchronization (Advanced)
13 11/28 Thu No class (Undergraduate Interview)
14 12/03 Tue TBA
Precept: Assignment #4
14 12/05 Thu TBA
15 12/10 Tue TBA
15 12/12 Thu TBA
15 12/12 Thu Due: Assignment #4
16 12/17 Tue Final exam!
16 12/19 Thu Final exam!

Teaching Assistants :

Name
Eunkyu Lee (Head TA) Dongok Kim

Office hours

  • Instructor: 09:00 - 10:00, Friday, N1 812, by appointment
  • TAs: 14:00 - 15:00, Wednesday, N1 819

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