MA in Computer Science
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 MA 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
