SYLLABUS
CSc 3320 System-Level Programming
Summer 1999 (Computer Number: 1813)
4.45 to 7.30 MW, 323 G (General Classroom)

Instructor: Dr. Raj Sunderraman
Office: Room 758 College Of Education Building
Phone: 404-651-0672
E-Mail: raj@cs.gsu.edu
Course Home Page: http://tinman.cs.gsu.edu/~raj/3320/su99
Office Hours: MW 3.30 to 4.30

Pre-requisites: CSc 2311.

Catalog Description:

An introduction to programming at the level of the operating system. Topics include editors, system calls, programming tools, files, processes, interprocess communication, and shells.

Course Objectives

This course is designed to give students experience in using a high-level language ( C ) to interface with an operating system (UNIX). Students will learn fundamental UNIX concepts, including files, processes, interprocess communication, and shells. They will also gain experience writing and testing C programs using UNIX editors and programming tools.

Topics

  1. Editors (2 weeks) - vi, emacs, sed.
  2. C Programming(2 weeks) - Difference between C and C++, compiling and linking under UNIX.
  3. Programming Tools (2 weeks) - make; ar, tar, char; lint; profilers; debuggers; filters (awk, wc, sort, tr, grep, diff, uniq); sccs, rcs.
  4. Files (2 weeks) - UNIX file system, file permissions, file system calls (fcntl, creat, open, read, write, close, lseek).
  5. Processes (2 weeks) - Basic concepts, daemon processes, process creation and termination, process diagnostics (ps, kill, top).
  6. Shells (3 weeks) - sh, ksh, csh; shell programming.

Textbooks

1. Glass and Ables, Unix for Programmers and Users: A Complete Guide, Prentice Hall, Second Edition (1999).

2. King, C Programming: A Modern Approach, Norton, 1996.


Rationale for Csc 3320

Currently our majors do not get enough experience using the C programming language and the UNIX operating system. This causes problems in later courses (especially Operating Systems and Introduction to Parallel Programming) that expect the students to have such experience. We are also proposing a new course (CSc 4220/6220) that will require knowledge of C and UNIX. Moreover, an employer hiring a computer science graduate often expects the student to exhibit a degree of proficiency in both subjects.

Attendance Policy:

Daily attendance is strongly encouraged. Any student missing a lesson is responsible for any material assigned or covered in class during his or her absence.

Grading Policy:

The grades for this course will be based upon the following components:

1.
Two exams worth 25% each.
2.
Several Programming Assignments worth 50%.
The final letter grade will be determined based on the following criteria:
A 90 and above
B 80 thru 89
C 65 thru 79
D 50 thru 64
F less than 50

Last date to withdraw: 9 July, 1999.

Academic Honesty Policy:

All work submitted for grading must be the student's own work. Plagiarism will result in a score of zero on the test or assignment, or dismissal from the course. Also, the Dean of Students office will be informed.

NOTE:

This syllabus represents a general plan for the course and deviations from this plan may be necessary during the duration of the course.


Dr. Raj Sunderraman
6/14/1999