CEN 434: Advanced Programming in UNIX

Offered Under: B.Sc. in Computer Engineering (CEN)

Exploration of the Unix operating system, including its tools and utilities for program development, such as makefile, piping and redirection, shell scripts, regular expressions, and symbolic debuggers. Topics include advanced features of the C programming language, including various file processing, command-line and variable arguments, exception handling, and generic interfacing; Multiprocessing and Multithreading programming in Unix/Linux C; Thread synchronization; Network programming and TCP/IP socket programming.

Course Type Major
Credit Hour 3
Lecture Hour 45
Expected Outcome(s):
  • Design and implement C programs that employ the UNIX file access primitives (open, close, read, write, lseek, fcntl).
  • Use the UNIX command line interface to create, delete, move, copy and copy files and directories.
  • Use the “make” utility, a software engineering tool for managing and maintaining computer programs.
  • Use the UNIX command line interface to spawn processes that redirect input or output or communicate through a pipe.
  • Design and implement C programs that employ UNIX process system calls and signal handling (fork, exec, wait, join, etc.)

Suggested Books:
  1. Advanced Programming in the UNIX Environment (3rd Edition) by W. Richard Stevens and Stephen A. Rago
  2. Unix Shell Programming (3rd Edition) by Stephen G. Kochan and Patrick Wood

Grading Policy:

Biweekly Quiz, One Midterm Exam, One Final Exam, Project

Letter Grade Marks Grade Point
A 90 - 100 4.00
A- 85 - 89 3.70
B+ 80 - 84 3.30
B 75 - 79 3.00
B- 70 - 74 2.70
C+ 65 - 69 2.30
C 60 - 64 2.00
C- 55 - 59 1.70
D+ 50 - 54 1.30
D 45 - 49 1.00
F 00 - 44 0.00