Course Objectives
The objective of this course is to provide you with a basic understanding of the issues involved in writing system programs:Window and Unix operating system APIs: manipulating system processes, system io, system permissions, files, directories, signals, threads, sockets, terminal, etc. Students are expected to have a basic knowledge of the C (or C++) programming language, in addition, an intermediate knowledge of the Unix Operating System is assumed.
Course Prerequisites:
CS 33211.
Course Expectations
Complete (approximately) weekly assignments. The solutions may be either Win32 or Unix solutions, but at least 5 on the solution must be in Win32 and at least 5 in Unix. (55% of grade).The class assignments are designed to make you think about the class material. As such they will not be mechanical modifications of class examples. Nonetheless it is expected that all coding assignments will be derived from an example presented or referenced in the class notes. Assignment are usually made on Tuesdays, so that questions can be addressed on Thursdays. You are encouraged to seek help from the instructor if you are having difficulty with the assignment and have made an honest attempt to solve it. When you seek help after an honest effort to complete the assignment, extra time will be allotted for you to complete the assignment, provided the help is sought prior to the due date of the exercise.
Complete a system programming project
Project Plan due March 10, 5% of grade.
Demo 1 Presentation 5% of class grade.
Demo 2 Presentation 5% of class grade.
Project Software and Documentation, due 8 am, May 2, 25% of grade.
Project Presentation 5:45-8:00pm, May 2, 5% of grade.
The class project will be graded on the sophistication of the implementation, self-directed extensions of the class material, the software documentation, and the in class presentations. Help is available on the projects. See the instructor for details.
Suggested Textbook
Unix System Programming, K. A. Robbins, S. Robbins, Pearson Education, ISBN 0-12-042411-0, 2003.
Supplemental Textbooks:
Windows System Programming, 3rd Edition, Johnson M. Hart This is the class reference for Win32/Win64 programming. Available on Safari
Advanced Programming in the Unix Environment, W. Richard Stevens, Stephen A. Rago This is the Standard Reference for Unix System Programming
A good shell reference book for your favorite shell.
A good UNIX book (if you need one). O'Reilly nutshell books are good.
Class Software
Visual C++ 2008( http://msdn07.e-academy.com/ksu_cs).
Grading
Grades will be assigned according to the following scale,
A 93%-100%
A- 90%-93-%
B+ 87%-90-%
B 83%-87-%
B- 80%-83-%
C+ 77%-80-%
C 73%-77-%
C- 70%-73-%
D+ 67%-70-%
D 60%-67-%
F < 60%
Registration, Student Accessibility, and Plagiarism Policies
Instructor: Arden Ruttan, 270 MSB. Phone 29066. User ID. ruttan. It is best to send me email when you wish to contact me.
Office Hours: 11:00-1:00 TH and by appointment.