Computer Science (CS)
CS 201. QR: Operating Systems. 0 or 3 Credits.
Supervisory and control software for multiprogrammed computer systems. Processes synchronization, interprocess communication, scheduling, memory management, resource allocation, performance evaluation, object-oriented systems, case studies. Prerequisites: CS 121 and CS 124.
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, including documentation, information hiding, and module interface specification syntax and semantics. Requires participation in a team project. Prerequisite: CS 124.
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 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.
The principles of programming language design and fundamental implementation concepts. Syntax, semantics, and static program analysis for various paradigms. Programming language metatheory, including confluence and type safety. Stack-based implementation and memory management issues. Prerequisites: CS 124, CS 125.
CS 228. QR: Human-Computer Interaction. 3 Credits.
The design, implementation, and evaluation of user interfaces for computers and other complex, electronic equipment. Includes a significant project. Pre/co-requisites: Programming experience and Junior standing or Instructor permission.
CS 231. QR: Programming for Bioinform. 3 Credits.
Introductory course on computing (including scripting, database, and statistical analysis) for developing bioinformatics applications. Particular emphasis is given to comparative genomics and systems biology scenarios. Prerequisites: STAT 151, STAT 153 or Instructor permission. Cross-listed with: MMG 231.
CS 232. QR: Methods in Bioinformatics. 3 Credits.
This course provides a methodological survey of bioinformatics. Particular emphasis is given to algorithms associated with sequence analysis, comparative genomics, structural biology, and systems biology. Prerequisites: STAT 151, STAT 153, or Instructor permission. Cross-listed with: MMG 232.
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 251. QR: Artificial Intelligence. 3 Credits.
Introduction to methods for realizing intelligent behavior in computers. Knowledge representation, planning, and learning. Selected applications such as natural language understanding and vision. Prerequisites: CS 124; CS 128 or STAT 151 or STAT 143. Cross-listed with: CSYS 251.
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. Prerequisites: STAT 151 or STAT 251; MATH 122 or MATH 124.
CS 256. QR: Neural Computation. 3 Credits.
Introduction to artificial neural networks, their computational capabilities and limitations, and the algorithms used to train them. Statistical capacity, convergence theorems, backpropagation, reinforcement learning, generalization. Prerequisites: MATH 122 or MATH 124 or MATH 271; CS 128 or STAT 143 or STAT 151; CS 110. Cross-listed with: STAT 256, CSYS 256.
CS 260. QR: Parallel Computing. 3 Credits.
Taxonomy of parallel computers, basic concepts for parallel computing, effectiveness and scalability, parallel algorithms for variety of problems, distributed memory and shared memory paradigms. Prerequisite: CS 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 110; CS 121.
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 274. QR: Computer Graphics. 3 Credits.
Graphical representation of two- and three-dimensional objects on color raster displays. Line generation, region filling, geometric transformations, hidden line and surface removal, rendering techniques. Prerequisites: CS 104 or CS 124; MATH 122 or MATH 124 or MATH 271 recommended.
CS 275. QR:Mobile App Development I. 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. 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. Prerequisites: CS 020 or CS 021; STAT 141 or STAT 143 or STAT 211. Pre/co-requisites: Recommended: CS 110; Math 122 or Math 124. Cross-listed with: 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 294. Undergraduate Research. 1-18 Credits.
Undergraduate 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 295. Special Topic:Computer Science. 1-18 Credits.
See Schedule of Courses for specific titles. Subject will vary from year to year. May be repeated for credit with instructor permission.
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. Pre/co-requisites: Computer programming in any language, calculus. (Linear algebra recommended). Cross-listed with: CSYS 302.
CS 332. Data Mining. 3 Credits.
Analytical and empirical techniques for analysis of large volumes of data. Topics include association analysis, classification, clustering, pattern discovery in sequential data, and Bayesian networks. Prerequisites: CS 128 or STAT 143 or STAT 151.
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: BIOL 352, CSYS 352.
CS 355. Statistical Pattern Recogntn. 3 Credits.
Analysis of algorithms used for feature selection, density estimation, and pattern classification, including Bayes classifiers, maximum likelihood, nearest neighbors, kernels, discriminants, neural networks, and clustering. Prerequisite: STAT 241 or STAT 251 or Instructor permission. Cross-listed with: STAT 355, CSYS 355.
CS 381. Seminar. 1 Credit.
Presentations by students, faculty, and guest speakers on advanced topics in Computer Science. May be repeated up to three times for credit.
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 Instructor permission. Cross-listed with: STAT 387.
CS 391. Master's Thesis Research. 1-18 Credits.
CS 392. Master's Project. 1-6 Credits.
Prerequisite: Department 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 491. Doctoral Dissertation Research. 1-18 Credits.
Credit as arranged.
CS 496. Advanced Special Topics. 1-18 Credits.
See Schedule of Courses for specific titles.