The M.S. curriculum in Computer Science has three tracks: thesis, non-thesis, and applied non-thesis.

The Non-Thesis Track is designed to provide comprehensive course work in advanced Computer Science. The Thesis Track is designed to prepare students for a Computer Science research career in either industry or academia, including an excellent preparation for further Ph.D. studies. In the Applied Thesis Track students take a core set of Computer Science courses, while also relating Computer Science to another field by taking a set of courses in an application area such as business, art, engineering, or education.

A program of study can include at most 3 courses at the 400-level. Students who have undergraduate credits for a particular 400-level course (or equivalent) cannot repeat the course for graduate credit.

This program follows in accordance with the Graduate School’s graduate degree requirements.

### Background Requirements

These courses may be required for the curriculum if a student does not come to the department with a certain required CS background. Some or all courses may be required depending on previous experience in industry or research.

#### Prerequisites

- CSC 211 – Introductory Programming and Design
- CSC 212 – Data Structures and Abstractions
- CSC 301 – Fundamentals of Programming Languages
- CSC 305 – Software Engineering
- CSC 340 – Mathematical Foundations of Computer Science
- MTH 141 – Introductory Calculus with Analytic Geometry
- MTH 142 – Intermediate Calculus with Analytic Geometry

Plus one MTH or STA course for which calculus is a prerequisite.

### Course Groups

For the purpose of describing degree requirements, Computer Science courses are organized into the following groups:

**Mathematical Foundations:**

- CSC 541 – Advanced Topics in Algorithms (4cr)
- CSC 542 – Mathematical Analysis of Algorithms (4cr)
- CSC 544 – Theory of Computation (4cr)
- CSC 550 – Computer Algebra (4cr)

**Programming Languages:**

- CSC 402 – Compiler Design (4cr)
- CSC 501 – Programming Language Semantics (4cr)
- CSC 502 – Theory of Compilers (4cr)

**Architecture and Systems:**

- CSC 511 – Advanced Computer Organization (4cr)
- CSC 512 – Topics in Distributed Systems (4cr)
- CSC 519 – Computer Networks (4cr)

### Thesis Requirements

- At least one course from each of the following core areas: mathematical foundations, programming languages, and architecture and systems (3 Courses).
- At least five other courses chosen with the approval of the major professor; at least two of these must be a CSC course or an approved equivalent of a CSC course (5 Courses).
- At least eight credits of thesis research (CSC 599).

### Non-Thesis Requirements

- At least two courses from mathematical foundations, one course from programming languages, and two courses from architecture and systems (5 Courses).
- At least three approved CSC courses or equivalents (3 Courses).
- At least two courses chosen with the approval of the advisor (2 Courses).
- At least one of the ten courses listed above should include writing a substantial paper based on significant independent research.
- Passing a written comprehensive examination.

### Applied Non-Thesis Requirements

- At least two courses from mathematical foundations, one course from programming languages, and two courses from architecture and systems (5 Courses).
- At least two more approved CSC courses or equivalents (2 Courses).
- At least one course should include writing a substantial paper based on significant independent research.
- An approved concentration in another discipline consisting of a minimum of four graduate courses in the area of concentration (4 Courses).
- Passing a written comprehensive examination.

- Minimum number of credits required for this degree program option is 40.

Listed below are some sample concentrations for the applied non-thesis option. The department encourages other application areas in the physical, biological, mathematical and social sciences. Students in the applied track will have an advisor in Computer Science and an advisor in their application area. Together, these advisors will approve the student’s program of study.

Computers and Operations Research Students in this track will take:

- IME 432 – Operations Research: Deterministic Systems (3cr)
- IME 540 – Production Control and Inventory Systems (3cr)
- IME 555 – Deterministic Systems Optimization (3cr)
- IME 565 – Theory of Scheduling (3cr)

Computers and Statistics Students in this track will take:

- MTH 451 – Introduction to Probability and Statistics (3cr)
- MTH 452 – Mathematical Statistics (3cr)
- Three of the following courses:
- STA 502 – Applied Regression Analysis (3cr)
- STA 513 – Statistical Quality Assurance (3cr)
- STA 535 – Statistical Methodology in Clinical Trials (3cr)
- STA 541 – Multivariate Statistical Methods (3cr)
- STA 584 – Pattern Recognition (3cr)
- MTH 551 – Mathematical Statistics (3cr)