CS5432 Advanced UNIX Programming, Fall 2016

  • Instructor: Cheng-Hsin Hsu (chsu AT cs.nthu.edu.tw), Delta (台達館) 643.
  • Time: Mondays 3:30 p.m. – 5:20 p.m., Thursdays 2:20 – 3:10 p.m.
  • Location: EECS (資電館) 132.
  • Office Hour: Thursdays 3:30 p.m.- 4:20 p.m. at Delta 643.
  • TA: Chen-Nien Mao (gloiremao AT gmail.com)
  • Lab Session (assignment demos): Tuesdays 7:00 – 9:00 p.m. at EECS 328.
  • DEMO Schedule: Link

一、課程說明(Course Description)

We will train the students to be qualified UNIX-like system programmers, by getting to know the commands, development and debugging environments, system calls, and popular libraries on UNIX systems. On top of that, we will discuss more advanced C/UNIX topics such as process control, daemon, signals, and threads. Code examples given in Richard Stevens’ classic UNIX programming textbook will be reviewed and discussed in the class.  

Prerequisites:  Introduction to Programming, Operating Systems

二、指定用書(Text Books)

W. Richard Stevens and Stephen A. Rago, “Advanced Programming in the UNIX Environment,” 3rd ed., Addison Wesley (開發圖書)



四、教學方式(Teaching Method)

Lectures, assignments, and exams.


We will spend 1 to 1.5 weeks on each of the following topics.

1. Fundamental tools and shell programming
2. Files and directories
3. File I/O and standard I/O
4. System data files and information
5. Process environment
6. Process control
7. Signals
8. Threads
9. Daemon processes
10. Advanced I/O
11. Inter-process communications
12. Network I/O
13. Terminals


Midterms (30%): 15% + 15%
Final (15%)
Programming assignments (55% + 5% Bonus): 12 times