MS in Computer Science

45.0 quarter Credits

General Requirements

Students must complete a minimum of 45 graduate credits for the MS degree. All students are required to submit a plan of study form with the Graduate Advisor at the beginning of their studies. Significant changes to the plan of study should be discussed with the Graduate Advisor.

Precore Classes
Precore classes are graduate level courses, but are not considered graduate level CS courses. These courses only count towards the degree requirement listed below for "three additional graduate level courses" with approval from the Graduate Coordinator. Precore courses are intended for students without adequate CS background. The material in these courses is considered prerequisite knowledge for all other graduate CS courses.

  • CS 520 Foundations of Computer Science
  • CS 571 Programming Tools and Environments

Degree Requirements

Students take the following three (3) core requirement courses: 9.0 Credits
CS 521 Data Structures and Algorithms I 3.0
CS 525 Theory of Computation 3.0
CS 550 Programming Languages 3.0
Students select (3) flexible core requirement courses from the following list: 9.0 Credits
CS 510 Artificial Intelligence I
3.0
CS 522 Data Structures and Algorithms II 3.0
CS 530 Developing User Interfaces
3.0
CS 536 Computer Graphics
3.0
CS 540 High Performance Computing
3.0
CS 543 Operating Systems 3.0
CS 544 Computer Networks 3.0
CS 567 Applied Symbolic Computation
3.0
CS 576 Dependable Software Systems 3.0
CS 583 Introduction to Computer Vision 3.0
     
 
Breadth Requirements 9.0 Credits

In addition, all students are required to take an additional three (3) breadth requirement electives, developing background knowledge in an area of particular interest. These courses are organized into the following seven areas.

Students must take courses from at least three different areas. Some additional courses, such a s Special Topics, may count toward the Breadth Requirement. Contact the Graduate Advisor for more information regarding substitutions.

Artificial Intelligence and Robotics
CS 510 Artificial Intelligence I 3.0
CS 511 Robot Building Laboratory 3.0
CS 610 Artificial Intelligence II 3.0
CS 612 Knowledge Based Agents 3.0
CS 613 Machine Learning 3.0
Algorithms and Theory
CS 522 Data Structures and Algorithms II 3.0
CS 620 Advanced Data Structure/Algorithms  
CS 621 Approximation Algorithms 3.0
   
CS 623 Computational Geometry 3.0
CS 676 Parallel Programming 3.0
CS 680 Special Topics in Algorithms 3.0
Computer Graphics and Vision
CS 536 Computer Graphics
3.0
CS 583 Introduction to Computer Vision 3.0
CS 634 Advanced Computer Vision
3.0
CS 636 Advanced Computer Graphics 3.0
   
CS 637 Interactive Computer Graphics 3.0
Human Computer Interaction
CS 530 Developing User Interfaces 3.0
CS 630 Cognitive Systems 3.0  
 
CS 631 HCI: Computing Off The Desktop3.0  
Numeric and Symbolic Computation
CS 540 High Performance Computing 3.0
CS 567 Applied Symbolic Computation 3.0
CS 668 Computer Algebra I 3.0
CS 669 Advanced Computer Algebra 3.0
Programming Languages and Compilers
CS 551 Compiler Construction 3.0
CS 552 Compiler Construction II 3.0
CS 650 Program Generalization and Optimization 3.0
CS 676 Parallel Programming 3.0
Software Engineering
CS 575 Software Design 3.0
CS 576 Dependable Software Systems 3.0
"
CS 675 Reverse Software Engineering 3.0
CS 780 Special Topics in Software Engineering 3.0
Systems
CS 500 Database Theory 3.0
CS 543 Operating Systems3.0
CS 544 Computer Networks 3.0
CS 643 Advanced Operating Systems 3.0
CS 645 Network Security 3.0
CS 647 Distributed Systems Software 3.0
   
CS 741 Computer Networks II 3.0
CS 751 Database Theory II 3.0
Computer Science Depth Requirement 6.0 Credits
MS students are required to complete at least two Computer Science (CS) courses beyond the breadth requirement. These courses should be 600 or 700-level courses. In addition, advanced courses may be taken from outside the department if the course is on the list of approved external courses, and may include CS 690 Independent Study, if approved by the Department's Graduate Advisor.

Additional Graduate-Level Courses 6.0 Credits
Two additional graduate level courses are required. These courses may come from either the 600 or 700 level Computer Science (CS) courses. In addition, courses may be taken from outside the department, if on the list of approved external courses, and may include CS 690 Independent Study and CS 997 Research in Computer Science.

CS 520 and CS 571 may only be used to fulfill the additional course requirement with permission of the Graduate Committee. Any course not explicitly listed above, including independent study and research courses, must be approved by the Department's Graduate Advisor.

Other courses, such as intermediate 500-level and special topics, that the department offers may qualify for fulfilling this requirement. Students must check with the department to see if this is the case, and have these courses approved by the Graduate Committee. Any course offered by other departments that is not on the list of approved external courses must be approved by the Department's Graduate Advisor, or it will not count towards the degree.



Thesis Option
Usually students pursuing a Master's Thesis will first do 3.0 research credits (CS 690 or CS 997) to obtain background knowledge required by the thesis topic. It is the responsibility of the student to find a thesis supervisor.
   
CS 898 Master's Thesis 6.0
Non-thesis Option
The non-thesis option requires two additional 600 or 700 level courses taken in place of the 6.0 thesis credits.
  600 or 700-level courses 6.0