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 kaist.ee209.ta@gmail.com instead of individual emails.
  • We will not answer emails sent to individuals.

Lectures :


Professors :

Name Office Hours Office Email
Minsoo Rhu (EE209A) By appointment N1, 809 minsoo.rhu@gmail.com
Dongsu Han (EE209B) By appointment N1, 814 dhan.ee@kaist.ac.kr

Schedule:

Week Date Class / Assignment Slides
1 2/28 Mon Intro [slides-A]
[slides-B]
3/2 Wed Numbers & Data Types [slides-A]
[slides-B]
2 3/7 Mon Expressions, Control Flow & C Examples [slides-A]
[slides-B]
3/9 Wed Election day - no class
3 3/14 Mon Functions [slides-A]
[slides-B]
3/16 Wed Scope & Array Strings [slides-A (Scope)]
[slides-B (Scope)]
[slides-A (Array Strings)]
[slides-B (Array Strings)]
3/18 Fri Due: Assignment #1 [Document]
4 3/21 Mon Pointers [slides-A]
[slides-B]
3/23 Wed Structures & Dynamic Memory Allocations [slides-A]
[slides-B]
5 3/28 Mon Testing
3/30 Wed Debugging
6 4/4 Mon Linked List & Hash Tables
4/6 Wed Modularity
4/8 Fri Due: Assignment #2 [Document]
7 4/11 Mon TBD
4/13 Wed TBD
8 4/18 Mon Midterm week
4/20 Wed Midterm week
9 4/25 Mon TBD
4/27 Wed TBD
4/29 Fri Due: Assignment #3 (TBA)
10 5/2 Mon TBD
5/4 Wed TBD
11 5/9 Mon TBD
5/11 Wed TBD
12 5/16 Mon TBD
5/18 Wed TBD
5/20 Fri Due: Assignment #4 (TBA)
13 5/23 Mon TBD
5/25 Wed TBD
14 5/30 Mon TBD
6/1 Wed TBD
15 6/6 Mon Memorial day - TBD
6/8 Wed TBD
6/10 Fri Due: Assignment #5 (TBA)
16 6/13 Mon Finals week
6/15 Wed Finals week

Teaching Assistants :

Name
Jinha Chung (Head TA) Yujeong Choi Youngeun Kwon Ranggi Hwang Taehun Kim Beomsik Park
Hwijoon Lim Jaehong Kim Juncheol Ye Yunheon Lee NaHyeon Park Minkyoo Song
Jaehan Kim Minsu Lee Seongmin Song Hyunyoung Park

Assignments:

Assignment 1 Assignment 2 Assignment 3 Assignment 4 Assignment 5
TA Youngeun Kwon Taehun Kim Jaehong Kim Hwijoon Lim Yujeong Choi
Beomsik Park Youngeun Kwon Hwijoon Lim Jaehong Kim Beomsik Park
Ranggi Hwang Jinha Chung Yunheon Lee Juncheol Ye Ranggi Hwang

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 kaist.ee209.ta@gmail.com.
  • Office hours are held every Monday and Wednesday, from 7pm to 8pm. Mondays are for asking course-related questions, like getting help for Linux command usage and C language. Wednesdays are for asking assignment-related questions, but keep in mind that we cannot do the debugging for you.
  • 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.
  • Come to the correct office! All TA offices are located in the N1 building, but the office numbers are different depending on your inquiries. More details are provided in the spreadsheet link.

Assignment 1:

Week 1, 2, 3 Mon Wed
19:00 ~ 20:00 Course-related questions Assignment-related questions
N1 #919 N1 #818

Assignment 2:

Week 4, 5, 6 Mon Wed
19:00 ~ 20:00 Course-related questions Assignment-related questions
N1 #919 N1 #818

Assignment 3:

Week 7, 8, 9 Mon Wed
19:00 ~ 20:00 Course-related questions Assignment-related questions
N1 #919 N1 #817

Assignment 4:

Week 10, 11, 12 Mon Wed
19:00 ~ 20:00 Course-related questions Assignment-related questions
N1 #919 N1 #817

Assignment 5:

Week 13, 14, 15 Mon Wed
19:00 ~ 20:00 Course-related questions Assignment-related questions
N1 #919 N1 #818

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