Search Results

Courses returned by search
Subject Course Title Description
CS 100 Computer Science Orientation
Introduction to Computer Science as a field and career for incoming first year and external transfer students in the computer science majors. Overview of the field and specific examples of problem areas and methods of solution.
CS 101 Intro Computing: Engrg & Sci
Fundamental principles, concepts, and methods of computing, with emphasis on applications in the physical sciences and engineering. Basic problem solving and programming techniques; fundamental algorithms and data structures; use of computers in solving engineering and scientific problems. Intended for engineering and science majors. Prerequisite: One of MATH 220 or MATH 221 or MATH 231 or MATH 241.
CS 105 Intro Computing: Non-Tech
Computing as an essential tool of academic and professional activities. Functions and interrelationships of computer system components: hardware, systems and applications software, and networks. Widely used application packages such as spreadsheets and databases. Concepts and practice of programming for the solution of simple problems in different application areas. Intended for non-science and non-engineering majors. Prerequisite: MATH 112.
CS 107 Data Science Discovery
Same as IS 107 and STAT 107. See STAT 107.
CS 124 Introduction to Computer Science I
Basic concepts in computing and fundamental techniques for solving computational problems. Intended as a first course for computer science majors and others with a deep interest in computing. Credit is not given for both CS 124 and CS 125. Prerequisite: Three years of high school mathematics or MATH 112.
CS 128 Introduction to Computer Science II
Continuation of CS 124. More advanced concepts in computing and techniques and approaches for solving computational problems. Prerequisite: CS 124 or CS 125.
CS 173 Discrete Structures
[IAI Code: CS915] Discrete mathematical structures frequently encountered in the study of Computer Science. Sets, propositions, Boolean algebra, induction, recursion, relations, functions, and graphs. Credit is not given toward graduation for: Credit is not given for both CS 173 and MATH 213. Prerequisite: One of CS 124, CS 125, ECE 220; one of MATH 220, MATH 221.
CS 199 Undergraduate Open Seminar in Computer Science
Topics vary. Approved for Letter and S/U grading. May be repeated.
CS 210 Ethical & Professional Issues
Ethics for the computing profession. Ethical decision-making; licensing; intellectual property, freedom of information, and privacy. Credit is not given for both CS 210 and either CS 211 or ECE 316. Prerequisite: CS 225. Junior standing required.
CS 211 Ethical and Professional Conduct
Navigating the complex ethical and professional landscape of the computing professional: privacy, intellectual property, cybersecurity, and freedom of speech. Hands-on exercises, assignments, and discussions in which students analyze current events from perspectives in both philosophical and professional ethics. Writing professionally and technically in several writing assignments requiring peer review, workshops, and multiple rounds of editing and revising. Credit is not given for both CS 211 and CS 210 or ECE 316. Prerequisite: CS 225.
CS 222 Software Design Lab
Design and implementation of novel software solutions. Problem identification and definition; idea generation and evaluation; and software implementation, testing, and deployment. Emphasizes software development best practices—including framework selection, code review, documentation, appropriate library usage, project management, continuous integration and testing, and teamwork. Prerequisite: CS 128; credit or concurrent registration in CS 225. Restricted to majors in Computer Science undergraduate curricula only.
CS 225 Data Structures
Data abstractions: elementary data structures (lists, stacks, queues, and trees) and their implementation using an object-oriented programming language. Solutions to a variety of computational problems such as search on graphs and trees. Elementary analysis of algorithms. Credit is not given toward graduation for: CS 277 if credit for CS 225 has been earned. Prerequisite: CS 126 or CS 128 or ECE 220; One of CS 173, CS 413, MATH 213, MATH 314, MATH 347, MATH 412, or MATH 413.
CS 233 Computer Architecture
Fundamentals of computer architecture: digital logic design, working up from the logic gate level to understand the function of a simple computer; machine-level programming to understand implementation of high-level languages; performance models of modern computer architectures to enable performance optimization of software; hardware primitives for parallelism and security. Prerequisite: CS 125 or CS 128; CS 173 or MATH 213; credit or concurrent enrollment in CS 225.
CS 277 Algorithms and Data Structures for Data Science
Introduction to elementary concepts in algorithms and classical data structures with a focus on their applications in Data Science. Topics include algorithm analysis (ex: Big-O notation), elementary data structures (ex: lists, stacks, queues, trees, and graphs), basics of discrete algorithm design principles (ex: greedy, divide and conquer, dynamic programming), and discussion of discrete and continuous optimization. Credit is not given for CS 277 if credit for CS 225 is earned. Prerequisite: STAT 207; one of MATH 220, MATH 221, MATH 234. CS 277 cannot be taken concurrently with CS 225.
CS 307 Modeling and Learning in Data Science
Introduction to the use of classical approaches in data modeling and machine learning in the context of solving data-centric problems. A broad coverage of fundamental models is presented, including linear models, unsupervised learning, supervised learning, and deep learning. A significant emphasis is placed on the application of the models in Python and the interpretability of the results. Prerequisite: STAT 207; one of MATH 225, MATH 227, MATH 257, MATH 415, MATH 416, ASRM 406.
CS 340 Introduction to Computer Systems
Basics of computer systems. Number representations, assembly/machine language, abstract models of processors (fetch/execute, memory hierarchy), processes/process control, simple memory management, file I/O and directories, network programming, usage of cloud services. Credit is not given for both CS 340 and CS 240. Prerequisite: CS 128 and CS 225.
CS 341 System Programming
Basics of system programming, including POSIX processes, process control, inter-process communication, synchronization, signals, simple memory management, file I/O and directories, shell programming, socket network programming, RPC programming in distributed systems, basic security mechanisms, and standard tools for systems programming such as debugging tools. Credit is not given for both CS 341 and either CS 241 or ECE 391. Prerequisite: CS 225 and CS 233.
CS 357 Numerical Methods I
Fundamentals of numerical methods for students in science and engineering; floating-point computation, systems of linear equations, approximation of functions and integrals, the single nonlinear equation, and the numerical solution of ordinary differential equations; various applications in science and engineering; programming exercises and use of high quality mathematical library routines. (Counts for advanced hours in LAS). Same as MATH 357. Credit is not given toward graduation for: Credit is not given towards graduation for CS 357 if credit for CS 450 has been earned. Prerequisite: One of CS 101, CS 105, CS 124, CS 125 or ECE 220; MATH 241; one of MATH 225, MATH 227, MATH 257, MATH 415, MATH 416, ASRM 406 or BIOE 210.
CS 361 Probability & Statistics for Computer Science
Introduction to probability theory and statistics with applications to computer science. Topics include: visualizing datasets, summarizing data, basic descriptive statistics, conditional probability, independence, Bayes theorem, random variables, joint and conditional distributions, expectation, variance and covariance, central limit theorem. Markov inequality, Chebyshev inequality, law of large numbers, Markov chains, simulation, the PageRank algorithm, populations and sampling, sample mean, standard error, maximum likelihood estimation, Bayes estimation, hypothesis testing, confidence intervals, linear regression, principal component analysis, classification, and decision trees. Credit is not given toward graduation for: Credit is not given for both CS 361 and ECE 313. Prerequisite: MATH 220 or MATH 221. Credit or concurrent registration in one of MATH 225, MATH 227, MATH 257, MATH 415, MATH 416, ASRM 406 or BIOE 210.
CS 374 Introduction to Algorithms & Models of Computation
Analysis of algorithms, major paradigms of algorithm design including recursive algorithms, divide-and-conquer algorithms, dynamic programming, greedy algorithms, and graph algorithms. Formal models of computation including finite automata and Turing machines. Limitations of computation arising from fundamental notions of algorithm and from complexity-theoretic constraints. Reductions, undecidability and NP-completeness. Same as ECE 374. Prerequisite: One of CS 173, MATH 213; CS 225.
CS 397 Individual Study
May be repeated. Prerequisite: Consent of instructor.
CS 407 Cryptography
Same as ECE 407. See ECE 407.
CS 409 The Art of Web Programming
Client- and server-side technologies that enable modern Web applications. Topics include the building blocks of the Web (browsers, HTML, CSS, JavaScript) and data exchange (HTTP, AJAX, JSON, REST). Assignments expose students to full-stack web development, and JavaScript frameworks that scaffold MVC architectures and event-driven, asynchronous programming. The course culminates in a final project, where students work in teams to design and develop an original, database-backed web application. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 225.
CS 411 Database Systems
Examination of the logical organization of databases: the entity-relationship model; the hierarchical, network, and relational data models and their languages. Functional dependencies and normal forms. Design, implementation, and optimization of query languages; security and integrity; concurrency control, and distributed database systems. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 225.
CS 412 Introduction to Data Mining
Concepts, techniques, and systems of data warehousing and data mining. Design and implementation of data warehouse and on-line analytical processing (OLAP) systems; data mining concepts, methods, systems, implementations, and applications. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 225.
CS 413 Intro to Combinatorics
Same as MATH 413. See MATH 413.
CS 415 Game Development
A team and project-based course on the technical aspects of video game development and game engine internals: geometric modeling, game physics and AI, shader programming, real-time physically based rendering, and software engineering practices within the game industry. The central focus of the course is the development of a game by teams of 3 to 5 students. The course strongly emphasizes code development using a modern game engine. Students will gain skills necessary to develop games and to develop game engines. 3 undergraduate hours. 4 graduate hours. Prerequisite: CS 225.
CS 417 Introduction to Extended Reality
Provides a deep understanding of the fundamentals of virtual reality (VR) and augmented reality (AR) systems through practical experience implementing these extended reality (XR) systems. Topics covered include visual and audio display technology, tracking, human perception and psychophysics, building user interfaces for XR applications, and analyzing XR experiences. 3 undergraduate hours. 4 graduate hours. Prerequisite: CS 128; one of MATH 257, MATH 225, MATH 227, MATH 415, MATH 416, ASRM 406 or BIOE 210.
CS 421 Programming Languages & Compilers
Structure of programming languages and their implementation. Basic language design principles; abstract data types; functional languages; type systems; object-oriented languages. Basics of lexing, parsing, syntax-directed translation, semantic analysis, and code generation. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 233, CS 240, CS 340 or ECE 391; CS 374 or ECE 374; one of MATH 225, MATH 257, MATH 415, MATH 416, ASRM 406, or BIOE 210.
CS 422 Programming Language Design
Exploration of major language design paradigms using imperative and functional programming as unifying themes. Tools include both practical language processor construction and theoretical models. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 421.
CS 423 Operating Systems Design
Organization and structure of modern operating systems and concurrent programming concepts. Deadlock, virtual memory, processor scheduling, and disk systems. Performance, security, and protection. Same as CSE 423. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 241, CS 341, or ECE 391.
CS 424 Real-Time Systems
Supervisory control aspects of Cyber Physical Systems (CPS): fundamentals of reliability analysis, real-time scheduling, simple feedback control, software fault tolerance architecture, wireless networking and energy saving, principles of safety critical system engineering. Student groups design and demonstrate supervisory control architecture for a robot. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 241, CS 341 or ECE 391.
CS 425 Distributed Systems
Protocols, specification techniques, global states and their determination, reliable broadcast, transactions and commitment, security, and real-time systems. Same as ECE 428. 3 or 4 undergraduate hours. 3 or 4 graduate hours. Prerequisite: Credit or concurrent enrollment in one of CS 240, CS 241, CS 340, CS 341 or ECE 391.
CS 426 Compiler Construction
Compiler structure, syntax analysis, syntax-directed translation, automatically constructed recognizers, semantic analysis, code generation, intermediate language, optimization techniques. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: Credit or concurrent enrollment in CS 421.
CS 433 Computer System Organization
Computer hardware design and analysis and interface with software. Advanced processor design, including superscalar, out-of-order issue, branch prediction, and speculation. Memory hierarchy design, including advanced cache optimizations, main memory, and virtual memory. Principles of multiprocessor design, including shared-memory, cache coherence, synchronization, and consistency. Other advanced topics depending on time; e.g., GPUs and accelerators, warehouse computers and data centers, security. Same as CSE 422. 3 undergraduate hours. 4 graduate hours. Prerequisite: CS 233.
CS 438 Computer Networks
Layered architectures and the OSI Reference Model; design issues and protocols in the transport, network, and data link layers; architectures and control algorithms of local-area, point-to-point, and satellite networks; standards in networks access protocols; models of network interconnection; overview of networking and communication software. Same as ECE 438. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 241, CS 341 or ECE 391; strongly recommend one of CS 361, STAT 361, ECE 313, MATH 362, MATH 461, MATH 463 or STAT 400.
CS 439 Wireless Networks
Same as ECE 439. See ECE 439.
CS 440 Artificial Intelligence
Major topics in and directions of research in artificial intelligence: basic problem solving techniques, knowledge representation and computer inference, machine learning, natural language understanding, computer vision, robotics, and societal impacts. Same as ECE 448. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 225; one of CS 361, STAT 361, ECE 313, MATH 362, MATH 461, MATH 463, STAT 400 or BIOE 310.
CS 441 Applied Machine Learning
Techniques of machine learning to various signal problems: regression, including linear regression, multiple regression, regression forest and nearest neighbors regression; classification with various methods, including logistic regression, support vector machines, nearest neighbors, simple boosting and decision forests; clustering with various methods, including basic agglomerative clustering and k-means; resampling methods, including cross-validation and the bootstrap; model selection methods, including AIC, stepwise selection and the lasso; hidden Markov models; model estimation in the presence of missing variables; and neural networks, including deep networks. The course will focus on tool-oriented and problem-oriented exposition. Application areas include computer vision, natural language, interpreting accelerometer data, and understanding audio data. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 225 or CS 277, and one of CS 361, STAT 361, ECE 313, BIOE 310, MATH 362, MATH 461, MATH 463 or STAT 400.
CS 444 Deep Learning for Computer Vision
Provides an elementary hands-on introduction to neural networks and deep learning with an emphasis on computer vision applications. Topics include: linear classifiers; multi-layer neural networks; back-propagation and stochastic gradient descent; convolutional neural networks and their applications to object detection and dense image labeling; recurrent neural networks and state-of-the-art sequence models like transformers; generative adversarial networks and variational autoencoders for image generation; and deep reinforcement learning. Coursework will consist of programming assignments in a common deep learning framework. Those registered for 4 credit hours will have to complete a project. Same as ECE 494. 3 undergraduate hours. 4 graduate hours. Prerequisite: MATH 241; one of MATH 225, MATH 257, MATH 415, MATH 416, ASRM 406, or BIOE 210; CS 225; one of CS 361, STAT 361, ECE 313, MATH 362, MATH 461, MATH 463 or STAT 400. No previous exposure to machine learning is required.
CS 446 Machine Learning
Principles and applications of machine learning. Main paradigms and techniques, including discriminative and generative methods, reinforcement learning: linear regression, logistic regression, support vector machines, deep nets, structured methods, dimensionality reduction, k-means, Gaussian mixtures, expectation maximization, Markov decision processes, and Q-learning. Application areas such as natural language and text understanding, speech recognition, computer vision, data mining, and adaptive computer systems, among others. Same as ECE 449. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 225; One of MATH 225, MATH 257, MATH 415, MATH 416, ASRM 406 or BIOE 210; one of CS 361, STAT 361, ECE 313, MATH 362, MATH 461, MATH 463, STAT 400 or BIOE 310.
CS 450 Numerical Analysis
Linear system solvers, optimization techniques, interpolation and approximation of functions, solving systems of nonlinear equations, eigenvalue problems, least squares, and quadrature; numerical handling of ordinary and partial differential equations. Same as CSE 401, ECE 491, and MATH 450. 3 undergraduate hours. 3 or 4 graduate hours. Credit is not given toward graduation for both CS 450 and CS 457. Prerequisite: One of CS 101, CS 124 or CS 125; one of CS 357, MATH 257, MATH 357, MATH 415, or MATH 416; MATH 285.
CS 460 Security Laboratory
Operating systems security: access control, least privilege mechanism and malware techniques. Network security: firewalls, sniffing, tunnels, intrusion detection, AAA and worm structure. System security: forensics security architectures, and attack/defend exercises. Complements CS 461 via hands-on project. Same as ECE 419. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 461 or ECE 422 or a combination of CS 463 and one of CS 340, CS 341 or ECE 391.
CS 461 Computer Security I
Fundamental principles of computer and communications security and information assurance: ethics, privacy, notions of threat, vulnerabilities, and risk in systems, information warfare, malicious software, data secrecy and integrity issues, network security, trusted computing, mandatory and discretionary access controls, certification and accreditation of systems against security standards. Security mechanisms: authentication, auditing, intrusion detection, access control, cryptography, security protocols, key distribution. Same as ECE 422. 4 undergraduate hours. 4 graduate hours. Prerequisite: One of CS 241, CS 341 or ECE 391, or a combination of CS 233 and CS 340.
CS 462 Issues of Law and Policy in Computer Science
Exploration of the intersection of public policy and computing technology: overview of the US legal system and government, how computing technology is regulated in areas such as privacy, crime, intellectual property, commerce, and national security. Students will complete technical projects related to legal issues, such as scrutinizing DRM, evaluating digital forensics reports, and critiquing software patents. Students will also scrutinize excerpts from legal opinions. 3 undergraduate hours. 4 graduate hours. Credit is not given toward graduation for: Credit is not given for both CS 462 and CS 498, Law &Policy Issues in CS. Prerequisite: CS 340 or CS 341 or ECE 391.
CS 464 Topics in Societal and Ethical Impacts of Computer Technology
Topics selected from key current areas of impact of computer technology on aspects of society and ethics such as: freedom versus the rule of law in cyberspace; social discourse; privacy; livelihoods and automation; fairness; security; political change; business models; technology divide. 3 undergraduate hours. No graduate credit. May be repeated if topics vary. Credit is not given towards a degree from multiple offerings of this course, if those offerings have significant overlap, as determined by the CS department. Prerequisite: CS 225. One of CS 210 or CS 211 or ECE 316 or PHIL 316. One of CS 361 or STAT 400 or STAT 200. Restricted to students with senior standing.
CS 466 Introduction to Bioinformatics
Algorithmic approaches in bioinformatics: (i) biological problems that can be solved computationally (e.g., discovering genes, and interactions among different genes and proteins); (ii) algorithmic techniques with wide applicability in solving these problems (e.g., dynamic programming and probabilistic methods); (iii) practical issues in translating the basic algorithmic ideas into accurate and efficient tools that biologists may use. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 225.
CS 468 Tech and Advertising Campaigns
Same as ADV 492. See ADV 492.
CS 470 Social and Information Networks
Social networks, auctions, and stock-markets appear to be very different phenomena, but they share a common foundation—the science of networks. The learning goal: to provide a broad, accessible introduction to the foundations of network science. We shall draw on ideas from mathematical sociology, and from game theory to understand strategic interaction over networks. We shall develop algorithms to identify network properties, and models for explaining network dynamics, including viral behavior. 3 undergraduate hours. 4 graduate hours. Prerequisite: CS 225; CS 173; one of CS 361, STAT 361, ECE 313, MATH 362, MATH 461, MATH 463 or STAT 400; one of MATH 225, MATH 257, MATH 415, MATH 416, ASRM 406, or BIOE 210.
CS 473 Algorithms
Design and analysis techniques, approximation algorithms, randomized algorithms and amortized analysis, and advanced topics such as network flow, linear programming, and dynamic data structures, among others. Same as CSE 414 and MATH 473. 4 undergraduate hours. 4 graduate hours. Prerequisite: CS 374 or ECE 374, and one of CS 361, STAT 361, ECE 313, MATH 362, MATH 461, MATH 463 or STAT 400.
CS 475 Formal Models of Computation
Finite automata and regular languages; pushdown automata and context-free languages; Turing machines and recursively enumerable sets; linear-bounded automata and context-sensitive languages; computability and the halting problem; undecidable problems; recursive functions; Chomsky hierarchy; computational complexity. Same as MATH 475. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 374 or ECE 374.
CS 477 Formal Software Development Methods
Mathematical models, languages, and methods for software specification, development, and verification. Same as ECE 478. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 225; one of CS 374, ECE 374 or MATH 414.
CS 481 Advanced Topics in Stochastic Processes & Applications
Same as IE 410. See IE 410.
CS 483 Applied Parallel Programming
Same as CSE 408 and ECE 408. See ECE 408.
CS 491 Seminar
Seminar on topics of current interest as announced in the Class Schedule. 0 to 4 undergraduate hours. 0 to 4 graduate hours. Approved for S/U grading only. May be repeated in the same or separate terms if topics vary to a maximum of 4 hours. Prerequisite: As specified for each topic offering, see Class Schedule or departmental course description.
CS 492 Senior Project I
First part of a project course in computer science. Students work in teams to solve typical commercial or industrial problems. Work involves planning, design, and implementation. Extensive oral and written work is required both on-campus and possibly off-campus at sponsors' locations. CS 492 must be taken as a sequence with either CS 493 or CS 494. 3 undergraduate hours. No graduate credit. Credit is not given for both CS 492 and a project course in another engineering department for the same project. Prerequisite: For Computer Science majors with senior standing.
CS 497 CS Team Project
Student teams work with CS faculty to complete a significant project requiring advanced knowledge of CS principles. Project topics vary. 1 to 3 undergraduate hours. No graduate credit. May be repeated in the same term up to 6 hours, if topics vary; may be repeated in separate terms. Prerequisite: For majors only; junior or senior standing required.
CS 498 Special Topics
Subject offerings of new and developing areas of knowledge in computer science intended to augment the existing curriculum. See Class Schedule or departmental course information for topics and prerequisites. 1 to 4 undergraduate hours. 1 to 4 graduate hours. May be repeated in the same or separate terms if topics vary.
CS 499 Senior Thesis
Research and thesis development experience in computer science under guidance of a faculty member. Literature search, oral presentation, analysis and implementation, paper preparation, and completion of a written thesis. 3 undergraduate hours. No graduate credit. May be repeated to a maximum of 6 hours. Prerequisite: Consent of instructor.
CS 500 Current Topics in Computing Education Research
Current research topics and theories in Computers and Education with an emphasis on learning theories such as constructivism, behaviorism, cognitivism, knowledge-in-pieces, test-potentiated learning, and transfer of learning. These theories will be applied to understanding how students learn computing topics such as programming and theoretical computing. These topics will be applied through the design of ethically responsible educational research studies. The course will culminate in students writing a research proposal or conference-style research paper based upon pilot data. May be repeated if topics vary. Credit towards a degree from multiple offerings of this course is not given if those offerings have significant overlap, as determined by the CS department.
CS 507 Topics in Cryptography
Modern cryptography helps realize a variety of tasks: from computations on and proofs about secret data, to verifiably offloading computation to untrusted clients, to making programs unintelligible while preserving functionality, to testing untrusted quantum devices. Covers a selection of such cutting-edge topics in cryptography. We will understand how any adversary that counters the security of modern protocols can be transformed into an adversary that contradicts basic mathematical assumptions. We will understand key ideas in recent cryptography research and identify new directions and problems for the future. May be repeated, up to 8 hours in a single term, to a total of 16 graduate hours, if topics vary. Credit is not given towards a degree from multiple offerings of this course if those offerings have significant overlap, as determined by the CS department. Prerequisite: Offerings in separate semesters may specify additional prerequisites each term, depending on the specific topic offered. See section information for additional details.
CS 511 Advanced Data Management
Advanced concepts in data management and information system design and implementation, and recent developments in the field. 1) Relational roots, objects and extensibility, query languages, data indexing, query processing, transaction processing, benchmarks, and 2) semi-structured data and unstructured data, information extraction, information integration, web search and mining, and other emerging directions in the field. Prerequisite: CS 411.
CS 512 Data Mining Principles
An advanced course on principles and algorithms of data mining. Data cleaning and integration; descriptive and predictive mining; mining frequent, sequential, and structured patterns; clustering, outlier analysis and fraud detection; stream data, web, text, and biomedical data mining; security and privacy in data mining; research frontiers. Prerequisite: CS 412.
CS 521 Advanced Topics in Programming Systems
Advanced topics in building and verifying software systems, selected from areas of current research such as: model checking and automated verification, testing and automated test generation, program synthesis, runtime verification, machine learning and its applications in the design of verified systems, formal analysis of machine learning algorithms, principles of programming languages and type systems. May be repeated if topics vary. Credit is not given towards a degree from multiple offerings of this course if those offerings have significant overlap, as determined by the CS department. Prerequisite: CS 374 or ECE 374; CS 421. Additional prerequisites or corequisites may be specified each term. See section information.
CS 524 Concurrent Progrmg Languages
Theory of concurrency and concurrent programming languages. Formal models of concurrent computation such as process algebras, nets, and actors; high level concurrent programming languages and their operational semantics; methods for reasoning about correctness and complexity of concurrent programs. Prerequisite: CS 422; one of CS 475, MATH 475 or CS 476.
CS 527 Topics in Software Engineering
Fault-tolerant software, software architecture, software patterns, multi-media software, and knowledge-based approaches to software engineering. Case studies. Prerequisite: CS 428, CSE 429 or CS 429.
CS 538 Advanced Computer Networks
Advanced concepts in computer networks, including congestion control, quality of service, naming, routing, wireless networks, Internet architecture, measurement, network security, and selected recent research directions. Prerequisite: CS 438 or ECE 438.
CS 541 Computer Systems Analysis
Same as ECE 541. See ECE 541.
CS 542 Statistical Reinforcement Learning
Theory of reinforcement learning, with a focus on sample complexity analyses. Specific topics include MDP basics, finite-sample analyses of online (i.e., exploration) and offline (i.e., batch) RL with a tabular representation, finite-sample analyses of online and offline RL with function approximation, state abstraction theory, off-policy evaluation (importance sampling), and policy gradient. The course goal is to provide a comprehensive understanding of the statistical properties of RL under various settings (e.g., online vs offline), preparing the students for doing research in the area. Prerequisite: Calculus, linear algebra, probability and statistics, and basic concepts of machine learning. Familiarity with (at least one of) the following topics is highly recommended: stochastic processes, numerical analysis, and theoretical computer science.
CS 543 Computer Vision
Same as ECE 549. See ECE 549.
CS 545 Machine Learning for Signal Processing
Fundamentals of machine learning and signal processing as they pertain to the development of machines that can understand complex real-world signals, such as speech, images, movies, music, biological and mechanical readings, etc. Hands-on examples of how to decompose, analyze, classify, detect and consolidate signals, and examine various commonplace operations such as finding faces from camera feeds, organizing personal music collections, designing speech dialog systems and understanding movie content. Prerequisite: MATH 415; one of CS 361, STAT 361, MATH 461, MATH 463 or STAT 400.
CS 546 Advanced Topics in Natural Language Processing
Advanced topics in natural language processing, ranging from general techniques such as deep learning for NLP to specific topics such as information extraction, knowledge acquisition, dialogue systems, language grounding, and natural language generation. Review of classic as well as state-of-the-art techniques and remaining challenges, and exploration of recent proposals for meeting these challenges. Intended for graduate students doing research in natural language processing. May be repeated in separate terms up to 16 hours, if topics vary. Credit towards a degree from multiple offerings of this course is not given if those offerings have significant overlap, as determined by the CS department. Prerequisite: CS 447 and one of CS 446 or ECE 449, or equivalent background.
CS 549 Seminar in Cognitive Science
Same as PSYC 514, ANTH 514, EPSY 551, LING 570, and PHIL 514. See PSYC 514.
CS 556 Iterative & Multigrid Methods
Comprehensive treatment of algebraic and multigrid iterative methods to solve systems of equations, primarily linear equations arising from discretization of partial differential equations. Same as CSE 511.
CS 562 Advanced Topics in Security, Privacy, and Machine Learning
Advanced topics in security and privacy problems in machine learning systems, selected from areas of current research such as: adversarial machine learning, differential privacy, game theory enabled defenses, robust learning methods, machine learning based cybercrime analysis, network intrusion detection, and malware analysis, and machine learning interpretation techniques. May be repeated if topics vary. Credit is not given towards a degree from multiple offerings of this course if those offerings have significant overlap, as determined by the CS department. Prerequisite: One of CS 446 or ECE 449 and one of CS 463 or ECE 424, or equivalent courses, by consent of instructor. Additional prerequisites or corequisites may be specified each term. See section information.
CS 567 Social Signals and Social Media
Online social interactions occur in many arenas important to society and human well-being, but are mediated through algorithmic interventions that alter the users expectations in these social spaces. This class explores the presentation of self, the presentation of collectives, the presentation of news, and social dynamics in these online spaces--and how algorithmic intervention shapes them from the perspective of social signaling theory. Topics covered include: the evolution of algorithmic matchmaking (as in online resume/interviews and dating sites), why people share misinformation, the mitigation of trolling, ethics, and bias in social media systems. Upon completion of this course, students will have an up-to-date understanding of the design social media interfaces with incentive structures from social signaling theory. Prerequisite: CS 465 or equivalent or permission of instructor. Prioritize PhD students, then others.
CS 571 Combinatorial Mathematics
Same as MATH 580. See MATH 580.
CS 574 Randomized Algorithms
Basic and advanced concepts in the design and analysis of randomized algorithms. Sampling; concentration inequalities such as Chernoff-Hoeffding bounds; probabilistic method; random walks, dimension reduction; entropy; martingales and Azuma's inequality; derandomization. Randomized algorithms for sorting and searching; graphs; geometric problems. Basics of pseudorandomness and randomized complexity classes. Prerequisite: One of CS 473, CSE 414, or MATH 473; one of MATH 461, MATH 463 or STAT 400.
CS 579 Computational Complexity
Turing machines; determinism and non-determinism; time and space hierarchy theorems; speed-up and tape compression; Blum axioms; structure of complexity classes NP, P, NL, L, and PSPACE; complete problems; randomness and complexity classes RP, RL, and BPP; alternation, polynomial-time hierarchy; circuit complexity, parallel complexity, NC, and RNC; relativized computational complexity; time-space trade-offs. Same as ECE 579. Prerequisite: One of CS 473, CSE 414, MATH 473, CS 475 or MATH 475.
CS 580 Topics in Algorithmic Game Theory
A theoretical CS course covering advances in algorithmic game theory. This includes study of strategic, computational, learning, dynamic, and fairness aspects of games and markets (organizations that involves rational and strategic agents). In particular, topics will include computation and complexity of equilibria, mechanism design, fair-division, dynamics in games and markets, price-of-anarchy etc.. These topics arise from applications such as online marketplaces (like Lyft, Uber, eBay, sponsored search, TaskRabbit), social networks, recommendation systems, kidney exchange, spectrum auction, etc., and thereby will prepare students for related research and/or industry jobs. Prerequisite: CS 473.
CS 581 Algorithmic Genomic Biology
Gives each student enough background and training in the area of algorithmic genomic biology so that each will be able to do research in this area, and publish papers. The main focus of the course is phylogeny (evolutionary tree) estimation, multiple sequence alignment, and genome-scale phylogenetics, which are problems that present very interesting challenges from a computational and statistical standpoint. Time permitting, we will also discuss computational problems in microbiome analysis, protein function and structure prediction, genome assembly, and even historical linguistics. Students will learn the mathematical and computational foundations in these areas, read the current literature, and do a team research project. The course is designed for doctoral students in computer science, computer engineering, bioengineering, mathematics, and statistics, and does not depend on any prior background in biology. The technical material will depend on discrete algorithms, graph theory, simulations, and probabilistic analysis of algorithms. Prerequisite: One of CS 374 or ECE 374 and one of CS 361 or STAT 361, or consent of instructor.
CS 582 Machine Learning for Bioinformatics
This graduate course on bioinformatics introduces a selection of topics in computational biology and bioinformatics, with special emphasis on current problems in regulatory genomics and systems biology. Computational approaches discussed will focus on Machine Learning techniques such as Bayesian inference, graphical models, supervised learning and network analysis. Bioinformatics topics will be introduced through lectures by instructor and research paper presentations by students, and include regulatory sequence analysis, cistromics, epigenomics, regulatory network reconstruction, non-coding variant interpretation, and protein structure and function prediction. A research project involving real data analysis with techniques related to course content is mandatory and will help prepare students for bioinformatics research. Prerequisite: CS 446 or ECE 449; Credit or concurrent enrollment in CS 466; or consent of instructor.
CS 591 Advanced Seminar
Seminar on topics of current interest as announced in the Class Schedule. Approved for S/U grading only. May be repeated in the same or separate terms if topics vary. Prerequisite: As specified for each topic offering, see Class Schedule or departmental course description.
CS 597 Individual Study
Individual study or reading in a subject not covered in normal course offerings. May be repeated. Prerequisite: Consent of instructor.
CS 598 Special Topics
Subject offerings of new and developing areas of knowledge in computer science intended to augment the existing curriculum. See Class Schedule or departmental course information for topics and prerequisites. May be repeated in the same or separate terms if topics vary.
Search Data
Year 2026
Term fall
Subject CS
On Campus Yes
COURSE EXPLORER
Email: Course Explorer Feedback

OFFICE OF THE REGISTRAR | 901 W. Illinois Street, Urbana, Illinois 61801

Site developed by: Technology Services at Illinois | UNIVERSITY OF ILLINOIS URBANA-CHAMPAIGN
1102 Digital Computer Laboratory | MC-256 | Urbana, IL 61801 | phone 217-244-7000