PhD in Computer Science
The post-master’s PhD candidate must complete or have completed the requirements for a master’s degree in computer science or the equivalent. Unusually well-qualified candidates may be accepted as 16-course post-bachelor’s PhD candidates directly after earning the bachelor’s degree.
Course Requirements
Eight semester courses (32 credits) beyond those taken to fulfill the master’s degree are required. These will provide a reasonable breadth of background in computer science as well as mastery of the basic tools relevant to the research area selected. A minimum grade of B− is required in all courses.
Breadth Requirement
PhD candidates are required to complete at least six breadth courses with at least two courses taken in the Theory area, and at least one course taken in each of the other subject areas (Systems, Software, Applications). The GPA in these six breadth courses must be 3.5 or higher. No grade lower than B− may be used for graduate credit.
Language Requirement
The department does not have a foreign language requirement.
Qualifying Examination (Depth)
All PhD candidates must pass a written or oral comprehensive examination administered by the department. In addition, every PhD candidate is required to pass an oral examination in a distinct area of computer science. These examinations must be completed by the end of the third year of study.
Residency Requirement, Dissertation Prospectus, and Final Oral Examination
Please see General Requirements for the PhD.
Dissertation
An original thesis is required. A thesis advisor must be selected from among the BUCS faculty and a thesis proposal must be successfully defended by the end of the fifth year of study (the fourth year, for post-master’s PhD).
Courses
Certain courses in other departments may be taken, if approved in advance.
- 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 550 Computer Architecture
- 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 655 Introduction to Computer Networks
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
Prerequisites: consent of instructor. Directed study must be approved by the faculty supervisor and the department faculty member concerned.
Directed study (research) courses (variable credit) may be used toward completing a master’s project, a master’s thesis, or MA or PhD 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
