Computer Science
Overview
The Department of Computer Science offers 3 graduate programs through the Graduate College: an Accelerated Master's Program (AMP) that enables strong undergraduate students to complete computer science Bachelor's and Master's degrees in 5 years; a Master's Program (M.S.) in computer science with course work-only, project, and thesis options; and an interdisciplinary Ph.D. program that offers study in both traditional and cross-disciplinary areas of computing. The Department also participates in the Transdisciplinary Certificate of Graduate Study in Complex Systems, and the Master's and Ph.D. degrees in Complex Systems & Data Science.
Degrees
Bagrow, James; Assistant Professor, Department of Mathematics and Statistics; PHD, Clarkson University
Beckage, Brian; Professor, Department of Plant Biology; PHD, Duke University
Bongard, Joshua C.; Professor, Department of Computer Science; PHD, University of Zurich
Cheney, Nicholas A.; Research Assistant Professor, Department of Computer Science; PHD, Cornell University
Clemins, Patrick J.; Adjunct Assistant Professor, Department of Computer Science; PHD, Marquette University
Cockrell, R. Chase; Assistant Professor, Department of Surgery; PHD, Iowa State University
Danforth, Chris; Associate Professor, Department of Mathematics and Statistics; PHD, University of Maryland College Park
Darais, David; Assistant Professor, Department of Computer Science; PHD, University of Maryland
Dodds, Peter Sheridan; Professor, Department of Mathematics and Statistics; PHD, Massachusetts Institute of Technology
Eppstein, Margaret Jean; Professor Emerita, Department of Computer Science; PHD, University of Vermont
Hébert-Dufresne, Laurent; Assistant Professor, Department of Computer Science; PHD, Université Laval, Québec, Canada
Hibbeler, Jason; Professor of the Practice, Department of Computer Science; PHD, University of Illinois at Urbana-Champaign
Hines, Paul D.; Associate Professor, Department of Electrical and Biomedical Engineering; PHD, Carnegie Mellon University
Lee, Byung S.; Professor, Department of Computer Science; PHD, Stanford University
Li, Dawei ; Assistant Professor, Department of Microbiology and Molecular Genetics; PHD, Shanghai Jiao Tong University
Ling, Alan Chi; Associate Professor, Department of Computer Science; PHD, University of Waterloo
Near, Joseph P.; Assistant Professor, Department of Computer Science; PHD, Massachusetts Institute of Technology
Pinder, George Francis; Professor, Department of Civil and Environmental Engineering; PHD, University of Illinois Urbana-Champaign
Rizzo, Donna Marie; Professor, Department of Civil and Environmental Engineering; PHD, University of Vermont
Skalka, Christian Edward; Associate Professor, Department of Computer Science; PHD, Johns Hopkins University
Young, Jean-Gabriel; Assistant Professor, Department of Computer Science, PHD, Université Laval
Yu, Jun; Professor, Department of Mathematics and Statistics; PHD, University of Washington Seattle
Zia, Asim; Professor, Department of Community Development and Applied Economics; PHD, Georgia Institute of Technology
Courses
CS 201. QR: Operating Systems. 0 or 3 Credits.
Supervisory and control software for multiprogrammed computer systems. Processes, threads, synchronization, interprocess communication, scheduling, memory management, resource allocation, performance evaluation, secondary storage, case studies. Prerequisites: CS 120 and CS 121.
CS 202. Compiler Construction. 3 Credits.
Covers the design and construction of compilers and translation of high-level programming languages to assembly language. Topics include code representation, register allocation, optimization, static analysis, mutable data, garbage collection, and compilation of higher-order language features. Prerequisites: CS 124, CS 125.
CS 204. QR: Database Systems. 3 Credits.
Techniques for processing very large collections of data. Secondary storage. Database design and management. Query languages and optimization. Database recovery. Prerequisite: CS 124.
CS 205. QR: Software Engineering. 3 Credits.
Treatment of software engineering problems and principles, with a focus on iterative software development. A significant part of the course is devoted to two multi-week team projects. Prerequisite: CS 120.
CS 206. QR: Evolutionary Robotics. 3 Credits.
Exploration of the automated design of autonomous machines using evolutionary algorithms. Coursework involves reading of research papers, programming assignments and a final project. Prerequisites: Junior standing and programming experience, or Instructor permission.
CS 211. Data Privacy. 3 Credits.
Explores the research field of data privacy, including privacy attacks on anonymized data, and formal approaches like k-Anonymity and differential privacy. Applies the theory of data privacy to real problems in programming projects. Prerequisites: CS 124, CS 125.
CS 222. QR: Computer Architecture. 3 Credits.
Architecture of computing systems. Control unit logic, input/output processors and devices, asynchronous processing, concurrency, parallelism, and memory hierarchies. Prerequisite: CS 121.
CS 224. QR:Algorithm Design & Analysis. 3 Credits.
Comprehensive study of algorithms including greedy algorithms, divide and conquer, dynamic programming, graph algorithms and network flow. Computational intractability. Approximation, local search and randomization. Prerequisite: CS 124. Pre/co-requisites: Recommended: CS 125; STAT 143, STAT 151, or CS 128.
CS 225. QR: Programming Languages. 3 Credits.
Principles of programming language design and fundamental implementation concepts. Syntax, semantics, and static analysis of programs. Provable properties of programming languages such as type safety. Prerequisites: CS 124, CS 125.
CS 226. QR:Software Verification. 3 Credits.
Principles and practice of software specification and verification. Design of algorithms which are verified correct using interactive or automated, software-based tools. Emphasis on the design space for software specification, and the spectrum of verification goals ranging from shallow to deep verification. Includes a course project. Prerequisites: CS 124, CS 125.
CS 228. Human-Computer Interaction. 3 Credits.
Covers the foundational theories and methods in the interdisciplinary field of human-computer interaction, focuses on the human-centered design and evaluation of user interfaces for various computing systems, as well as introduces a wide range of topics in current human-computer interaction research. Prerequisites: Minimum Junior standing. Pre/Co-requisites: Programming experience; CS 008 or equivalent web development experience.
CS 237. QR:Intro to Numerical Analysis. 3 Credits.
Error analysis, root-finding, interpolation, least squares, quadrature, linear equations, numerical solution of ordinary differential equations. Prerequisites: Math 121; MATH 122 or MATH 124 or MATH 271; CS 020 or CS 021. Cross-listed with: MATH 237.
CS 243. QR: Theory of Computation. 3 Credits.
Reducibility and decidability, recursion theory, time and space complexity, P, NP, NP-completeness, PSPACE, PSPACE-completeness, L and NL, advanced topics in computability and complexity. Prerequisites: CS 124 and CS 125.
CS 253. QR:Reinforcement Learning. 3 Credits.
Students will program agents that learn to optimize a reward function using Reinforcement Learning; Markov Decision Processes with discrete states, Value Iteration, Policy Iteration, Q-learning and SARSA, methods for value function approximation in complex domains using linear and non-linear methods. Prerequisites: CS 064 or MATH 052; STAT 151 or STAT 251; CS 110. Pre/Co-requisites: MATH 122 or MATH 124; CS 125.
CS 254. QR: Machine Learning. 3 Credits.
Introduction to machine learning algorithms, theory, and implementation, including supervised and unsupervised learning; topics typically include linear and logistic regression, learning theory, support vector machines, decision trees, backpropagation artificial neural networks, and an introduction to deep learning. Includes a team-based project. Prerequisites: STAT 151 or STAT 251; MATH 122 or MATH 124.
CS 265. QR: Computer Networks. 3 Credits.
Introduction to the theoretical and pragmatic principles and practices of computer networking. Topics include: the Internet; wired and wireless communications protocols; network security protocols. Prerequisites: CS 124.
CS 266. QR:Network Secrty&Cryptography. 3 Credits.
Security and secrecy in a networked environment. Cryptography: public and private key. Authentication: trusted agents, tickets. Electronic mail and digital signatures. Privacy and national security. Prerequisite: CS 124.
CS 275. QR:Mobile App Development. 3 Credits.
A projects-based course focusing on software development for mobile devices, including the concepts of event-driven programming, GUI design and implementation, utilization of hardware sensors, and client/server applications. A significant part of the course is devoted to a multi-month team development project. Prerequisite: CS 120, Senior standing. Pre/co-requisites: Recommended: CS 148 or CS 204.
CS 287. QR: Data Science I. 3 Credits.
Data harvesting, cleaning, and summarizing. Working with non-traditional, non-numeric data (social network, natural language textual data, etc.). Scientific visualization using static and interactive "infographics." A practical focus on real datasets, and developing good habits for rigorous and reproducible computational science. Project-based. Prerequisites: CS 020 or CS 021; STAT 141 or STAT 143 or STAT 211; CS 110 and MATH 122/124 recommended. Pre/co-requisites: Recommended: CS 110; Math 122 or Math 124. Cross-listed with: CSYS 287, STAT 287.
CS 288. QR: Statistical Learning. 3 Credits.
Statistical learning methods and applications to modern problems in science, industry, and society. Topics include: linear model selection, cross-validation, lasso and ridge regression, tree-based methods, bagging and boosting, support vector machines, and unsupervised learning. Prerequisites: STAT 143, STAT 183 or STAT 211. Cross-listed with: STAT 288.
CS 302. Modeling Complex Systems. 3 Credits.
Integrative breadth-first introduction to computational methods for modeling complex systems;numerical methods, cellular automata, agent-based computing, game theory, genetic algorithms, artificial neural networks, and complex networks. Semester team-based project. Prerequisite: Graduate standing. Pre/Co-requisites: Computer programming in any language, calculus; linear algebra recommended. Cross-listed with: CSYS 302.
CS 352. Evolutionary Computation. 3 Credits.
Theory and practice of biologically-inspired search strategies, including genetic algorithms, genetic programming, and evolution strategies. Applications include optimization, parameter estimation, and model identification. Significant project. Students from multiple disciplines encouraged. Pre/co-requisites: Familiarity with programming, probability, and statistics. Cross-listed with: CSYS 352.
CS 354. Deep Learning. 3 Credits.
Introduction to Deep Learning algorithms and applications, including basic neural networks, convolutional neural networks, recurrent neural networks, deep unsupervised learning, generative adversarial networks and deep reinforcement learning. Includes a semester team-based project. Prerequisite: CS 254. Cross-listed with: CSYS 354.
CS 387. Data Science II. 3 Credits.
Advanced data analysis, collection, and filtering; statistical modeling, monte carlo statistical methods, and in particular Bayesian data analysis, including necessary probabilistic background material; a practical focus on real datasets and developing good habits for rigorous and reproducible computational science. Prerequisite: STAT 287 or CS 287 or CSYS 287 or Instructor permission. Cross-listed with: CSYS 387, STAT 387.
CS 390. Internship. 1-18 Credits.
On-site supervised work experience combined with a structured academic learning plan directed by a faculty member or a faculty-staff team in which a faculty member is the instructor of record, for which academic credit is awarded. Offered at department discretion.
CS 393. Independent Graduate Research. 1-18 Credits.
Graduate student work on individual or small team research projects under the supervision of a faculty member, for which credit is awarded. Offered at department discretion.
CS 394. Independent Study. 1-18 Credits.
A course which is tailored to fit the interests of a specific student, which occurs outside the traditional classroom/laboratory setting under the supervision of a faculty member, for which credit is awarded. Offered at department discretion. Prerequisite: Instructor permission.
CS 395. Advanced Special Topics. 1-18 Credits.
Subject will vary from year to year. May be repeated for credit with Instructor permission.
CS 490. Internship. 1-18 Credits.
On-site supervised work experience combined with a structured academic learning plan directed by a faculty member or a faculty-staff team in which a faculty member is the instructor of record, for which academic credit is awarded. Offered at department discretion.
CS 493. Independent Graduate Research. 1-18 Credits.
Graduate student work on individual or small team research projects under the supervision of a faculty member, for which credit is awarded. Offered at department discretion.
CS 496. Advanced Special Topics. 1-18 Credits.
See Schedule of Courses for specific titles.