CSC 357: Systems Programming
Gene Fisher (gfisher@calpoly.edu)
Office: 14-210
Office Hours: MWF 2-3PM, Th 9-11AM, and by appointment
CSC/CPE 103 and CPE 229 (or equivalents).
The course website is http://www.csc.calpoly.edu/~gfisher/classes/357
There is a variety of material on the site, organized into the following
directories:
Programs must compile to receive any credit. I.e., non-compiling programs will receive a score of zero.
Programs must be fully documented in order to receive full credit. In particular, an entirely undocumented program will receive at most 65% credit. Per the grading scale given below, that's a "D" grade. Detailed conventions for documentation and coding standards are online in the class handouts directory. Additional specific scoring details will be provided for each assignment.
In general, the work in the labs and problems sets will involve reasonably small programs, and answers to analytic questions. Work on the programming assignments will involve programs of significant size, measured in hundreds of lines of code.
The course grading scale is based on absolute percentages of points received. 90% or above is guaranteed an A (or A-) in the class; 80% a B, 70% a C, and 60% a D. Depending on overall class performance, the scale may be lowered, but it will never be raised.
If you find a problem with the grading on an assignment, you must submit it for
re-grading within ten days of when it was handed back. Grades will be posted
on the class website. Be sure to check what is posted to make sure it agrees
with your records.
All programs must be done individually. It is OK to discuss general principles and ideas with colleagues, but the programming assignments are not to be done in groups, or with your lab partner.
Use of anyone's solutions other than your own is considered cheating. This includes solutions from previous offerings of this or any other course, solutions you may find online, or solutions you get from any source other than your own brain.
Any instance of cheating or plagiarism will be referred to the campus office of judicial affairs. Campus cheating policies are defined online at
Any documentable instance of cheating will result in failure of the course.http://www.calpoly.edu/~saffairs/ja
NOTE WELL: If you use a home compiler to develop your
programs, YOU MUST verify that the program compiles
and runs on falcon/hornet before you hand it in. When you submit programs,
they will be compiled and executed by a script that runs on falcon/hornet. You
are responsible to ensure that your programs run the same on falcon/hornet as
they do on any other computers you may use to develop the programs.
WEEK | TOPIC | ASSIGNMENT DUE |
1 |
Introduction to the course
Introduction to C and UNIX Function Declarations versus Definitions Pointers and Arrays in C | |
2 |
C Program Structure
Pointers and Structs Dynamic Memory Management | Lab 1, Prog 1 |
3 |
Details of Pointers, Arrays, and Structs
Additional C Language and Library Features | Lab 2, Prog 2 |
4 |
Unbuffered File I/O
UNIX Files and Directories | Lab 3 |
5 |
More on Files and Directories
Function Pointers in C Standard I/O Library System Data Files and Information | Prog 3 |
6 |
Introduction to UNIX Processes and Process Control
Midterm (Monday) | Lab 4, Prog 4 |
7 | Processes and Process Control, cont'd | Lab 5 |
8 | Introduction to Signals and Pipes | Lab 6, Prog 5 |
9 |
Memorial day holiday (Monday)
Additional Pipe and Signal Topics Shells | Lab 7 |
10 |
Introduction to threads Final exam review | Lab 8, Prog 6 |