Introduction to Systems Programming
The prerequisites for this class are a good understanding of imperative and object-oriented programming in Java. The prerequisites for this class include a good understanding of basic programming constructs, such as branches (if, switch), loops (for, while, do), exceptions (throw, catch), functions, objects, classes, packages, primitive types (int, float, boolean), arrays, arithmetic expressions and boolean operations as provided by COMP 1671, COMP 1672 and COMP 2673.
Computer organization is a parallel prerequisite; if possible students should register for both this course and COMP 2691. You must have a good understanding of basic data structures such as arrays, lists, sets, trees, graphs and hash-tables.
This is a class on systems programming with focus on the C programming language and UNIX APIs. There will be programming assignments designed to make you use various Debian GNU/Linux system APIs. Programming assignments involve writing code in C or C++. You cannot do these assignments easily on a Microsoft system. You can either install a free GNU/Linux system on your own machine(s) or use the Debian GNU/Linux lab in John Greene Hall.