CS239 Syllabus - Spring 2011

Text: Unix Systems Programming by Kay Robbins and Steven Robbins

An attempt is made to list corresponding readings for Stevens' Advanced Programming in the Unix Environment. The material covered in those readings will exceed that covered in Robbins or in lecture, but is certainly useful.

Week
Topics Readings in Robbins APUE External Links Project Ideas
1
  • Unix history / standards
  • C (vs. C++) programming issues
  • Development environment.
ch. 1 ch 1.1-1.7
ch 2
ch 5
Command Line Simple C Program:
Roman Numerals
2
  • More C (e.g. macros, function pointers, tokenizing)
  • Process Environment
  • Common command line utitlities
ch. 2
ch 7 Text Streams and Filters First command:
env
3
  • Using the Shell (globbing, I/O redirection, Pipiing)
  • Process management (fork, exec, wait)
  • Unix I/O (open, read, write, close)

ch. 3
ch. 4.1-4.3

ch 8
ch 3

File and directory management

Manage file permissions and ownership

Simple Shell
4
  • Implementing I/O redirection
  • Files and directories
ch. 4.6, 4.7, 4.9
ch 5.1-5.4
ch 4 Streams, pipes and redirects Shell: add
I/O redirection and cd
5
  • Pipes / Fifos
ch. 6.1-6.3 ch 15.2-15.5
ch 18
Searching text files using regular expressions du
6
  • Signals
ch. 8   Create, monitor and kill processes Shell: add pipes and signal handling
7
  • Terminal Control
  • Timers
ch. 8, 9   Process execution priorities  
8
  • Pthreads
ch 13      
9
  • Midterm
  • More threading
ch 14, 15      
10
  • Curses
  • Sockets: TCP
  • Semaphores / IPC
ch 16, 17      
11
  • Producer / Consumer and/or
    PVM
ch 18     TCP/IP (?)
12
  • Sockets: UDP
ch 19      
13
  • A high-level scripting language
    (e.g. Python/Perl)
       

Each "week" consists of two lectures (~85 minutes each).

Topics needed: