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.
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
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.
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.
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.
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
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 include both a breadth requirement, as well as specific
- Breadth Requirement
Five 5000-level (not 6000- or 7000-) Computer Science courses must be taken,
according to the following requirements:
All five courses must have a grade B+ or better.
All five courses must have a different last digit, which is currently
used as the area digit.
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.
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
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.
The plan may be amended as many times as necessary, but the advisor's
approval is required on all versions of the plan.
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.
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.
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.
A student is allowed at most two attempts total to pass the Area Exam.
- Examination Scope and Scheduling
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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
- 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
- Year 4
- Year 5
- Year 6
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.
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
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.
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.
(description to be provided)
(description to be provided)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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
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.