In a nutshell, this course is about how to develop applications, libraries, and systems programs for the UNIX operating system. This means, in essence, that it explores the UNIX application programming interface (API), which is the programming interface to the UNIX kernel. In it, students learn how to write "real" programs that can interact with UNIX. It covers the basic parts of the kernel interface and libraries, including files, processes, terminal control, the NCurses library, signals, and threading. It also includes material on the internal structure of selected kernel components.
Most computer scientists have to write programs, and the UNIX platform is the important platform in most disciplines. There are many reasons to know how to write programs for UNIX, including that (1) UNIX is free and it continues to grow in popularity; (2) UNIX is used in the financial sector, the scientific sector, and the academic sector; and that (3) knowing UNIX is a survival skill in computer science.