University of Miami, Department of Computer Science

CSC322 - C Programming and UNIX

C probably has been the most influential programming language during the last 25 years. It was originally introduced for the implementation of UNIX, but is now used for a large variety of very different tasks. Both C++ and Java owe most of their syntax and much of their sematics to C, but have not managed to replace the original language. The course will introduce the C programming language in the context of the UNIX operating system. We will also cover UNIX from a user and a programmer perspective.

Prerequisites

CSC220 (substitute: EEN218). You should be able to read and write reasonably sized programs in an imperative language (Java qualifies). Students who do not meet the prerequisites must tell the instructor.

Office Hours and Lab time

The course will be taught by Dr. Stephan Schulz. My office hours are Monday, Wednesday, Friday, 1pm to 2:30pm, or by email appointment.

To remotely log onto the Lab machines, use an ssh client (ssh under UNIX/Linux, Putty should work under Windows) and connect to lee.cs.miami.edu (students.cs.miami.edu does not work anymore). A TA for the course is in the lab Friday 4-6pm, and Sunday 2-6pm. To change your password, use yppasswd. Please also check the password policy page.

Course Material Online

Assignments and lecture notes (updated Fri Dec 6 10:35:42 EST 2002) are on the web. Lecture notes should be available on the evening before any given class (note should, but I'm tring...).

Other material:

Classes

Monday, Wednesday and Friday, 11:00 to 11:50 a.m., LC192

Assessment (preliminary)

To recieve a particular grade, you may have to qualify for it in each individual category.

Some topics

Suggested literature

Books (Dead Trees)

I rely on students to have a good quality C book for reference purposes, and have officially recommended the New Testament written by two of the original authors of UNIX and C: I think K&R2 is the best book on C among those I have encountered up to now. However, it is quite terse and some people find its learning curve to be too steep. If you want to have a gentle introduction, try No other books should be needed for the course. However, there is a very large number of good books about different aspects of UNIX if you are interested. I like the following ones:

Online Resources

Note: Do not post any homework questions to the newsgroups! The regulars don't like it. I don't like it. If you have any specialized questions that you cannot answer after your own research, asking either me or a newsgroup is fine.

Miscellaneous

Finally, here are some sources that might help you to get into the UNIX mindset (and out again):
Stephan Schulz,schulz@cs.miami.edu, Thu Aug 22 13:35:31 EDT 2002