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

  • Class will be held offline.
  • All the exams (midterm/final) will be conducted offline.
    • Midterm exam: TBD
    • Final exam: TBD
  • We will use Campuswire and KLMS.
    • Campuswire: [link]
  • To contact TAs, please use kaist-ee209-fall26@googlegroups.com instead of individual emails.

Lectures :

Meeting Time Meeting Place
Mon 13:00~14:30 (E11) Creative Learning B/D
Wed 13:00~14:30 (E11) Creative Learning B/D

Professors :

Name Office Hours Office Email
Kim, John Dongjun By appointment N1 518 Kim Byeong-ho IT building jjk12@kaist.ac.kr

Important Schedule:

Release Due (11:55pm) Class / Assignment
9/14 10/07 Assignment 1
10/14 10/26 Assignment 2
10/28 11/11 Assignment 3
10/21 Midterm
11/16 11/30 Assignment 4
12/02 12/18 Assignment 5
12/16 Finals

Lecture Schedule:

The lecture schedule is subject to change

Period Topic
Week Schedule
Week 1 (8/31) 1. Introduction
(9/02) 2. C Fundamentals
Week 2 (9/07) 3. Numbers in Computers
(9/09) 4. Data Types
Week 3 (9/14) 5. Functions
(9/16) 6. Scopes, Arrays, and Strings
Week 4 (9/21) 7. Pointers
(9/23) 8. Structures
Week 5 (9/28) 9. Stacks and Queues
(9/30) 10. Linked Lists 1
Week 6 (10/05) Holiday
(10/07) 10. Linked Lists 2
Week 7 (10/12) 11. Hash Tables 1
(10/14) 11. Hash Tables 2
Week 8 (10/19) No class
(10/21) Midterm exam
Week 9 (10/26) 12. Binary Search Trees
(10/28) 13. Assembly: Overview
Week 10 (11/02) 14. Assembly: Instructions
(11/04) 15. Assembly: Function Calls
Week 11 (11/09) 16. Processes and Exceptions
(11/11) 17. Memory Management 1
Week 12 (11/16) 17. Memory Management 2
(11/18) 18. Dynamic Memory Management
Week 13 (11/23) 19. I/O Management
(11/25) 20. Process Management 1
Week 14 (11/30) 20. Process Management 2
(12/02) 21. Signals 1
Week 15 (12/07) 21. Signals 2
(12/09) 22. Summary
Week 16 (12/14) No class
(12/16) Final exam

Teaching Assistants:

Name
Doheon Kwon Gwangoo Yeo Gyeongjae Lee Jiyoung Lim
Kiho Kim Seunggeun Cho Seungkook Lee Sukjoon Oh
Sanmaru Um Youngchan Kim

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

  • If you would like to schedule the office hour, email us at kaist-ee209-fall26@googlegroups.com, at least one day in advance.
  • Location: Online (Zoom)

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

Useful resources:

  • Basic UNIX command cheatsheet
  • Reference manuals: this course uses these manuals, for reference only: