CSC 209 course outline


Course information (September 12)


Software tools (weeks of September 12, September 19)


Shell programming (the rest of September)


The unix filesystem (week of October 4 -- might begin Sept 29)


The C programming language (approximately October)

Reference: King.


Mid-term test (October 24)


Processes (October 27; November 1, 3)

Unix processes and dealing with them in C


Mid-term break, November 7 and 8


Inter-process and network communication (November 10, 15, 17)

socket code examples

I think that most socket matters are covered in the Haviland et al book... except for the network newline convention.
(But note that the Haviland et al book has some buggy socket code in that it does not call htonl() and htons() appropriately. On a big-endian machine, this doesn't matter; on a little-endian machine, such as the CDF linux machines, it makes your program not work. See the above examples for proper use of htonl() and htons().)


History of and versions of unix/linux (November 22)

Present in this course especially to answer the question "what's the difference between unix and linux?"

A number of philosophical documents from the GNU Project can be found at http://www.gnu.org/philosophy/philosophy.html. For an introduction, see "Why Software Should Not Have Owners".

The "free software" movement is something I'm quite interested in and happy to discuss outside of class time (e.g. in office hours) with those who are interested.


Multitasking implementation and memory layout and such, as time permits (November 24)

some notes about memory layout and OS considerations


Concurrency, as time permits

no time for this this term


Computer security (November 29, December 1)


POSIX threads (December 6)


Concluding notes (December 6)

final exam coverage

Regarding unnecessarily complex computer programs:
"The superior pilot uses his superior judgement to avoid situations in which he has to demonstrate his superior skill." (traditional airplane pilot saying)

RFC 1958, Architectural Principles of the Internet, contains a wonderful sentence:
"If there are several ways of doing the same thing, choose one."


[main course page]