The Master of Science in Computer Science is a 33-credit degree program for persons seeking
to enhance their professional qualifications and stature through graduate study in computer
science. Individuals who graduate from the program will acquire knowledge and develop
problem-solving skills that prepare them to hold a variety of scientific and technical positions
in the area of computing applications. Graduates will also be prepared for further work at the
doctoral level.
For admission information, see Graduate Admission and Program Specific Application
Requirements.
Prerequisite Courses
The prerequisite courses represent background knowledge and skills necessary for successful
completion of degree requirements. Some or all of the prerequisite courses may be waived by
the program director, based upon an analysis of the student’s previous work. A student holding
a baccalaureate degree in computer science will normally be granted exemption from, but not
graduate credit for, all prerequisite courses.
- MATH 505 Discrete Mathematics (3 credits)
- CS 503 Programming and Algorithms I (3 credits)
- CS 504 Programming and Algorithms II (3 credits)
- CS 508 Computer Organization and Design (3 credits)
- CS 519 Advanced Data Structures (3 credits)
Degree Requirements
A student must complete 33 credits beyond prerequisite courses, including 15 credits of Core
requirements. The Core courses represent the general body of knowledge and skills that all
students in the program are expected to master.
Core Requirements:
- CS 520 Algorithm Analysis (3 credits)
- CS 524 Principles of Software Engineering (3 credits)
- CS 528 Artificial Intelligence (3 credits)
- CS 564 Operating Systems (3 credits)
One of the following courses:
- CS 561 Computer Architecture (3 credits)
- CS 571 Programming Languages (3 credits)
The program offers several options for completing the remaining 15 credits. A student may
take all 15 credits as elective work, or may take 9 credits within a Specialty Track and 6 credits
of elective work. The choice of which option and which elective work best suit the student’s
goals should be made in consultation with a faculty adviser. The department currently offers a
Specialty Track in Artificial Intelligence and a Specialty Track in Networks and Distributed
Computing.
Requirements for Specialty Track in Artificial Intelligence
- CS 528 Artificial Intelligence (3 credits)
Two of the following courses:
- CS 542 Perception in Artificial Intelligence (3 credits)
- CS 543 Machine Learning (3 credits)
- CS 544 Knowledge Representation and Reasoning (3 credits)
Requirements for Specialty Track in Networks and
Distributed Computing
Three of the following courses:
- CS 536 Web Services (3 credits)
- CS 553 Data Communication and Network Security (3 credits)
- CS 573 Selected Topics in Distributed Computing (3 credits)
- CS 576 Concurrent Algorithms (3 credits)
Regardless of which option is chosen as part of the required elective work, a student may, with
permission of the department, elect to do a 6-credit thesis (CS 580), a 3- or 6-credit field work
project (CS 585) or a 6-credit Software Engineering Project (CS 595).