skip to main content
Department of Computer Science University of Colorado Boulder
cu: home | engineering | mycuinfo | about | cu a-z | search cu | contact cu cs: about | calendar | directory | catalog | schedules | mobile | contact cs
home · graduate program · 

PhD Degree Program


The Bulletin of the Graduate School gives the general requirements for the degree of Doctor of Philosophy in all departments of the University of Colorado. The following is a description of those requirements which specifically pertain to students pursuing a course of study leading to the degree of Doctor of Philosophy in the Department of Computer Science. It supplements the requirements in the Bulletin. In all cases not specifically mentioned below, the general requirements as stated in the Bulletin are understood to apply.


Each graduate student is assigned an initial advisor when they are accepted into the program. The faculty advisor consults with the PhD student in planning a sound program of study, including the courses to be taken and the Preliminary Area Exams to be attempted. The duties of the faculty advisor will later be assumed by the Chairman of the student's thesis committee.

Plan of Study

No specific courses are required. It will be up to the student and the advisor to plan the program and to submit a plan of study. A minimum of thirty credit hours of courses numbered 5000 or above is required for the degree, but the number of hours of formal courses will ordinarily be larger than this. In addition, a minimum of thirty credit hours of thesis work is required for all doctoral degrees within the Graduate School.

Studies leading to the Doctor of Philosophy degree must be chosen so as to contribute to special competence and a high order of scholarship in a broad field of knowledge. Although the field of study will normally be in the Department of Computer Science, except for essential related subject matter, the field of study may include one or more closely related departments. The criterion as to what shall constitute an acceptable organized program of study and research will be established without regard to the organization of academic departments in this university.

Transfer Credit

The Graduate School will allow doctoral students to transfer up to 21 semester hours of graduate course work at another institution toward the PhD degree. All transfer requests must have departmental approval. Transfer requests can be made with the Request for Transfer of Credit.

MS Degree for PhD Students

A student pursuing a program of study toward the PhD degree will not normally receive the MS degree. A PhD student desiring to receive the MS degree must, of course, satisfy the requirements for that degree; the most important additional requirement in this case is the completion of an MS thesis or the non-thesis option. Course work taken at this university to satisfy the requirements for the MS degree in Computer Science normally will be counted in considering the minimum requirement of course work for the PhD degree in Computer Science cited above except for MS thesis hours.

Degree Requirements

Several examinations that are required by the Computer Science Department for graduation with a PhD degree are described below. In addition, there are requirements of the Graduate School that must be met.

These include requirements related to

PhD Preliminary Exams

The PhD Preliminary Exam fulfills the Graduate School requirement for a Preliminary Exam. The Exam consists of an Area Examination Requirement plus Course Requirements.

Course Requirements

Course Requirements include both a breadth requirement, as well as specific course requirements.

Breadth Requirement

Five 5000-level (not 6000- or 7000-) Computer Science courses must be taken, according to the following requirements:

  1. All five courses must have a grade B+ or better.

  2. All five courses must have a different last digit, which is currently used as the area digit.

  3. If pre-approved by the Graduate Committee, one of the five courses can be substituted by a course with sufficient Computer Science content from another department.

  4. At most one course that is closely related to the student's area of specialization (as indicated by the Area Exam) can be included in the five.

  5. All five courses must be taken within the first five semesters.

CSCI 6000. Introduction to the Computer Science PhD Program

CSCI 6000 is a required course for all new PhD students and must be taken within the first two semesters of joining the program.

Area Examination Requirement

The purpose of the area examination is to ensure that the student has sufficient depth to begin research in a selected area. Thus the exam tests knowledge of the general area of computer science that contains the research topic, deeper specialized knowledge of the specific research area that the student will be working in, and intellectual sophistication needed to conduct research in the area.

The area examination contrasts with the comprehensive exam, which is devoted to a focused research theme. It complements the course work requirement of the preliminary exam, which is meant to build breadth in Computer Science in general and general knowledge of the student's research area.

Selecting an Examination

Each student is given an advisor on entry to the PhD program. During the first semester of PhD studies, the student must file a Preliminary Exam Plan, approved by the advisor. The plan specifies the courses and the Area Exam.

  1. The plan may be amended as many times as necessary, but the advisor's approval is required on all versions of the plan.

  2. The area examination must be passed by the end of the third academic year in order to be making adequate progress. It will normally be taken during the second academic year.

  3. Because the Area Exam and coursework selections are related to competencies in a specific subject area, students with an academic advisor outside their area of interest should attempt to find a faculty member qualified to advise on the coursework and area exam components of the plan of study. The academic advisor signing the plan of study need not be a student's PhD research advisor, but should be in a related area in order to make the transition easier.

  4. A student may switch academic advisors with the approval of the new advisor. The new advisor will approve a revised Preliminary Exam Plan. A student changing areas who has already completed an area examination will not be required to take another. Instead the student will be required to make up any deficiencies as determined by the new advisor.

  5. A student is allowed at most two attempts total to pass the Area Exam.

Examination Scope and Scheduling
  1. Any three Computer Science graduate faculty members can offer an area examination. Faculty outside the Computer Science department may serve on the committee as additional members -- they may not substitute for the three Computer Science members or chair the exam committee.

  2. All area examinations are open to all students in the department, but each student's advisor must approve of the area exam chosen by the student through the Preliminary Exam Plan. Most area examinations will be offered once per year, in the same month every year.

  3. Exams that are being offered for the first time will be announced at some point during the preceding academic year. As much information about the exam as possible will be made available when a new exam is announced.

  4. The list of all area exams for the academic year will be finalized at the start of the Fall Semester and posted on the departmental website. The Graduate Secretary must be notified of each area exam by the Exam Committee. An exam that is not on the list at the start of the academic year (or was not announced before the previous summer recess) cannot be offered that year. The date the exam will be offered, as well as its format, are at the sole discretion of the committee offering the exam.

  5. The format of the examination and the materials upon which the area examination will be based (courses, papers, and/or textbooks) will be posted at the exam website at least three months in advance of the exam. Exams will often differ slightly from the posting, but broad changes in the exam will be posted a year in advance. It is recommended that as much material as possible be available to students, e.g. previous exams.

  6. Faculty will attempt to maintain consistency in the exams. Exams in different areas should be at similar levels of difficulty. The material tested by the exam is roughly the equivalent of two graduate courses minimum and three graduate courses maximum, although the exam need not be based on any specific courses.

  7. An exam must be offered again, within a year, if a student wishes to retake it to earn a passing grade.

An Area Exam Report must be submitted upon successful completion of the exam.

PhD Thesis Advisor and Committee

The student must find a thesis topic and a thesis committee; these are usually done in parallel. The committee must include five faculty, one of whom is from outside the Computer Science Department. The thesis topic must be acceptable to the committee and the committee must believe that the student is capable of doing the research needed to complete a thesis on this topic. This is measured by the comprehensive exam (Graduate School's terminology), which as implemented in Computer Science is really a thesis proposal to the student's committee. The student's thesis advisor is the chair of the thesis committee and takes over the advisory role from the student's initial advisor.

PhD Comprehensive Exam/Proposal

Each student is expected to take the Comprehensive Exam/Proposal within four years of the student's admission to regular degree status. The purposes of the Comprehensive Exam are to insure that:

  • the student has a sufficient grasp of the fundamentals of the chosen thesis area to begin research;

  • the student has the ability to exchange ideas and information with the members of the Advisory Committee; and

  • the student has a broad base of knowledge about computer science.

The exam, normally an oral exam, will be given by the student's five-person thesis committee (approved by the Department Chairman). A passing grade is given if at least four of the five members of the examining committee vote to award to passing grade. The student shall not, however, receive a passing grade if the Chair of the examining committee does not vote to award a passing grade. Doctoral Comprehensive Examinations must be scheduled with the Graduate School at least two weeks in advance by submitting a Doctoral Examination Report.

PhD Thesis Defense

A thesis based on original investigation and showing mature scholarship and critical judgment, as well as familiarity with tools and methods of research, must be written on some subject approved by the student's Thesis Advisory Committee. After the thesis has been completed, a final exam on the thesis and related topics will be conducted. This exam is oral and open to anyone. The exam will be conducted by a committee, appointed by the Dean, which will consist of no fewer than five representatives, including at least one member of each department in which the student has worked, and including at least one other professor from the University at large. More than one dissenting vote will disqualify the candidate in the final exam. Thesis Defense must be scheduled with the Graduate School at least two weeks in advance by submitting a Doctoral Examination Report.

Time Limit and Milestones

All requirements for the PhD degree must normally be completed within six years of the start of course work.

In addition to completing your course requirements, preliminary exam and comprehensive exam as specified above, you should get started with your research agenda as soon as possible. This includes exploring research areas/topics, getting to know your research community, attending professional conferences in your research area, doing research, and disseminating research results via writing/submitting/publishing research papers and presenting them at appropriate venues. An important first step towards achieving this goal is to start meeting with your adviser regularly and integrate yourself into a research group of interest as soon as possible.

The guidelines below serve as a checklist for you to ensure that you are making adequate progress. These bullet items are based on a timeline set by the Graduate School and the Graduate Committee, but we encourage you to complete them and the PhD program sooner if possible. If you feel that you are behind according to this schedule, the Graduate Committee encourages you to seek discussion with your adviser, a faculty mentor, or the Graduate Committee. Please note that adhering to these guidelines is a necessary but not sufficient condition for success. Ultimately, the quality of your research, and successfully completing the course requirements, preliminary exam, comprehensive exam and PhD dissertation will lead to the PhD degree.

Year 1
  • Find a research advisor by actively integrating yourself into a research group of interest

  • Meet with your adviser regularly

  • Complete 12-15 credit hours of course work

  • Create web page

    • Bio -- contact info, degrees, employment
    • Resume
    • Description of research interests and research projects
    • Publication list
Year 2
  • Conduct research with adviser and disseminate your research results

  • Complete 12-15 credit hours of course work

  • Prepare for your preliminary exam

Year 3
  • Conduct research with adviser and disseminate your research results

  • Complete Preliminary Exam

    • Complete coursework (30 hours, including breadth requirement)
    • Complete Area Exam
Year 4
  • Conduct research with adviser and disseminate your research results

  • Defend Proposal (Comprehensive Exam)

Year 5
  • Conduct research with adviser and disseminate your research results

  • Dissertation research work

Year 6
  • Complete dissertation work

  • Defend PhD Dissertation

  • Apply for jobs

PhD Areas of Study

The Department offers a wide range of courses and research opportunities in the following broad areas. Faculty members who are willing to supervise a dissertation in each area, as well as sites related to the area, are shown below. No relative emphasis is implied by the order.

Bio and Medical Informatics

To improve human health and advance the scientific understanding of life through the use of computation. Students of bioinformatics and medical informatics are expected to become familiar with an area of computer science as it applies to a field of biology or health. Diverse areas of computer science are becoming critical to problems in biology or health, including human-computer interfaces, database design and data mining, algorithms, machine learning, and numerical computation. Some possible applications include identifying drug targets or new drugs; developing portable applications to improve medical outcomes for use by doctors, nurses, or patients; developing assistive devices to support independence and improve quality-of-life for people with various challenges; and contributing to basic research in biology, medicine, or health. Our efforts include research in biomedical text mining, protein structure simulations, RNA sequence and structure analysis, graphical models of protein interactions, and statistical analysis of regulatory sequences.


Related Sites:

Computational Modeling of Human Cognition

The goal of computational modeling is to understand the mechanisms of human cognition using methods from artificial intelligence, machine learning, and statistics. An effective model achieves understanding by proposing a small set of computational principles that can account for a broad range of neuroscientific, neuropsychological, or behavioral data. Beyond increased scientific understanding, models offer the opportunity to design more effective educational techniques, techniques for remediation of brain injury, and new approaches to designing artificial intelligence.


Related Sites:

Computational Science and Engineering

Computational science and engineering (CS&E) is a rapidly growing discipline overlapping with computer science, mathematics, the physical and biological sciences, and engineering. It integrates knowledge and techniques from all of these disciplines to create computational technologies which enable the study of complex engineering systems and natural phenomena that would be too expensive or dangerous, or even impossible, to study by direct experimentation. The CS&E group conducts research in the following areas: high performance computing, numerical analysis, numerical methods for linear systems, optimization and nonlinear systems, parallel algorithms for partial differential equations, and computational biomechanics.


Related Sites:

Computer Architecture

(description to be provided)


Related Sites:

Computer Supported Collaborative Work

(description to be provided)


Related Sites:

Database Systems

A student specializing in this area will become familiar with the techniques and concepts used in managing the storage, retrieval, and manipulation of large amounts of data. This ranges from a thorough understanding of the operational characteristics of storage devices to the design of high-level query languages for accessing data, including issues of the psychology of human-computer interaction as well as issues arising from the distribution of data over a network of computers.


Related Sites:

Distributed and Network Computing

Distributed and network computing research focuses on all aspects of building distributed systems and services. These include communication protocols, wireless communication, wireless sensor networks, dependable systems, distributed systems, pervasive systems, and mobile computing systems.


Related Sites:

Formal Methods

Formal methods concern the application of mathematical and logical techniques to study the specification, verification and synthesis of hardware, software and embedded systems. Areas of study include symbolic logic (propositional, first-order, higher-order, modal, etc.); logics of programs for specification and verification (e.g., temporal logics, dynamic logics, sub-structural (separation) logic, etc.); algorithms for satisfiability and validity checking; verification, inference and synthesis techniques (e.g., abstract interpretation, model-checking, theorem proving, symbolic execution, etc.). Current areas of special interest include hybrid systems theory and its applications to embedded system verification and control; logics for programming language design and static/dynamic analysis of programs.


Related Sites:

Human-Centered Computing

The Computer Science Department houses several active CU faculty in Human-Centered Computing -- our new area name that now subsumes Human-Computer Interaction and Digital and Social Systems -- with multiple labs and centers. Together we conduct research in social computing, health informatics, computer supported cooperative work, human-computer interaction, computer supported cooperative learning, graphical programming, digital libraries, computer animation, game programming, universal design, web engineering, hypermedia, crisis informatics and more.


Related Sites:

Machine Learning

Machine Learning involves the design of algorithms that allow computers to learn directly from experience. Machine Learning Research at the Computer Science Department focuses of Supervised Learning, Semi-Supervised Learning, Clustering, and Reinforcement Learning. Application areas include Robotics, Natural Language, and Wireless Communication.


Related Sites:

Machine Vision

Computer Vision deals with methods for inferring information about objects in the world from images (signals-to-symbols). Vision research in the Computer Science department focuses on stereo and multiview depth reconstruction, human pose tracking and depth and appearance-based techniques for autonomous robot navigation tasks.


Related Sites:

Operating Systems

Students of computer operating systems must become familiar with the basic structures of computers and programming languages. They will also gain an understanding of data structures and some experience in writing and testing nontrivial programs. The study of operating systems includes fundamental topics such as systems programming, systems design techniques, and concepts of process synchronization, resource sharing, and scheduling. The opportunity also exists to learn implementation details of batch, interactive, and on-line systems. Theoretical studies of operating systems are also available in the curriculum. Special topics include measurement and evaluation, stochastic and deterministic models, and software engineering.


Related Sites:

Programming Languages

Students specializing in this area are expected to gain an appreciation of the relationships between programming and machine architecture as well as to study the design, implementation, and use of higher level languages.


Related Sites:


Robotics is the science of making machines act and interact in the physical world. Robotics Research in the Computer Science Department focuses on autonomous vehicles which depend on sophisticated sensing and modeling techniques to perform tasks such as navigation, exploration and surveillance without human supervision.


Related Sites:


Computer and communications technologies are revolutionizing virtually all aspects of society. They have become such ubiquitous and integral parts of our daily lives that we no longer realize how much we depend upon their continuous and proper functioning. Because of their central role, computer- and communications-based systems are high-value targets for misuse, disruption, and even destruction. This research group is dedicated to advancing knowledge and practice in the security of computer- and communications-based systems. This includes research and education in the technologies of computer and communications security, and in the policies governing their proper development and use.


Related Sites:

Software Engineering

A student specializing in this area is expected to be familiar with the basic concepts of computer architecture, programming languages, operating systems, data structures and theoretical computer science. Such a student should also have experience in developing nontrivial programs. Topics included in the study of software engineering are the software life cycle, the design process, specifications and software validation (testing, static analysis, program verification). The maintenance activity, version and configuration control, software engineering environments and software engineering economics are topics of concern to the student of software engineering as well.


Related Sites:

Speech and Language Processing

The area of Speech and Language Processing concerns the practical and theoretical issues involved in getting computers to do useful and interesting tasks involving human language. Students in this area receive training in computational linguistics, information retrieval and spoken language processing. Current research at CU addresses fundamental problems in computational aspects of syntax, semantics and spoken language as applied to information extraction, question answering, machine translation and the creation of virtual tutoring systems.


Related Sites:

Theory of Computation

This area is concerned with the theoretical foundations of computer science and processing of information. Topics include the design and analysis of efficient algorithms, automata theory and formal languages, computational complexity and the limits of practical computation, semantics of programming languages. More specific areas and tools include data structures, graph theory, strings, and in general, any study involving rigorous, discrete, mathematical models. Students should have a strong mathematical background.


Related Sites:

See also:
Department of Computer Science
College of Engineering and Applied Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
Send email to

Engineering Center Office Tower
ECOT 717
FAX +1-303-492-2844
XHTML 1.0/CSS2 ©2012 Regents of the University of Colorado
Privacy · Legal · Trademarks
December 3, 2011 (09:26)