Introduction to Systems Programming

Target Audience: 
Undergraduate
School Name: 
Engineering & Computer Science
Department: 
COMP
Course Number: 
2354
Credit Hours: 
4qrt/hrs
Description: 

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.

Required for: 
Bachelor of Arts in Applied Computing
Bachelor of Science in Bioinformatics
Bachelor of Science in Computer Science
BA Program in Game Development and Studio Art
BA Program in Game Development and Electronic Media Arts Design
BA Program in Game Development and Digital Media Studies
BS Program in Game Development and Animation
Elective for: 
Bachelor of Science in Computer Engineering
Quarter Taught: 
Winter