Unix Systems Programming
You can test your code on any Unix or Linux system, but your code must run on one of the Computer Science machines running the Debian 3.0 distribution (the CSPP machines on the Fourth Floor of Ryerson are running Debian 3.0.) See computers for a list of computers and the distribution they are running. I will test your programs on admiral.cs.uchicago.edu.
Your program must compile without warnings when compiled
gcc -WALL. Compiler warnings will be taken to be a
sign of poorly designed code which is vulnerable to bugs. I
have often caught errors that I was warned about by the compiler.
Programming assignments are evaluated on Functionality and Design. The grade for each assignment breaks down as follows
All assignments submitted must conform to the following guidelines (assignn refers to the nth assignment)
assignn. The files for building program
progwill be located in a directory called prog.
DOC: This documents the functional specifications of your program.
Makefile: This is a file for the
makeutility to build your program. I must be able to build your project by entering
make. In addition you must have a clean target, so that
make cleanremoves all object files and executables built by
typescriptfile which has an image of a shell session documenting that your program follows the specifications set down by the assignment.
READMEfile (which I will read) containing any other information you think useful to document your program. One helpful piece of information is a brief description of the files in the prog directory. This is not necessary if the directory's contents small.
~file, which should also be removed before submission.
Assignments are due at 5:30pm on Tuesdays. You will be penalized 10% for every 24 hour period in which your assignment is late. No extra credit points will be awarded to late assignments.
There is a two step procedure for submitting your assignment:
assignn: the directory containing your assignment
I will frequently provide links to code to aide you in your programming. I only ask that you actually type the code--do not cut-and-paste. By taking the time to type the code you give yourself a chance to digest the logic of the implementation. You may also find that the code can be written better, or that you need to modify some parts to fit your application. Another advantage to typing the code is that it maintains consistency of style in your program. Typing the code yourself helps you understand the code and modify it to best suit your needs.
Never cut-and-paste a file to be read by
make utility expects certain action lines to be
indented by a tab; cut-and-paste replaces this by eight single spaces.
Make will not accept this file.
You will need to provide a script file documenting the correct
functioning each program you submit. This is your certification that your
program satisfies the specifications for the program in the assignment.
To produce a script file type on the command line
This will start a new shell session and produce a typescript of everything
printed on your terminal. Enter commands just as you would on the command
line. To leave the session type
exit at the prompt.
A file of your session is produced called typescript. You can
maintain a running file of multiple sessions so you do not have to
generate your entire typescript on one run. The first time you run the
script. Then on each subsequent new session
execute the command with the append option,
then new session will be appended to the
typescript. See the manpages for further details on the