This book explains how to use the C programming language together with the UNIX operating system to write effective, efficient software. It places emphasis on software design (program structure, data structures, abstract data types), and integrates the use of C and UNIX programming tools. The text covers basic program syntax and control, I/O, arrays/strings/structures, dynamic memory management, data-structure design, specialized tools, and advanced programming/design methods.