CSCI 298C-02 Syllabus

Course Name: Advanced Unix Programming
Prerequisites: CSCI 151 or permission, as well as an interest in Unix! All programming will be done in C, and a familiarity with C is assumed. (C++ knowledge will help, if that's all you have, but it will be an extra learning experience for you.)
Meeting times: MW 2:00pm - 2:50pm, OCNL 124
Lab times: MTh 4:30pm - 5:30pm, OCNL 244 (optional)
Instructors: Brian "Bapper" Pomerantz and Brian "Beej" Hall
Office Hours: MT 1:00pm - 1:50pm, OCNL 208
Office Phone: 898-4154 (Office hours only)
E-mail: and
Web page:
Stevens, W. Richard. Advanced Programming in the UNIX Environment. Addison-Wesley, 1992. ISBN 0-201-56317-7. ($64)
Software: Unix! Specifically, HP-UX. Linux will probably work just as well in most instances, but you'll have to port the final product to HP-UX so we can grade it.
Course Description: An investigation into how to utilize Unix system and library routines.
Topics: Unix programming tools, File I/O, directory manipulation, common Unix data file manipulation, processes and process control, shared libraries, signals, terminal I/O, daemons, interprocess communication, pseudo-terminals, sockets
Goals: Once the course has been completed, students should not only feel comfortable programming in a Unix environment, but should be able to exploit Unix system calls to suit specific tasks.
Grading: A standard A-F grading scale will be used (10% per grade). The overall breakdown is as follows:
15%     Midterm
50%     Smaller Projects
35%     Final Project