2016-2017 Undergraduate Bulletin

Department of Computer Science

Office: Aspen Hall North, Suite 100
Mail Code: 2280 S. Vine St. Denver, CO 80208
Phone: 303-871-3010
Email: info@cs.du.edu
Web Site: http://www.du.edu/rsecs/departments/cs

The Information Age affects every aspect of society—computer applications, multimedia, and the Internet. The Department of Computer Science offers four undergraduate programs. Graduates of the program have found employment in all areas of the computer software industry and in the application of computers in a wide variety of companies, ranging from aerospace to game development to insurance. Our graduates work at companies including IBM, Microsoft, Google, Oracle, LinkedIn, Facebook, Raytheon and Amazon. Many alumni have pursued graduate studies in computer science or management information systems at DU and other highly respected universities around the country.

The department offers majors in computer science, applied computing, and game development.

Computer Science

Computer science encompasses the theory and techniques by which information is encoded, stored, communicated, transformed and analyzed. It is concerned with the theory of algorithms (that is, effective procedures or programs), with the structure of languages for the expression of algorithms and with the design of algorithms for the solution of practical problems. A central concern is the study of the computer systems (hardware and software) for the automatic execution of these algorithms.

The Department of Computer Science at the University of Denver offers a bachelor of science in computer science. The degree is strongly based in mathematics and, in fact, a student will automatically acquire sufficient credits for a minor in mathematics. One additional minor is required. The second minor may be in any discipline other than mathematics or computer science.

Bachelor of Science in Computer Science Major Requirements

(183 credits required for the degree)

In addition to major course work, a minor in mathematics is required. Please refer to the Department of Mathematics for details.

56 credits, including the following:

COMP 1671
COMP 1672
COMP 2673
Introduction to Computer Science I
and Introduction to Computer Science II
and Introduction to Computer Science III
12
COMP 2300Discrete Structures in Computer Science 11-4
COMP 2355Intro to Systems Programming4
COMP 2370Introduction to Algorithms & Data Structures4
COMP 2691Introduction to Computer Organization4
COMP 3351Programming Languages4
COMP 3361Operating Systems I4
Electives
Complete 20 credits of 3000-level computer science courses. 220
Total Credits56
1

If this course is used towards the MATH minor, it must be replaced with a 3000-level COMP elective, i.e. the total number of COMP credits, including COMP 2300, should equal 60 when there are only 16 hours of MATH minor credits.

2

 COMP 3904 Internship/Co-Op in Computing may not be used to satisfy 3000-level computer science elective credits.

Minor in Computer Science Requirements

A minor in Computer Science requires a total of 20 credits. The goal of the minor is to provide students with a foundation in computer programming while allowing some flexibility in elective courses to compliment their interests. Students are required to take the following courses:

COMP 1671
COMP 1672
COMP 2673
Introduction to Computer Science I
and Introduction to Computer Science II
and Introduction to Computer Science III
12
Electives
8 credits of 2000 or 3000-level computer science courses.8
Total Credits20

Applied Computing

The Bachelor of Arts in Applied Computing (BA in AC) provides a quality education for a serious computer user. It complements the department's Bachelor of Science in Computer Science by providing a program that combines collaboration with other departments and an applications-oriented emphasis. A prospective BA in AC major must satisfy all the requirements for a Bachelor of Arts degree as outlined in the University Undergraduate Bulletin. 

The BA in AC is a suitable degree for many collaborative programs within the University and would be ideal for students in graphic arts and electronic publishing or would provide an appropriate foundation for a student who wishes to pursue a career in the field of educational technology. A graduate with a BA in AC would be very attractive in the data processing unit of large financial, banking, or insurance institutions, as a network or system administrator or as a World Wide Web designer/programmer. Holders of the BA in AC degree would also be well suited to continue in any number of specialized Master's or certificate programs in fields as diverse as video an graphics production, fashion design, telecommunications, instructional technology, or management information systems. 

Bachelor of Arts in Applied Computing Major Requirements

(183 credits required for the degree)

This major requires 45 credits of computer science or other approved computer applications and mathematics courses of which 25 credits must be at or above the 2000 level. Per University requirements, no more than 60 credit hours in any one department can be applied towards a Bachelor of Arts degree.  Required courses are as follows:

Required Courses
COMP 1671
COMP 1672
COMP 2673
Introduction to Computer Science I
and Introduction to Computer Science II
and Introduction to Computer Science III
12
COMP 2300Discrete Structures in Computer Science1-4
COMP 2370Introduction to Algorithms & Data Structures4
COMP 3421Database Organization & Management I4
Electives21
Selected in consultation with a departmental advisor. See suggested elective courses below. 1
Total Credits45
1

At most, 15 credits of approved computer applications courses can be applied from other University departments.

Suggested Elective courses from the Department of Computer Science for the Bachelor of Arts in Applied Computing

The choice of electives depends solely on the anticipated needs of the student. The following list suggests typical advanced departmental courses that a student might take. Elective courses and direction of study should be chosen in consultation with the departmental advisor: 

Elective Courses from Other Units Acceptable in this Program

Here are some typical courses from other departments that might establish areas of interest for students in the Applied Computing Major. Several of these classes have prerequisites (not listed here) that students need to be aware of. A student will typically be minoring or double-majoring in another department and will usually have been prepared for the courses listed here. No more than 16 credit hours can be applied to the BA in AC from other units. Students will choose appropriate sequences in consultation with an advisor from the other department and with the approval of an advisor in the Department of Computer Science.

Emergent Digital Practices Theme:

Geographic Information Systems Theme:

Media, Film Studies, and Journalism Theme:

Game Development

The game development programs are a joint effort by the University of Denver Computer Science, Emergent Digital Practices and Art programs. Specific degrees offered are

  • Bachelor of Arts with a major in Game Development, and 
  • Bachelor of Science with a major in Game Development.

Graduates of these programs not only have solid computer science, graphics and game-programming skills, but also a strong foundation in art and/or the critical, technical and design aspects of digital media. To obtain this foundation, the major requires work in allied fields. Allied areas include Studio Art and Emergent Digital Practices. The depth of allied knowledge is dependent on the degree (BA or BS) chosen.

Bachelor of Arts in Game Development Major Requirements

(183 credits required for the degree)

The Bachelor of Arts in Game Development is a degree which prepares students to be capable of creating artistic content and designing game play for games while having a strong technical background, enabling them to bridge the gap between artist, programmer and designer. The BA requires a major in Game Development and a Minor in Emergent Digital Practices. A graduate of this program will be able to study and work as a developer, game designer and an artist. The BA requires more courses in the allied art fields than the BS and is balanced by having fewer required Math and Computer Science courses. 

52 credits, including the following:

Required Courses
COMP 1671
COMP 1672
COMP 2673
Introduction to Computer Science I
and Introduction to Computer Science II
and Introduction to Computer Science III
12
COMP 2300Discrete Structures in Computer Science4
COMP 2370Introduction to Algorithms & Data Structures4
COMP 2355Intro to Systems Programming4
COMP 2821Introductory Game Design4
COMP 3821Game Programming I4
COMP 3831
COMP 3832
Game Capstone I
and Game Capstone II
4-8
ARTS 1250Drawing4
EDPX 36003D Modeling4
Additional Electives
Selected in consultation with the student's advisor8
Total Credits52-56

Bachelor of Science in Game Development Major Requirements

(183 credits required for the degree)

The Bachelor of Science in Game Development is a combination of a Computer Science degree, specific courses in Game Development, and requires a Minor in Mathematics, a second minor of your choice, and a cognate of five approved classes from Art and Emergent Digital Practices. In addition, both degrees require satisfying the University Common Curriculum requirements for the BS degree. 

This program provides a strong computer science and technical background, preparing students for all aspects of game programming, while providing them with (1) a foundation in art that includes both appreciation and understanding of the significance of art, with some ability to create art themselves, or (2) a foundation in the critical, technical and design foundations in Emergent Digital Practices. Thus, graduates of this program are able to help in the programming and development of games, while understanding and being able to communicate effectively with the artists and designers who are part of any game development project. The BS requires more mathematics and more required COMP classes than the BA and is balanced with fewer classes in the allied fields.

The following courses are required for the BS in Game Development:

Required Courses
COMP 1671
COMP 1672
COMP 2673
Introduction to Computer Science I
and Introduction to Computer Science II
and Introduction to Computer Science III
12
COMP 2300Discrete Structures in Computer Science4
COMP 2370Introduction to Algorithms & Data Structures4
COMP 2355Intro to Systems Programming4
COMP 2691Introduction to Computer Organization4
COMP 2821Introductory Game Design4
COMP 3361Operating Systems I4
COMP 3801Introduction Computer Graphics4
COMP 3821
COMP 3822
Game Programming I
and Game Programming II
8
COMP 3831
COMP 3832
Game Capstone I
and Game Capstone II
4-8
Five approved allied field classes from art and emergent digital practices 120
Electives
3000-level computer science electives 28
Total Credits80-84
1

These courses can, and usually are, combined with the second minor of the student's choice. A non-exhaustive list of courses for the cognate can be found at the game development program's website.

2

 COMP 3904 Internship/Co-Op in Computing may not be used to satisfy 3000-level elective credits.

B.S. in Computer Science Plan of Study

The following is a typical plan of study for a B.S. in Computer Science major. Note that flexibility in the junior and senior years allows students to study abroad in any quarter fairly easily. 

First Year
FallCreditsWinterCreditsSpringCredits
COMP 16714COMP 16724COMP 26734
MATH 19514MATH 19524COMP 23001-4
First-Year Seminar 4WRIT 11224WRIT 11334
Foreign Language4Foreign Language4Foreign Language4
 16 16 13-16
Second Year
FallCreditsWinterCreditsSpringCredits
COMP 23704COMP 269143000-level COMP Elective4
Math Elective4COMP 23554Math Elective4
SI-Natural4SI-Natural4SI-Natural4
AI-Society4AI-Society4SI-Society4
 16 16 16
Third Year
FallCreditsWinterCreditsSpringCredits
3000-level COMP Elective4COMP 33614Elective4
3000-level COMP Elective4Minor Course4Elective4
Minor Course4Elective4Elective4
SI-Society4Advanced Seminar4Minor Course4
 16 16 16
Fourth Year
FallCreditsWinterCreditsSpringCredits
COMP 335143000-level COMP Elective4Elective4
3000-level COMP Elective4Minor Course4Elective4
Minor Course4Elective4Elective4
Elective4  
 16 12 12
Total Credits: 181-184

B.A. in Applied Computing Plan of Study

The following is a typical plan of study for B.A. in Applied Computing majors. Note that flexibility in the schedule allows students to study abroad and easily double-major in another major or even double minor. 

First Year
FallCreditsWinterCreditsSpringCredits
COMP 16714COMP 16724COMP 26734
Elective4WRIT 11224COMP 23001-4
First-Year Seminar 4Elective4WRIT 11334
Foreign Language4Foreign Language4Foreign Language4
 16 16 13-16
Second Year
FallCreditsWinterCreditsSpringCredits
COMP 23704COMP Elective4COMP Elective4
Minor Course4SI-Natural4Minor Course4
SI-Natural4AI-Society4SI-Natural4
AI-Society4Minor Course4SI-Society4
 16 16 16
Third Year
FallCreditsWinterCreditsSpringCredits
COMP 34214COMP Elective4COMP Elective4
COMP Elective4Minor Course4Minor Course4
SI-Society4Advanced Seminar4Elective4
Minor Course4Elective4Elective4
 16 16 16
Fourth Year
FallCreditsWinterCreditsSpringCredits
COMP Elective4COMP Elective4Elective4
Elective4Elective4Elective4
Elective4Elective4Elective4
Elective4  
 16 12 12
Total Credits: 181-184

B.S. in Game Development Plan of Study 

The following is a typical plan of study for B.S. in Game Development majors. Generally students who study abroad do this in their junior year of the major. Note that courses listed as Minor are typically combined with the required Art Cognate. 

First Year
FallCreditsWinterCreditsSpringCredits
COMP 16714COMP 16724COMP 26734
MATH 19514MATH 19524COMP 23001-4
First-Year Seminar 4WRIT 11224WRIT 11334
Foreign Language4Foreign Language4Foreign Language4
 16 16 13-16
Second Year
FallCreditsWinterCreditsSpringCredits
COMP 23704COMP 26914COMP 38214
Math Elective4COMP 23554Math Elective4
SI-Natural4COMP 28214SI-Natural4
AI-Society4SI-Natural4SI-Society4
 16 16 16
Third Year
FallCreditsWinterCreditsSpringCredits
Minor Course4COMP 33614COMP 38224
Minor Course4COMP 38014Minor Course4
AI-Society4Minor Course43000-level COMP Elective4
SI-Society4Advanced Seminar4Elective4
 16 16 16
Fourth Year
FallCreditsWinterCreditsSpringCredits
COMP 38312-4COMP 38322-43000-level COMP Elective4
Elective4Elective4Elective4
Minor Course4Elective4Elective4
Minor Course4Elective  
 14-16 10-12 12
Total Credits: 177-184

B.A. in Game Development Plan of Study

The following is a typical plan of study for B.A. in Game Development majors. Students have the flexibility to study abroad typically in their junior year and have significant flexibility to either double major in Emergent Digital Practices (instead of just the minor) or take a second minor. 

First Year
FallCreditsWinterCreditsSpringCredits
COMP 16714COMP 16724COMP 26734
ARTS 12504WRIT 11224COMP 23001-4
First-Year Seminar 4Foreign Language4WRIT 11334
Foreign Language4Elective4Foreign Language4
 16 16 13-16
Second Year
FallCreditsWinterCreditsSpringCredits
COMP 23704COMP 23554COMP 38214
EDPX 20004COMP 28214EDPX 24004
SI-Natural4EDPX 22004SI-Natural4
AI-Society4SI-Natural4AI-Society 
 16 16 12
Third Year
FallCreditsWinterCreditsSpringCredits
EDPX 36004COMP 28214EDPX Elective4
COMP Elective4COMP Elective4Elective4
EDPX Elective4EDPX Elective4Elective4
SI-Society4Advanced Seminar4Elective4
 16 16 16
Fourth Year
FallCreditsWinterCreditsSpringCredits
COMP 38312-4COMP 38322-4Elective4
Elective4Elective4Elective4
Elective4Elective4Elective4
Elective4Elective4 
 14-16 14-16 12
Total Credits: 177-184

Requirements for Distinction in the Major in Computer Science

  • Minimum 3.3 cumulative GPA in major courses
  • Research project including paper and presentation

Requirements for Distinction in the Major in Applied Computing

  • Minimum 3.3 cumulative GPA in major courses

Requirements for Distinction in the Major in Game Development

  • Minimum 3.3 cumulative GPA in major courses

Courses

COMP 1101 Analytical Inquiry I (4 Credits)

Students explore the use of mathematics and computer programming in creating animations. Students create animations on their laptop computers using animation software. This course counts toward the Analytical Inquiry: The Natural and Physical World requirement.

COMP 1571 Procedural Programming I (3 Credits)

The C programming language is used to introduce fundamental procedural programming including engineering applications. Programming topics include an overview of computers and programming languages, variables and data types, arithmetic operators, input/output, comments, control structures, user-defined functions, scope, constants, file I/O, and pointers. Prerequisite: high school algebra.

COMP 1572 Procedural Programming II (3 Credits)

The Java programming language is used to introduce object-oriented programming. Topics include fundamental object-oriented concepts, class design and implementation, inheritance, polymorphism, exceptions, and event-driven programming. Prerequisite: COMP 1571.

COMP 1670 Introduction to Computing (4 Credits)

Overview of computing, including history and impact, use of computer as a tool in various disciplines, logical process of problem solving, and concepts of programming using a high-level language. Appropriate for students who wish to learn more about computers but are not planning to continue in computer science. This course counts toward the Analytical Inquiry: The Natural and Physical World requirement.

COMP 1671 Introduction to Computer Science I (4 Credits)

Characteristics of modern computers and their applications; analysis and solution of problems; structure programming techniques; introduction to classes, abstract data types and object-oriented programming. This course counts toward the Analytical Inquiry: The Natural and Physical World requirement. Prerequisite: high school algebra.

COMP 1672 Introduction to Computer Science II (4 Credits)

Advanced programming techniques; arrays, recursion, dynamic data structures, algorithm abstraction, object-oriented programming including inheritance and virtual functions. Prerequisite: COMP 1671.

COMP 1771 Introduction to Computer Science 1 - Honors (4 Credits)

This is an honors section of Introduction to Computer Science 1 meant for incoming freshman who are already experienced in computer programming. This course is meant to be faster paced than its counterpart COMP 1672/1671. This course counts toward the Analytical Inquiry: The Natural and Physical World requirement. Prerequisite: AP credit in Java, at least one quarter of programming, or permission of instructor.

COMP 1991 Independent Study (1 Credit)

COMP 1992 Directed Study (1-10 Credits)

COMP 2001 Bridge Course I: Computer Science Theory Basics (4 Credits)

This accelerated course covers the basics of discrete mathematics including functions, relations, counting, logic, proofs etc that is necessary to attend CS graduate school. In additon, it includes an introduction to programming and algorithm analysis.

COMP 2002 Bridge Course II: Computer Science Theory Advanced (4 Credits)

This accelerated course continues to build on the basics of discrete mathematics by covering material including advanced counting, recurrences, graphs, trees, traversals, automata etc that is necessary to attend Computer Science graduate school. In addition, it includes an introduction to additional algorithms and data structures. Prerequisite: COMP 2001.

COMP 2003 Bridge Course III: Computer Science Systems Basics (4 Credits)

This accelerated course covers the basics of computer systems including assembly language programming, addressing modes, logic design etc necessary to attend CS graduate school. In additon, it includes an introduction to C programming language. In particular, standard I/O, data manipulation, pointers, and dynamic memory management.

COMP 2004 Bridge Course IV: Computer Science Systems Advanced (4 Credits)

This accelerated course continues to build on the basics of computer systems by covering material including UNIX tools, version control, process creation, concurrent programming etc that is necessary to attend Computer Science graduate school. In addition, it includes an introduction to a scripting language. Prerequisites: COMP 2003.

COMP 2300 Discrete Structures in Computer Science (1-4 Credits)

Number systems and basic number theory, propositional and predicate logic, proof techniques, mathematical induction, sets, counting and discrete probability, case studies with applications from computer science, such as data representation, algorithm analysis and correctness, and system design.

COMP 2355 Intro to Systems Programming (4 Credits)

The prerequisites for this class are a good understanding of imperative and object-oriented programming in Java. The prerequisites for this class include a good understanding of basic programming constructs, such as branches (if, switch), loops (for, while, do), exceptions (throw, catch), functions, objects, classes, packages, primitive types (int, float, boolean), arrays, arithmetic expressions and boolean operations. Computer organization is a parallel prerequisite; if possible, students should register for both this course and COMP 2691. You must have a good understanding of basic data structures such as arrays, lists, sets, trees, graphs and hash-tables. This is a class on systems programming with focus on the C programming language and UNIX APIs. There will be programming assignments designed to make you use various Debian GNU/Linux system APIs. Programming assignments involve writing code in C or C++. Prerequisite: COMP 2673.

COMP 2370 Introduction to Algorithms & Data Structures (4 Credits)

Performance analysis of algorithms; data structures and their physical storage representation; recursive techniques; stacks, queues, lists, trees, sets, graphs; sorting and searching algorithms. Prerequisites: MATH 2200 or COMP 2300 and COMP 2673.

COMP 2400 Software Tools (4 Credits)

Introduction to tools for program development and efficient use of a workstation environment. Topics include UNIX commands, emacs environment, X-windows, separate compilation of large projects, user-defined libraries, makefiles, intelligent debugging, perl, HTML, rcs/sccs, tcl/tk and assorted additional topics. Prerequisite: COMP 2370 or instructor's permission.

COMP 2555 Principles of Computer Forensics (4 Credits)

Data recovery techniques, auditing methods and services, data seizure, preservation of computer evidence, reconstruction of events, and information warfare. Prerequisite: COMP 1672 or programming experience.

COMP 2673 Introduction to Computer Science III (4 Credits)

An introduction to several advanced topics in computer science. Topics vary from year to year and may include any of the following: theory of computing, cryptography, databases, computer graphics, graph theory, game theory, fractals, mathematical programming, wavelets, file compression, computational biology, genetic algorithms, neural networks, simulation and queuing theory, randomized algorithms, parallel computing, complexity analysis, numerical methods. Prerequisite: COMP 1672 or COMP 1771.

COMP 2691 Introduction to Computer Organization (4 Credits)

This course covers basic topics in Computer Organization and is a required course in the BS in Computer Science, BS in Game Development, and BS in Computer Engineering degrees. Topics include: instruction set architectures, integer and floating point arithmetic, processors, memory systems, and topics in storage and Input/Output.

COMP 2701 Topics in Computer Science (1-5 Credits)

COMP 2821 Introductory Game Design (4 Credits)

Learn the fundamental game design practices and how to transition from a design, to a prototype, to a final game. This course covers theory, design, 2D game art, and culminates in the creation of a (simple) 2D computer game. Prerequisites: COMP 1672 or COMP 1771 or DMST 2100.

COMP 2901 Computing and Society (4 Credits)

This course is designed to explore 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 are also expected to contribute their expertise in one or more of the areas of their special interest. Cross listed with DMST 3901.

COMP 2992 Directed Study (1-10 Credits)

COMP 3000 Seminar: The Real World (1 Credit)

Series of lectures by alumni and others on surviving culture shock when leaving the University and entering the job world. Open to all students regardless of major. Cross listed with MATH 3000.

COMP 3200 Discrete Structures (4 Credits)

Discrete mathematical structures and non-numerical algorithms; graph theory, elements of probability, propositional calculus, Boolean algebras; emphasis on applications to computer science. Cross-listed as MATH 3200. Prerequisites: MATH 2200 or COMP 2300 and COMP 1672 or COMP 1771.

COMP 3341 Multimedia Systems (4 Credits)

This course covers fundamental issues in design and implementation of multimedia applications. This course also covers technologies in multimedia systems such as multimedia data representation, compression, coding, networking, data management, and I/O technologies. Prerequisite: COMP 3361.

COMP 3351 Programming Languages (4 Credits)

Programming language as a component of software development environment; binding, scope, lifetime, value and type of 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, functional, and logic languages. Prerequisites: COMP 2370, COMP 2691, and COMP 2355.

COMP 3353 Compiler Construction (4 Credits)

Design and implementation of a major piece of software relevant to compilers. Prerequisite: COMP 3352.

COMP 3361 Operating Systems I (4 Credits)

Operating systems functions and concepts; processes, process communication, synchronization; processor allocation, memory management in multiprogramming, time sharing systems. Prerequisites: COMP 2355, COMP 2370, and COMP 2691.

COMP 3371 Advanced Data Structures & Algorithms (4 Credits)

Design and analysis of algorithms; asymptotic complexity, recurrence equations, lower bounds; algorithm design techniques such as incremental, divide and conquer, dynamic programming, randomization, greedy algorithms, etc. Prerequisites: COMP 2370, MATH 3200.

COMP 3381 Software Engineering I (4 Credits)

An introduction to software engineering. Topics include software processes, requirements, design, development, validation and verification and project management. Cross listed with COMP 4381. Prerequisite: COMP 2370.

COMP 3382 Software Engineering II (4 Credits)

Continuation of COMP 3381. Topics include component-based software engineering, model-driven architecture, and service-oriented architecture. Prerequisite: COMP 3381.

COMP 3400 Advanced Unix Tools (4 Credits)

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. Prerequisites: COMP 2400 and knowledge of C and csh (or another shell), and familiarity with UNIX.

COMP 3410 World Wide Web Programming (4 Credits)

Creating WWW pages with HTML, accessing user-written programs via CGI scripts, creating forms, imagemaps and tables, and Java programming principles and techniques. Prerequisite: COMP 2355.

COMP 3421 Database Organization & Management I (4 Credits)

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 clocks, 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 DMBS. Prerequisite: COMP 2370.

COMP 3431 Data Mining (4 Credits)

Data Mining is the process of extracting useful information implicitly hidden in large databases. Various techniques from statistics and artificial intelligence are used here to discover hidden patterns in massive collections of data. This course is an introduction to these techniques and their underlying mathematical principles. Topics covered include: basic data analysis, frequent pattern mining, clustering, classification, and model assessment. Prerequisites: COMP 2370.

COMP 3501 Introduction to Artificial Intelligence (4 Credits)

Programming in LISP and Prolog with applications to artificial intelligence; fundamental concepts of artificial intelligence; emphasis on general problem-solving techniques including state-space representation, production systems, and search techniques. Prerequisites: MATH 2200, COMP 2370.

COMP 3621 Computer Networking (4 Credits)

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. Prerequisites: COMP 2355 and COMP 2370. Corequisite: COMP 3361.

COMP 3701 Topics in Computer Graphics (4 Credits)

COMP 3702 Topics in Database (4 Credits)

COMP 3703 Topics-Artificial Intelligence (4 Credits)

COMP 3704 Advanced Topics: Systems (4 Credits)

COMP 3705 Topics in Computer Science (1-4 Credits)

COMP 3721 Computer Security (4 Credits)

This course gives students an overview of computer security along with some cryptography. Some network security concepts are also included. Other concepts include coverage of risks and vulnerabilities, policy formation, controls and protection methods, role-based access controls, database security, authentication technologies, host-based and network-based security issues. Prerequisite: COMP 3361.

COMP 3731 Computer Forenciscs (4 Credits)

Computer Forensics involves the examination of information contained in digital media with the aim of recovering and analyzing latent evidence. This course will provide students an understanding of the basic concepts in preservation, identification, extraction and validation of forensic evidence in a computer system. The course covers many systems level concepts such as disk partitions, file systems, system artifacts in multiple operating systems, file formats, email transfers, and network layers, among others. Students work extensively on raw images of memory and disks, and in the process, build components commonly seen as features of commercial forensics tools (e.g. file system carver, memory analyzer, file carver, and steganalysis). Prerequisites: COMP 2355.

COMP 3801 Introduction Computer Graphics (4 Credits)

Fundamentals of graphics hardware, scan conversion algorithms, 2D and 3D viewing transformations, windows, viewports, clipping algorithms, mathematics for computer graphics, graphics programming using a standard API. Prerequisites: COMP 2370, MATH 1952 or 1962, and MATH 2060.

COMP 3821 Game Programming I (4 Credits)

An introduction to computer game programming. Use of a game engine to create 3D computer games. Topics to include game scripting, simple 3D asset creation, incorporation of assets, keyboard/mouse event handling, animation, game phases and score keeping. Prerequisite: COMP 2370.

COMP 3822 Game Programming II (4 Credits)

An introduction to computer game engine programming. Major class goal is to understand how game engines are created by building subsets of a game engine. Non-exhaustive set of topics include how terrains are generated, how animations are supported, how particle systems are implemented, how physics systems are coded, and how support is provided for higher level scripting languages. All coding will be done in low-level graphics languages. Prerequisites: COMP 3801 and COMP 3821.

COMP 3831 Game Capstone I (2-4 Credits)

Students design, build, test and debug a fully working game from scratch. Both art and programming are developed by the student teams with the instructor acting as a project manager to ensure that goals are met through the 10-week development process through various milestones. In addition to building the game, students learn group collaboration, software processes, testing, and the methodology for researching new game concepts to implement in their final project. Prerequisite: COMP 3821.

COMP 3832 Game Capstone II (2-4 Credits)

Students design, build, test and debug their existing game from Game Capstone I. Both art and programming are developed by the student teams with the instructor acting as a project manager to ensure that goals are met through the 10-week development process through various milestones. In addition to building the game, students alter their game design document to add new features, making corrections to prior design issues, and focus on making the game playable and "fun." Prerequisite: COMP 3831.

COMP 3833 Game Capstone III (2-4 Credits)

Students design, build, test and debug their working game from Game Capstone II. Both art and programming are developed by the student teams with the instructor acting as a project manager to ensure that goals are met through the 10-week development process through various milestones. In addition to building the game, students modify their design document and implement changes in their game, create new concept art for the features, build an introduction level into their game, test the game with "Play testers", and focus on creating a game that is "fun" to play. By the end of the quarter, their game is ready for distribution on an appropriate platform. Prerequisite: COMP 3832.

COMP 3904 Internship/Co-Op in Computing (0-10 Credits)

Practical experience in designing, writing and/or maintaining substantial computer programs under supervision of staff of University Computing and Information Resources Center. Prerequisites: COMP 2370 and approval of internship committee (see department office).

COMP 3991 Independent Study (1-10 Credits)

Cannot be arranged for any course that appears in the regular course schedule for that particular year.

COMP 3992 Directed Study (1-10 Credits)

COMP 3995 Independent Research (1-10 Credits)

Faculty

Ramakrishna Thurimella, Professor and Department Chair, PhD, University of Texas at Austin

Anneliese Amschler Andrews, Professor, PhD, Duke University

Rinku Dewri, Associate Professor , PhD, Colorado State University

Catherine Durso, Teaching Associate Professor, MS, Massachusetts Institute of Technology

Jeffrey Edgington, Teaching Associate Professor, PhD, University of Denver

Chris GauthierDickey, Assistant Professor, PhD, University of Oregon

Mike Goss, Teaching Associate Professor, PhD, University of Texas at Dallas

Scott Leutenegger, Professor, PhD, University of Wisconsin - Milwaukee

Mario Lopez, Professor, PhD, University of Minnesota

Matt Rutherford, Assistant Professor, PhD, University of Colorado Boulder

Susanne Sherba, Teaching Associate Professor, PhD, University of Colorado Boulder

Nathan Sturtevant, Associate Professor, PhD, University of California, Los Angeles

Back to Top