MS in Computer Science

While a degree in computer science isn’t necessary to “work with computers,” there is intense demand for computer professionals in many fields where a deeper and principled understanding of computer and information systems is needed, from developing rich applications integrated with a database back-end, to interoperability of software with complex network infrastructure, to consulting opportunities involving optimization of client software and hardware. With the Master of Science, students become professionals with knowledge of the underlying principles of the main areas of computer and information systems and theory, and hands-on experience that allows them to participate in development of new systems. Upon graduation, when confronted with a new problem, students will have sufficient facility with basic techniques and methods to research the technical literature in search of a solution or to devise new methods.

Course Requirements

Eight semester courses (32 credits) approved for graduate study are required, including the computer science graduate core curriculum. A minimum grade of B– is required in non-core courses.

Core Curriculum

Master’s candidates are required to complete at least five courses from the list of breadth courses (see below) with at least one course taken in each subject area. Among the grades received for the five core courses, the number of grades of B– must not be greater than the number of grades of B+ or higher. No grade lower than B– may be used for graduate credit.

Language Requirement

The department does not have a foreign language requirement.

Master’s Project

All MS candidates must complete a master’s project. Projects are carried out with the approval and under the supervision of a faculty member. A master’s project can be expanded into a master’s thesis, which requires two faculty readers.

Courses

  • CAS CS 511 Object-Oriented Software Principles
  • CAS CS 520 Programming Languages
  • CAS CS 525 Compiler Design Theory
  • CAS CS 530 Analysis of Algorithms
  • CAS CS 532 Computational Geometry
  • CAS CS 535 Complexity Theory
  • CAS CS 537 Randomness in Computing
  • CAS CS 538 Fundamentals of Cryptography
  • CAS CS 539 Methods of Scientific Computing
  • CAS CS 542 Machine Learning
  • CAS CS 548 Advanced Cryptography
  • CAS CS 552 Introduction to Operating Systems I
  • CAS CS 553 Operating Systems II
  • CAS CS 556 Advanced Computer Networks
  • CAS CS 558 Computer Networks Security
  • CAS CS 559 Algorithmic Aspects of Computer Networks
  • CAS CS 562 Advanced Database Applications
  • CAS CS 565 Data Mining
  • CAS CS 580 Advanced Computer Graphics
  • CAS CS 585 Image and Video Computing
  • CAS CS 591 Topics in Computer Science
  • GRS CS 640 Artificial Intelligence
  • GRS CS 651 Distributed Systems
  • GRS CS 655 Introduction to Computer Networks
  • GRS CS 660 Introduction to Databases
  • GRS CS 670 Performance Analysis of Computer Systems
  • GRS CS 680 Graduate Introduction to Computer Graphics
  • GRS CS 697 Computer Science Graduate Initiation
  • GRS CS 698 CS Teaching Fellow Training
  • GRS CS 699 Teaching College Computer Science I
  • GRS CS 791, 792 Advanced Topics in Computer Science

Breadth Courses

Theory:

  • CAS CS 530 Analysis of Algorithms
  • CAS CS 535 Complexity Theory
  • CAS CS 537 Randomness in Computing

Software:

  • CAS CS 511 Object-Oriented Software Principles
  • CAS CS 520 Programming Languages
  • CAS CS 525 Compiler Design Theory

Systems:

  • CAS CS 550    Computer Architecture
  • CAS CS 552 Introduction to Operating Systems I
  • CAS CS 553 Operating Systems II
  • CAS CS 556 Advanced Computer Networks
  • GRS CS 651 Distributed Systems
  • GRS CS 655 Introduction to Computer Networks
  • GRS CS 670 Performance Analysis of Computer Systems

Applications:

  • CAS CS 538 Fundamentals of Cryptography
  • CAS CS 542 Machine Learning
  • CAS CS 548 Advanced Cryptography
  • CAS CS 558 Computer Networks Security
  • CAS CS 559 Algorithmic Aspects of Computer Networks
  • CAS CS 562 Advanced Database Applications
  • CAS CS 565 Data Mining
  • CAS CS 580 Advanced Computer Graphics
  • CAS CS 585 Image and Video Computing
  • GRS CS 640 Artificial Intelligence
  • GRS CS 660 Introduction to Databases
  • GRS CS 680 Graduate Introduction to Computer Graphics

Directed Study or Research in Computer Science

Prerequisite: consent of instructor. Directed study must be approved by the faculty supervisor and the department faculty member concerned. Directed study (research) courses may be used toward completing a master’s project, a master’s thesis, or research work, as determined in consultation with the student’s faculty advisor.

  • GRS CS 910, 911    Directed Study in Computer Systems
  • GRS CS 920, 921    Directed Study in Programming Languages
  • GRS CS 930, 931    Directed Study in Algorithmic Information Theory
  • GRS CS 932, 933    Directed Study in Algorithms
  • GRS CS 935, 936    Directed Study in Computational Complexity
  • GRS CS 952, 953    Directed Study in Operating Systems
  • GRS CS 960, 961    Directed Study in Database Systems
  • GRS CS 979, 980    Directed Study in Image and Video Computing