Twin Cities campus

This is archival data. This system was retired as of August 21, 2023 and the information on this page has not been updated since then. For current information, visit catalogs.umn.edu.

 
Twin Cities Campus

Computer Science Ph.D.

Computer Science and Engineering Administration
College of Science and Engineering
Link to a list of faculty for this program.
Contact Information
Department of Computer Science and Engineering, University of Minnesota, 4-192 Keller Hall, 200 Union Street S.E., Minneapolis, MN 55455 (612- 625-4002; fax: 612-625-0572)
  • Program Type: Doctorate
  • Requirements for this program are current for Spring 2017
  • Length of program in credits: 55
  • This program does not require summer semesters for timely completion.
  • Degree: Doctor of Philosophy
Along with the program-specific requirements listed below, please read the General Information section of this website for requirements that apply to all major fields.
The graduate program in computer science offers coursework from across a broad spectrum of theoretical and applied computer science, combined with research opportunities in nearly all areas of the field. Faculty members advise students in such areas as algorithms and theoretical computer science; numerical, parallel, and high-performance computing; distributed computing and systems; artificial intelligence, robotics, and computer vision; databases and data mining; human-computer interaction and information systems; graphics and visualization; software engineering and programming languages; computer architecture and compilers; networking; bio-informatics and computational biology;machine learning; and computer security. In addition, students may choose a course of study that integrates research in computer science with applications in other fields. Computer science degrees include the Ph.D., as well as the M.C.S. (a terminal, coursework-only degree), and the M.S. (offered Plan A with thesis, Plan B with project, or coursework-only Plan C with coursework-based projects). The department also supports a master of science in software engineering (M.S.S.E.) degree. Faculty from the Department of Computer Science and Engineering also participate in a variety of other graduate programs, including BioInformatics and Computational Biology, Health Informatics, Cognitive Science, Scientific Computation and Human Factors and Ergonomics.
Program Delivery
  • via classroom (the majority of instruction is face-to-face)
Prerequisites for Admission
The preferred undergraduate GPA for admittance to the program is 3.45.
A degree in any major with a substantial background in computer science is required; a computer science major is preferred.
Other requirements to be completed before admission:
The program requires all applicants to complete the department's online application, as well as the University's online application. The names and email addresses of three recommenders are required; they will be asked to upload their letters of recommendation to the CS&E online application only. Scores from the General (Aptitude) Test of the GRE are required for Ph.D. program applicants. Ph.D. students are accepted for fall admission only. The application deadline is April 1. Students seeking financial aid must apply by December 5. Additional information is available at https://www.cs.umn.edu/admissions/graduate
Applicants must submit their test score(s) from the following:
  • GRE
International applicants must submit score(s) from one of the following tests:
  • TOEFL
    • Internet Based - Total Score: 85
    • Internet Based - Writing Score: 23
    • Internet Based - Reading Score: 23
    • Paper Based - Total Score: 550
  • IELTS
    • Total Score: 6.5
  • MELAB
    • Final score: 80
Key to test abbreviations (GRE, TOEFL, IELTS, MELAB).
For an online application or for more information about graduate education admissions, see the General Information section of this website.
Program Requirements
16 to 25 credits are required in the major.
6 to 15 credits are required outside the major.
24 thesis credits are required.
This program may be completed with a minor.
Use of 4xxx courses towards program requirements is not permitted.
A minimum GPA of 3.45 is required for students to remain in good standing.
The Ph.D. requires a total of 55 credits consisting of 31 course credits and 24 thesis credits. Of the 31 course credits, 16 must be in computer science courses and at least 6 from outside the major. The 16 major credits must include five 3-credit courses that fulfill the breadth requirement in three different areas: theory and algorithms; architecture, systems and software; and applications; plus 1 credit of colloquium (CSCI 8970). The remaining 9 credits may be taken as additional graduate-level courses in the major or in any supporting field. Students are recommended to take CSCI 8001/2 Introduction to Research in Computer Science I and II and a directed research course (CSCI 8994). Students are expected to complete all courses in their degree program with a GPA of at least 3.45. All courses must be taken for graduate credit and on the A-F grading basis. All doctoral students must demonstrate background knowledge in computer science as explained in the program requirements at: https://www.cs.umn.edu/academics/graduate/phd/bg-req
Breadth Requirement Courses
Students must take a total of 5 courses (typically 15 credits): one from each of the three subject areas and the remaining two from any of the three subject areas.
Take 5 or more course(s) from the following:
Theory and Algorithms
Take 1 or more course(s) from the following:
· CSCI 5302 - Analysis of Numerical Algorithms (3.0 cr)
· CSCI 5304 - Computational Aspects of Matrix Theory (3.0 cr)
· CSCI 5403 {Inactive} (3.0 cr)
· CSCI 5421 - Advanced Algorithms and Data Structures (3.0 cr)
· CSCI 5481 - Computational Techniques for Genomics (3.0 cr)
· CSCI 5525 - Machine Learning: Analysis and Methods (3.0 cr)
· Architecture, Systems and Software
Take 1 or more course(s) from the following:
· CSCI 5103 - Operating Systems (3.0 cr)
· CSCI 5105 - Introduction to Distributed Systems (3.0 cr)
· CSCI 5106 - Programming Languages (3.0 cr)
· CSCI 5161 - Introduction to Compilers (3.0 cr)
· CSCI 5211 - Data Communications and Computer Networks (3.0 cr)
· CSCI 5221 - Foundations of Advanced Networking (3.0 cr)
· CSCI 5231 {Inactive} (3.0 cr)
· CSCI 5451 - Introduction to Parallel Computing: Architectures, Algorithms, and Programming (3.0 cr)
· CSCI 5708 - Architecture and Implementation of Database Management Systems (3.0 cr)
· CSCI 5801 - Software Engineering I (3.0 cr)
· CSCI 5802 - Software Engineering II (3.0 cr)
· CSCI 5204 - Advanced Computer Architecture (3.0 cr)
· Applications
Take 1 or more course(s) from the following:
· CSCI 5115 - User Interface Design, Implementation and Evaluation (3.0 cr)
· CSCI 5125 - Collaborative and Social Computing (3.0 cr)
· CSCI 5271 - Introduction to Computer Security (3.0 cr)
· CSCI 5471 - Modern Cryptography (3.0 cr)
· CSCI 5511 - Artificial Intelligence I (3.0 cr)
· CSCI 5512 - Artificial Intelligence II (3.0 cr)
· CSCI 5521 - Machine Learning Fundamentals (3.0 cr)
· CSCI 5523 - Introduction to Data Mining (3.0 cr)
· CSCI 5551 - Introduction to Intelligent Robotic Systems (3.0 cr)
· CSCI 5561 - Computer Vision (3.0 cr)
· CSCI 5607 - Fundamentals of Computer Graphics 1 (3.0 cr)
· CSCI 5608 - Fundamentals of Computer Graphics II (3.0 cr)
· CSCI 5609 - Visualization (3.0 cr)
· CSCI 5611 - Animation & Planning in Games (3.0 cr)
· CSCI 5619 - Virtual Reality and 3D Interaction (3.0 cr)
· CSCI 5707 - Principles of Database Systems (3.0 cr)
Supporting Program
Take 6 credits in courses outside of computer science. These credits may be used toward the requirements for a doctoral minor.
Colloquium Credits
Take 1 credit of CS colloquium.
CSCI 8970 - Computer Science Colloquium (1.0 cr)
Thesis Credits
Take 24 credits after passing preliminary oral exam.
CSCI 8888 - Thesis Credit: Doctoral (1.0-24.0 cr)
Computer Science Courses
The remaining 9 credits of coursework may be taken in the major field or any supporting field. Students may choose courses from this list or consult with their adviser for additional options.
Take 0 or more credit(s) from the following:
· CSCI 5103 - Operating Systems (3.0 cr)
· CSCI 5105 - Introduction to Distributed Systems (3.0 cr)
· CSCI 5106 - Programming Languages (3.0 cr)
· CSCI 5115 - User Interface Design, Implementation and Evaluation (3.0 cr)
· CSCI 5117 - Developing the Interactive Web (3.0 cr)
· CSCI 5125 - Collaborative and Social Computing (3.0 cr)
· CSCI 5161 - Introduction to Compilers (3.0 cr)
· CSCI 5204 - Advanced Computer Architecture (3.0 cr)
· CSCI 5211 - Data Communications and Computer Networks (3.0 cr)
· CSCI 5221 - Foundations of Advanced Networking (3.0 cr)
· CSCI 5231 {Inactive} (3.0 cr)
· CSCI 5271 - Introduction to Computer Security (3.0 cr)
· CSCI 5302 - Analysis of Numerical Algorithms (3.0 cr)
· CSCI 5304 - Computational Aspects of Matrix Theory (3.0 cr)
· CSCI 5403 {Inactive} (3.0 cr)
· CSCI 5421 - Advanced Algorithms and Data Structures (3.0 cr)
· CSCI 5451 - Introduction to Parallel Computing: Architectures, Algorithms, and Programming (3.0 cr)
· CSCI 5461 - Functional Genomics, Systems Biology, and Bioinformatics (3.0 cr)
· CSCI 5471 - Modern Cryptography (3.0 cr)
· CSCI 5481 - Computational Techniques for Genomics (3.0 cr)
· CSCI 5511 - Artificial Intelligence I (3.0 cr)
· CSCI 5512 - Artificial Intelligence II (3.0 cr)
· CSCI 5521 - Machine Learning Fundamentals (3.0 cr)
· CSCI 5523 - Introduction to Data Mining (3.0 cr)
· CSCI 5525 - Machine Learning: Analysis and Methods (3.0 cr)
· CSCI 5551 - Introduction to Intelligent Robotic Systems (3.0 cr)
· CSCI 5561 - Computer Vision (3.0 cr)
· CSCI 5607 - Fundamentals of Computer Graphics 1 (3.0 cr)
· CSCI 5611 - Animation & Planning in Games (3.0 cr)
· CSCI 5619 - Virtual Reality and 3D Interaction (3.0 cr)
· CSCI 5707 - Principles of Database Systems (3.0 cr)
· CSCI 5708 - Architecture and Implementation of Database Management Systems (3.0 cr)
· CSCI 5715 - From GPS, Google Maps, and Uber to Spatial Data Science (3.0 cr)
· CSCI 5801 - Software Engineering I (3.0 cr)
· CSCI 5802 - Software Engineering II (3.0 cr)
· CSCI 5980 - Special Topics in Computer Science (1.0-3.0 cr)
· CSCI 5991 - Independent Study (1.0-3.0 cr)
· CSCI 5994 - Directed Research (1.0-3.0 cr)
· CSCI 8001 - Introduction to Research in Computer Science I (1.0 cr)
· CSCI 8002 - Introduction to Research in Computer Science, II (2.0 cr)
· CSCI 8115 - Human-Computer Interaction and User Interface Technology (3.0 cr)
· CSCI 8205 - Parallel Computer Organization (3.0 cr)
· CSCI 8363 - Numerical Linear Algebra in Data Exploration (3.0 cr)
· CSCI 8442 - Computational Geometry and Applications (3.0 cr)
· CSCI 8551 - Intelligent Agents (3.0 cr)
· CSCI 8735 - Advanced Database Systems (3.0 cr)
· CSCI 8801 - Advanced Software Engineering (3.0 cr)
· CSCI 8980 - Special Advanced Topics in Computer Science (1.0-3.0 cr)
· CSCI 8991 - Independent Study (1.0-3.0 cr)
· CSCI 8994 - Directed Research in Computer Science (1.0-3.0 cr)
 
More program views..
View college catalog(s):
· College of Science and Engineering

View future requirement(s):
· Fall 2023
· Fall 2022
· Spring 2022
· Spring 2021
· Fall 2020
· Fall 2018

View PDF Version:
Search.
Search Programs

Search University Catalogs
Related links.

College of Science and Engineering

Graduate Admissions

Graduate School Fellowships

Graduate Assistantships

Colleges and Schools

One Stop
for tuition, course registration, financial aid, academic calendars, and more
 
CSCI 5302 - Analysis of Numerical Algorithms
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Additional topics in numerical analysis. Interpolation, approximation, extrapolation, numerical integration/differentiation, numerical solutions of ordinary differential equations. Introduction to optimization techniques. prereq: 2031 or 2033 or instr consent
CSCI 5304 - Computational Aspects of Matrix Theory
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Perturbation theory for linear systems and eigenvalue problems. Direct/iterative solution of large linear systems. Matrix factorizations. Computation of eigenvalues/eigenvectors. Singular value decomposition. LAPACK/other software packages. Introduction to sparse matrix methods. prereq: 2031 or 2033 or instr consent
CSCI 5421 - Advanced Algorithms and Data Structures
Credits: 3.0 [max 3.0]
Typically offered: Every Fall & Spring
Fundamental paradigms of algorithm and data structure design. Divide-and-conquer, dynamic programming, greedy method, graph algorithms, amortization, priority queues and variants, search structures, disjoint-set structures. Theoretical underpinnings. Examples from various problem domains. prereq: 4041 or instr consent
CSCI 5481 - Computational Techniques for Genomics
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Techniques to analyze biological data generated by genome sequencing, proteomics, cell-wide measurements of gene expression changes. Algorithms for single/multiple sequence alignments/assembly. Search algorithms for sequence databases, phylogenetic tree construction algorithms. Algorithms for gene/promoter and protein structure prediction. Data mining for micro array expression analysis. Reverse engineering of regulatory networks. prereq: 4041 or instr consent
CSCI 5525 - Machine Learning: Analysis and Methods
Credits: 3.0 [max 3.0]
Typically offered: Fall Even Year
Models of learning. Supervised algorithms such as perceptrons, logistic regression, and large margin methods (SVMs, boosting). Hypothesis evaluation. Learning theory. Online algorithms such as winnow and weighted majority. Unsupervised algorithms, dimensionality reduction, spectral methods. Graphical models. prereq: Grad student or instr consent
CSCI 5103 - Operating Systems
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Conceptual foundation of operating system designs and implementations. Relationships between operating system structures and machine architectures. UNIX implementation mechanisms as examples. prereq: 4061 or instr consent
CSCI 5105 - Introduction to Distributed Systems
Credits: 3.0 [max 3.0]
Typically offered: Periodic Spring
Distributed system design and implementation. Distributed communication and synchronization, data replication and consistency, distributed file systems, fault tolerance, and distributed scheduling. prereq: [5103 or equiv] or instr consent
CSCI 5106 - Programming Languages
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Design and implementation of high-level languages. Course has two parts: (1) language design principles, concepts, constructs; (2) language paradigms, applications. Note: course does not teach how to program in specific languages. prereq: 4011 or instr consent
CSCI 5161 - Introduction to Compilers
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Techniques for translating modern programming languages to intermediate forms or machine-executable instructions/their organization into compiler. Lexical analysis, syntax analysis, semantic analysis, data flow analysis, code generation. Compiler project for prototypical language. prereq: [2021, 5106] or instr consent
CSCI 5211 - Data Communications and Computer Networks
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 4211/CSci 5211/INET 4002
Typically offered: Every Fall
Concepts, principles, protocols, and applications of computer networks. Layered network architectures, data link protocols, local area networks, network layer/routing protocols, transport, congestion/flow control, emerging high-speed networks, network programming interfaces, networked applications. Case studies using Ethernet, Token Ring, FDDI, TCP/IP, ATM, Email, HTTP, and WWW. prereq: [4061 or instr consent], basic knowledge of [computer architecture, operating systems, probability], grad student
CSCI 5221 - Foundations of Advanced Networking
Credits: 3.0 [max 3.0]
Typically offered: Spring Even Year
Design principles, protocol mechanisms. Network algorithmics, implementation techniques. Advanced network architectures, state-of-art/emerging networking technologies/applications, network modeling. Simulation, experiments. prereq: 4211 or 5211 or equiv; intro course in computer networks recommended
CSCI 5451 - Introduction to Parallel Computing: Architectures, Algorithms, and Programming
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Parallel architectures design, embeddings, routing. Examples of parallel computers. Fundamental communication operations. Performance metrics. Parallel algorithms for sorting. Matrix problems, graph problems, dynamic load balancing, types of parallelisms. Parallel programming paradigms. Message passing programming in MPI. Shared-address space programming in openMP or threads. prereq: 4041 or instr consent
CSCI 5708 - Architecture and Implementation of Database Management Systems
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Techniques in commercial/research-oriented database systems. Catalogs. Physical storage techniques. Query processing/optimization. Transaction management. Mechanisms for concurrency control, disaster recovery, distribution, security, integrity, extended data types, triggers, and rules. prereq: 4041 or 4707 or 5707 or instr. consent
CSCI 5801 - Software Engineering I
Credits: 3.0 [max 3.0]
Prerequisites: 2041 or #
Typically offered: Every Fall
Advanced introduction to software engineering. Software life cycle, development models, software requirements analysis, software design, coding, maintenance. prereq: 2041 or instr consent
CSCI 5802 - Software Engineering II
Credits: 3.0 [max 3.0]
Typically offered: Periodic Spring
Introduction to software testing, software maturity models, cost specification models, bug estimation, software reliability models, software complexity, quality control, and experience report. Student groups specify, design, implement, and test partial software systems. Application of general software development methods and principles from 5801. prereq: 5801 or instr consent
CSCI 5204 - Advanced Computer Architecture
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 5204/EE 5364
Typically offered: Every Fall
Instruction set architecture, processor microarchitecture, memory, I/O systems. Interactions between computer software and hardware. Methodologies of computer design. prereq: 4203 or EE 4363
CSCI 5115 - User Interface Design, Implementation and Evaluation
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Theory, design, programming, and evaluation of interactive application interfaces. Human capabilities and limitations, interface design and engineering, prototyping and interface construction, interface evaluation, and topics such as data visualization and World Wide Web. Course is built around a group project. prereq: 4041 or instr consent
CSCI 5125 - Collaborative and Social Computing
Credits: 3.0 [max 3.0]
Typically offered: Spring Even Year
Introduction to computer-supported cooperative work, social computing. Technology, research methods, theory, case studies of group computing systems. Readings, hands-on experience. prereq: 5115 or instr consent
CSCI 5271 - Introduction to Computer Security
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Concepts of computer, network, and information security. Risk analysis, authentication, access control, security evaluation, audit trails, cryptography, network/database/application security, viruses, firewalls. prereq: 4061 or 5103 or equiv or instr consent
CSCI 5471 - Modern Cryptography
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall & Spring
Introduction to cryptography. Theoretical foundations, practical applications. Threats, attacks, and countermeasures, including cryptosystems and cryptographic protocols. Secure systems/networks. History of cryptography, encryption (conventional, public key), digital signatures, hash functions, message authentication codes, identification, authentication, applications. prereq: [2011, 4041, [familiarity with number theory or finite fields]] or instr consent
CSCI 5511 - Artificial Intelligence I
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 4511W/CSci 5511
Prerequisites: [2041 or #], grad student
Typically offered: Every Fall
Introduction to AI. Problem solving, search, inference techniques. Logic/theorem proving. Knowledge representation, rules, frames, semantic networks. Planning/scheduling. Lisp programming language. prereq: [2041 or instr consent], grad student
CSCI 5512 - Artificial Intelligence II
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 5512W/CSci 5512
Typically offered: Every Spring
Uncertainty in artificial intelligence. Probability as a model of uncertainty, methods for reasoning/learning under uncertainty, utility theory, decision-theoretic methods. prereq: [STAT 3021, 4041] or instr consent
CSCI 5521 - Machine Learning Fundamentals
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall
Problems of pattern recognition, feature selection, measurement techniques. Statistical decision theory, nonstatistical techniques. Automatic feature selection/data clustering. Syntactic pattern recognition. Mathematical pattern recognition/artificial intelligence. Prereq: [2031 or 2033], STAT 3021, and knowledge of partial derivatives
CSCI 5523 - Introduction to Data Mining
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall & Spring
Data pre-processing techniques, data types, similarity measures, data visualization/exploration. Predictive models (e.g., decision trees, SVM, Bayes, K-nearest neighbors, bagging, boosting). Model evaluation techniques, Clustering (hierarchical, partitional, density-based), association analysis, anomaly detection. Case studies from areas such as earth science, the Web, network intrusion, and genomics. Hands-on projects. prereq: 4041 or equiv or instr consent
CSCI 5551 - Introduction to Intelligent Robotic Systems
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall
Transformations, kinematics/inverse kinematics, dynamics, control. Sensing (robot vision, force control, tactile sensing), applications of sensor-based robot control, robot programming, mobile robotics, microrobotics. prereq: 2031 or 2033 or instr consent
CSCI 5561 - Computer Vision
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Issues in perspective transformations, edge detection, image filtering, image segmentation, and feature tracking. Complex problems in shape recovery, stereo, active vision, autonomous navigation, shadows, and physics-based vision. Applications. prereq: CSci 5511, 5521, or instructor consent.
CSCI 5607 - Fundamentals of Computer Graphics 1
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Fundamental algorithms in computer graphics. Emphasizes programming projects in C/C++. Scan conversion, hidden surface removal, geometrical transformations, projection, illumination/shading, parametric cubic curves, texture mapping, antialising, ray tracing. Developing graphics software, graphics research. prereq: concurrent registration is required (or allowed) in 2033, concurrent registration is required (or allowed) in 3081
CSCI 5608 - Fundamentals of Computer Graphics II
Credits: 3.0 [max 3.0]
Typically offered: Periodic Spring
Advanced topics in image synthesis, modeling, rendering. Image processing, image warping, global illumination, non-photorealistic rendering, texture synthesis. Parametric cubic surfaces, subdivision surfaces, acceleration techniques, advanced texture mapping. Programming in C/C++. prereq: 5607 or instr consent
CSCI 5609 - Visualization
Credits: 3.0 [max 3.0]
Typically offered: Fall Even Year
Fundamental theory/practice in data visualization. Programming applications. Perceptual issues in effective data representation, multivariate visualization, information visualization, vector field/volume visualization. prereq: [1913, 4041] or equiv or instr consent
CSCI 5611 - Animation & Planning in Games
Credits: 3.0 [max 3.0]
Typically offered: Fall Odd Year
Theory behind algorithms used to bring virtual worlds to life. Computer animation topics. Real-time, interactive techniques used in modern games. Physically-based animation, motion planning, character animation, simulation in virtual worlds. prereq: 4041 or 4611 or instr consent
CSCI 5619 - Virtual Reality and 3D Interaction
Credits: 3.0 [max 3.0]
Typically offered: Spring Odd Year
Introduction to software, technology/applications in virtual/augmented reality, 3D user interaction. Overview of current research. Hands-on projects. prereq: 4611 or 5607 or 5115 or equiv or instr consent
CSCI 5707 - Principles of Database Systems
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 4707/CSci 5707/INET 4707
Typically offered: Every Fall
Concepts, database architecture, alternative conceptual data models, foundations of data manipulation/analysis, logical data models, database designs, models of database security/integrity, current trends. prereq: [4041 or instr consent], grad student
CSCI 8970 - Computer Science Colloquium
Credits: 1.0 [max 1.0]
Grading Basis: S-N or Aud
Typically offered: Every Fall & Spring
Recent developments in computer science and related disciplines. Students must attend 13 of the 15 lectures.
CSCI 8888 - Thesis Credit: Doctoral
Credits: 1.0 -24.0 [max 100.0]
Grading Basis: No Grade
Typically offered: Every Fall, Spring & Summer
(No description) prereq: Max 18 cr per semester or summer; 24 cr required
CSCI 5103 - Operating Systems
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Conceptual foundation of operating system designs and implementations. Relationships between operating system structures and machine architectures. UNIX implementation mechanisms as examples. prereq: 4061 or instr consent
CSCI 5105 - Introduction to Distributed Systems
Credits: 3.0 [max 3.0]
Typically offered: Periodic Spring
Distributed system design and implementation. Distributed communication and synchronization, data replication and consistency, distributed file systems, fault tolerance, and distributed scheduling. prereq: [5103 or equiv] or instr consent
CSCI 5106 - Programming Languages
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Design and implementation of high-level languages. Course has two parts: (1) language design principles, concepts, constructs; (2) language paradigms, applications. Note: course does not teach how to program in specific languages. prereq: 4011 or instr consent
CSCI 5115 - User Interface Design, Implementation and Evaluation
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Theory, design, programming, and evaluation of interactive application interfaces. Human capabilities and limitations, interface design and engineering, prototyping and interface construction, interface evaluation, and topics such as data visualization and World Wide Web. Course is built around a group project. prereq: 4041 or instr consent
CSCI 5117 - Developing the Interactive Web
Credits: 3.0 [max 3.0]
Typically offered: Spring Even Year
Hands-on design experience using modern web development tools. Students work in teams to develop software programs using each of four toolkits. Analyze developments in forum posts and classroom discussions. prereq: 4131 or 5131 or instr consent; upper div or grad in CSci recommended
CSCI 5125 - Collaborative and Social Computing
Credits: 3.0 [max 3.0]
Typically offered: Spring Even Year
Introduction to computer-supported cooperative work, social computing. Technology, research methods, theory, case studies of group computing systems. Readings, hands-on experience. prereq: 5115 or instr consent
CSCI 5161 - Introduction to Compilers
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Techniques for translating modern programming languages to intermediate forms or machine-executable instructions/their organization into compiler. Lexical analysis, syntax analysis, semantic analysis, data flow analysis, code generation. Compiler project for prototypical language. prereq: [2021, 5106] or instr consent
CSCI 5204 - Advanced Computer Architecture
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 5204/EE 5364
Typically offered: Every Fall
Instruction set architecture, processor microarchitecture, memory, I/O systems. Interactions between computer software and hardware. Methodologies of computer design. prereq: 4203 or EE 4363
CSCI 5211 - Data Communications and Computer Networks
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 4211/CSci 5211/INET 4002
Typically offered: Every Fall
Concepts, principles, protocols, and applications of computer networks. Layered network architectures, data link protocols, local area networks, network layer/routing protocols, transport, congestion/flow control, emerging high-speed networks, network programming interfaces, networked applications. Case studies using Ethernet, Token Ring, FDDI, TCP/IP, ATM, Email, HTTP, and WWW. prereq: [4061 or instr consent], basic knowledge of [computer architecture, operating systems, probability], grad student
CSCI 5221 - Foundations of Advanced Networking
Credits: 3.0 [max 3.0]
Typically offered: Spring Even Year
Design principles, protocol mechanisms. Network algorithmics, implementation techniques. Advanced network architectures, state-of-art/emerging networking technologies/applications, network modeling. Simulation, experiments. prereq: 4211 or 5211 or equiv; intro course in computer networks recommended
CSCI 5271 - Introduction to Computer Security
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Concepts of computer, network, and information security. Risk analysis, authentication, access control, security evaluation, audit trails, cryptography, network/database/application security, viruses, firewalls. prereq: 4061 or 5103 or equiv or instr consent
CSCI 5302 - Analysis of Numerical Algorithms
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Additional topics in numerical analysis. Interpolation, approximation, extrapolation, numerical integration/differentiation, numerical solutions of ordinary differential equations. Introduction to optimization techniques. prereq: 2031 or 2033 or instr consent
CSCI 5304 - Computational Aspects of Matrix Theory
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Perturbation theory for linear systems and eigenvalue problems. Direct/iterative solution of large linear systems. Matrix factorizations. Computation of eigenvalues/eigenvectors. Singular value decomposition. LAPACK/other software packages. Introduction to sparse matrix methods. prereq: 2031 or 2033 or instr consent
CSCI 5421 - Advanced Algorithms and Data Structures
Credits: 3.0 [max 3.0]
Typically offered: Every Fall & Spring
Fundamental paradigms of algorithm and data structure design. Divide-and-conquer, dynamic programming, greedy method, graph algorithms, amortization, priority queues and variants, search structures, disjoint-set structures. Theoretical underpinnings. Examples from various problem domains. prereq: 4041 or instr consent
CSCI 5451 - Introduction to Parallel Computing: Architectures, Algorithms, and Programming
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Parallel architectures design, embeddings, routing. Examples of parallel computers. Fundamental communication operations. Performance metrics. Parallel algorithms for sorting. Matrix problems, graph problems, dynamic load balancing, types of parallelisms. Parallel programming paradigms. Message passing programming in MPI. Shared-address space programming in openMP or threads. prereq: 4041 or instr consent
CSCI 5461 - Functional Genomics, Systems Biology, and Bioinformatics
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Computational methods for analyzing, integrating, and deriving predictions from genomic/proteomic data. Analyzing gene expression, proteomic data, and protein-protein interaction networks. Protein/gene function prediction, Integrating diverse data, visualizing genomic datasets. prereq: 3003 or 4041 or instr consent
CSCI 5471 - Modern Cryptography
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall & Spring
Introduction to cryptography. Theoretical foundations, practical applications. Threats, attacks, and countermeasures, including cryptosystems and cryptographic protocols. Secure systems/networks. History of cryptography, encryption (conventional, public key), digital signatures, hash functions, message authentication codes, identification, authentication, applications. prereq: [2011, 4041, [familiarity with number theory or finite fields]] or instr consent
CSCI 5481 - Computational Techniques for Genomics
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Techniques to analyze biological data generated by genome sequencing, proteomics, cell-wide measurements of gene expression changes. Algorithms for single/multiple sequence alignments/assembly. Search algorithms for sequence databases, phylogenetic tree construction algorithms. Algorithms for gene/promoter and protein structure prediction. Data mining for micro array expression analysis. Reverse engineering of regulatory networks. prereq: 4041 or instr consent
CSCI 5511 - Artificial Intelligence I
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 4511W/CSci 5511
Prerequisites: [2041 or #], grad student
Typically offered: Every Fall
Introduction to AI. Problem solving, search, inference techniques. Logic/theorem proving. Knowledge representation, rules, frames, semantic networks. Planning/scheduling. Lisp programming language. prereq: [2041 or instr consent], grad student
CSCI 5512 - Artificial Intelligence II
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 5512W/CSci 5512
Typically offered: Every Spring
Uncertainty in artificial intelligence. Probability as a model of uncertainty, methods for reasoning/learning under uncertainty, utility theory, decision-theoretic methods. prereq: [STAT 3021, 4041] or instr consent
CSCI 5521 - Machine Learning Fundamentals
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall
Problems of pattern recognition, feature selection, measurement techniques. Statistical decision theory, nonstatistical techniques. Automatic feature selection/data clustering. Syntactic pattern recognition. Mathematical pattern recognition/artificial intelligence. Prereq: [2031 or 2033], STAT 3021, and knowledge of partial derivatives
CSCI 5523 - Introduction to Data Mining
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall & Spring
Data pre-processing techniques, data types, similarity measures, data visualization/exploration. Predictive models (e.g., decision trees, SVM, Bayes, K-nearest neighbors, bagging, boosting). Model evaluation techniques, Clustering (hierarchical, partitional, density-based), association analysis, anomaly detection. Case studies from areas such as earth science, the Web, network intrusion, and genomics. Hands-on projects. prereq: 4041 or equiv or instr consent
CSCI 5525 - Machine Learning: Analysis and Methods
Credits: 3.0 [max 3.0]
Typically offered: Fall Even Year
Models of learning. Supervised algorithms such as perceptrons, logistic regression, and large margin methods (SVMs, boosting). Hypothesis evaluation. Learning theory. Online algorithms such as winnow and weighted majority. Unsupervised algorithms, dimensionality reduction, spectral methods. Graphical models. prereq: Grad student or instr consent
CSCI 5551 - Introduction to Intelligent Robotic Systems
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall
Transformations, kinematics/inverse kinematics, dynamics, control. Sensing (robot vision, force control, tactile sensing), applications of sensor-based robot control, robot programming, mobile robotics, microrobotics. prereq: 2031 or 2033 or instr consent
CSCI 5561 - Computer Vision
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Issues in perspective transformations, edge detection, image filtering, image segmentation, and feature tracking. Complex problems in shape recovery, stereo, active vision, autonomous navigation, shadows, and physics-based vision. Applications. prereq: CSci 5511, 5521, or instructor consent.
CSCI 5607 - Fundamentals of Computer Graphics 1
Credits: 3.0 [max 3.0]
Typically offered: Every Fall
Fundamental algorithms in computer graphics. Emphasizes programming projects in C/C++. Scan conversion, hidden surface removal, geometrical transformations, projection, illumination/shading, parametric cubic curves, texture mapping, antialising, ray tracing. Developing graphics software, graphics research. prereq: concurrent registration is required (or allowed) in 2033, concurrent registration is required (or allowed) in 3081
CSCI 5611 - Animation & Planning in Games
Credits: 3.0 [max 3.0]
Typically offered: Fall Odd Year
Theory behind algorithms used to bring virtual worlds to life. Computer animation topics. Real-time, interactive techniques used in modern games. Physically-based animation, motion planning, character animation, simulation in virtual worlds. prereq: 4041 or 4611 or instr consent
CSCI 5619 - Virtual Reality and 3D Interaction
Credits: 3.0 [max 3.0]
Typically offered: Spring Odd Year
Introduction to software, technology/applications in virtual/augmented reality, 3D user interaction. Overview of current research. Hands-on projects. prereq: 4611 or 5607 or 5115 or equiv or instr consent
CSCI 5707 - Principles of Database Systems
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 4707/CSci 5707/INET 4707
Typically offered: Every Fall
Concepts, database architecture, alternative conceptual data models, foundations of data manipulation/analysis, logical data models, database designs, models of database security/integrity, current trends. prereq: [4041 or instr consent], grad student
CSCI 5708 - Architecture and Implementation of Database Management Systems
Credits: 3.0 [max 3.0]
Typically offered: Every Spring
Techniques in commercial/research-oriented database systems. Catalogs. Physical storage techniques. Query processing/optimization. Transaction management. Mechanisms for concurrency control, disaster recovery, distribution, security, integrity, extended data types, triggers, and rules. prereq: 4041 or 4707 or 5707 or instr. consent
CSCI 5715 - From GPS, Google Maps, and Uber to Spatial Data Science
Credits: 3.0 [max 3.0]
Typically offered: Spring Even Year
Spatial databases and querying, spatial big data mining, spatial data-structures and algorithms, positioning, earth observation, cartography, and geo-visulization. Trends such as spatio-temporal, and geospatial cloud analytics, etc. prereq: Familiarity with Java, C++, or Python
CSCI 5801 - Software Engineering I
Credits: 3.0 [max 3.0]
Prerequisites: 2041 or #
Typically offered: Every Fall
Advanced introduction to software engineering. Software life cycle, development models, software requirements analysis, software design, coding, maintenance. prereq: 2041 or instr consent
CSCI 5802 - Software Engineering II
Credits: 3.0 [max 3.0]
Typically offered: Periodic Spring
Introduction to software testing, software maturity models, cost specification models, bug estimation, software reliability models, software complexity, quality control, and experience report. Student groups specify, design, implement, and test partial software systems. Application of general software development methods and principles from 5801. prereq: 5801 or instr consent
CSCI 5980 - Special Topics in Computer Science
Credits: 1.0 -3.0 [max 27.0]
Typically offered: Periodic Fall & Spring
Lectures and informal discussions on current topics in computer science. prereq: instr consent; may be repeated for cr
CSCI 5991 - Independent Study
Credits: 1.0 -3.0 [max 9.0]
Typically offered: Every Fall, Spring & Summer
Independent study arranged with CS faculty member. prereq: instr consent; may be repeated for cr
CSCI 5994 - Directed Research
Credits: 1.0 -3.0 [max 9.0]
Typically offered: Every Fall, Spring & Summer
Directed research arranged with faculty member. prereq: instr consent; may be repeated for cr
CSCI 8001 - Introduction to Research in Computer Science I
Credits: 1.0 [max 1.0]
Grading Basis: A-F only
Typically offered: Every Fall
First of two-part sequence course. Students must take both parts to complete course and receive grade. Conducting literature review. Identifying research questions. Writing a research proposal. Research areas in CS. Practical research skills. Research ethics. Resources. prereq: 1st yr CS PhD student
CSCI 8002 - Introduction to Research in Computer Science, II
Credits: 2.0 [max 2.0]
Grading Basis: A-F only
Typically offered: Every Spring
Second of two-part sequence course. Students must take both parts to complete course and receive grade. Conducting literature review. Identifying research questions. Writing a research proposal. Research areas in CS. Practical research skills. Research ethics. Resources. prereq: 8001, 1st yr CS PhD student
CSCI 8115 - Human-Computer Interaction and User Interface Technology
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall & Spring
Current research issues in human-computer interaction, user interface toolkits and frameworks, and related areas. Research techniques, model-based development, gesture-based interfaces, constraint-based programming, event processing models, innovative systems, HCI in multimedia systems. prereq: 5115 or instr consent
CSCI 8205 - Parallel Computer Organization
Credits: 3.0 [max 3.0]
Course Equivalencies: CSci 8205/EE 8367
Typically offered: Every Spring
Design/implementation of multiprocessor systems. Parallel machine organization, system design. Differences between parallel, uniprocessor machines. Programming models. Synchronization/communication. Topologies, message routing strategies. Performance optimization techniques. Compiler, system software issues. prereq: 5204 or EE 5364 or instr consent
CSCI 8363 - Numerical Linear Algebra in Data Exploration
Credits: 3.0 [max 3.0]
Typically offered: Periodic Spring
Computational methods in linear algebra, matrix decompositions for linear equations, least squares, eigenvalue problems, singular value decomposition, conditioning, stability in method for machine learning, large data collections. Principal directions, unsupervised clustering, latent semantic indexing, linear least squares fit. Markov chain models on hyperlink structure. prereq: 5304 or instr consent
CSCI 8442 - Computational Geometry and Applications
Credits: 3.0 [max 3.0]
Typically offered: Periodic Spring
Designing efficient algorithms and data structures for geometric problems. Models of computation, convex hulls, geometric duality, multidimensional search, Voronoi diagrams and Delauney triangulations, linear programming in fixed dimensions, lower bound techniques. Applications, advanced topics. prereq: 5421 or instr consent
CSCI 8551 - Intelligent Agents
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall
Theories of intelligent agents. Agent architectures; knowledge representation, communication, cooperation, and negotiation among multiple agents; planning and learning; issues in designing agents with a physical body; dealing with sensors and actuators; world modeling. prereq: 5511 or instr consent
CSCI 8735 - Advanced Database Systems
Credits: 3.0 [max 3.0]
Grading Basis: A-F or Aud
Typically offered: Periodic Fall
Database systems for emerging applications, nontraditional query processors, multi-dimensional data indexing. Current research trends. prereq: 4707 or 5707 or 5708
CSCI 8801 - Advanced Software Engineering
Credits: 3.0 [max 3.0]
Typically offered: Periodic Fall & Spring
Software reusability, internet/intranet programming, software reengineering, and software safety. prereq: 5801 or instr consent
CSCI 8980 - Special Advanced Topics in Computer Science
Credits: 1.0 -3.0 [max 27.0]
Typically offered: Every Fall & Spring
Lectures and informal discussions. prereq: instr consent
CSCI 8991 - Independent Study
Credits: 1.0 -3.0 [max 9.0]
Typically offered: Every Fall & Spring
Independent study with professor. prereq: instr consent
CSCI 8994 - Directed Research in Computer Science
Credits: 1.0 -3.0 [max 9.0]
Typically offered: Every Fall & Spring
Directed research with professor. prereq: instr consent