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 the General Requirements for the Doctor of Philosophy.

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 MS 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