This course is designed as the second programming course. The purpose of the course is to introduce the students to the C programming language, and to teach elementary programming techniques: basic structured programming, debugging, simple algorithms, etc.
The course will be taught in the Unix/Linux environment. However, the assignments will be sufficiently system-independent that any C programming environment can be used.
There will be about 6 programming assignments, of progressively increasing difficulty. The first assignment will be trivial; the final project will be somewhat involved. Due dates will be announced at the time when assignments are given.
The students are encouraged to write code that is self-documented and self-explanatory (this will be discussed in detail in the first lecture). Given such code, it is not necessary to turn in any supporting materials. Those students who wish to do so, may submit an additional write-up.
It is expected that assignments will be turned in on time.
The assignments are expected to be done individually. The fastest way to clarify a programming issue is to discuss it with someone who understands the subject well, and the students are encouraged to do so. However, each student is expected to write his code himself.
Sample programs will be available at this site as the course goes along. For example, a C program for printing routines is available here.
To submit your assignment, you need to log on a Zoo machine, and use the submission script provided to copy your files to a designated directory. You will be instructed of how to use submission script. If you have been working on your project on other machine clusters or on your own PC, you need to transfer the relevant files onto your Zoo account first. To apply for a Zoo account, you may visit the website at
Information about the Zoo computing environment is available at the Zoo Homepage, or available by mailing your specific questions to dsac@cs.yale.edu. You are also encouraged to come and talk with the TA when encountering difficulties.