Department of Computer Science

Course directors:
A. Wallis (Fall)
t.b.a. (Winter)
Implementation details

COSC 2031.03 C, UNIX and X Window System

Section A  Fall 	Mon, Wed, Fri 16:30
Section M  Winter 	Mon, Wed, Fri 12:30

1 The programming language C will be taught as a second programming language. The course assumes some programming experience - typically that obtained in the first-year computer science course. The emphasis will be on practical exploration of a particular strength of C, rather than its use as a general-purpose language. C is a tool-making tool for working at a low-level; it is a programming language designed for, and used in, the writing of utilities that access the primitives of the underlying machine architecture and the operating system. Unix components and the X Window System are written in C.

2 The Unix programming environment will be considered at both
[2a] the command level (man 1): shells, utilities, filters, etc., and
[2b] the system call (man 2) and standard library (man 3) levels.

The focus in [2b] is on some Unix operating system user-interface primitives, e.g. fork/exec, file descriptors, read/write, etc. The emphasis here, as in [1], is on practical exploration.

3 The X Window System will be presented practically, and at the level of the Xlib C-language library interface. The emphasis here also will be on practical exploration, but now with visual graphic feedback. There will also be some theoretical consideration of the protocol and server-client network-transparent architecture, and the X prime directive: "mechanism, not policy".

Students should note that this course has a substantial self-disciplined laboratory component.


Prerequisites: general prerequisites