Syllabus for CSCI 310 -- Advanced C and System Programming

Dr. Wildenberg

S-020 (385)-8179

 

Office hours: Usually available 10:00-11:00 MW and 11:00-12:00 TR.

Other hours by appointment.

Main goals:

1.     Become expert C programmers.

2.     Learn how UNIX shells are implemented in C.

 

Prerequisites: Fair knowledge of C.

Texts:

1.     The C Programming Language. Kernighan and Ritchie.

2.     Advanced Unix Programming. Rochkind.

 

Format:

First few weeks: I lecture, you do programs.

Later in the semester: Student reports and lectures.  Details to follow.

Attendance: Regular attendance is expected. Missing more than two classes is will result in an F. Exceptions to this will be rare and require written evidence of special circumstances.

Grading: This is based on the following factors: Programs, journals, class participation, (quizzes).

                Programs: I will assign some. These need to be: correct, readable, WELL TESTED, on 8.5x11 paper, stapled.              Any sources used must appear PROMINENTLY.  (Failure to document sources used constitutes plagiarism.)     Your name and the assignment should appear at the top.

Class participation: This consists of two different items.

1. Answering the questions that I or others toss out.This is a relatively informal item but I often get a feel for who is “getting it” from this sort of thing.

2. Presentations. Later in the semester, individual or groups of students will be making presentations to the class. These will be on various advanced topics such as pipes, signals, forks, etc. You will need to do an excellent job on at least one of these to receive an A.

 

Quizzes: I prefer to avoid these but will announce them if I feel they are necessary. Too many students replying “I dunno” to routine review questions in class usually will result in a quiz.

 

 

Outline of topics:

From K&R (mostly)

  1. Review of topics from basic C.
  2. Pointers
  3. Structs
  4. Linked lists and other structures.
  5. Input and output; files
  6. Memory management.

From Rochkind (mostly)

  1. Basic system calls.
  2. Directories
  3. Redirection
  4. Forks
  5. Pipes
  6. Other shell features