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 | |
| 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:
Useful resources:
- Intel® 64 and IA-32 Architecture Software Developer's Manual, Volume 1: Basic Architecture
- Intel® 64 and IA-32 Architecture Software Developer's Manual, Volume 2A: Instruction Set Referece, A-M
- Intel® 64 and IA-32 Architecture Software Developer's Manual, Volume 2B: Instruction Set Referece, N-Z
- Intel® 64 and IA-32 Architecture Software Developer's Manual, Volume 3A: System Programming Guide
- Intel® 64 and IA-32 Architecture Software Developer's Manual, Volume 3B: System Programming Guide
- Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification
- Using as The GNU Assembler