COP 4604 -- Unix System Programming
Sequence #5546, Term: Spring 2000
Last modified: 1 May 2000 by R.Levow

New and Updated Items
    Project Submission & Presentation Instructions (5/1)


Professor: Roy B. Levow (http://www.cse.fau.edu/~roy)

Class Time:  Tuesday, 7:10 - 10:00 pm, LA-340 (Davie)



Textbook:  Advanced Programming in the UNIX Environment, Richard Stevens, Addison-Wesley, 1993. (Note: The second edition was scheduled for publication in December 1999 but has been delayed until March 2000. We will therefore use the original, 1993, edition.) Code from the text is also available locally on the CSE net at ~roy/public_html/cop4604.00s/apue.

Recommended:

Click here to view the Course Syllabus

Click here for general information on course policies including program submission, late penalties, getting help, etc.


Reading Assignments and Exam Schedule

Programming Assignments

  1. File Processing. Due January 25
  2. Directory Processing.  Part 1 Due February 8, Part 2 Due February 15
  3. Revision of Assignment 1: Due February 22
  4. Process timing shell: Due March 21

Project

Simple user shell (ush): Due April 25

Submission and presentation:  The project is due by hwroy on April 25 bu the start of class.  Late submissions will be accepted until Thursday, May 4, at 3:00 pm and are subject to late penalties.  Each student must make an appointment for an individual presentation of the project to me at my office.  The presentations will be scheduled for 20 minutes.  The following times are available in Davie:  Tuesday, May 2, 5 - 10 pm, Wednesday, May 3, 4 - 8 pm, Thursday, May 4, 4 - 8 pm.  In addition, I will make individual appointments at other times in Boca on request.

Assignments, Exams and Grading

There will be short a short quiz before each class based on assigned readings.  The final exam will be cumulative and will last about 2 and a half hours.  In computing the final grade, homework will count 17%, project 22%, exams 17% each, and the final exam 27%.

Programming Environment

Programming must be done in the Unix environment, generally in C, using the system calles studied in the course. Stevens has provided a substantial number of examples that are useful for study and from which much can be learned by testing modifications. These programs all include the header file ourhdr.h that contains prototypes for a number of functions Stevens has defined for convenience and/or compatability. The source code for these functions is in the appropritate lib.sys directory, lib.sun for our systems. For instance, error.c contains all of the error reporting functions like err_sys().

I have compiled those files that compile into a library, libmisc.a. You should be sure to include it in your compiles. You do this by adding the following flags to your compile command before the files to compile.
gcc ... -L~roy/public_html/cop4604.00s/apue -lmisc ...
The first, -L, adds the following directory to the library search path and the second, -l, causes libmisc.a to be used.

This course was originally developed by Prof. Sam Hsu. Materials from his course can be viewed here.