
About 40% of the course is devoted to UNIX shell programming and some useful utilities like sed and awk. The rest of the course does the UNIX system calls in detail - unbuffered I/O, directories, process creation, signals, pipes, record locks, interprocess communication, terminal handling and some tcp/ip calls.
Large parts of the Curry book cover C functions that are already familiar to you (such as scanf); those parts will not be covered in this course.
There are constant short programming assignments throughout the course, and an occasional long one.
| Week | Topics (pages) |
| 1 | Introduction. Editing and general system usage.(N&R 1-27) |
| 2 | Regular expressions and commands that use them: grep, sed, awk. (not in text) |
| 3 | General system usage. Scripts (N&R 57-91) |
| 4 | Basic shell programming. Flow control. (N&R 91-125) |
| 5 | Flow control, command-line options. (N&R 126-150) |
| 6 | Variables, I/O, command-line processing (N&R 151-188) |
| 7 |
Parsing the command line. Low-level I/O. (Curry 47-69) UNIX file system. (Curry 103-111) |
| 8 | Files and directories. (Curry 111-143) |
| 9 | Multiple files, record locking, memory mapping. (Curry 143-170) |
| 10 | Time, users and groups. (Curry 171-219) |
| 11 | Signals. (Curry 239-282) |
| 12 | Processes. (Curry 283-321) |
| 13-14 | Interprocess communication. (Curry 353-389) |
| 15 | Terminals. (Curry 323-352) |