The Department of Computer Science offers cutting-edge and innovative graduate degree programs. The degree programs are:
The Department of Computer Science is based in DU’s School of Engineering and Computer Science. The school reflects two of the University’s strongest traditions— academic integrity and a commitment to meeting student needs with dynamic new programs.
We are strong in research and particularly noted for: research and industrial experience in databases; multimedia systems; distributed systems; Web architectures; software engineering; network and cyber security; scheduling theory; computational geometry; algorithms and parallel computer architecture; and humane gaming.
Some of our other outstanding advantages include:
At the University of Denver, you’ll find opportunities to research, study leading-edge technology and tools, and gain integrated knowledge. We emphasize interdisciplinary programs, so you’ll stand ready to meet career challenges around the office or, if you choose, around the world.
In addition, Denver is a first-rate location for internships and jobs, as well as business and government partnerships. We’re just minutes from the Denver Technological Center—home to many top tech companies—and we enjoy sweeping views of the Rocky Mountains.
Department of Computer Science
John Greene Hall, Room 100
2360 S. Gaylord St.
Denver, CO 80208
303-871-2453
www.cs.du.edu
| Program | Degrees Offered | Number of Credits | Full Time/Part Time | Test Required - Min. Scores |
| Computer Science | MS | 48 | FT/PT | TOEFL-80/213/550 (IBT/CBT/PBT) |
| Computer Science | PhD | 135 | FT/PT | GRE - Varies |
| Computer Science Systems Engineering | MS | 45 | FT/PT | |
| Computer Science and Engineering | MS | 60 | FT/PT |
Candidates for the MS in computer science should have a BA or BS degree in any discipline from an accredited university. Candidates for the
PhD in computer science must have a bachelor’s or master’s degree in computer science or a related discipline.
These courses cover programming in a high-level language that supports data abstraction, recursion, elementary data structures, assembly
language programming, digital logic and elementary discrete mathematical structures.
Computer Science Department Financial Aid Form
For complete international applicant information, please visit the Office of International Admission site.
DU offers extensive support for international students seeking to learn English or improve their English language skills. Visit the English Language Center’s Web site for more information.
Applicants must request that Educational Testing Services forward results to the University of Denver, Office of Graduate Admission. The institution code for the University of Denver is R4842.
For information concerning GRE registration please visit www.gre.org or contact:
Graduate Record Examination
Educational Testing Service
P. O. Box 6000
Princeton, NJ 08541-6000
609-771-7670
Applicants should take the entrance exam well in advance of their intended application date. Please allow at least 14 business days for your general test scores and six weeks for your subject test scores to be received. Several departments and schools will not process applications until scores have been received. Entrance exam scores older than five years from the date of the application may not be acceptable for admission. Contact the department for specific requirements.
A $60 application fee is required. This is a nonrefundable application fee, (bank draft or personal check) drawn on a U.S. bank, that covers the cost of processing application materials. A credit card payment is acceptable for online applications only. Applications will not be processed until this fee is paid. No waivers or deferrals are allowed.
Applicants are required to submit two official transcripts from each postsecondary institution they have attended, or are presently attending, where 2 quarter hours (or 1 semester hour) or more, were completed. The University is not responsible for obtaining an applicant’s transcripts, including any record of work completed at the University of Denver. Applicants must also account for any study undertaken outside the United States.
An official transcript must include the original signature of the registrar and/or the seal of the issuing institution, and must be enclosed in an envelope with the stamp or signature of the registrar across the sealed flap. Proof of a bachelor’s, and if applicable, a master’s degree is required from a regionally accredited college or university. Requested transcripts should be mailed to the applicant and submitted to the University of Denver with supplemental admission materials. Please do not request transcripts to be mailed directly to the University of Denver from other institutions.
All credentials submitted become property of the University of Denver and cannot be copied or returned to the student or any person(s).
Three (3) letters of recommendation are required. All recommendations are to be included with application materials.
You should submit a personal statement of at least 300 words. Your essay should include information concerning your life, education, practical experience, special interests and specific purpose in applying to the University of Denver.
Mail all supplemental admission materials, including official transcripts, in one package to:
University of Denver
Office of Graduate Studies
University Hall, Room 216
2197 S. University Blvd.
Denver, CO 80208
As a University of Denver graduate student, you are eligible for two types of financial aid: need-based (available to U.S. citizens and permanent residents) and merit based (available to all students, including international students). The Department of Computer Science also offers a number of graduate teaching assistantships that provide full tuition remission along with a stipend for the nine-month academic year (three academic quarters).
Other sources of financial aid that are available to both domestic and international students include graduate research assistantships (with or without partial tuition remission), scholarships and fellowships, and work-study from the department and from the School of Engineering and Computer Science. All students wishing to apply for these types of aid should fill out the Computer Science Department Financial Aid Form and submit it with their application package.
For more information about financial aid, you may wish to visit the computer science department Web site: http://www.du.edu/cs.
Every candidate for the master of science in computer science systems engineering degree must complete 45 quarter hours of credit, at least 36 of which must be completed at the University of Denver. To satisfy graduation requirements, candidates must maintain a course GPA of 3.0/4.0. In addition, a grade of C or better must be obtained in each course for that course to count toward the 45 QH requirement. Six courses at the 4000 level are required.
The degree is designed for the working professional. The basic structure is as follows:
Required Courses 11 QH
Application Area Core (approval required) 16 QH
The Preapproved Application Core currently includes:
Performance Modeling (COMP 3702) 4 QH
Capstone (Independent Study) 2 QH
Computer Science Electives 12 QH
TOTAL 45 QH
The prerequisites for this degree are the same as those for the master of science in computer science.
Requires 48 quarter hours of graduate-level course work, including COMP 3351, 3361, 3371, 3200 and a minimum of three COMP courses at the 4000 level. Of the three required courses, at least one class must be chosen from each of the following groups: Applications, Theory and Systems.
Students must also choose and complete two courses from a list of COMP courses that include an advanced programming component. This list is available from the department upon request.
Master’s degree candidates may select either a thesis or nonthesis track. Only candidates on the thesis track are eligible for teaching or research assistantships. Thesis track candidates may earn a maximum of 12 quarter hours for thesis credit. Nonthesis track students may earn a maximum of 12 quarter hours in Independent Study or Independent Research, and a maximum of 8 quarter hours may be earned in approved courses outside the COMP designation, including transfer credit.
A minimum of 135 quarter hours beyond the BA or BS degree; completion of a written dissertation that makes a significant contribution to the research literature in computer sciences; completion of a tool requirement. Although a master’s degree is not a prerequisite for acceptance into the PhD program, each student must have completed a master’s degree in computer science before completing 80 quarter hours of the PhD program.
Of the 135 quarter hours, at least 36 must be at the 4000 level. Up to 35 credits may be taken in other relevant disciplines, as approved by the Department of Computer Science graduate committee. Courses should be chosen in consultation with, and are subject to the approval of, the student’s adviser.
Every PhD student must pass a qualifying process. This consists of satisfying a Breadth Requirement and passing a written and oral Qualifying Examination.
To fulfill the Breadth Requirement, the student must take five graded courses (20 quarter credits) at the 3000 and 4000 level (not including independent study, internship, or independent research). At most, two may be at the 3000 level. At the least three must be at the 4000 level. The course work should cover at least three distinct areas. One area should include a sequence of 3000- and 4000-level courses. The GPA in these courses must be at least 3.7/4.0. No course with a grade below a B may be used to fulfill this requirement.
Graduate computer science courses taken at another university and transferred for credit at DU may be applied to the Breadth Requirement up to a maximum of two courses (8 quarter credits). After fulfilling the Breadth Requirement, the student may be admitted to the Qualifying Examination.
For the Qualifying Examination, the student selects an area of examination from a list of approved areas. The written part of the exam is a take-home exam. It is handed out on a Friday and is due the following Thursday. The oral exam is held the following Friday. The take-home exam consists of a set of research questions, a set of related papers and instructions. The student should prepare a written report of at least 10 but no more than 20 pages with answers to the questions.
Study guides or other relevant material to prepare for the exam can be obtained from the chair of the examination committee. The oral portion of the exam is based on a student presentation in which the student explains and defends his/her answers. During the oral exam, questions in other areas of computer science may also be asked.
Sufficiently prior to the exam date, the department chair will appoint an examination committee of three tenure-track faculty. One of the committee members must be in the area in which the examination will be held. The student’s advisor is allowed to be on the committee. The committee creates the take-home exam and grades it. After the oral exam, the committee makes a recommendation to the CS faculty on whether the student passes or fails. If the faculty agrees, the committee recommendation stands. If there is a disagreement, the faculty as a whole decides. A failed exam may be retaken once (in the same or another area).
After the dissertation has been completed, the student must defend it in a final examination, as specified by the Office of Graduate Studies.
It is strongly recommended that students satisfy their tool requirement by demonstrating proficiency in a modern typesetting system suitable for writing technical papers that include mathematical equations and graphics. The specific system used to satisfy this requirement must be approved by the faculty adviser.
Other options include reading competency in two languages selected from French, German and Russian; a series of courses in another discipline; or significant laboratory experience involving computer science.
The MS in computer science and engineering is a unique degree, combining curriculums from both computer science and engineering. The degree allows more of a hardware emphasis than exists in traditional CS MS degrees and more of a software emphasis than existing engineering MS degrees. Detailed information regarding this program may be obtained from the Department of Engineering.
The JD/MS dual degree combines curriculums from computer science and law. Detailed information about this program may be obtained from either the Sturm College of Law or the Department of Computer Science.
Lectures by alumni and others on surviving culture shock when leaving the University and entering the job world. This course cannot be used for graduate credit.
1 qtr. hr.
Discrete mathematical structures and non-numerical algorithms; graph theory, monoids, propositional calculus, lattices, Boolean algebras; emphasis on applications to computer science.
Prerequisite(s): MATH 2200 and COMP 1672.
4 qtr. hrs.
Computability, effective procedures, formal languages, undecidability, finite automata, regular languages. Prerequisite(s): MATH 3200.
4 qtr. hrs.
Pushdown automata, context-free languages, Turing machines, computational complexity. Prerequisite(s): COMP 3221.
4 qtr. hrs.
Fundamental issues in design and implementation of multimedia applications, as well as technologies in multimedia systems such as multimedia data representation, compression, coding, networking, data management, and I/O strategies.
4 qtr. hrs
Binding, scope, lifetime, value and type as a variable; run-time structure—static, stack-based and dynamic languages; parameter passing—call by reference, value, result, value-result and name; subprogram parameters; role played by side effects, dangling pointers, aliases and garbage; garbage collection; data abstraction—study of object-oriented language mechanisms. Prerequisite(s): COMP 2370, 2691.
4 qtr. hrs.
Techniques required to design and implement compiler; lexical analysis, syntactic analysis, optimization, storage allocation, code generation. Prerequisite(s): COMP 3351 and knowledge of C programming language.
4 qtr. hrs.
Design and implementation of a major piece of software relevant to compilers. Prerequisite(s): COMP 3352.
4 qtr. hrs.
Data types and operators, control structures, modularization through functions and multifile programs, operating system interfacing, and issues related to large programming projects. Prerequisite(s): COMP 2370.
4 qtr. hrs.
Operating systems’ functions, concepts; processes; process communication, synchronization; processor allocation, memory management in multiprogramming, time-sharing systems. Prerequisite(s): COMP 1672, 3693.
4 qtr. hrs.
Design and analysis of algorithms; sorting, searching and graph algorithms; recurrence equations; divide and conquer, branch and bound, dynamic programming, greedy algorithms. Prerequisite(s): COMP
2370, MATH 3200.
4 qtr. hrs.
Design, implementation, testing, maintenance of large programs in dynamic environment, systematic approach to software design; emphasis on portability and ease of modification. Prerequisite(s): COMP 2370, MATH 2200.
4 qtr. hrs.
Continuation of COMP 3381. Prerequisite(s): COMP 3381.
4 qtr. hrs.
Design principles for tools used in a UNIX environment. Students gain experience building tools by studying the public domain versions of standard UNIX tools and tool-building facilities. Prerequisite(s): knowledge of C and csh (or another shell), and a familiarity with UNIX.
4 qtr. hrs.
Creating WWW pages with HTML, accessing user-written programs via CGI scripts, creating forms, image maps and tables, and Java programming principles and techniques. Prerequisite(s): knowledge of C or C++ and UNIX.
4 qtr. hrs.
An introductory class in databases, explaining what a database is and how to use one. Topics include database design, ER modeling, database normalization, relational algebra, SQL, physical organization of records and blocks, heap files, sorted files, hashing, extendible hashing, linear hashing and B trees. Each student will design, load, query and update a nontrivial database using the Oracle DBMS. Prerequisite(s): COMP 2370.
4 qtr. hrs.
A course in underlying database management system methodology. Topics include: linear hashing, disk-based sorting, system catalogs, query processing and optimization, transaction processing, buffer management, concurrency control, recovery, physical DB design and tuning, distributed databases and parallel databases. A significant implementation project is assigned. Prerequisite(s): COMP 3421.
4 qtr. hrs.
Programming in LISP and Prolog, applications to artificial intelligence; fundamental concepts of artificial intelligence; emphasis on general problem-solving techniques including state-space representation, production systems, search techniques. Prerequisite(s): COMP 2370.
4 qtr. hrs.
Algorithmic approach to numerical problems, round-off error analysis, solution of systems of linear equations, roots of equations, interpolation and approximation, numerical integration, and numerical solution of ordinary and partial differential equations. Cross-listed as MATH 3570 (1, 2). Prerequisite(s): MATH 1950 (2) or 1955 (2), MATH 2060 and COMP 1672.
4 qtr. hrs. each
An introduction to computer networks with an emphasis on Internet protocols. Topics include network topologies, routing, Ethernet, Internet protocol, sockets, operating system impact and client/server implementations. Prerequisite(s): COMP 3361.
4 qtr. hrs.
Function of, communication between, large-scale components of a computer system. Prerequisite(s): COMP 2691.
4 qtr. hrs.
Interleaved memory, cache memory, microprogrammed control, bit-slice logic, reduced instruction set computers, pipelining. Prerequisite(s): COMP 2691 or instructor’s permission.
4 qtr. hrs.
Topics classes in systems vary from year to year. The following is an example of a class that has been offered in the past or is expected to be offered in the future:
Multimedia on the Web. This course provides fundamental concepts about how to handle multimedia information on the Web through studying basic knowledge and hands-on projects. Topics include audio/video fundamentals, multimedia support in HTML, Web server, streaming multimedia on the Web, and Web security. This course is mainly for undergraduate CS students and digital media studies graduate students. No prerequisite course but understanding HTML is a plus.
Topics classes in theory vary from year to year. The following is an example of a class that has been offered in the past or is expected to be offered in the future:
Performance Modeling I—This course covers the fundamentals of performance modeling including a brief probability theory refresher, Markov chains, simple performance bounds, queuing networks and petri nets.
Topics classes in applications vary from year to year. The following is an example of a class that has been offered in the past or is expected to be offered in the future:
C# and .net—Microsoft(r) .NET is the Microsoft XML Web services platform. XML Web services allow applications to communicate and share data over the Internet, regardless of operating system, device or programming language. The Microsoft .NET platform delivers what developers need to create XML Web services and stitch them together. In this class, we cover the basic infrastructures of .Net and use C# to build simple server side Web services. We also spend time on the internals of the C# language as it has been targeted as the primary language for building .Net applications. A cursory look at .Net and ASP.Net are also provided.
Other topics classes vary from year to year. The following are examples of classes that have been offered in the past or are expected to be offered in the future:
By drawing on widely ranging work in the anthropology of computing, “science studies,” critical studies, linguistic anthropology, and the sociology of information and information technology, this course offers a “meta-social scientific” glance at digital phenomena.
This course examines how to protect the integrity, availability and confidentiality of automated information and the resources used to enter, store, process and communicate it. The focus is on: technical and operational controls; encryption; “Malware” (worms, viruses, etc.); operating system security controls and how they get hacked; secure forms of authentication; designing trusted systems; database security; security on the Internet and in distributed systems; multimedia security; and legal and ethical issues, including privacy. Case studies will include real examples of secure systems and breaches.
Introduction to computer algebra, the algorithmic solution of mathematical problems; use of computer algebra software (MAPLE or MATHEMATICA); algorithms for the analysis and manipulation of polynomial expressions; algorithms for manipulation of algebraic and trigonometric expressions; algorithms for differentiation and integration; applications to calculus and differential equations. Cross-listed as MATH 3706. Prerequisite(s): MATH 2070 and either COMP 1672 or 1680.
4 qtr. hrs.
Graphics hardware, scan conversion algorithms, 2-D and 3-D viewing transformations, windows, viewports, clipping algorithms; mathematics for computer graphics; human-computer interface issues. Prerequisite(s): COMP 2370, MATH 1950 (3) or 1955 (3), and MATH 2060 or instructor’s permission.
4 qtr. hrs.
Polygonal meshes, hidden line/surface removal, parametric curves and surfaces, solid modeling, color theory, shading and illumination models, ray tracing, assorted topics including fractals, anti-aliasing, halftoning. Prerequisite(s): COMP 3801 and MATH 2080 or instructor’s permission.
4 qtr. hrs.
Explores the social implications of computing practices, organization and experience. These topics and other issues are correlated with examples from the older and modern history of technology and science. Some formal experience with computing is assumed, but students who have a good familiarity with ordinary computing practice should be ready. Students will also be expected to contribute their expertise in one or more of the areas of their special interest.
4 qtr. hrs.
Practical experience in designing, writing and/or maintaining substantial computer programs under supervision. Prerequisite(s): COMP 1672, approval of internship committee (see departmental office).
Cannot be arranged for any course that appears in regular course schedule for that particular year.
Continuation of COMP 3361. Case studies of existing operating systems; systems programming. Prerequisite(s): COMP 3621.
4 qtr. hrs.
NP-completeness; lower bound theory; approximation algorithms; combinatorial optimization; string processing; randomized algorithms. Prerequisite(s): COMP 3371.
4 qtr. hrs.
Advanced topics including transaction processing, online transaction processing benchmarks, distributed databases, parallel databases, client server databases, object-oriented databases, multi-attribute indexing. Prerequisite(s): COMP 3422.
4 qtr. hrs.
Topics classes in systems vary from year to year. The following are some classes that have been offered in the past or are expected to be offered in the future:
This course covers the fundamental issues in design and implementation of multimedia applications. Also covers the advanced design issues of multimedia systems. Key technologies covered are: multimedia data representation, data compression, coding, networking, data management, telecommunications, system design and I/O technologies.
This course covers principles and paradigms of distributed computing systems. It begins with introductions of distributed computing principles involving processes, communication, naming, synchronization, and replication and consistency. It involves vast amounts of hands-on experiences on commercial and/or experimental distributed systems.
This course begins with the introduction on fault-tolerance concepts and failure models, and covers issues on fault-tolerant computing involving process resilience, reliable communications, distributed commit and recovery. Topics also include discussions on the fault tolerance in mobile computing.
Topics classes in theory vary from year to year. The following are some classes that have been offered in the past or are expected to be offered in the future:
Computational Geometry. Design of efficient algorithms for problems defined on geometric objects, such as points, lines, polygons, surfaces, etc; fundamental problems such as point location, intersection, proximity, convex hulls; applications to other fields such as computer graphics, computer-aided design, geographic information systems, and robotics.
This course covers a broad spectrum of advanced algorithm. Topics include amortized complexity, randomized algorithms, multidimensional searching, string processing, graph algorithms, intractability, NP-completeness, approximation algorithms.
Begins with a brief introduction on probability theory and present basic tools from probabilistic analysis recurring in algorithmic applications. Topics include game-theoretic techniques, moments and deviations, tail inequalities, and Markov chains and random walks.
Focuses on applications of randomized algorithms involving data structures, graph algorithms, geometric algorithms, number theoretic algorithms, counting algorithms, parallel and distributed algorithms, and online algorithms.
Covers the application of performance-modeling techniques to real systems. Application topics include networks, computer architecture, distributed systems and databases.
Topics classes in applications vary from year to year. The following is an example of a class that has been offered in the past or is expected to be offered in the future: Mobile Computing. Covers several current state-of-the-art topics within mobile computing. Topics include wireless network technology, reliable distributed file systems, location discovery, wireless routing, and location management and prediction.
Other topics classes vary from year to year.
Independent Study COMP 4991
Cannot be arranged for any course that appears in regular course schedule for that particular year.
Research projects undertaken in conjunction with a faculty member.
Doctoral Seminar COMP 5000
Discussion of techniques and methods used in mathematics and computing research; includes proofs, bibliographic searching, writing styles, what constitutes an acceptable thesis.
The Department of Computer Science Web site offers the most current information on courses, requirements, faculty and student news. Go to http://www.du.edu/cs for more information on the program.
Anneliese K. A. Andrews
professor and chair
PhD, Duke University
Research areas: software engineering; performance modeling
Joel Cohen
associate professor
PhD, University of Maryland
Research areas: computer algebra, symbolic mathematical
computation, applied mathematics, number theory
Chris Gauthier Dickey
assistant professor
PhD, University of Oregon
Research areas: networks, multiplayer games
Christian Grothoff
assistant professor,
PhD, UCLA
Research areas: security, software engineering,
programming languages
Seon Ho Kim
assistant professor
PhD, University of Southern California
Research areas: multimedia database systems; design of
high-performance media servers; spatio-temporal databases
Hyunyoung Lee
assistant professor
PhD, Texas A&M University
Research areas: distributed algorithms and systems; fault-tolerant computing and wireless, mobile computing; parallel computing;
sensor networks
Scott T. Leutenegger
professor
PhD, University of Wisconsin
Research areas: humane games and game education; spatio-temporal databases; performance modeling
Mario A. Lopez
professor
PhD, University of Minnesota, Minneapolis
Research areas: geometric computation; multidimensional and
spatio-temporal databases; geographic information systems;
computer music
Ramki Thurimella
associate professor
PhD, University of Texas, Austin
Research areas: computer networks and security; mobile computing; bioinformatics; algorithm design
Cathy Durso
lecturer
PhD, MIT
Thomas Christopher
visiting lecturer
PhD, Illinois Institute of Technology
Emeritus Faculty
William S. Dorn
professor emeritus
PhD, Carnegie Institute of Technology
Ottis W. Rechard
professor emeritus
PhD, University of Wisconsin
Michael R. Elges
MS, University of Denver
Rob Judd
PhD, University of Texas at Austin