Course Description

This course provides the basic background necessary to understand the design and implementation of software components that support modern computer systems. The course covers C programming, machine organization, assembly language, and design, testing and debugging of software components as well as portions of operating systems concepts. Students will also learn how to use text editors, compilers, linkers, debuggers, and other software tools.

Important Notes

  • This class will be online and run live over Zoom.
  • However, all the exams (midterm/final) will be conducted offline.
  • We will use Campuswire and KLMS. You must register via email invitation. Contact TAs if you have not received a Campuswire invitation email.
  • To contact TAs, please use ee209@hacking.kaist.ac.kr instead of individual emails.
  • We will not answer emails sent to individuals.

Lectures :

Meeting Time Meeting Place
Mon/Wed
10:30~11:45
EE209A Zoom
EE209B Zoom

Professors :

Name Office Hours Office Email
Songmin Kim (EE209A) Mon/Wed 11:45-12:15 (class Zoom), or by appointment N1, 913 songmin@kaist.ac.kr
Insu Yun (EE209B) By appointment N1, 812 insuyun@kaist.ac.kr

Schedule:

Week Date Class / Assignment Slides
1 8/29 Mon Intro
8/31 Wed Numbers & Data Types
2 9/5 Mon Expressions, Control Flow & C Examples
9/7 Wed Functions
9/9 Fri Due: Assignment #0
3 9/12 Mon Chuseok - no class
9/14 Wed Scope & Array Strings
4 9/19 Mon Pointers
9/21 Wed Structures & Dynamic Memory Allocations
9/23 Fri Due: Assignment #1
5 9/26 Mon Testing
9/28 Wed Debugging
6 10/3 Mon Gaecheonjeol - no class
10/5 Wed Linked List
7 10/10 Mon Hangul Day (Alternative) - no class
10/12 Wed Hash Table
10/14 Fri Due: Assignment #2
8 10/17 Mon Midterm week
10/19 Wed Midterm week
9 10/24 Mon Modularity
10/26 Wed Assembly 1
10 10/31 Mon Assembly 2
11/2 Wed Assembly Functions
11/4 Fri Due: Assignment #3
11 11/7 Mon Assemblers & Linkers
11/9 Wed Assemblers & Linkers
12 11/14 Mon Exceptions & Processes
11/16 Wed Memory Management
13 11/21 Mon Dynamic Memory Management
11/23 Wed I/O Management
11/25 Fri Due: Assignment #4
14 11/28 Mon Process Management
11/30 Wed Undergraduate Admission Interview - no class
15 12/5 Mon Signals
12/7 Wed Performance
16 12/12 Mon Finals week
12/14 Wed Finals week
12/16 Fri Due: Assignment #5

Teaching Assistants :

Name
Namjo Ahn (Head TA) Geonha Park Hyeonho Shin Hankyul Moon Junseok Seo
Chanho Lee Yeongbin Hwang Sangmin Woo Beomseok Oh SeungHoon Cha
Jaehong Kim Yunheon Lee Hanyeoreum Bae Dongseok Oh Yunhyeok Choi
Beomsik Park Minkyoo Song Jaehan Kim Youngjin Jin Jooyoung Ryu
Siheon Park Kyusang Jo Juncheol Ye Uitaek Hong Jaehyoung Park

Assignments:

Assignment 0 Assignment 1 Assignment 2 Assignment 3 Assignment 4 Assignment 5
TA Minkyoo Song Geonha Park Yeongbin Hwang Beomseok Oh Junseok Seo Yunhyeok Choi
Jaehan Kim Hyeonho Shin Sangmin Woo SeungHoon Cha Chanho Lee Beomsik Park
Youngjin Jin Siheon Park Jaehong Kim Hanyeoreum Bae Juncheol Ye
Jooyoung Ryu Kyusang Jo Yunheon Lee Dongseok Oh Uitaek Hong
Jaehyoung Park

Office hour:

Professors' office hours

  • Start the email subject with [EE209].
  • Set up an appointment by contacting the professor via email.
    • E.g., "Hello Professor XXX" is not a good email subject, but "[EE209] Office hour registration" is.

TA office hours

  • Office hours are held offline by default. However, if you would like to schedule an online meeting instead, let us know in advance by emailing us at ee209@hacking.kaist.ac.kr.
  • Visit this spreadsheet to sign up for office hours. You can still visit TAs during office hours even if you hadn't written down your name in advance, but we'd like to get a grasp of how many students will visit in advance.

Textbooks:

Main

Highly recommended books


C Programming: A Modern Approach (2nd Edition), by K.N. King, Norton & Co. 2008

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

The C Programming Language (2nd Edition), by Brian Kernighan and Dennis Ritchie, Prentic Hall 1988

The Practice of Programming, by Brian Kernighan and Rob Pike, Addison-Wesley 1999

Programming with GNU Software, by Michael K. Loukides & Andrew Oram, O'Reilly 1996