Computer Science M.S. Curriculum
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.
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
- MTH 215 - Introduction to Linear Algebra
- MTH 243 - Calculus for Functions of Several Variables
Course Groups
For the purpose of describing degree requirements, Computer Science courses are organized into the following groups:
- Algorithms:
-
- CSC 440 - Algorithms and Data Structures (4cr)
- CSC 541 - Advanced Topics in Algorithms (4cr)
- CSC 542 - Mathematical Analysis of Algorithms (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)
- Computer Architecture:
-
- CSC 411 - Computer Organization (4cr)
- CSC 415 - Introduction to Parallel Computing (4cr)
- CSC 511 - Advanced Computer Organization (4cr)
- CSC 517 - Design and Analysis of VLSI Systems (4cr)
- Computer Systems:
-
- CSC 412 - Operating Systems and Networks (4cr)
- CSC 512 - Topics in Distributed Systems (4cr)
- CSC 519 - Computer Networks (4cr)
- Theory of Computation:
-
- CSC 445 - Models of Computation (4cr)
- CSC 544 - Theory of Computation (4cr)
- Software Design:
-
- CSC 505 - Advanced Topics in Software Engineering (4cr)
- CSC 509 - Object-Oriented System Design (4cr)
- Applications:
-
- CSC 406 - Computer Graphics (4cr)
- CSC 436 - Database Management Systems (4cr)
- CSC 481 - Artificial Intelligence (4cr)
- CSC 485 - Computer Forensics (4cr)
- CSC 486 - Network Forensics (4cr)
- CSC 522 - Bioinformatics (3-4cr)
- CSC 536 - Topics in Data Management Systems (4cr)
- CSC 581 - Special Topics in Artificial Intelligence (3cr)
- CSC 583 - Computer Vision (3cr)
- CSC 585 - Topics in Computer Forensics (4cr)
- CSC 586 - Topics in Network Forensics (4cr)
Thesis Requirements
Either:
New Requirments
- At least one course from each of the following course groups (3 courses total):
- Algorithms OR Theory of Computation
- Programming Languages OR Software Design
- Computer Architecture OR Computer Systems
- 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.
- At least two separate semesters of one credit of CSC591: "Computer Science Seminar Series" (first offered Spring 2006).
- At least eight credits of thesis.
Old Requirments
- At least one course from each of the following course groups:
- Algorithms
- Programming Languages
- Computer Architecture
- Computer Systems
- Theory of Computation
- At least three other courses chosen with the approval of the major professor.
- At least eight credits of thesis.
Non-Thesis Requirements
- Algorithms
- Programming Languages
- Computer Architecture
- Computer Systems
- Theory of Computation
- Software Design
Applied Non-Thesis Requirements
- Algorithms
- Programming Languages
- Computer Architecture
- Computer Systems
- Software Design
Listed below are the approved 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 Business Management Students in this track will take:
-
- ACC 610 - Financial Accounting (3cr)
- FIN 601 - Financial Management (3cr)
- MGT 630 - Organizational Theory and Behavior (4cr)
- MGT 681 - Administrative Policy and Decision Making (3cr)
- Two of the following courses:
- MSI 600 - Managing with Information Resources (2cr)
- MSI 620 - Quantitative Methods for Management (2cr)
- MSI 640 - Productions and Operations Management (2cr)
- MSI 684 - Advanced Mathematical Programming Methods in Management (3cr)
- 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)

