COMS 253 Intro to Systems Programming*
COMS 253 INTRODUCTION TO SYSTEMS PROGRAMMING
Provide understanding of writing system programs on Linux or Unix systems using C (or C++). Structure of C programs: functions, scope, arrays, structures, pointers, and run-time memory management. Introduction to build systems, debugging techniques, shell scripting and process management. Security vulnerabilities, buffer overflow and dynamic memory analysis. Basic systems programming including topics such as streams, buffers, pipes, system calls, processes, threads and libraries for Linux and Microsoft Windows.
Prerequisite
COMS 250 with a "C" or better
COMS 253Intro to Systems Programming*
Please note: This is not a course syllabus. A course syllabus is unique to a particular section of a course by instructor. This curriculum guide provides general information about a course.
I. General Information
Department
Engineering, Physical, and Computer Sciences Academic
II. Course Specification
Course Type
{D7A8FC71-978F-4003-9933-512C476323B2}
Credit Hours Narrative
3 credits
Semester Contact Hours Lecture
45
Semester Contact Hours Lab
0
Semester Contact Hours Clinical
0
Prerequisite Narrative
COMS 250 with a "C" or better
III. Catalog Course Description
COMS 253 INTRODUCTION TO SYSTEMS PROGRAMMING
Provide understanding of writing system programs on Linux or Unix systems using C (or C++). Structure of C programs: functions, scope, arrays, structures, pointers, and run-time memory management. Introduction to build systems, debugging techniques, shell scripting and process management. Security vulnerabilities, buffer overflow and dynamic memory analysis. Basic systems programming including topics such as streams, buffers, pipes, system calls, processes, threads and libraries for Linux and Microsoft Windows.
IV. Student Learning Outcomes
Upon completion of this course, a student will be able to:
- 1. Explain basic concepts in systems programming and operating a command-line interface.
- 2. Utilize the methods and techniques for designing and implementing system-level programs.
- 3. Write system software with the aid of sophisticated OS services, programming languages and utility tools.
- 4. Use C (or C++) memory management, including pointer arithmetic and heap allocation.
- 5. Understand Unix / Linux programming using C (or C++).
V. Topical Outline (Course Content)
I. Structure of C programs:
- Functions
- Scope
- Arrays
- Structures
- Pointers
- Run-time Memory Management
II. Introduction to
- Build Systems
- Debugging Techniques
- Shell Scripting
- Process Management
- Security vulnerabilities
- buffer overflow
- dynamic memory analysis
III. Systems Programming
- Streams
- Buffers
- Pipes
- System Calls
- Processes
- Threads
- Libraries for Linux and Microsoft Windows
VI. Delivery Methodologies
Required Exams
The course will include both mid-term and final exams.
Assessment Strategy Narrative
Projects and exam problems will be used to assess all 5 course learning outcomes.
Specific Course Activity Assignment or Assessment Requirements
The course will include at least one term project. This project will be used for assessment along with mid-term and final exams.