Systems Programming Track - Prior to Fall 2019
Objectives
The track is designed to prepare students to become programmers who can build
- low-level software that uses or runs inside an operating system,
- system tools for other users (e.g., compilers and assemblers),
- programs that communicate over a computer network or the Internet (e.g., web servers).
Required Courses
All track requirements, regardless of department, must be completed with a grade of C or higher.
The track has three required courses that provide general background
| Course | Title |
|---|---|
| CS 35200 | Compilers: Principles and Practice |
| CS 35400 | Operating Systems |
| CS 42200 | Computer Networks |
Systems Programming Track Pre-requisite Flowchart (PDF)
Electives
The track has three electives, chosen from the list below. It is strongly recommended that students select a senior project course as one of the electives.
| Course | Title |
|---|---|
| CS 30700 | Software Engineering I |
| CS 33400 | Fundamentals of Computer Graphics |
| CS 35300 | Principles of Concurrency and Parallelism |
| CS 38100 | Introduction to the Analysis of Algorithms |
| CS 42600 | Computer Security |
| CS 44800 | Introduction to Relational Database Systems |
| CS 45600 | Programming Languages |
| Senior Project approved by faculty (Example: EPCS 411 EPICS design) | |
| CS 48900 | Embedded Systems |
| CS 49000 DS0 | Distributed Systems |
The Software Engineering Senior Project cannot be used as the Systems research project unless track chair approval from both track chairs is obtained.
Last Updated: Jul 15, 2025 3:00 PM