CSCV352
System Programming and Unix
Course Description
CSCV352 is designed to develop an understanding of the various components of the Unix operating system from both a system user’s perspective and a system programmer’s perspective including both the shell and programming interfaces; to write sophisticated C applications using multiple source files and separate compilation; and to implement algorithms involving complex data types and structures. CSCV352 meets the National Security Agency (NSA) Center of Academic Excellence in Cyber Operations (CAE-CO) academic requirements for Low Level Programming.
Learning Outcomes
The student will:
- Learn basic Unix shell skills.
- Remote login to a console.
- Discuss the history of Unix.
- Manipulate and create files using a Unix text editor.
- Change file permissions in Unix.
- Construct a basic BASH shell script.
- Create and compile a C program.
- Debug a C program using gdb.
- Use the scanf and printf functions to read and write formatted data.
- Construct an expression from C operators and their operands.
- Use if-then-else and switch constructs to implement selection logic.
- Perform iteration in a C program using for, while, and do-while loops.
- Identify the basic data types provided by the C programming language.
- Implement and invoke functions.
- Identify common blocks and variable scope.
- Declare and demonstrate manipulation of string (character arrays).
- Declare and manipulate 1-d and 2-d arrays.
- Perform pointer arithmetic.
- Develop programs to read and write from files.
- Develop a dynamic memory allocation program.
- Demonstrate advanced manipulation of array data.
- Demonstrate how to implement a C struct.
- Create a simple algorithm using dynamic memory allocation and structures.
- Demonstrate the ability to link together multiple C files using header files.
- Demonstrate the ability to create object files.
- Create a makefile.