Computer Science 010

C, Unix, and Software Tools

January 2003

Instructor

Prof. Stephen Freund

Email

freund@cs.williams.edu

Phone

x4260

Office

TPL 315

Office hours

MR 3:00-4:00

Classroom

TCL 206

Unix Lab

TCL 312

Class time

MTR 1:00-1:50

Description:

This course serves as a guided introduction to the Unix operating system and the C programming language. The course is designed for individuals who understand basic program development techniques as discussed in an introductory programming course (Computer Science 134 or equivalent), but who wish to become familiar with a broader variety of computer systems and programming languages. Students in this course will work on Unix workstations, available in the Department's laboratory. By the end of the course, students will have developed proficiency with Unix and the C programming language. The exact topics to be covered may vary depending upon the needs and desires of the students.

Text:

Kenneth A. Reek, Pointers on C, Addison Wesley, 1998.

Other readings will be available on the Internet.

Prerequisite:

Computer Science 134 or equivalent programming experience.

Schedule (subject to change)

Sample Programs

The sample programs used in lectures are available online for easy download and experimentation.

Evaluation:

Assignments will be given out daily. Most of these assignments are practice assignments and will not be collected. The purpose of these assignments is to give you practice each day with the new ideas that are presented. The only way you will become proficient with Unix and C is to use them. You are strongly encouraged to do them as it will increase what you learn from this course and the ease of doing the graded assignments.

Graded assignments will be given out weekly. These will be evaluated to give you feedback on your work and for grading purposes. You should complete these assignment individually, without assistance from other students (see the Honor Code guidelines for CS students for more detail).

Helpful online resources:

Emacs cheat sheet - tables summarizing Emacs commands discussed in class

Emacs FAQ - Frequently asked questions about Emacs

UNIXhelp for Users - introductory level material

Unix Reference Desk - a comprehensive collection of references

comp.lang.c FAQ - frequently asked questions posted to the comp.lang.c newsgroup

How to Write a Makefile - introduction to make