ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0.4 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://catalog.illinois.edu/courses-of-instruction/cs/ |
| Last Crawled | 2026-03-28 14:20:23 (12 days ago) |
| First Indexed | 2021-04-07 11:29:05 (5 years ago) |
| HTTP Status Code | 200 |
| Meta Title | CS - Computer Science | 2026-2027 Course Catalog | University of Illinois Urbana-Champaign |
| Meta Description | null |
| Meta Canonical | null |
| Boilerpipe Text | Courses
CS 100   Computer Science Orientation   credit: 1 Hour.
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   credit: 3 Hours.
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
.
This course satisfies the General Education Criteria for:
Quantitative Reasoning II
CS 105   Intro Computing: Non-Tech   credit: 3 Hours.
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
.
This course satisfies the General Education Criteria for:
Quantitative Reasoning I
CS 124   Introduction to Computer Science I   credit: 3 Hours.
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
.
This course satisfies the General Education Criteria for:
Quantitative Reasoning I
CS 173   Discrete Structures   credit: 3 Hours.
[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 196   First-Year Student Honors   credit: 1 Hour.
Offered for honors credit in conjunction with other 100-level computer science courses taken concurrently. A special examination may be required for admission to this course. May be repeated if topics vary, for a maximum of 2 hours in the same semester and a maximum of 3 hours total. Prerequisite: Concurrent registration in another 100-level computer science course (see Schedule).
CS 211   Ethical and Professional Conduct   credit: 3 Hours.
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
.
This course satisfies the General Education Criteria for:
Advanced Composition
CS 222   Software Design Lab   credit: 1 Hour.
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 233   Computer Architecture   credit: 4 Hours.
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   credit: 4 Hours.
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 296   Honors Course   credit: 1 Hour.
Group projects for honors credit in computer science. Sections of this course are offered in conjunction with other 200-level computer science courses taken concurrently. A special examination may be required for admission to this course. May be repeated. Prerequisite: Concurrent registration in another 200-level computer science course (see Schedule).
CS 340   Introduction to Computer Systems   credit: 3 Hours.
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   credit: 4 Hours.
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   credit: 3 Hours.
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   credit: 3 Hours.
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   credit: 4 Hours.
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 398   Special Topics   credit: 1 to 4 Hours.
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.
CS 400   Accelerated Fundamentals of Computing I   credit: 3 Hours.
The first class in a sequence of two classes that introduces students to the basic concepts in computing with an emphasis on the fundamental techniques for solving computational problems. Topics include: core programming concepts (variables, data types, conditional expressions, loops, functions), basic data structures, searching and sorting algorithms, and data exploration and visualization. No prior programming experience is required. No undergraduate credit. 3 graduate hours. Prerequisite: Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post-baccalaureate students with a non-computing background.
CS 401   Accelerated Fundamentals of Algorithms I   credit: 3 Hours.
The first class in a sequence of two classes that introduces students to the theoretical foundations of computer science. Topics include counting, sets, functions, decision trees, recursion, binary numbers, basic graph theory, depth first search and breadth first search, algorithms for computing shortest paths, data structures like stacks and queues, big O notation and asymptotic analysis, complexity classes like P and NP, and reductions. No undergraduate credit. 3 graduate hours. Prerequisite: Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post- baccalaureate students with a non-computing background.
CS 402   Accelerated Fundamentals of Computing II   credit: 3 Hours.
Provides an accelerated introduction to class-based program design and the design of abstractions that support the design of reusable software and libraries. It reviews typical object-oriented concepts such as information hiding, encapsulation, polymorphism, inheritance, composition, and common design patterns. The course will also covers exception handling, database programming, and concurrent programming. No undergraduate credit. 3 graduate hours. Prerequisite:
CSÂ 400
or consent of instructor. Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post-baccalaureate students with a non-computing background.
CS 403   Accelerated Fundamentals of Algorithms II   credit: 3 Hours.
The second class in a sequence of two classes that introduces students to the theoretical foundations of computer science. Topics include major paradigms of algorithm design divide and conquer, greedy, recursive, and dynamic programming; solving recurrences and analysis of divide and conquer algorithms; graph algorithms; formal models of computations like finite state automata and Turing machines; reductions. No undergraduate credit. 3 graduate hours. Prerequisite:
CSÂ 401
or consent of instructor. Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post-baccalaureate students with a non-computing background.
CS 409   The Art of Web Programming   credit: 3 or 4 Hours.
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 410   Text Information Systems   credit: 3 or 4 Hours.
Theory, design, and implementation of text-based information systems. Text analysis, retrieval models (e.g., Boolean, vector space, probabilistic), text categorization, text filtering, clustering, retrieval system design and implementation, and applications to web information management. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite:
CSÂ 225
.
CS 411   Database Systems   credit: 3 or 4 Hours.
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   credit: 3 or 4 Hours.
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 414   Multimedia Systems   credit: 3 or 4 Hours.
Organization and structure of modern multimedia systems; audio and video encoding; quality of service concepts; scheduling algorithms for multimedia within OS and networks multimedia protocols over high-speed networks; synchronization schemes, user-interface design; multimedia teleservices. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 240, CS 241,
CSÂ 340
,
CSÂ 341
or
ECEÂ 391
.
CS 415   Game Development   credit: 3 or 4 Hours.
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 416   Data Visualization   credit: 3 or 4 Hours.
Elements of databases, computer graphics and perceptual psychology combined to utilize the human visual system to improve user understanding of large datasets. Topics include appropriate and effective selection and construction of charts, organization of dashboards, and design for user engagement and interaction. 3 undergraduate hours. 4 graduate hours. Prerequisite:
CSÂ 225
.
CS 419   Production Computer Graphics   credit: 3 or 4 Hours.
Advanced methods for representing, displaying, and rendering two-, three-, and four-dimensional scenes. General algebraic curves and surfaces, splines, Gaussian and bump-function representation, fractals, particle systems, constructive solid geometry methods, lighting models, radiosity, advanced ray-tracing methods, surface texturing animation techniques, data visualization methods. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite:
CSÂ 418
or
CSEÂ 427
.
CS 420   Parallel Progrmg: Sci & Engrg   credit: 3 or 4 Hours.
Fundamental issues in design and development of parallel programs for various types of parallel computers. Various programming models according to both machine type and application area. Cost models, debugging, and performance evaluation of parallel programs with actual application examples. Same as
CSEÂ 402
and
ECEÂ 492
. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite:
CSÂ 225
.
CS 421   Programming Languages & Compilers   credit: 3 or 4 Hours.
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 424   Real-Time Systems   credit: 3 or 4 Hours.
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 426   Compiler Construction   credit: 3 or 4 Hours.
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 428   Software Engineering II   credit: 3 or 4 Hours.
Continuation of
CSÂ 427
. Software development, management, and maintenance. Project and configuration management, collaborative development models, software quality assurance, interoperability domain engineering and software reuse, and software re-engineering. Same as
CSEÂ 429
. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite:
CSÂ 427
or
CSEÂ 426
.
CS 431   Embedded Systems   credit: 3 or 4 Hours.
Students will learn embedded system architecture, Real-Time Operating Systems, and real-time software design and development techniques, including 1) real-time software designs, practical signal processing, and control techniques in embedded applications, including the safe use of machine learning, and 2) the schedulability analysis to ensure deadlines of tasks are met. In the lab, students will practice what they learn in the class so that their software can drive a two-wheeled robot car along a course and avoid obstacles autonomously. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 241,
CSÂ 341
or
ECEÂ 391
.
CS 433   Computer System Organization   credit: 3 or 4 Hours.
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 435   Cloud Networking   credit: 3 or 4 Hours.
Provides a foundational view of computer networks with a focus on enabling modern large-scale cloud computing. The first part of this course studies the principles upon which the Internet and other networks are built, and how those principles translate into deployed protocols. The second part covers how those principles are applied in network infrastructure for modern clouds, enabling deployment of virtual networks on shared infrastructure, efficient transfer of big data and low latency communication, and federation of applications across countries and continents. 3 undergraduate hours. 4 graduate hours. Credit is not given for both
CSÂ 435
and
CSÂ 438
/
ECEÂ 438
. Prerequisite: One of CS 240, CS 241,
CSÂ 340
,
CSÂ 341
or
ECEÂ 391
.
CS 436   Computer Networking Laboratory   credit: 3 or 4 Hours.
Design, application, analysis, and deployment of communication protocols and system software behind modern cloud/compute/network infrastructures. Students learn the internals of modern system infrastructures, including operating system networking kernels, cloud application service code, and firewall and router configuration. Students will gain experience with widely-used and production-grade code and systems, such as Cisco IOS, the Linux networking stack, and Amazon Web Services. This class links theory with practice to prepare students to confidently carry out tasks they will commonly encounter in industry, such as building an enterprise network, deploying a large-scale cloud service, or implementing a new network protocol. Same as
ECEÂ 435
. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 240, CS 241,
CSÂ 340
,
CSÂ 341
or
ECEÂ 391
.
CS 437   Topics in Internet of Things   credit: 3 or 4 Hours.
Topics of networked embedded computing technology, known as the Internet of Things, in application, distributed, human-centric, or social contexts. The tight coupling between people, networking protocols, computing elements, and physical things in IoT systems presents unique challenges for data collection, processing in constrained computation and communication environments. Introduces general principles of IoT systems and protocol, offers broad foundations for IoT services, and allows specialization to pursue an in-depth understanding of selected IoT aspects or subtopics. 3 undergraduate hours. 4 graduate hours. 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. Prerequisite: CS 241 or
CSÂ 341
. Additional prerequisites may be specified each term. See section information.
CS 438   Communication Networks   credit: 3 or 4 Hours.
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 440   Artificial Intelligence   credit: 3 or 4 Hours.
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   credit: 3 or 4 Hours.
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 442   Trustworthy Machine Learning   credit: 3 or 4 Hours.
Prepares students to understand the security and privacy problems in machine learning and educates students to propose different attack strategies to identify the vulnerabilities of a range of learning algorithms and understand different defense approaches towards trustworthy machine learning systems. Students will explore topics including basic machine learning foundations (e.g., linear regression and PCA), adversarial attacks against different learning algorithms, differential privacy, data valuation, and different categories of defenses. The lessons are reinforced via a series of topic-driven lectures, coding assignments, related paper readings, exams and in-class discussions. Students will learn to analyze current interactions between attackers and defenders on machine learning and therefore develop an understanding of the principles on trustworthy machine learning which is an emerging and important topic. Students will be required to finish three related homework projects, including 1) developing a machine learning classifier, 2) designing adversarial attacks against the built classifier, and 3) developing defenses to improve the robustness of the trained classifier against designed attacks. Students registered for 4 credit hours will also finish a final project based on the class topics, demonstrating their ability to propose related new algorithms based on the class subjects. 3 undergraduate hours. 4 graduate hours. Prerequisite:
CSÂ 225
; one of
CSÂ 440
,
ECEÂ 448
,
CSÂ 441
,
CSÂ 446
or
ECEÂ 449
; one of
MATHÂ 225
,
MATHÂ 257
,
MATHÂ 415
,
MATHÂ 416
,
ASRMÂ 406
or
BIOEÂ 210
.
CS 443   Reinforcement Learning   credit: 3 or 4 Hours.
Fundamental concepts and basic algorithms in Reinforcement Learning (RL) - a machine learning paradigm for sequential decision-making. The goal of this course is to enable students to (1) understand the mathematical framework of RL, (2) tell what problems can be solved with RL, and how to cast these problems into the RL formulation, (3) understand why and how RL algorithms are designed to work, and (4) know how to experimentally and mathematically evaluate the effectiveness of an RL algorithm. There will be both programming and written assignments. 3 undergraduate hours. 4 graduate hours. Prerequisite:
CSÂ 225
;
MATHÂ 241
; 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
or
STATÂ 400
.
CS 444   Deep Learning for Computer Vision   credit: 3 or 4 Hours.
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   credit: 3 or 4 Hours.
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 447   Natural Language Processing   credit: 3 or 4 Hours.
Part-of-speech tagging, parsing, semantic analysis and machine translation. Relevant linguistics concepts from morphology (word formation) and lexical semantics (the meaning of words) to syntax (sentence structure) and compositional semantics (the meaning of sentences). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of
CSÂ 173
or
MATHÂ 213
;
CSÂ 225
;
CSÂ 374
or
ECEÂ 374
; one of
CSÂ 361
,
STATÂ 361
,
ECEÂ 313
,
MATHÂ 362
,
MATHÂ 461
,
MATHÂ 463
,
STATÂ 400
or
BIOEÂ 310
; one of
MATHÂ 225
,
MATHÂ 257
,
MATHÂ 415
,
MATHÂ 416
,
ASRMÂ 406
or
BIOEÂ 210
.
CS 448   Audio Computing Laboratory   credit: 3 or 4 Hours.
Computational foundations of modern audio applications: theory of audio processing for implementation of applications such as room and 3D/virtual audio rendering, pitch manipulations and autotuning, denoising for communications and forensics, audio classification, music information retrieval based on audio, rudimentary speech recognition, speech and audio coding, applications of machine learning to audio scene recognition, audio restoration, missing data recovery, and many more. This will be a lab-like course in which students collectively implement a variety of core audio operations that are commonplace today. Students will be required to bring to class their laptops and headphones to participate in lab exercises. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 240, CS 241,
CSÂ 340
,
CSÂ 341
, or
ECEÂ 391
; one of
MATHÂ 225
,
MATHÂ 257
,
MATHÂ 415
,
MATHÂ 416
,
ASRMÂ 406
, or
BIOEÂ 210
.
CS 450   Numerical Analysis   credit: 3 or 4 Hours.
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 452   Topics in Robotics   credit: 3 or 4 Hours.
Topics in robotics presented from a computational perspective, including artificial intelligence, algorithms, computational modeling, and/or software engineering. Generating intelligent behavior for a physical robot poses unique computational challenges in decision making, perception, representations of three-dimensional worlds and movement, and system integration. This course introduces general computational principles used in robotics as well as performing in-depth study of selected subtopics. 3 undergraduate hours. 3 or 4 graduate hours. May be repeated in the same term up to 6 undergraduate or 8 graduate hours, or in separate terms up to 12 undergraduate or 16 graduate hours, if topics vary. Prerequisite: (
CSÂ 128
or
ECEÂ 220
) and
CSÂ 225
and (CS 241 or
CSÂ 341
or
ECEÂ 391
).
CS 460   Security Laboratory   credit: 3 or 4 Hours.
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   credit: 4 Hours.
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   credit: 3 or 4 Hours.
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 463   Computer Security II   credit: 3 or 4 Hours.
Program security, trusted base, privacy, anonymity, non-interference, information flow, confinement, advanced auditing, forensics, intrusion detection, key management and distribution, policy composition and analysis, formal approaches to specification and verification of secure systems and protocols, and topics in applied cryptography. Same as
ECEÂ 424
. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite:
CSÂ 225
and one of
CSÂ 361
,
STATÂ 361
,
ECEÂ 313
,
MATHÂ 362
,
MATHÂ 461
,
MATHÂ 463
or
STATÂ 400
.
CSÂ 441
completion is recommended.
CS 464   Topics in Societal and Ethical Impacts of Computer Technology   credit: 3 Hours.
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 465   User Interface Design   credit: 4 Hours.
A project-focused course covering fundamental principles of user interface design, implementation, and evaluation. Small teams work on a term-long project that involves: analysis of the problem domain, user skills, and tasks; iterative prototyping of interfaces to address user needs; conducting several forms of evaluation such as cognitive walkthroughs and usability tests; implementation of the final prototype. Non-technical majors may enroll as non-programmers who participate in all aspects of the projects with the possible exception of implementation. 4 undergraduate hours. 4 graduate hours. Prerequisite:
CSÂ 225
.
CS 466   Introduction to Bioinformatics   credit: 3 or 4 Hours.
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 467   Social Visualization   credit: 3 or 4 Hours.
Visualizing social interaction in networked spaces: investigation of patterns in networked communications systems such as messaging (email, instant messaging), social networking sites and collaborative sites; social network theory and visualizations; exploration of how to move beyond existing visualization techniques; visualizing the network identity over compilations of online data. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite:
CSÂ 225
.
CS 469   Computational Advertising Infrastructure   credit: 3 or 4 Hours.
Thorough coverage of technologies including web-search, auctions, behavioral targeting, mechanisms for viral marketing, that underpin the display of advertisements on a variety of locations (e.g., ads on search engines; display ads). Students shall also learn about emerging areas in computational advertising including location-based adverting and algorithmic synthesis of personalized advertisements. Discussion around privacy will be a significant focus of the class. Same as
ADVÂ 462
. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite:
CSÂ 173
;
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
or
STATÂ 400
.
CS 470   Social and Information Networks   credit: 3 or 4 Hours.
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   credit: 4 Hours.
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 474   Logic in Computer Science   credit: 3 or 4 Hours.
An introduction to mathematical logic from the perspective of computer science, emphasizing both computable aspects of logic, especially automated reasoning, as well as applications of logic to computer science in artificial intelligence, databases, formal methods, and theoretical computer science. Prepares students to use logic as a formal tool to solve problems in computer science and AI. Topics include: syntax, semantics and proofs for propositional and first order logic, the decidable logics and efficient realizations in terms of SAT/SMT solvers, decision and semi-decision procedures for first order logic and several first order logic theories, finite model theory and descriptive complexity. Additional topics include: connections between logic and machine learning, higher order logics, applications of logic to program verification, applications of logic in knowledge representation, proof complexity, modal and temporal logic, Courcelle’s theorem and its applications in parameterized complexity, logic and its role in automatic program synthesis, connections between logic and database query languages. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite:
CSÂ 173
;
CSÂ 225
; one of
CSÂ 374
or
ECEÂ 374
.
CS 475   Formal Models of Computation   credit: 3 or 4 Hours.
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 476   Program Verification   credit: 3 or 4 Hours.
Formal methods for demonstrating correctness and other properties of programs. Invariant assertions; Hoare axiomatics; well-founded orderings for proving termination; structural induction; computational induction; data structures; parallel programs; overview of predicate calculus. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite:
CSÂ 225
; one of
CSÂ 374
,
ECEÂ 374
or
MATHÂ 414
.
CS 478   Quantum Algorithms and Complexity   credit: 3 or 4 Hours.
A comprehensive introduction to the theoretical foundations of quantum computing, preparing students for advanced study in quantum information sciences: Building blocks of quantum information such as qubits and entanglement; basic quantum operations such as quantum gates and measurements, and key quantum protocols and algorithms like teleportation and Shor's factoring algorithm. Advanced topics include modern quantum algorithms, quantum learning, quantum complexity theory, cryptography, and error correction. Emphasis on theoretical aspects of design and analysis of quantum algorithms and their computational limits. Prior quantum physics knowledge is helpful but not required. 3 undergraduate hours. 4 graduate hours. Prerequisite:
CSÂ 225
; one of
MATHÂ 257
,
MATHÂ 415
or
MATHÂ 416
; one of
CSÂ 361
,
STATÂ 361
,
ECEÂ 313
,
MATHÂ 362
,
MATHÂ 461
,
MATHÂ 463
,
STATÂ 400
,
PHYSÂ 214
or
PHYSÂ 486
. Credit or concurrent enrollment in CS/
ECEÂ 374
is encouraged.
CS 484   Parallel Programming   credit: 3 or 4 Hours.
Techniques for the programming of all classes of parallel computers and devices including shared memory and distributed memory multiprocessors, SIMD processors and co-processors, and special purpose devices. Key concepts in parallel programming such as reactive and transformational programming, speculation, speedup, isoefficiency, and load balancing. Synchronization primitives, libraries and languages for parallel programming such as OpenMP and MPI, performance monitoring, program tuning, analysis and programming of numerical and symbolic parallel algorithms. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 241 or
CSÂ 341
.
CS 491   Seminar   credit: 0 to 4 Hours.
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   credit: 3 Hours.
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 493   Senior Project II, ACP   credit: 3 Hours.
Continuation of
CSÂ 492
. Identical to
CSÂ 494
except for an additional writing component. See
CSÂ 494
. 3 undergraduate hours. No graduate credit. Credit is not given for both
CSÂ 493
and a project course in another engineering department for the same project. Prerequisite:
CSÂ 492
.
This course satisfies the General Education Criteria for:
Advanced Composition
CS 497   CS Team Project   credit: 1 to 3 Hours.
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   credit: 1 to 4 Hours.
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   credit: 3 Hours.
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.
This course satisfies the General Education Criteria for:
Advanced Composition
CS 500   Current Topics in Computing Education Research   credit: 4 Hours.
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   credit: 4 Hours.
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 510   Advanced Information Retrieval   credit: 4 Hours.
Advanced concepts, models, and algorithms in information retrieval and major recent developments in the field, including historical milestones in information retrieval research, evaluation methodology, vector space retrieval model, probabilistic retrieval models, learning to rank algorithms, probabilistic topic models, information retrieval systems, text analytics, and topics of research frontiers in information retrieval. Prerequisite: One of
CSÂ 410
,
CSÂ 412
,
CSÂ 446
,
ECEÂ 449
or
LINGÂ 406
.
CS 511   Advanced Data Management   credit: 4 Hours.
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   credit: 4 Hours.
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 514   Advanced Topics in Network Science   credit: 4 Hours.
We shall discuss classic and recent research in network analysis. Advanced topics include individual decision-making models, game theory, mechanism design, social choice, social signal design, diffusion of behavior on a network, choice architecture, network models, network mining algorithms and applications. 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Â 412
; one of
CSÂ 446
or
ECEÂ 449
. Additional prerequisites or corequisites may be specified each term. See section information.
CS 519   Scientific Visualization   credit: 4 Hours.
Visualization techniques useful in analysis of engineering and scientific data. Physical models; methods of computational science; two- and three-dimensional data types; visual representation schemes for scalar, vector, and tensor data; isosurface and volume visualization methods; visual monitoring; interactive steering. Same as
CSEÂ 527
. Prerequisite:
CSÂ 418
or
CSEÂ 427
.
CS 521   Advanced Topics in Programming Systems   credit: 4 Hours.
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 523   Advanced Operating Systems   credit: 4 Hours.
Advanced concepts in operating system design and coverage of recent research directions. Resource management for parallel and distributed systems. Interaction between operating system design and computer architectures. Process management, virtual memory, interprocess communication, context switching, parallel and distributed file system designs, persistent objects, process and data migration, load balancing, security, protection. Term projects. Prerequisite: One of
CSÂ 423
or
CSEÂ 423
; one of
CSÂ 425
or
ECEÂ 428
; and one of
CSÂ 433
or
CSEÂ 422
.
CS 524   Concurrent Progrmg Languages   credit: 4 Hours.
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 525   Advanced Distributed Systems   credit: 4 Hours.
Peer-to-peer systems, sensor networks, and fundamental theoretical distributed computing. Review of classical work in each area, and application of design methodologies to explore overlaps across them. Emphasis on protocol design, systems issues, and theory. Reading selections are roughly two-third classical to one-third contemporary. Students write critiques, make presentations, and create a conference paper in a systematic manner. Prerequisite: One of
CSÂ 423
,
CSEÂ 423
,
CSÂ 425
,
ECEÂ 428
,
CSÂ 438
or
ECEÂ 438
.
CS 534   Advanced Topics in Computer Architecture   credit: 4 Hours.
Current topics in computer architecture, selected from areas of current research such as: energy efficiency, processing in memory, cloud computing, 3-D architectures, security and privacy, hardware and software resiliency, cross-stack design, heterogeneous platforms, approximate computing, mobile computing, machine learning accelerators, and novel computing technologies. 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Â 433
or
CSEÂ 422
. Additional prerequisites or co-requisites may be specified each term. See Class Schedule information.
CS 537   Advanced Topics in Internet of Things (IoT)   credit: 4 Hours.
Advanced topics in Internet of Things (IoT) algorithms, protocols, architectures, systems, and infrastructures, selected from areas of current research such as: IoT sensors representations and compression, streaming and caching of IoT data, IoT analytics and feature learning, IoT-edge-cloud computing infrastructures, resource optimization for multi-modal IoT systems, applications and human perception of IoT. Students will read and discuss recent research papers and conduct a semester-long research project. 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. Prerequisite: One of
CSÂ 425
or
ECEÂ 428
; one of
CSÂ 438
or
ECEÂ 438
. Additional prerequisites may be specified each term. See section information.
CS 540   Deep Learning Theory   credit: 4 Hours.
A rigorous mathematical course covering foundational analyses of the approximation, optimization, and generalization properties of Deep Neural Networks. Topics include: constructive and non-constructive approximations with one hidden layer; benefits of depth; optimization in the NTK regime; maximum margin optimization outside the NTK regime; Rademacher complexity, VC dimensino, and covering number bounds for ReLU networks. Evaluation is primarily based on homeworks, with a smaller project component. The course goal is to prepare students perform their own research in the field. Prerequisite: Basic linear algebra, probability, proof-writing, and statistics required. Real analysis recommended.
CS 542   Statistical Reinforcement Learning   credit: 4 Hours.
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 544   Optimiz in Computer Vision   credit: 4 Hours.
Applications of continuous and discrete optimization to problems in computer vision and machine learning, with particular emphasis on large-scale algorithms and effective approximations: gradient-based learning; Newton's method and variants, applied to structure from motion problems; the augmented Lagrangian method and variants; interior-point methods; SMO and other specialized algorithms for support vector machines; flows and cuts as examples of primal-dual methods; dynamics programming, hidden Markov models, and parsing: 0-1 quadratic forms, max-cut, and Markov random-fields solutions. Prerequisite: One of
CSÂ 450
,
CSEÂ 401
,
ECEÂ 491
, or
MATHÂ 450
; one of
CSÂ 473
,
CSEÂ 414
or
MATHÂ 473
.
CS 545   Machine Learning for Signal Processing   credit: 4 Hours.
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   credit: 4 Hours.
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 562   Advanced Topics in Security, Privacy, and Machine Learning   credit: 4 Hours.
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 563   Advanced Computer Security   credit: 4 Hours.
Current research trends in computer and network security. Privacy, tamper-resistance, unwanted traffic, monitoring and surveillance, and critical infrastructure protection. Subtopics will vary depending upon current research trends. Students work in teams in close coordination with the course instructor to develop one of the topics in depth by carrying out background research and an exploratory project. Same as
ECEÂ 524
. Prerequisite: One of
CSÂ 461
,
CSÂ 463
,
ECEÂ 422
or
ECEÂ 424
.
CS 565   Human-Computer Interaction   credit: 4 Hours.
In-depth coverage of advanced topics in human-computer interaction (HCI). Applied models of human performance and attention, design tools for creative design tasks, interruptions and peripheral displays, gestures, and bimanual input, and usability evaluation techniques. Students complete a research-oriented term project of their choosing. Prerequisite:
CSÂ 465
.
CS 567   Social Signals and Social Media   credit: 4 Hours.
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 568   User-Centered Machine Learning   credit: 4 Hours.
Introduces guidelines, processes, and systems for designing effective user experiences powered by machine learning models. Topics include design tradeoffs unique to data-driven products and services such as automation versus control, precision versus recall, and personalization versus privacy. Readings from human computer-interaction, product design, cognitive science, machine learning, computer vision, and natural language processing frame in-class design exercises. Students work in teams on a multi-week research project creating or auditing data-driven experiences. Prerequisite:
CSÂ 465
or equivalent course work.
CS 574   Randomized Algorithms   credit: 4 Hours.
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 576   Topics in Automated Deduction   credit: 2 to 4 Hours.
Advanced topics in computer-aided methods for formal deduction, selected from areas of current research, such as: resolution theorem proving strategies, special relations, equational reasoning, unification theory, rewrite systems, mathematical induction, program derivation, hybrid inference systems, and programming with logic. May be repeated in separate terms. Prerequisite: As specified for each topic offering, see Schedule or departmental course description.
CS 579   Computational Complexity   credit: 4 Hours.
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   credit: 4 Hours.
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   credit: 4 Hours.
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   credit: 4 Hours.
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 583   Approximation Algorithms   credit: 4 Hours.
Approximation algorithms for NP-hard problems. Basic and advanced techniques in approximation algorithm design: combinatorial algorithms; mathematical programming methods including linear and semi-definite programming, local search methods, and others. Algorithms for graphs and networks, constraint satisfaction, packing and scheduling. Prerequisite: CS 573, CSE 515 or consent of instructor.
CS 588   Autonomous Vehicle System Engineering   credit: 4 Hours.
Will introduce students to the computational principles involved in autonomous vehicles, with practical labwork on an actual vehicle. Sensing topics will include vision, lidar and sonar sensing, including state-of-the-art methods for detection, classification, and segmentation. Bayesian filtering methods will be covered in the context of both SLAM and visual tracking. Planning and control topics will cover vehicle dynamics models, state-lattice planning, sampling-based kinodynamic planning, optimal control and trajectory optimization, and some reinforcement learning. Evaluation will involve ambitious challenge projects implemented on a physical vehicle. Prerequisite:
CSÂ 374
,
ECEÂ 374
,
ECEÂ 484
, or equivalent.
CS 591   Advanced Seminar   credit: 0 to 4 Hours.
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 598   Special Topics   credit: 2 to 4 Hours.
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. |
| Markdown | - [Skip to Content](https://catalog.illinois.edu/courses-of-instruction/cs/#contentarea)
- [AZ Index](https://catalog.illinois.edu/azindex/)
- [Catalog Home](https://catalog.illinois.edu/)
- [Undergraduate](https://catalog.illinois.edu/undergraduate/)
- [Graduate](https://catalog.illinois.edu/graduate/)
- [Professional](https://catalog.illinois.edu/professional/)
- [Courses](https://catalog.illinois.edu/courses-of-instruction/)
- [Colleges](https://catalog.illinois.edu/schools/)
- [Archive](https://catalog.illinois.edu/archivedacademiccatalogs/)
- [Admissions](https://illinois.edu/admissions/index.html)
- [Registrar](https://registrar.illinois.edu/)
- [Calendar](https://senate.illinois.edu/a_calendar.asp)
# [2026-2027 Course Catalog](https://catalog.illinois.edu/)
MENU
- [Undergraduate](https://catalog.illinois.edu/undergraduate/)
- [Graduate](https://catalog.illinois.edu/graduate/)
- [Professional](https://catalog.illinois.edu/professional/)
- [Courses](https://catalog.illinois.edu/courses-of-instruction/)
- [Colleges](https://catalog.illinois.edu/schools/)
- [Program Index](https://catalog.illinois.edu/degree-programs/)
- [Archive](https://catalog.illinois.edu/archivedacademiccatalogs/)

2026-2027 Academic Catalog
- [Home](https://catalog.illinois.edu/)›
- [Courses of Instruction](https://catalog.illinois.edu/courses-of-instruction/)›
- CS - Computer Science
2026-2027 Edition
- [CS -​ Computer Science](https://catalog.illinois.edu/courses-of-instruction/cs/)
Print Options (Opens Modal)
# CS - Computer Science
[CS Class Schedule](https://courses.illinois.edu/schedule/DEFAULT/DEFAULT/CS)
### Courses
**[CS 100 Computer Science Orientation credit: 1 Hour.](https://courses.illinois.edu/schedule/terms/CS/100)**
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 credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/101)**
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](https://catalog.illinois.edu/search/?P=MATH%20220 "MATHÂ 220") or [MATH 221](https://catalog.illinois.edu/search/?P=MATH%20221 "MATHÂ 221") or [MATH 231](https://catalog.illinois.edu/search/?P=MATH%20231 "MATHÂ 231") or [MATH 241](https://catalog.illinois.edu/search/?P=MATH%20241 "MATHÂ 241").
This course satisfies the General Education Criteria for:
Quantitative Reasoning II
**[CS 102 Little Bits to Big Ideas credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/102)**
Same as [INFO 102](https://catalog.illinois.edu/search/?P=INFO%20102 "INFOÂ 102"). See [INFO 102](https://catalog.illinois.edu/search/?P=INFO%20102 "INFOÂ 102").
**[CS 105 Intro Computing: Non-Tech credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/105)**
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](https://catalog.illinois.edu/search/?P=MATH%20112 "MATHÂ 112").
This course satisfies the General Education Criteria for:
Quantitative Reasoning I
**[CS 107 Data Science Discovery credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/107)**
Same as [IS 107](https://catalog.illinois.edu/search/?P=IS%20107 "ISÂ 107") and [STAT 107](https://catalog.illinois.edu/search/?P=STAT%20107 "STATÂ 107"). See [STAT 107](https://catalog.illinois.edu/search/?P=STAT%20107 "STATÂ 107").
This course satisfies the General Education Criteria for:
Quantitative Reasoning I
**[CS 124 Introduction to Computer Science I credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/124)**
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](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124") and [CS 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125"). Prerequisite: Three years of high school mathematics or [MATH 112](https://catalog.illinois.edu/search/?P=MATH%20112 "MATHÂ 112").
This course satisfies the General Education Criteria for:
Quantitative Reasoning I
**[CS 125 Introduction to Computer Science credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/125)**
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 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125") and [CS 124](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124"). Prerequisite: Three years of high school mathematics or [MATH 112](https://catalog.illinois.edu/search/?P=MATH%20112 "MATHÂ 112").
**[CS 126 Software Design Studio credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/126)**
Fundamental principles and techniques of software development. Design, documentation, testing, and debugging software, with a significant emphasis on code review. Credit is not given for both [CS 242](https://catalog.illinois.edu/search/?P=CS%20242 "CSÂ 242") and [CS 126](https://catalog.illinois.edu/search/?P=CS%20126 "CSÂ 126"). Prerequisite: [CS 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125"). For majors only.
**[CS 128 Introduction to Computer Science II credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/128)**
Continuation of [CS 124](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124"). More advanced concepts in computing and techniques and approaches for solving computational problems. Prerequisite: [CS 124](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124") or [CS 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125").
This course satisfies the General Education Criteria for:
Quantitative Reasoning II
**[CS 173 Discrete Structures credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/173)**
\[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](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173") and [MATH 213](https://catalog.illinois.edu/search/?P=MATH%20213 "MATHÂ 213"). Prerequisite: One of [CS 124](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124"), [CS 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125"), [ECE 220](https://catalog.illinois.edu/search/?P=ECE%20220 "ECEÂ 220"); one of [MATH 220](https://catalog.illinois.edu/search/?P=MATH%20220 "MATHÂ 220"), [MATH 221](https://catalog.illinois.edu/search/?P=MATH%20221 "MATHÂ 221").
**[CS 196 First-Year Student Honors credit: 1 Hour.](https://courses.illinois.edu/schedule/terms/CS/196)**
Offered for honors credit in conjunction with other 100-level computer science courses taken concurrently. A special examination may be required for admission to this course. May be repeated if topics vary, for a maximum of 2 hours in the same semester and a maximum of 3 hours total. Prerequisite: Concurrent registration in another 100-level computer science course (see Schedule).
**[CS 199 Undergraduate Open Seminar in Computer Science credit: 0 to 5 Hours.](https://courses.illinois.edu/schedule/terms/CS/199)**
Topics vary. Approved for Letter and S/U grading. May be repeated.
**[CS 210 Ethical & Professional Issues credit: 2 Hours.](https://courses.illinois.edu/schedule/terms/CS/210)**
Ethics for the computing profession. Ethical decision-making; licensing; intellectual property, freedom of information, and privacy. Credit is not given for both [CS 210](https://catalog.illinois.edu/search/?P=CS%20210 "CSÂ 210") and either [CS 211](https://catalog.illinois.edu/search/?P=CS%20211 "CSÂ 211") or [ECE 316](https://catalog.illinois.edu/search/?P=ECE%20316 "ECEÂ 316"). Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"). Junior standing required.
**[CS 211 Ethical and Professional Conduct credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/211)**
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](https://catalog.illinois.edu/search/?P=CS%20211 "CSÂ 211") and [CS 210](https://catalog.illinois.edu/search/?P=CS%20210 "CSÂ 210") or [ECE 316](https://catalog.illinois.edu/search/?P=ECE%20316 "ECEÂ 316"). Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
This course satisfies the General Education Criteria for:
Advanced Composition
**[CS 222 Software Design Lab credit: 1 Hour.](https://courses.illinois.edu/schedule/terms/CS/222)**
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](https://catalog.illinois.edu/search/?P=CS%20128 "CS 128"); credit or concurrent registration in [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CS 225"). Restricted to majors in Computer Science undergraduate curricula only.
**[CS 225 Data Structures credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/225)**
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](https://catalog.illinois.edu/search/?P=CS%20277 "CSÂ 277") if credit for [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") has been earned. Prerequisite: [CS 126](https://catalog.illinois.edu/search/?P=CS%20126 "CSÂ 126") or [CS 128](https://catalog.illinois.edu/search/?P=CS%20128 "CSÂ 128") or [ECE 220](https://catalog.illinois.edu/search/?P=ECE%20220 "ECEÂ 220"); One of [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173"), [CS 413](https://catalog.illinois.edu/search/?P=CS%20413 "CSÂ 413"), [MATH 213](https://catalog.illinois.edu/search/?P=MATH%20213 "MATHÂ 213"), [MATH 314](https://catalog.illinois.edu/search/?P=MATH%20314 "MATHÂ 314"), [MATH 347](https://catalog.illinois.edu/search/?P=MATH%20347 "MATHÂ 347"), [MATH 412](https://catalog.illinois.edu/search/?P=MATH%20412 "MATHÂ 412"), or [MATH 413](https://catalog.illinois.edu/search/?P=MATH%20413 "MATHÂ 413").
This course satisfies the General Education Criteria for:
Quantitative Reasoning II
**[CS 233 Computer Architecture credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/233)**
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](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125") or [CS 128](https://catalog.illinois.edu/search/?P=CS%20128 "CSÂ 128"); [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173") or [MATH 213](https://catalog.illinois.edu/search/?P=MATH%20213 "MATHÂ 213"); credit or concurrent enrollment in [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 242 Programming Studio credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/242)**
Intensive programming lab intended to strengthen skills in programming. Prerequisite: CS 241.
**[CS 265 Innovation Illinois: From Accessible Design to Supercomputing Cultures credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/265)**
Same as [IS 265](https://catalog.illinois.edu/search/?P=IS%20265 "ISÂ 265") and [MACS 265](https://catalog.illinois.edu/search/?P=MACS%20265 "MACSÂ 265"). See [MACS 265](https://catalog.illinois.edu/search/?P=MACS%20265 "MACSÂ 265").
**[CS 266 Community Innovation credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/266)**
Same as [IS 266](https://catalog.illinois.edu/search/?P=IS%20266 "ISÂ 266") and [MACS 266](https://catalog.illinois.edu/search/?P=MACS%20266 "MACSÂ 266"). See [IS 266](https://catalog.illinois.edu/search/?P=IS%20266 "ISÂ 266").
This course satisfies the General Education Criteria for:
Social & Beh Sci - Soc Sci
Cultural Studies - Western
**[CS 277 Algorithms and Data Structures for Data Science credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/277)**
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](https://catalog.illinois.edu/search/?P=CS%20277 "CSÂ 277") if credit for [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") is earned. Prerequisite: [STAT 207](https://catalog.illinois.edu/search/?P=STAT%20207 "STATÂ 207"); one of [MATH 220](https://catalog.illinois.edu/search/?P=MATH%20220 "MATHÂ 220"), [MATH 221](https://catalog.illinois.edu/search/?P=MATH%20221 "MATHÂ 221"), [MATH 234](https://catalog.illinois.edu/search/?P=MATH%20234 "MATHÂ 234"). [CS 277](https://catalog.illinois.edu/search/?P=CS%20277 "CSÂ 277") cannot be taken concurrently with [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 296 Honors Course credit: 1 Hour.](https://courses.illinois.edu/schedule/terms/CS/296)**
Group projects for honors credit in computer science. Sections of this course are offered in conjunction with other 200-level computer science courses taken concurrently. A special examination may be required for admission to this course. May be repeated. Prerequisite: Concurrent registration in another 200-level computer science course (see Schedule).
**[CS 307 Modeling and Learning in Data Science credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/307)**
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](https://catalog.illinois.edu/search/?P=STAT%20207 "STATÂ 207"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 227](https://catalog.illinois.edu/search/?P=MATH%20227 "MATHÂ 227"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406").
**[CS 340 Introduction to Computer Systems credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/340)**
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](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340") and CS 240. Prerequisite: [CS 128](https://catalog.illinois.edu/search/?P=CS%20128 "CSÂ 128") and [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 341 System Programming credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/341)**
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](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") and either CS 241 or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391"). Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") and [CS 233](https://catalog.illinois.edu/search/?P=CS%20233 "CSÂ 233").
**[CS 357 Numerical Methods I credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/357)**
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](https://catalog.illinois.edu/search/?P=MATH%20357 "MATHÂ 357"). Credit is not given toward graduation for: Credit is not given towards graduation for [CS 357](https://catalog.illinois.edu/search/?P=CS%20357 "CSÂ 357") if credit for [CS 450](https://catalog.illinois.edu/search/?P=CS%20450 "CSÂ 450") has been earned. Prerequisite: One of [CS 101](https://catalog.illinois.edu/search/?P=CS%20101 "CSÂ 101"), [CS 105](https://catalog.illinois.edu/search/?P=CS%20105 "CSÂ 105"), [CS 124](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124"), [CS 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125") or [ECE 220](https://catalog.illinois.edu/search/?P=ECE%20220 "ECEÂ 220"); [MATH 241](https://catalog.illinois.edu/search/?P=MATH%20241 "MATHÂ 241"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 227](https://catalog.illinois.edu/search/?P=MATH%20227 "MATHÂ 227"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 361 Probability & Statistics for Computer Science credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/361)**
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](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361") and [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"). Prerequisite: [MATH 220](https://catalog.illinois.edu/search/?P=MATH%20220 "MATHÂ 220") or [MATH 221](https://catalog.illinois.edu/search/?P=MATH%20221 "MATHÂ 221"). Credit or concurrent registration in one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 227](https://catalog.illinois.edu/search/?P=MATH%20227 "MATHÂ 227"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 374 Introduction to Algorithms & Models of Computation credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/374)**
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](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"). Prerequisite: One of [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173"), [MATH 213](https://catalog.illinois.edu/search/?P=MATH%20213 "MATHÂ 213"); [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 397 Individual Study credit: 1 to 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/397)**
May be repeated. Prerequisite: Consent of instructor.
**[CS 398 Special Topics credit: 1 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/398)**
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.
**[CS 400 Accelerated Fundamentals of Computing I credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/400)**
The first class in a sequence of two classes that introduces students to the basic concepts in computing with an emphasis on the fundamental techniques for solving computational problems. Topics include: core programming concepts (variables, data types, conditional expressions, loops, functions), basic data structures, searching and sorting algorithms, and data exploration and visualization. No prior programming experience is required. No undergraduate credit. 3 graduate hours. Prerequisite: Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post-baccalaureate students with a non-computing background.
**[CS 401 Accelerated Fundamentals of Algorithms I credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/401)**
The first class in a sequence of two classes that introduces students to the theoretical foundations of computer science. Topics include counting, sets, functions, decision trees, recursion, binary numbers, basic graph theory, depth first search and breadth first search, algorithms for computing shortest paths, data structures like stacks and queues, big O notation and asymptotic analysis, complexity classes like P and NP, and reductions. No undergraduate credit. 3 graduate hours. Prerequisite: Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post- baccalaureate students with a non-computing background.
**[CS 402 Accelerated Fundamentals of Computing II credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/402)**
Provides an accelerated introduction to class-based program design and the design of abstractions that support the design of reusable software and libraries. It reviews typical object-oriented concepts such as information hiding, encapsulation, polymorphism, inheritance, composition, and common design patterns. The course will also covers exception handling, database programming, and concurrent programming. No undergraduate credit. 3 graduate hours. Prerequisite: [CS 400](https://catalog.illinois.edu/search/?P=CS%20400 "CSÂ 400") or consent of instructor. Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post-baccalaureate students with a non-computing background.
**[CS 403 Accelerated Fundamentals of Algorithms II credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/403)**
The second class in a sequence of two classes that introduces students to the theoretical foundations of computer science. Topics include major paradigms of algorithm design divide and conquer, greedy, recursive, and dynamic programming; solving recurrences and analysis of divide and conquer algorithms; graph algorithms; formal models of computations like finite state automata and Turing machines; reductions. No undergraduate credit. 3 graduate hours. Prerequisite: [CS 401](https://catalog.illinois.edu/search/?P=CS%20401 "CSÂ 401") or consent of instructor. Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post-baccalaureate students with a non-computing background.
**[CS 407 Cryptography credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/407)**
Same as [ECE 407](https://catalog.illinois.edu/search/?P=ECE%20407 "ECEÂ 407"). See [ECE 407](https://catalog.illinois.edu/search/?P=ECE%20407 "ECEÂ 407").
**[CS 409 The Art of Web Programming credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/409)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 410 Text Information Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/410)**
Theory, design, and implementation of text-based information systems. Text analysis, retrieval models (e.g., Boolean, vector space, probabilistic), text categorization, text filtering, clustering, retrieval system design and implementation, and applications to web information management. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 411 Database Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/411)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 412 Introduction to Data Mining credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/412)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 413 Intro to Combinatorics credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/413)**
Same as [MATH 413](https://catalog.illinois.edu/search/?P=MATH%20413 "MATHÂ 413"). See [MATH 413](https://catalog.illinois.edu/search/?P=MATH%20413 "MATHÂ 413").
**[CS 414 Multimedia Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/414)**
Organization and structure of modern multimedia systems; audio and video encoding; quality of service concepts; scheduling algorithms for multimedia within OS and networks multimedia protocols over high-speed networks; synchronization schemes, user-interface design; multimedia teleservices. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 240, CS 241, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 415 Game Development credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/415)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 416 Data Visualization credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/416)**
Elements of databases, computer graphics and perceptual psychology combined to utilize the human visual system to improve user understanding of large datasets. Topics include appropriate and effective selection and construction of charts, organization of dashboards, and design for user engagement and interaction. 3 undergraduate hours. 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 417 Introduction to Extended Reality credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/417)**
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](https://catalog.illinois.edu/search/?P=CS%20128 "CSÂ 128"); one of [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 227](https://catalog.illinois.edu/search/?P=MATH%20227 "MATHÂ 227"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 418 Interactive Computer Graphics credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/418)**
Basic mathematical tools and computational techniques for modeling, rendering, and animating 3-D scenes. Same as [CSE 427](https://catalog.illinois.edu/search/?P=CSE%20427 "CSEÂ 427"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); One of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406"), or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210"); [MATH 241](https://catalog.illinois.edu/search/?P=MATH%20241 "MATHÂ 241").
**[CS 419 Production Computer Graphics credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/419)**
Advanced methods for representing, displaying, and rendering two-, three-, and four-dimensional scenes. General algebraic curves and surfaces, splines, Gaussian and bump-function representation, fractals, particle systems, constructive solid geometry methods, lighting models, radiosity, advanced ray-tracing methods, surface texturing animation techniques, data visualization methods. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 418](https://catalog.illinois.edu/search/?P=CS%20418 "CSÂ 418") or [CSE 427](https://catalog.illinois.edu/search/?P=CSE%20427 "CSEÂ 427").
**[CS 420 Parallel Progrmg: Sci & Engrg credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/420)**
Fundamental issues in design and development of parallel programs for various types of parallel computers. Various programming models according to both machine type and application area. Cost models, debugging, and performance evaluation of parallel programs with actual application examples. Same as [CSE 402](https://catalog.illinois.edu/search/?P=CSE%20402 "CSEÂ 402") and [ECE 492](https://catalog.illinois.edu/search/?P=ECE%20492 "ECEÂ 492"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 421 Programming Languages & Compilers credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/421)**
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](https://catalog.illinois.edu/search/?P=CS%20233 "CSÂ 233"), CS 240, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391"); [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406"), or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 422 Programming Language Design credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/422)**
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](https://catalog.illinois.edu/search/?P=CS%20421 "CSÂ 421").
**[CS 423 Operating Systems Design credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/423)**
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](https://catalog.illinois.edu/search/?P=CSE%20423 "CSEÂ 423"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 241, [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341"), or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 424 Real-Time Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/424)**
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](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 425 Distributed Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/425)**
Protocols, specification techniques, global states and their determination, reliable broadcast, transactions and commitment, security, and real-time systems. Same as [ECE 428](https://catalog.illinois.edu/search/?P=ECE%20428 "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](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 426 Compiler Construction credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/426)**
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](https://catalog.illinois.edu/search/?P=CS%20421 "CSÂ 421").
**[CS 427 Software Engineering I credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/427)**
Software process, analysis and design. Software development paradigms, system engineering, function-based analysis and design, and object-oriented analysis and design. Course will use team-projects for hands-on exercises. Same as [CSE 426](https://catalog.illinois.edu/search/?P=CSE%20426 "CSEÂ 426"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of [CS 222](https://catalog.illinois.edu/search/?P=CS%20222 "CSÂ 222"), CS 240, CS 241, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 428 Software Engineering II credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/428)**
Continuation of [CS 427](https://catalog.illinois.edu/search/?P=CS%20427 "CSÂ 427"). Software development, management, and maintenance. Project and configuration management, collaborative development models, software quality assurance, interoperability domain engineering and software reuse, and software re-engineering. Same as [CSE 429](https://catalog.illinois.edu/search/?P=CSE%20429 "CSEÂ 429"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 427](https://catalog.illinois.edu/search/?P=CS%20427 "CSÂ 427") or [CSE 426](https://catalog.illinois.edu/search/?P=CSE%20426 "CSEÂ 426").
**[CS 429 Software Engineering II, ACP credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/429)**
Continuation of [CS 427](https://catalog.illinois.edu/search/?P=CS%20427 "CSÂ 427"). Identical to [CS 428](https://catalog.illinois.edu/search/?P=CS%20428 "CSÂ 428") except for the additional writing component. See [CS 428](https://catalog.illinois.edu/search/?P=CS%20428 "CSÂ 428"). 3 undergraduate hours. 3 graduate hours. Prerequisite: [CS 427](https://catalog.illinois.edu/search/?P=CS%20427 "CSÂ 427") or [CSE 426](https://catalog.illinois.edu/search/?P=CSE%20426 "CSEÂ 426").
**[CS 431 Embedded Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/431)**
Students will learn embedded system architecture, Real-Time Operating Systems, and real-time software design and development techniques, including 1) real-time software designs, practical signal processing, and control techniques in embedded applications, including the safe use of machine learning, and 2) the schedulability analysis to ensure deadlines of tasks are met. In the lab, students will practice what they learn in the class so that their software can drive a two-wheeled robot car along a course and avoid obstacles autonomously. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 241, [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 433 Computer System Organization credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/433)**
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](https://catalog.illinois.edu/search/?P=CSE%20422 "CSEÂ 422"). 3 undergraduate hours. 4 graduate hours. Prerequisite: [CS 233](https://catalog.illinois.edu/search/?P=CS%20233 "CSÂ 233").
**[CS 434 Real World Algorithms for IoT and Data Science credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/434)**
Same as [ECE 434](https://catalog.illinois.edu/search/?P=ECE%20434 "ECEÂ 434"). See [ECE 434](https://catalog.illinois.edu/search/?P=ECE%20434 "ECEÂ 434").
**[CS 435 Cloud Networking credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/435)**
Provides a foundational view of computer networks with a focus on enabling modern large-scale cloud computing. The first part of this course studies the principles upon which the Internet and other networks are built, and how those principles translate into deployed protocols. The second part covers how those principles are applied in network infrastructure for modern clouds, enabling deployment of virtual networks on shared infrastructure, efficient transfer of big data and low latency communication, and federation of applications across countries and continents. 3 undergraduate hours. 4 graduate hours. Credit is not given for both [CS 435](https://catalog.illinois.edu/search/?P=CS%20435 "CSÂ 435") and [CS 438](https://catalog.illinois.edu/search/?P=CS%20438 "CSÂ 438")/[ECE 438](https://catalog.illinois.edu/search/?P=ECE%20438 "ECEÂ 438"). Prerequisite: One of CS 240, CS 241, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 436 Computer Networking Laboratory credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/436)**
Design, application, analysis, and deployment of communication protocols and system software behind modern cloud/compute/network infrastructures. Students learn the internals of modern system infrastructures, including operating system networking kernels, cloud application service code, and firewall and router configuration. Students will gain experience with widely-used and production-grade code and systems, such as Cisco IOS, the Linux networking stack, and Amazon Web Services. This class links theory with practice to prepare students to confidently carry out tasks they will commonly encounter in industry, such as building an enterprise network, deploying a large-scale cloud service, or implementing a new network protocol. Same as [ECE 435](https://catalog.illinois.edu/search/?P=ECE%20435 "ECEÂ 435"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 240, CS 241, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 437 Topics in Internet of Things credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/437)**
Topics of networked embedded computing technology, known as the Internet of Things, in application, distributed, human-centric, or social contexts. The tight coupling between people, networking protocols, computing elements, and physical things in IoT systems presents unique challenges for data collection, processing in constrained computation and communication environments. Introduces general principles of IoT systems and protocol, offers broad foundations for IoT services, and allows specialization to pursue an in-depth understanding of selected IoT aspects or subtopics. 3 undergraduate hours. 4 graduate hours. 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. Prerequisite: CS 241 or [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341"). Additional prerequisites may be specified each term. See section information.
**[CS 438 Communication Networks credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/438)**
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](https://catalog.illinois.edu/search/?P=ECE%20438 "ECEÂ 438"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 241, [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391"); strongly recommend one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 439 Wireless Networks credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/439)**
Same as [ECE 439](https://catalog.illinois.edu/search/?P=ECE%20439 "ECEÂ 439"). See [ECE 439](https://catalog.illinois.edu/search/?P=ECE%20439 "ECEÂ 439").
**[CS 440 Artificial Intelligence credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/440)**
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](https://catalog.illinois.edu/search/?P=ECE%20448 "ECEÂ 448"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463"), [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400") or [BIOE 310](https://catalog.illinois.edu/search/?P=BIOE%20310 "BIOEÂ 310").
**[CS 441 Applied Machine Learning credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/441)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") or [CS 277](https://catalog.illinois.edu/search/?P=CS%20277 "CSÂ 277"), and one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [BIOE 310](https://catalog.illinois.edu/search/?P=BIOE%20310 "BIOEÂ 310"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 442 Trustworthy Machine Learning credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/442)**
Prepares students to understand the security and privacy problems in machine learning and educates students to propose different attack strategies to identify the vulnerabilities of a range of learning algorithms and understand different defense approaches towards trustworthy machine learning systems. Students will explore topics including basic machine learning foundations (e.g., linear regression and PCA), adversarial attacks against different learning algorithms, differential privacy, data valuation, and different categories of defenses. The lessons are reinforced via a series of topic-driven lectures, coding assignments, related paper readings, exams and in-class discussions. Students will learn to analyze current interactions between attackers and defenders on machine learning and therefore develop an understanding of the principles on trustworthy machine learning which is an emerging and important topic. Students will be required to finish three related homework projects, including 1) developing a machine learning classifier, 2) designing adversarial attacks against the built classifier, and 3) developing defenses to improve the robustness of the trained classifier against designed attacks. Students registered for 4 credit hours will also finish a final project based on the class topics, demonstrating their ability to propose related new algorithms based on the class subjects. 3 undergraduate hours. 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [CS 440](https://catalog.illinois.edu/search/?P=CS%20440 "CSÂ 440"), [ECE 448](https://catalog.illinois.edu/search/?P=ECE%20448 "ECEÂ 448"), [CS 441](https://catalog.illinois.edu/search/?P=CS%20441 "CSÂ 441"), [CS 446](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446") or [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 443 Reinforcement Learning credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/443)**
Fundamental concepts and basic algorithms in Reinforcement Learning (RL) - a machine learning paradigm for sequential decision-making. The goal of this course is to enable students to (1) understand the mathematical framework of RL, (2) tell what problems can be solved with RL, and how to cast these problems into the RL formulation, (3) understand why and how RL algorithms are designed to work, and (4) know how to experimentally and mathematically evaluate the effectiveness of an RL algorithm. There will be both programming and written assignments. 3 undergraduate hours. 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); [MATH 241](https://catalog.illinois.edu/search/?P=MATH%20241 "MATHÂ 241"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 444 Deep Learning for Computer Vision credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/444)**
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](https://catalog.illinois.edu/search/?P=ECE%20494 "ECEÂ 494"). 3 undergraduate hours. 4 graduate hours. Prerequisite: [MATH 241](https://catalog.illinois.edu/search/?P=MATH%20241 "MATHÂ 241"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406"), or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210"); [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400"). No previous exposure to machine learning is required.
**[CS 445 Computational Photography credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/445)**
Computer vision techniques to enhance, manipulate, and create media from photo collections, such as panoramic stitching, face morphing, texture synthesis, blending, and 3D reconstruction. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"), [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), and [MATH 231](https://catalog.illinois.edu/search/?P=MATH%20231 "MATHÂ 231").
**[CS 446 Machine Learning credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/446)**
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](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); One of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463"), [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400") or [BIOE 310](https://catalog.illinois.edu/search/?P=BIOE%20310 "BIOEÂ 310").
**[CS 447 Natural Language Processing credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/447)**
Part-of-speech tagging, parsing, semantic analysis and machine translation. Relevant linguistics concepts from morphology (word formation) and lexical semantics (the meaning of words) to syntax (sentence structure) and compositional semantics (the meaning of sentences). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173") or [MATH 213](https://catalog.illinois.edu/search/?P=MATH%20213 "MATHÂ 213"); [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463"), [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400") or [BIOE 310](https://catalog.illinois.edu/search/?P=BIOE%20310 "BIOEÂ 310"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 448 Audio Computing Laboratory credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/448)**
Computational foundations of modern audio applications: theory of audio processing for implementation of applications such as room and 3D/virtual audio rendering, pitch manipulations and autotuning, denoising for communications and forensics, audio classification, music information retrieval based on audio, rudimentary speech recognition, speech and audio coding, applications of machine learning to audio scene recognition, audio restoration, missing data recovery, and many more. This will be a lab-like course in which students collectively implement a variety of core audio operations that are commonplace today. Students will be required to bring to class their laptops and headphones to participate in lab exercises. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 240, CS 241, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341"), or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406"), or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 450 Numerical Analysis credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/450)**
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](https://catalog.illinois.edu/search/?P=CSE%20401 "CSEÂ 401"), [ECE 491](https://catalog.illinois.edu/search/?P=ECE%20491 "ECEÂ 491"), and [MATH 450](https://catalog.illinois.edu/search/?P=MATH%20450 "MATHÂ 450"). 3 undergraduate hours. 3 or 4 graduate hours. Credit is not given toward graduation for both [CS 450](https://catalog.illinois.edu/search/?P=CS%20450 "CSÂ 450") and CS 457. Prerequisite: One of [CS 101](https://catalog.illinois.edu/search/?P=CS%20101 "CSÂ 101"), [CS 124](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124") or [CS 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125"); one of [CS 357](https://catalog.illinois.edu/search/?P=CS%20357 "CSÂ 357"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 357](https://catalog.illinois.edu/search/?P=MATH%20357 "MATHÂ 357"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), or [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"); [MATH 285](https://catalog.illinois.edu/search/?P=MATH%20285 "MATHÂ 285").
**[CS 452 Topics in Robotics credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/452)**
Topics in robotics presented from a computational perspective, including artificial intelligence, algorithms, computational modeling, and/or software engineering. Generating intelligent behavior for a physical robot poses unique computational challenges in decision making, perception, representations of three-dimensional worlds and movement, and system integration. This course introduces general computational principles used in robotics as well as performing in-depth study of selected subtopics. 3 undergraduate hours. 3 or 4 graduate hours. May be repeated in the same term up to 6 undergraduate or 8 graduate hours, or in separate terms up to 12 undergraduate or 16 graduate hours, if topics vary. Prerequisite: ([CS 128](https://catalog.illinois.edu/search/?P=CS%20128 "CSÂ 128") or [ECE 220](https://catalog.illinois.edu/search/?P=ECE%20220 "ECEÂ 220")) and [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") and (CS 241 or [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391")).
**[CS 460 Security Laboratory credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/460)**
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](https://catalog.illinois.edu/search/?P=CS%20461 "CSÂ 461") via hands-on project. Same as [ECE 419](https://catalog.illinois.edu/search/?P=ECE%20419 "ECEÂ 419"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 461](https://catalog.illinois.edu/search/?P=CS%20461 "CSÂ 461") or [ECE 422](https://catalog.illinois.edu/search/?P=ECE%20422 "ECEÂ 422") or a combination of [CS 463](https://catalog.illinois.edu/search/?P=CS%20463 "CSÂ 463") and one of [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 461 Computer Security I credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/461)**
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](https://catalog.illinois.edu/search/?P=ECE%20422 "ECEÂ 422"). 4 undergraduate hours. 4 graduate hours. Prerequisite: One of CS 241, [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391"), or a combination of [CS 233](https://catalog.illinois.edu/search/?P=CS%20233 "CSÂ 233") and [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340").
**[CS 462 Issues of Law and Policy in Computer Science credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/462)**
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](https://catalog.illinois.edu/search/?P=CS%20462 "CSÂ 462") and [CS 498](https://catalog.illinois.edu/search/?P=CS%20498 "CSÂ 498"), Law \&Policy Issues in CS. Prerequisite: [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340") or [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 463 Computer Security II credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/463)**
Program security, trusted base, privacy, anonymity, non-interference, information flow, confinement, advanced auditing, forensics, intrusion detection, key management and distribution, policy composition and analysis, formal approaches to specification and verification of secure systems and protocols, and topics in applied cryptography. Same as [ECE 424](https://catalog.illinois.edu/search/?P=ECE%20424 "ECEÂ 424"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") and one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400"). [CS 441](https://catalog.illinois.edu/search/?P=CS%20441 "CSÂ 441") completion is recommended.
**[CS 464 Topics in Societal and Ethical Impacts of Computer Technology credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/464)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"). One of [CS 210](https://catalog.illinois.edu/search/?P=CS%20210 "CSÂ 210") or [CS 211](https://catalog.illinois.edu/search/?P=CS%20211 "CSÂ 211") or [ECE 316](https://catalog.illinois.edu/search/?P=ECE%20316 "ECEÂ 316") or [PHIL 316](https://catalog.illinois.edu/search/?P=PHIL%20316 "PHILÂ 316"). One of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400") or [STAT 200](https://catalog.illinois.edu/search/?P=STAT%20200 "STATÂ 200"). Restricted to students with senior standing.
**[CS 465 User Interface Design credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/465)**
A project-focused course covering fundamental principles of user interface design, implementation, and evaluation. Small teams work on a term-long project that involves: analysis of the problem domain, user skills, and tasks; iterative prototyping of interfaces to address user needs; conducting several forms of evaluation such as cognitive walkthroughs and usability tests; implementation of the final prototype. Non-technical majors may enroll as non-programmers who participate in all aspects of the projects with the possible exception of implementation. 4 undergraduate hours. 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 466 Introduction to Bioinformatics credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/466)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 467 Social Visualization credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/467)**
Visualizing social interaction in networked spaces: investigation of patterns in networked communications systems such as messaging (email, instant messaging), social networking sites and collaborative sites; social network theory and visualizations; exploration of how to move beyond existing visualization techniques; visualizing the network identity over compilations of online data. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 468 Tech and Advertising Campaigns credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/468)**
Same as [ADV 492](https://catalog.illinois.edu/search/?P=ADV%20492 "ADVÂ 492"). See [ADV 492](https://catalog.illinois.edu/search/?P=ADV%20492 "ADVÂ 492").
**[CS 469 Computational Advertising Infrastructure credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/469)**
Thorough coverage of technologies including web-search, auctions, behavioral targeting, mechanisms for viral marketing, that underpin the display of advertisements on a variety of locations (e.g., ads on search engines; display ads). Students shall also learn about emerging areas in computational advertising including location-based adverting and algorithmic synthesis of personalized advertisements. Discussion around privacy will be a significant focus of the class. Same as [ADV 462](https://catalog.illinois.edu/search/?P=ADV%20462 "ADVÂ 462"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173"); [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 470 Social and Information Networks credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/470)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CS 225"); [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CS 173"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CS 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STAT 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECE 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATH 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATH 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATH 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STAT 400"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATH 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATH 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATH 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATH 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRM 406"), or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOE 210").
**[CS 473 Algorithms credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/473)**
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](https://catalog.illinois.edu/search/?P=CSE%20414 "CSEÂ 414") and [MATH 473](https://catalog.illinois.edu/search/?P=MATH%20473 "MATHÂ 473"). 4 undergraduate hours. 4 graduate hours. Prerequisite: [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"), and one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 474 Logic in Computer Science credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/474)**
An introduction to mathematical logic from the perspective of computer science, emphasizing both computable aspects of logic, especially automated reasoning, as well as applications of logic to computer science in artificial intelligence, databases, formal methods, and theoretical computer science. Prepares students to use logic as a formal tool to solve problems in computer science and AI. Topics include: syntax, semantics and proofs for propositional and first order logic, the decidable logics and efficient realizations in terms of SAT/SMT solvers, decision and semi-decision procedures for first order logic and several first order logic theories, finite model theory and descriptive complexity. Additional topics include: connections between logic and machine learning, higher order logics, applications of logic to program verification, applications of logic in knowledge representation, proof complexity, modal and temporal logic, Courcelle’s theorem and its applications in parameterized complexity, logic and its role in automatic program synthesis, connections between logic and database query languages. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CS 173"); [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CS 225"); one of [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CS 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECE 374").
**[CS 475 Formal Models of Computation credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/475)**
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](https://catalog.illinois.edu/search/?P=MATH%20475 "MATHÂ 475"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374").
**[CS 476 Program Verification credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/476)**
Formal methods for demonstrating correctness and other properties of programs. Invariant assertions; Hoare axiomatics; well-founded orderings for proving termination; structural induction; computational induction; data structures; parallel programs; overview of predicate calculus. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374"), [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374") or [MATH 414](https://catalog.illinois.edu/search/?P=MATH%20414 "MATHÂ 414").
**[CS 477 Formal Software Development Methods credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/477)**
Mathematical models, languages, and methods for software specification, development, and verification. Same as [ECE 478](https://catalog.illinois.edu/search/?P=ECE%20478 "ECEÂ 478"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374"), [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374") or [MATH 414](https://catalog.illinois.edu/search/?P=MATH%20414 "MATHÂ 414").
**[CS 478 Quantum Algorithms and Complexity credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/478)**
A comprehensive introduction to the theoretical foundations of quantum computing, preparing students for advanced study in quantum information sciences: Building blocks of quantum information such as qubits and entanglement; basic quantum operations such as quantum gates and measurements, and key quantum protocols and algorithms like teleportation and Shor's factoring algorithm. Advanced topics include modern quantum algorithms, quantum learning, quantum complexity theory, cryptography, and error correction. Emphasis on theoretical aspects of design and analysis of quantum algorithms and their computational limits. Prior quantum physics knowledge is helpful but not required. 3 undergraduate hours. 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415") or [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463"), [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400"), [PHYS 214](https://catalog.illinois.edu/search/?P=PHYS%20214 "PHYSÂ 214") or [PHYS 486](https://catalog.illinois.edu/search/?P=PHYS%20486 "PHYSÂ 486"). Credit or concurrent enrollment in CS/[ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374") is encouraged.
**[CS 481 Advanced Topics in Stochastic Processes & Applications credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/481)**
Same as [IE 410](https://catalog.illinois.edu/search/?P=IE%20410 "IEÂ 410"). See [IE 410](https://catalog.illinois.edu/search/?P=IE%20410 "IEÂ 410").
**[CS 482 Simulation credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/482)**
Same as [IE 413](https://catalog.illinois.edu/search/?P=IE%20413 "IEÂ 413"). See [IE 413](https://catalog.illinois.edu/search/?P=IE%20413 "IEÂ 413").
**[CS 483 Applied Parallel Programming credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/483)**
Same as [CSE 408](https://catalog.illinois.edu/search/?P=CSE%20408 "CSEÂ 408") and [ECE 408](https://catalog.illinois.edu/search/?P=ECE%20408 "ECEÂ 408"). See [ECE 408](https://catalog.illinois.edu/search/?P=ECE%20408 "ECEÂ 408").
**[CS 484 Parallel Programming credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/484)**
Techniques for the programming of all classes of parallel computers and devices including shared memory and distributed memory multiprocessors, SIMD processors and co-processors, and special purpose devices. Key concepts in parallel programming such as reactive and transformational programming, speculation, speedup, isoefficiency, and load balancing. Synchronization primitives, libraries and languages for parallel programming such as OpenMP and MPI, performance monitoring, program tuning, analysis and programming of numerical and symbolic parallel algorithms. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 241 or [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341").
**[CS 491 Seminar credit: 0 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/491)**
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 credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/492)**
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](https://catalog.illinois.edu/search/?P=CS%20492 "CSÂ 492") must be taken as a sequence with either [CS 493](https://catalog.illinois.edu/search/?P=CS%20493 "CSÂ 493") or [CS 494](https://catalog.illinois.edu/search/?P=CS%20494 "CSÂ 494"). 3 undergraduate hours. No graduate credit. Credit is not given for both [CS 492](https://catalog.illinois.edu/search/?P=CS%20492 "CSÂ 492") and a project course in another engineering department for the same project. Prerequisite: For Computer Science majors with senior standing.
**[CS 493 Senior Project II, ACP credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/493)**
Continuation of [CS 492](https://catalog.illinois.edu/search/?P=CS%20492 "CSÂ 492"). Identical to [CS 494](https://catalog.illinois.edu/search/?P=CS%20494 "CSÂ 494") except for an additional writing component. See [CS 494](https://catalog.illinois.edu/search/?P=CS%20494 "CSÂ 494"). 3 undergraduate hours. No graduate credit. Credit is not given for both [CS 493](https://catalog.illinois.edu/search/?P=CS%20493 "CSÂ 493") and a project course in another engineering department for the same project. Prerequisite: [CS 492](https://catalog.illinois.edu/search/?P=CS%20492 "CSÂ 492").
This course satisfies the General Education Criteria for:
Advanced Composition
**[CS 494 Senior Project II credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/494)**
Continuation of [CS 492](https://catalog.illinois.edu/search/?P=CS%20492 "CSÂ 492"). 3 undergraduate hours. No graduate credit. Credit is not given for both [CS 494](https://catalog.illinois.edu/search/?P=CS%20494 "CSÂ 494") and a project course in another engineering department for the same project. Prerequisite: [CS 492](https://catalog.illinois.edu/search/?P=CS%20492 "CSÂ 492").
**[CS 497 CS Team Project credit: 1 to 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/497)**
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 credit: 1 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/498)**
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 credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/499)**
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.
This course satisfies the General Education Criteria for:
Advanced Composition
**[CS 500 Current Topics in Computing Education Research credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/500)**
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 credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/507)**
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 508 Manycore Parallel Algorithms credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/508)**
Same as [ECE 508](https://catalog.illinois.edu/search/?P=ECE%20508 "ECEÂ 508"). See [ECE 508](https://catalog.illinois.edu/search/?P=ECE%20508 "ECEÂ 508").
**[CS 510 Advanced Information Retrieval credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/510)**
Advanced concepts, models, and algorithms in information retrieval and major recent developments in the field, including historical milestones in information retrieval research, evaluation methodology, vector space retrieval model, probabilistic retrieval models, learning to rank algorithms, probabilistic topic models, information retrieval systems, text analytics, and topics of research frontiers in information retrieval. Prerequisite: One of [CS 410](https://catalog.illinois.edu/search/?P=CS%20410 "CSÂ 410"), [CS 412](https://catalog.illinois.edu/search/?P=CS%20412 "CSÂ 412"), [CS 446](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446"), [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449") or [LING 406](https://catalog.illinois.edu/search/?P=LING%20406 "LINGÂ 406").
**[CS 511 Advanced Data Management credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/511)**
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](https://catalog.illinois.edu/search/?P=CS%20411 "CSÂ 411").
**[CS 512 Data Mining Principles credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/512)**
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](https://catalog.illinois.edu/search/?P=CS%20412 "CSÂ 412").
**[CS 513 Theory & Practice of Data Cleaning credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/513)**
Same as [IS 537](https://catalog.illinois.edu/search/?P=IS%20537 "ISÂ 537"). See [IS 537](https://catalog.illinois.edu/search/?P=IS%20537 "ISÂ 537").
**[CS 514 Advanced Topics in Network Science credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/514)**
We shall discuss classic and recent research in network analysis. Advanced topics include individual decision-making models, game theory, mechanism design, social choice, social signal design, diffusion of behavior on a network, choice architecture, network models, network mining algorithms and applications. 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 412](https://catalog.illinois.edu/search/?P=CS%20412 "CSÂ 412"); one of [CS 446](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446") or [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449"). Additional prerequisites or corequisites may be specified each term. See section information.
**[CS 519 Scientific Visualization credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/519)**
Visualization techniques useful in analysis of engineering and scientific data. Physical models; methods of computational science; two- and three-dimensional data types; visual representation schemes for scalar, vector, and tensor data; isosurface and volume visualization methods; visual monitoring; interactive steering. Same as [CSE 527](https://catalog.illinois.edu/search/?P=CSE%20527 "CSEÂ 527"). Prerequisite: [CS 418](https://catalog.illinois.edu/search/?P=CS%20418 "CSÂ 418") or [CSE 427](https://catalog.illinois.edu/search/?P=CSE%20427 "CSEÂ 427").
**[CS 521 Advanced Topics in Programming Systems credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/521)**
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](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"); [CS 421](https://catalog.illinois.edu/search/?P=CS%20421 "CSÂ 421"). Additional prerequisites or corequisites may be specified each term. See section information.
**[CS 522 Programming Language Semantics credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/522)**
Theory of programming languages including functional programming, meta-circular interpreters, typed, untyped and polymorphic lambda-calculi, and denotational semantics. Prerequisite: [CS 422](https://catalog.illinois.edu/search/?P=CS%20422 "CSÂ 422") and [CS 426](https://catalog.illinois.edu/search/?P=CS%20426 "CSÂ 426").
**[CS 523 Advanced Operating Systems credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/523)**
Advanced concepts in operating system design and coverage of recent research directions. Resource management for parallel and distributed systems. Interaction between operating system design and computer architectures. Process management, virtual memory, interprocess communication, context switching, parallel and distributed file system designs, persistent objects, process and data migration, load balancing, security, protection. Term projects. Prerequisite: One of [CS 423](https://catalog.illinois.edu/search/?P=CS%20423 "CSÂ 423") or [CSE 423](https://catalog.illinois.edu/search/?P=CSE%20423 "CSEÂ 423"); one of [CS 425](https://catalog.illinois.edu/search/?P=CS%20425 "CSÂ 425") or [ECE 428](https://catalog.illinois.edu/search/?P=ECE%20428 "ECEÂ 428"); and one of [CS 433](https://catalog.illinois.edu/search/?P=CS%20433 "CSÂ 433") or [CSE 422](https://catalog.illinois.edu/search/?P=CSE%20422 "CSEÂ 422").
**[CS 524 Concurrent Progrmg Languages credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/524)**
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](https://catalog.illinois.edu/search/?P=CS%20422 "CSÂ 422"); one of [CS 475](https://catalog.illinois.edu/search/?P=CS%20475 "CSÂ 475"), [MATH 475](https://catalog.illinois.edu/search/?P=MATH%20475 "MATHÂ 475") or [CS 476](https://catalog.illinois.edu/search/?P=CS%20476 "CSÂ 476").
**[CS 525 Advanced Distributed Systems credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/525)**
Peer-to-peer systems, sensor networks, and fundamental theoretical distributed computing. Review of classical work in each area, and application of design methodologies to explore overlaps across them. Emphasis on protocol design, systems issues, and theory. Reading selections are roughly two-third classical to one-third contemporary. Students write critiques, make presentations, and create a conference paper in a systematic manner. Prerequisite: One of [CS 423](https://catalog.illinois.edu/search/?P=CS%20423 "CSÂ 423"), [CSE 423](https://catalog.illinois.edu/search/?P=CSE%20423 "CSEÂ 423"), [CS 425](https://catalog.illinois.edu/search/?P=CS%20425 "CSÂ 425"), [ECE 428](https://catalog.illinois.edu/search/?P=ECE%20428 "ECEÂ 428"), [CS 438](https://catalog.illinois.edu/search/?P=CS%20438 "CSÂ 438") or [ECE 438](https://catalog.illinois.edu/search/?P=ECE%20438 "ECEÂ 438").
**[CS 526 Advanced Compiler Construction credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/526)**
Incremental and interactive compiling, error correction, code optimization, models of code generators. Prerequisite: [CS 426](https://catalog.illinois.edu/search/?P=CS%20426 "CSÂ 426").
**[CS 527 Topics in Software Engineering credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/527)**
Fault-tolerant software, software architecture, software patterns, multi-media software, and knowledge-based approaches to software engineering. Case studies. Prerequisite: [CS 428](https://catalog.illinois.edu/search/?P=CS%20428 "CSÂ 428"), [CSE 429](https://catalog.illinois.edu/search/?P=CSE%20429 "CSEÂ 429") or [CS 429](https://catalog.illinois.edu/search/?P=CS%20429 "CSÂ 429").
**[CS 533 Parallel Computer Architecture credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/533)**
Theoretical aspects of parallel and pipeline computation; time and processor bounds on classes of computations; data alignment network speed and cost bounds; conflict-free access memories; overall computer system ideas. Same as [CSE 522](https://catalog.illinois.edu/search/?P=CSE%20522 "CSEÂ 522"). Prerequisite: [CS 433](https://catalog.illinois.edu/search/?P=CS%20433 "CSÂ 433") or [CSE 422](https://catalog.illinois.edu/search/?P=CSE%20422 "CSEÂ 422").
**[CS 534 Advanced Topics in Computer Architecture credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/534)**
Current topics in computer architecture, selected from areas of current research such as: energy efficiency, processing in memory, cloud computing, 3-D architectures, security and privacy, hardware and software resiliency, cross-stack design, heterogeneous platforms, approximate computing, mobile computing, machine learning accelerators, and novel computing technologies. 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 433](https://catalog.illinois.edu/search/?P=CS%20433 "CSÂ 433") or [CSE 422](https://catalog.illinois.edu/search/?P=CSE%20422 "CSEÂ 422"). Additional prerequisites or co-requisites may be specified each term. See Class Schedule information.
**[CS 536 Fault-Tolerant Dig Syst Design credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/536)**
Same as [ECE 542](https://catalog.illinois.edu/search/?P=ECE%20542 "ECEÂ 542"). See [ECE 542](https://catalog.illinois.edu/search/?P=ECE%20542 "ECEÂ 542").
**[CS 537 Advanced Topics in Internet of Things (IoT) credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/537)**
Advanced topics in Internet of Things (IoT) algorithms, protocols, architectures, systems, and infrastructures, selected from areas of current research such as: IoT sensors representations and compression, streaming and caching of IoT data, IoT analytics and feature learning, IoT-edge-cloud computing infrastructures, resource optimization for multi-modal IoT systems, applications and human perception of IoT. Students will read and discuss recent research papers and conduct a semester-long research project. 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. Prerequisite: One of [CS 425](https://catalog.illinois.edu/search/?P=CS%20425 "CSÂ 425") or [ECE 428](https://catalog.illinois.edu/search/?P=ECE%20428 "ECEÂ 428"); one of [CS 438](https://catalog.illinois.edu/search/?P=CS%20438 "CSÂ 438") or [ECE 438](https://catalog.illinois.edu/search/?P=ECE%20438 "ECEÂ 438"). Additional prerequisites may be specified each term. See section information.
**[CS 538 Advanced Computer Networks credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/538)**
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](https://catalog.illinois.edu/search/?P=CS%20438 "CSÂ 438") or [ECE 438](https://catalog.illinois.edu/search/?P=ECE%20438 "ECEÂ 438").
**[CS 539 Distributed Algorithms credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/539)**
Same as [ECE 526](https://catalog.illinois.edu/search/?P=ECE%20526 "ECEÂ 526"). See [ECE 526](https://catalog.illinois.edu/search/?P=ECE%20526 "ECEÂ 526").
**[CS 540 Deep Learning Theory credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/540)**
A rigorous mathematical course covering foundational analyses of the approximation, optimization, and generalization properties of Deep Neural Networks. Topics include: constructive and non-constructive approximations with one hidden layer; benefits of depth; optimization in the NTK regime; maximum margin optimization outside the NTK regime; Rademacher complexity, VC dimensino, and covering number bounds for ReLU networks. Evaluation is primarily based on homeworks, with a smaller project component. The course goal is to prepare students perform their own research in the field. Prerequisite: Basic linear algebra, probability, proof-writing, and statistics required. Real analysis recommended.
**[CS 541 Computer Systems Analysis credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/541)**
Same as [ECE 541](https://catalog.illinois.edu/search/?P=ECE%20541 "ECEÂ 541"). See [ECE 541](https://catalog.illinois.edu/search/?P=ECE%20541 "ECEÂ 541").
**[CS 542 Statistical Reinforcement Learning credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/542)**
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 credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/543)**
Same as [ECE 549](https://catalog.illinois.edu/search/?P=ECE%20549 "ECEÂ 549"). See [ECE 549](https://catalog.illinois.edu/search/?P=ECE%20549 "ECEÂ 549").
**[CS 544 Optimiz in Computer Vision credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/544)**
Applications of continuous and discrete optimization to problems in computer vision and machine learning, with particular emphasis on large-scale algorithms and effective approximations: gradient-based learning; Newton's method and variants, applied to structure from motion problems; the augmented Lagrangian method and variants; interior-point methods; SMO and other specialized algorithms for support vector machines; flows and cuts as examples of primal-dual methods; dynamics programming, hidden Markov models, and parsing: 0-1 quadratic forms, max-cut, and Markov random-fields solutions. Prerequisite: One of [CS 450](https://catalog.illinois.edu/search/?P=CS%20450 "CSÂ 450"), [CSE 401](https://catalog.illinois.edu/search/?P=CSE%20401 "CSEÂ 401"), [ECE 491](https://catalog.illinois.edu/search/?P=ECE%20491 "ECEÂ 491"), or [MATH 450](https://catalog.illinois.edu/search/?P=MATH%20450 "MATHÂ 450"); one of [CS 473](https://catalog.illinois.edu/search/?P=CS%20473 "CSÂ 473"), [CSE 414](https://catalog.illinois.edu/search/?P=CSE%20414 "CSEÂ 414") or [MATH 473](https://catalog.illinois.edu/search/?P=MATH%20473 "MATHÂ 473").
**[CS 545 Machine Learning for Signal Processing credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/545)**
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](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 546 Advanced Topics in Natural Language Processing credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/546)**
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](https://catalog.illinois.edu/search/?P=CS%20447 "CSÂ 447") and one of [CS 446](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446") or [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449"), or equivalent background.
**[CS 547 Deep Learning credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/547)**
Same as [IE 534](https://catalog.illinois.edu/search/?P=IE%20534 "IEÂ 534"). See [IE 534](https://catalog.illinois.edu/search/?P=IE%20534 "IEÂ 534").
**[CS 549 Seminar in Cognitive Science credit: 2 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/549)**
Same as [PSYC 514](https://catalog.illinois.edu/search/?P=PSYC%20514 "PSYCÂ 514"), [ANTH 514](https://catalog.illinois.edu/search/?P=ANTH%20514 "ANTHÂ 514"), [EPSY 551](https://catalog.illinois.edu/search/?P=EPSY%20551 "EPSYÂ 551"), [LING 570](https://catalog.illinois.edu/search/?P=LING%20570 "LINGÂ 570"), and [PHIL 514](https://catalog.illinois.edu/search/?P=PHIL%20514 "PHILÂ 514"). See [PSYC 514](https://catalog.illinois.edu/search/?P=PSYC%20514 "PSYCÂ 514").
**[CS 554 Parallel Numerical Algorithms credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/554)**
Numerical algorithms for parallel computers: parallel algorithms in numerical linear algebra (dense and sparse solvers for linear systems and the algebraic eigenvalue problem), numerical handling of ordinary and partial differential equations, and numerical optimization techniques. Same as [CSE 512](https://catalog.illinois.edu/search/?P=CSE%20512 "CSEÂ 512"). Prerequisite: One of [CS 450](https://catalog.illinois.edu/search/?P=CS%20450 "CSÂ 450"), [CSE 401](https://catalog.illinois.edu/search/?P=CSE%20401 "CSEÂ 401"), [ECE 491](https://catalog.illinois.edu/search/?P=ECE%20491 "ECEÂ 491"), [MATH 450](https://catalog.illinois.edu/search/?P=MATH%20450 "MATHÂ 450"), CS 457, [CS 555](https://catalog.illinois.edu/search/?P=CS%20555 "CSÂ 555"), [CSE 510](https://catalog.illinois.edu/search/?P=CSE%20510 "CSEÂ 510") or [MATH 552](https://catalog.illinois.edu/search/?P=MATH%20552 "MATHÂ 552").
**[CS 555 Numerical Methods for PDEs credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/555)**
Numerical techniques for initial and boundary value problems in partial differential equations. Finite difference and finite element discretization techniques, direct and iterative solution methods for discrete problems, and programming techniques and usage of software packages. Same as [CSE 510](https://catalog.illinois.edu/search/?P=CSE%20510 "CSEÂ 510") and [MATH 552](https://catalog.illinois.edu/search/?P=MATH%20552 "MATHÂ 552"). Prerequisite: [CS 450](https://catalog.illinois.edu/search/?P=CS%20450 "CSÂ 450"), [CSE 401](https://catalog.illinois.edu/search/?P=CSE%20401 "CSEÂ 401"), [ECE 491](https://catalog.illinois.edu/search/?P=ECE%20491 "ECEÂ 491"), [MATH 450](https://catalog.illinois.edu/search/?P=MATH%20450 "MATHÂ 450") or CS 457.
**[CS 556 Iterative & Multigrid Methods credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/556)**
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](https://catalog.illinois.edu/search/?P=CSE%20511 "CSEÂ 511").
**[CS 558 Topics in Numerical Analysis credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/558)**
Advanced topics in numerical analysis selected from areas of current research. Same as [CSE 513](https://catalog.illinois.edu/search/?P=CSE%20513 "CSEÂ 513"). May be repeated. Prerequisite: As specified for each topic offering, see Schedule or departmental course description.
**[CS 562 Advanced Topics in Security, Privacy, and Machine Learning credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/562)**
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](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446") or [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449") and one of [CS 463](https://catalog.illinois.edu/search/?P=CS%20463 "CSÂ 463") or [ECE 424](https://catalog.illinois.edu/search/?P=ECE%20424 "ECEÂ 424"), or equivalent courses, by consent of instructor. Additional prerequisites or corequisites may be specified each term. See section information.
**[CS 563 Advanced Computer Security credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/563)**
Current research trends in computer and network security. Privacy, tamper-resistance, unwanted traffic, monitoring and surveillance, and critical infrastructure protection. Subtopics will vary depending upon current research trends. Students work in teams in close coordination with the course instructor to develop one of the topics in depth by carrying out background research and an exploratory project. Same as [ECE 524](https://catalog.illinois.edu/search/?P=ECE%20524 "ECEÂ 524"). Prerequisite: One of [CS 461](https://catalog.illinois.edu/search/?P=CS%20461 "CSÂ 461"), [CS 463](https://catalog.illinois.edu/search/?P=CS%20463 "CSÂ 463"), [ECE 422](https://catalog.illinois.edu/search/?P=ECE%20422 "ECEÂ 422") or [ECE 424](https://catalog.illinois.edu/search/?P=ECE%20424 "ECEÂ 424").
**[CS 565 Human-Computer Interaction credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/565)**
In-depth coverage of advanced topics in human-computer interaction (HCI). Applied models of human performance and attention, design tools for creative design tasks, interruptions and peripheral displays, gestures, and bimanual input, and usability evaluation techniques. Students complete a research-oriented term project of their choosing. Prerequisite: [CS 465](https://catalog.illinois.edu/search/?P=CS%20465 "CSÂ 465").
**[CS 567 Social Signals and Social Media credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/567)**
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](https://catalog.illinois.edu/search/?P=CS%20465 "CSÂ 465") or equivalent or permission of instructor. Prioritize PhD students, then others.
**[CS 568 User-Centered Machine Learning credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/568)**
Introduces guidelines, processes, and systems for designing effective user experiences powered by machine learning models. Topics include design tradeoffs unique to data-driven products and services such as automation versus control, precision versus recall, and personalization versus privacy. Readings from human computer-interaction, product design, cognitive science, machine learning, computer vision, and natural language processing frame in-class design exercises. Students work in teams on a multi-week research project creating or auditing data-driven experiences. Prerequisite: [CS 465](https://catalog.illinois.edu/search/?P=CS%20465 "CSÂ 465") or equivalent course work.
**[CS 571 Combinatorial Mathematics credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/571)**
Same as [MATH 580](https://catalog.illinois.edu/search/?P=MATH%20580 "MATHÂ 580"). See [MATH 580](https://catalog.illinois.edu/search/?P=MATH%20580 "MATHÂ 580").
**[CS 572 Extremal Graph Theory credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/572)**
Same as [MATH 581](https://catalog.illinois.edu/search/?P=MATH%20581 "MATHÂ 581"). See [MATH 581](https://catalog.illinois.edu/search/?P=MATH%20581 "MATHÂ 581").
**[CS 574 Randomized Algorithms credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/574)**
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](https://catalog.illinois.edu/search/?P=CS%20473 "CSÂ 473"), [CSE 414](https://catalog.illinois.edu/search/?P=CSE%20414 "CSEÂ 414"), or [MATH 473](https://catalog.illinois.edu/search/?P=MATH%20473 "MATHÂ 473"); one of [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 575 Methods of Combinatorics credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/575)**
Same as [MATH 584](https://catalog.illinois.edu/search/?P=MATH%20584 "MATHÂ 584"). See [MATH 584](https://catalog.illinois.edu/search/?P=MATH%20584 "MATHÂ 584").
**[CS 576 Topics in Automated Deduction credit: 2 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/576)**
Advanced topics in computer-aided methods for formal deduction, selected from areas of current research, such as: resolution theorem proving strategies, special relations, equational reasoning, unification theory, rewrite systems, mathematical induction, program derivation, hybrid inference systems, and programming with logic. May be repeated in separate terms. Prerequisite: As specified for each topic offering, see Schedule or departmental course description.
**[CS 579 Computational Complexity credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/579)**
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](https://catalog.illinois.edu/search/?P=ECE%20579 "ECEÂ 579"). Prerequisite: One of [CS 473](https://catalog.illinois.edu/search/?P=CS%20473 "CSÂ 473"), [CSE 414](https://catalog.illinois.edu/search/?P=CSE%20414 "CSEÂ 414"), [MATH 473](https://catalog.illinois.edu/search/?P=MATH%20473 "MATHÂ 473"), [CS 475](https://catalog.illinois.edu/search/?P=CS%20475 "CSÂ 475") or [MATH 475](https://catalog.illinois.edu/search/?P=MATH%20475 "MATHÂ 475").
**[CS 580 Topics in Algorithmic Game Theory credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/580)**
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](https://catalog.illinois.edu/search/?P=CS%20473 "CSÂ 473").
**[CS 581 Algorithmic Genomic Biology credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/581)**
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](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374") and one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361") or [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), or consent of instructor.
**[CS 582 Machine Learning for Bioinformatics credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/582)**
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](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446") or [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449"); Credit or concurrent enrollment in [CS 466](https://catalog.illinois.edu/search/?P=CS%20466 "CSÂ 466"); or consent of instructor.
**[CS 583 Approximation Algorithms credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/583)**
Approximation algorithms for NP-hard problems. Basic and advanced techniques in approximation algorithm design: combinatorial algorithms; mathematical programming methods including linear and semi-definite programming, local search methods, and others. Algorithms for graphs and networks, constraint satisfaction, packing and scheduling. Prerequisite: CS 573, CSE 515 or consent of instructor.
**[CS 584 Embedded System Verification credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/584)**
Same as [ECE 584](https://catalog.illinois.edu/search/?P=ECE%20584 "ECEÂ 584"). See [ECE 584](https://catalog.illinois.edu/search/?P=ECE%20584 "ECEÂ 584").
**[CS 585 Hardware Verification credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/585)**
Same as [ECE 519](https://catalog.illinois.edu/search/?P=ECE%20519 "ECEÂ 519"). See [ECE 519](https://catalog.illinois.edu/search/?P=ECE%20519 "ECEÂ 519").
**[CS 586 Combinatorial Optimization credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/586)**
Same as [IE 519](https://catalog.illinois.edu/search/?P=IE%20519 "IEÂ 519"). See [IE 519](https://catalog.illinois.edu/search/?P=IE%20519 "IEÂ 519").
**[CS 588 Autonomous Vehicle System Engineering credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/588)**
Will introduce students to the computational principles involved in autonomous vehicles, with practical labwork on an actual vehicle. Sensing topics will include vision, lidar and sonar sensing, including state-of-the-art methods for detection, classification, and segmentation. Bayesian filtering methods will be covered in the context of both SLAM and visual tracking. Planning and control topics will cover vehicle dynamics models, state-lattice planning, sampling-based kinodynamic planning, optimal control and trajectory optimization, and some reinforcement learning. Evaluation will involve ambitious challenge projects implemented on a physical vehicle. Prerequisite: [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374"), [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"), [ECE 484](https://catalog.illinois.edu/search/?P=ECE%20484 "ECEÂ 484"), or equivalent.
**[CS 591 Advanced Seminar credit: 0 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/591)**
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 credit: 2 to 16 Hours.](https://courses.illinois.edu/schedule/terms/CS/597)**
Individual study or reading in a subject not covered in normal course offerings. May be repeated. Prerequisite: Consent of instructor.
**[CS 598 Special Topics credit: 2 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/598)**
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.
**[CS 599 Thesis Research credit: 0 to 16 Hours.](https://courses.illinois.edu/schedule/terms/CS/599)**
Approved for S/U grading only. May be repeated in the same term or in separate terms.
[2026-2027 Course Catalog](https://catalog.illinois.edu/courses-of-instruction/cs/)
## Course Catalog Resources
- [Academic Calendar](https://senate.illinois.edu/a_calendar.asp)
- [Class Schedule](https://courses.illinois.edu/)
- [Student Affairs](http://studentaffairs.illinois.edu/)
- [Registration, Tuition, and Cost Information](https://registrar.illinois.edu/)
##
### Around Campus
- [Campus Map](https://map.illinois.edu/view?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [University Admissions](https://illinois.edu/admissions/index.html?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Careers at Illinois](https://jobs.illinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [University News](https://news.illinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Giving at Illinois](https://giving.illinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [University Alumni](https://illinois.edu/alumni/index.html?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Athletics](https://illinois.edu/athletics/index.html?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [University Library](https://www.library.illinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
### Universitywide Resources
- [Emergency Services](https://illinois.edu/resources/emergency.html?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [University Calendars](https://illinois.edu/resources/calendars.html?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [University Directory](https://directory.illinois.edu/search?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Student Assistance Center](https://odos.illinois.edu/community-of-care/student-assistance-%0A%09%09%09%09%09%09center/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Health and Wellness](https://wellness.illinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Parents and Families](https://newstudent.illinois.edu/parents/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [University COVID-19 Information](https://covid19.illinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
### About Illinois
- [VC of Diversity, Equity and Inclusion](https://diversity.illinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Land Acknowledgement](https://chancellor.illinois.edu/land-acknowledgement-statement/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [University Research and Innovation](https://research.illinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Technology Services](https://techservices.illinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Illinois International](https://illinois.edu/international/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [University Strategic Plan](https://strategicplan.illinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [University of Illinois System](https://www.uillinois.edu/?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Privacy](https://www.vpaa.uillinois.edu/resources/web_privacy?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Copyright](https://illinois.edu/resources/website/copyright.html?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
- [Accessibility](https://illinois.edu/resources/website/accessibility.html?utm_source=Illinois_App&utm_medium=web&utm_campaign=Footer)
[Back to top](https://catalog.illinois.edu/courses-of-instruction/cs/#header)
Close this window
## Print Options
- [Send Page to Printer](https://catalog.illinois.edu/courses-of-instruction/cs/)
Print this page.
- [Download Page (PDF)](https://catalog.illinois.edu/courses-of-instruction/cs/cs.pdf)
The PDF will include all information unique to this page.
- [2026-2027 Catalog (PDF)](https://catalog.illinois.edu/pdf/University%20of%20Illinois%20Urbana-Champaign%202026-2027.pdf)
A copy of the full 2026-2027 catalog. |
| Readable Markdown | ### Courses
**[CS 100 Computer Science Orientation credit: 1 Hour.](https://courses.illinois.edu/schedule/terms/CS/100)**
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 credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/101)**
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](https://catalog.illinois.edu/search/?P=MATH%20220 "MATHÂ 220") or [MATH 221](https://catalog.illinois.edu/search/?P=MATH%20221 "MATHÂ 221") or [MATH 231](https://catalog.illinois.edu/search/?P=MATH%20231 "MATHÂ 231") or [MATH 241](https://catalog.illinois.edu/search/?P=MATH%20241 "MATHÂ 241").
This course satisfies the General Education Criteria for:
Quantitative Reasoning II
**[CS 105 Intro Computing: Non-Tech credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/105)**
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](https://catalog.illinois.edu/search/?P=MATH%20112 "MATHÂ 112").
This course satisfies the General Education Criteria for:
Quantitative Reasoning I
**[CS 124 Introduction to Computer Science I credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/124)**
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](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124") and [CS 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125"). Prerequisite: Three years of high school mathematics or [MATH 112](https://catalog.illinois.edu/search/?P=MATH%20112 "MATHÂ 112").
This course satisfies the General Education Criteria for:
Quantitative Reasoning I
**[CS 173 Discrete Structures credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/173)**
\[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](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173") and [MATH 213](https://catalog.illinois.edu/search/?P=MATH%20213 "MATHÂ 213"). Prerequisite: One of [CS 124](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124"), [CS 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125"), [ECE 220](https://catalog.illinois.edu/search/?P=ECE%20220 "ECEÂ 220"); one of [MATH 220](https://catalog.illinois.edu/search/?P=MATH%20220 "MATHÂ 220"), [MATH 221](https://catalog.illinois.edu/search/?P=MATH%20221 "MATHÂ 221").
**[CS 196 First-Year Student Honors credit: 1 Hour.](https://courses.illinois.edu/schedule/terms/CS/196)**
Offered for honors credit in conjunction with other 100-level computer science courses taken concurrently. A special examination may be required for admission to this course. May be repeated if topics vary, for a maximum of 2 hours in the same semester and a maximum of 3 hours total. Prerequisite: Concurrent registration in another 100-level computer science course (see Schedule).
**[CS 211 Ethical and Professional Conduct credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/211)**
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](https://catalog.illinois.edu/search/?P=CS%20211 "CSÂ 211") and [CS 210](https://catalog.illinois.edu/search/?P=CS%20210 "CSÂ 210") or [ECE 316](https://catalog.illinois.edu/search/?P=ECE%20316 "ECEÂ 316"). Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
This course satisfies the General Education Criteria for:
Advanced Composition
**[CS 222 Software Design Lab credit: 1 Hour.](https://courses.illinois.edu/schedule/terms/CS/222)**
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](https://catalog.illinois.edu/search/?P=CS%20128 "CS 128"); credit or concurrent registration in [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CS 225"). Restricted to majors in Computer Science undergraduate curricula only.
**[CS 233 Computer Architecture credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/233)**
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](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125") or [CS 128](https://catalog.illinois.edu/search/?P=CS%20128 "CSÂ 128"); [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173") or [MATH 213](https://catalog.illinois.edu/search/?P=MATH%20213 "MATHÂ 213"); credit or concurrent enrollment in [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 277 Algorithms and Data Structures for Data Science credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/277)**
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](https://catalog.illinois.edu/search/?P=CS%20277 "CSÂ 277") if credit for [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") is earned. Prerequisite: [STAT 207](https://catalog.illinois.edu/search/?P=STAT%20207 "STATÂ 207"); one of [MATH 220](https://catalog.illinois.edu/search/?P=MATH%20220 "MATHÂ 220"), [MATH 221](https://catalog.illinois.edu/search/?P=MATH%20221 "MATHÂ 221"), [MATH 234](https://catalog.illinois.edu/search/?P=MATH%20234 "MATHÂ 234"). [CS 277](https://catalog.illinois.edu/search/?P=CS%20277 "CSÂ 277") cannot be taken concurrently with [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 296 Honors Course credit: 1 Hour.](https://courses.illinois.edu/schedule/terms/CS/296)**
Group projects for honors credit in computer science. Sections of this course are offered in conjunction with other 200-level computer science courses taken concurrently. A special examination may be required for admission to this course. May be repeated. Prerequisite: Concurrent registration in another 200-level computer science course (see Schedule).
**[CS 340 Introduction to Computer Systems credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/340)**
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](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340") and CS 240. Prerequisite: [CS 128](https://catalog.illinois.edu/search/?P=CS%20128 "CSÂ 128") and [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 341 System Programming credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/341)**
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](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") and either CS 241 or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391"). Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") and [CS 233](https://catalog.illinois.edu/search/?P=CS%20233 "CSÂ 233").
**[CS 357 Numerical Methods I credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/357)**
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](https://catalog.illinois.edu/search/?P=MATH%20357 "MATHÂ 357"). Credit is not given toward graduation for: Credit is not given towards graduation for [CS 357](https://catalog.illinois.edu/search/?P=CS%20357 "CSÂ 357") if credit for [CS 450](https://catalog.illinois.edu/search/?P=CS%20450 "CSÂ 450") has been earned. Prerequisite: One of [CS 101](https://catalog.illinois.edu/search/?P=CS%20101 "CSÂ 101"), [CS 105](https://catalog.illinois.edu/search/?P=CS%20105 "CSÂ 105"), [CS 124](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124"), [CS 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125") or [ECE 220](https://catalog.illinois.edu/search/?P=ECE%20220 "ECEÂ 220"); [MATH 241](https://catalog.illinois.edu/search/?P=MATH%20241 "MATHÂ 241"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 227](https://catalog.illinois.edu/search/?P=MATH%20227 "MATHÂ 227"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 361 Probability & Statistics for Computer Science credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/361)**
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](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361") and [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"). Prerequisite: [MATH 220](https://catalog.illinois.edu/search/?P=MATH%20220 "MATHÂ 220") or [MATH 221](https://catalog.illinois.edu/search/?P=MATH%20221 "MATHÂ 221"). Credit or concurrent registration in one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 227](https://catalog.illinois.edu/search/?P=MATH%20227 "MATHÂ 227"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 374 Introduction to Algorithms & Models of Computation credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/374)**
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](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"). Prerequisite: One of [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173"), [MATH 213](https://catalog.illinois.edu/search/?P=MATH%20213 "MATHÂ 213"); [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 398 Special Topics credit: 1 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/398)**
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.
**[CS 400 Accelerated Fundamentals of Computing I credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/400)**
The first class in a sequence of two classes that introduces students to the basic concepts in computing with an emphasis on the fundamental techniques for solving computational problems. Topics include: core programming concepts (variables, data types, conditional expressions, loops, functions), basic data structures, searching and sorting algorithms, and data exploration and visualization. No prior programming experience is required. No undergraduate credit. 3 graduate hours. Prerequisite: Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post-baccalaureate students with a non-computing background.
**[CS 401 Accelerated Fundamentals of Algorithms I credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/401)**
The first class in a sequence of two classes that introduces students to the theoretical foundations of computer science. Topics include counting, sets, functions, decision trees, recursion, binary numbers, basic graph theory, depth first search and breadth first search, algorithms for computing shortest paths, data structures like stacks and queues, big O notation and asymptotic analysis, complexity classes like P and NP, and reductions. No undergraduate credit. 3 graduate hours. Prerequisite: Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post- baccalaureate students with a non-computing background.
**[CS 402 Accelerated Fundamentals of Computing II credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/402)**
Provides an accelerated introduction to class-based program design and the design of abstractions that support the design of reusable software and libraries. It reviews typical object-oriented concepts such as information hiding, encapsulation, polymorphism, inheritance, composition, and common design patterns. The course will also covers exception handling, database programming, and concurrent programming. No undergraduate credit. 3 graduate hours. Prerequisite: [CS 400](https://catalog.illinois.edu/search/?P=CS%20400 "CSÂ 400") or consent of instructor. Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post-baccalaureate students with a non-computing background.
**[CS 403 Accelerated Fundamentals of Algorithms II credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/403)**
The second class in a sequence of two classes that introduces students to the theoretical foundations of computer science. Topics include major paradigms of algorithm design divide and conquer, greedy, recursive, and dynamic programming; solving recurrences and analysis of divide and conquer algorithms; graph algorithms; formal models of computations like finite state automata and Turing machines; reductions. No undergraduate credit. 3 graduate hours. Prerequisite: [CS 401](https://catalog.illinois.edu/search/?P=CS%20401 "CSÂ 401") or consent of instructor. Current enrollment in the Illinois Computing Accelerator for Non-specialists (iCAN) program or consent of instructor. Restricted to post-baccalaureate students with a non-computing background.
**[CS 409 The Art of Web Programming credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/409)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 410 Text Information Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/410)**
Theory, design, and implementation of text-based information systems. Text analysis, retrieval models (e.g., Boolean, vector space, probabilistic), text categorization, text filtering, clustering, retrieval system design and implementation, and applications to web information management. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 411 Database Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/411)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 412 Introduction to Data Mining credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/412)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 414 Multimedia Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/414)**
Organization and structure of modern multimedia systems; audio and video encoding; quality of service concepts; scheduling algorithms for multimedia within OS and networks multimedia protocols over high-speed networks; synchronization schemes, user-interface design; multimedia teleservices. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 240, CS 241, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 415 Game Development credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/415)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 416 Data Visualization credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/416)**
Elements of databases, computer graphics and perceptual psychology combined to utilize the human visual system to improve user understanding of large datasets. Topics include appropriate and effective selection and construction of charts, organization of dashboards, and design for user engagement and interaction. 3 undergraduate hours. 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 419 Production Computer Graphics credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/419)**
Advanced methods for representing, displaying, and rendering two-, three-, and four-dimensional scenes. General algebraic curves and surfaces, splines, Gaussian and bump-function representation, fractals, particle systems, constructive solid geometry methods, lighting models, radiosity, advanced ray-tracing methods, surface texturing animation techniques, data visualization methods. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 418](https://catalog.illinois.edu/search/?P=CS%20418 "CSÂ 418") or [CSE 427](https://catalog.illinois.edu/search/?P=CSE%20427 "CSEÂ 427").
**[CS 420 Parallel Progrmg: Sci & Engrg credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/420)**
Fundamental issues in design and development of parallel programs for various types of parallel computers. Various programming models according to both machine type and application area. Cost models, debugging, and performance evaluation of parallel programs with actual application examples. Same as [CSE 402](https://catalog.illinois.edu/search/?P=CSE%20402 "CSEÂ 402") and [ECE 492](https://catalog.illinois.edu/search/?P=ECE%20492 "ECEÂ 492"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 421 Programming Languages & Compilers credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/421)**
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](https://catalog.illinois.edu/search/?P=CS%20233 "CSÂ 233"), CS 240, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391"); [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406"), or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 424 Real-Time Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/424)**
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](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 426 Compiler Construction credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/426)**
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](https://catalog.illinois.edu/search/?P=CS%20421 "CSÂ 421").
**[CS 428 Software Engineering II credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/428)**
Continuation of [CS 427](https://catalog.illinois.edu/search/?P=CS%20427 "CSÂ 427"). Software development, management, and maintenance. Project and configuration management, collaborative development models, software quality assurance, interoperability domain engineering and software reuse, and software re-engineering. Same as [CSE 429](https://catalog.illinois.edu/search/?P=CSE%20429 "CSEÂ 429"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 427](https://catalog.illinois.edu/search/?P=CS%20427 "CSÂ 427") or [CSE 426](https://catalog.illinois.edu/search/?P=CSE%20426 "CSEÂ 426").
**[CS 431 Embedded Systems credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/431)**
Students will learn embedded system architecture, Real-Time Operating Systems, and real-time software design and development techniques, including 1) real-time software designs, practical signal processing, and control techniques in embedded applications, including the safe use of machine learning, and 2) the schedulability analysis to ensure deadlines of tasks are met. In the lab, students will practice what they learn in the class so that their software can drive a two-wheeled robot car along a course and avoid obstacles autonomously. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 241, [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 433 Computer System Organization credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/433)**
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](https://catalog.illinois.edu/search/?P=CSE%20422 "CSEÂ 422"). 3 undergraduate hours. 4 graduate hours. Prerequisite: [CS 233](https://catalog.illinois.edu/search/?P=CS%20233 "CSÂ 233").
**[CS 435 Cloud Networking credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/435)**
Provides a foundational view of computer networks with a focus on enabling modern large-scale cloud computing. The first part of this course studies the principles upon which the Internet and other networks are built, and how those principles translate into deployed protocols. The second part covers how those principles are applied in network infrastructure for modern clouds, enabling deployment of virtual networks on shared infrastructure, efficient transfer of big data and low latency communication, and federation of applications across countries and continents. 3 undergraduate hours. 4 graduate hours. Credit is not given for both [CS 435](https://catalog.illinois.edu/search/?P=CS%20435 "CSÂ 435") and [CS 438](https://catalog.illinois.edu/search/?P=CS%20438 "CSÂ 438")/[ECE 438](https://catalog.illinois.edu/search/?P=ECE%20438 "ECEÂ 438"). Prerequisite: One of CS 240, CS 241, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 436 Computer Networking Laboratory credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/436)**
Design, application, analysis, and deployment of communication protocols and system software behind modern cloud/compute/network infrastructures. Students learn the internals of modern system infrastructures, including operating system networking kernels, cloud application service code, and firewall and router configuration. Students will gain experience with widely-used and production-grade code and systems, such as Cisco IOS, the Linux networking stack, and Amazon Web Services. This class links theory with practice to prepare students to confidently carry out tasks they will commonly encounter in industry, such as building an enterprise network, deploying a large-scale cloud service, or implementing a new network protocol. Same as [ECE 435](https://catalog.illinois.edu/search/?P=ECE%20435 "ECEÂ 435"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 240, CS 241, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 437 Topics in Internet of Things credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/437)**
Topics of networked embedded computing technology, known as the Internet of Things, in application, distributed, human-centric, or social contexts. The tight coupling between people, networking protocols, computing elements, and physical things in IoT systems presents unique challenges for data collection, processing in constrained computation and communication environments. Introduces general principles of IoT systems and protocol, offers broad foundations for IoT services, and allows specialization to pursue an in-depth understanding of selected IoT aspects or subtopics. 3 undergraduate hours. 4 graduate hours. 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. Prerequisite: CS 241 or [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341"). Additional prerequisites may be specified each term. See section information.
**[CS 438 Communication Networks credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/438)**
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](https://catalog.illinois.edu/search/?P=ECE%20438 "ECEÂ 438"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 241, [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391"); strongly recommend one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 440 Artificial Intelligence credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/440)**
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](https://catalog.illinois.edu/search/?P=ECE%20448 "ECEÂ 448"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463"), [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400") or [BIOE 310](https://catalog.illinois.edu/search/?P=BIOE%20310 "BIOEÂ 310").
**[CS 441 Applied Machine Learning credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/441)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") or [CS 277](https://catalog.illinois.edu/search/?P=CS%20277 "CSÂ 277"), and one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [BIOE 310](https://catalog.illinois.edu/search/?P=BIOE%20310 "BIOEÂ 310"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 442 Trustworthy Machine Learning credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/442)**
Prepares students to understand the security and privacy problems in machine learning and educates students to propose different attack strategies to identify the vulnerabilities of a range of learning algorithms and understand different defense approaches towards trustworthy machine learning systems. Students will explore topics including basic machine learning foundations (e.g., linear regression and PCA), adversarial attacks against different learning algorithms, differential privacy, data valuation, and different categories of defenses. The lessons are reinforced via a series of topic-driven lectures, coding assignments, related paper readings, exams and in-class discussions. Students will learn to analyze current interactions between attackers and defenders on machine learning and therefore develop an understanding of the principles on trustworthy machine learning which is an emerging and important topic. Students will be required to finish three related homework projects, including 1) developing a machine learning classifier, 2) designing adversarial attacks against the built classifier, and 3) developing defenses to improve the robustness of the trained classifier against designed attacks. Students registered for 4 credit hours will also finish a final project based on the class topics, demonstrating their ability to propose related new algorithms based on the class subjects. 3 undergraduate hours. 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [CS 440](https://catalog.illinois.edu/search/?P=CS%20440 "CSÂ 440"), [ECE 448](https://catalog.illinois.edu/search/?P=ECE%20448 "ECEÂ 448"), [CS 441](https://catalog.illinois.edu/search/?P=CS%20441 "CSÂ 441"), [CS 446](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446") or [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 443 Reinforcement Learning credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/443)**
Fundamental concepts and basic algorithms in Reinforcement Learning (RL) - a machine learning paradigm for sequential decision-making. The goal of this course is to enable students to (1) understand the mathematical framework of RL, (2) tell what problems can be solved with RL, and how to cast these problems into the RL formulation, (3) understand why and how RL algorithms are designed to work, and (4) know how to experimentally and mathematically evaluate the effectiveness of an RL algorithm. There will be both programming and written assignments. 3 undergraduate hours. 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); [MATH 241](https://catalog.illinois.edu/search/?P=MATH%20241 "MATHÂ 241"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 444 Deep Learning for Computer Vision credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/444)**
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](https://catalog.illinois.edu/search/?P=ECE%20494 "ECEÂ 494"). 3 undergraduate hours. 4 graduate hours. Prerequisite: [MATH 241](https://catalog.illinois.edu/search/?P=MATH%20241 "MATHÂ 241"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406"), or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210"); [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400"). No previous exposure to machine learning is required.
**[CS 446 Machine Learning credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/446)**
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](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); One of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463"), [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400") or [BIOE 310](https://catalog.illinois.edu/search/?P=BIOE%20310 "BIOEÂ 310").
**[CS 447 Natural Language Processing credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/447)**
Part-of-speech tagging, parsing, semantic analysis and machine translation. Relevant linguistics concepts from morphology (word formation) and lexical semantics (the meaning of words) to syntax (sentence structure) and compositional semantics (the meaning of sentences). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173") or [MATH 213](https://catalog.illinois.edu/search/?P=MATH%20213 "MATHÂ 213"); [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463"), [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400") or [BIOE 310](https://catalog.illinois.edu/search/?P=BIOE%20310 "BIOEÂ 310"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 448 Audio Computing Laboratory credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/448)**
Computational foundations of modern audio applications: theory of audio processing for implementation of applications such as room and 3D/virtual audio rendering, pitch manipulations and autotuning, denoising for communications and forensics, audio classification, music information retrieval based on audio, rudimentary speech recognition, speech and audio coding, applications of machine learning to audio scene recognition, audio restoration, missing data recovery, and many more. This will be a lab-like course in which students collectively implement a variety of core audio operations that are commonplace today. Students will be required to bring to class their laptops and headphones to participate in lab exercises. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: One of CS 240, CS 241, [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341"), or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406"), or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210").
**[CS 450 Numerical Analysis credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/450)**
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](https://catalog.illinois.edu/search/?P=CSE%20401 "CSEÂ 401"), [ECE 491](https://catalog.illinois.edu/search/?P=ECE%20491 "ECEÂ 491"), and [MATH 450](https://catalog.illinois.edu/search/?P=MATH%20450 "MATHÂ 450"). 3 undergraduate hours. 3 or 4 graduate hours. Credit is not given toward graduation for both [CS 450](https://catalog.illinois.edu/search/?P=CS%20450 "CSÂ 450") and CS 457. Prerequisite: One of [CS 101](https://catalog.illinois.edu/search/?P=CS%20101 "CSÂ 101"), [CS 124](https://catalog.illinois.edu/search/?P=CS%20124 "CSÂ 124") or [CS 125](https://catalog.illinois.edu/search/?P=CS%20125 "CSÂ 125"); one of [CS 357](https://catalog.illinois.edu/search/?P=CS%20357 "CSÂ 357"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 357](https://catalog.illinois.edu/search/?P=MATH%20357 "MATHÂ 357"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), or [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"); [MATH 285](https://catalog.illinois.edu/search/?P=MATH%20285 "MATHÂ 285").
**[CS 452 Topics in Robotics credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/452)**
Topics in robotics presented from a computational perspective, including artificial intelligence, algorithms, computational modeling, and/or software engineering. Generating intelligent behavior for a physical robot poses unique computational challenges in decision making, perception, representations of three-dimensional worlds and movement, and system integration. This course introduces general computational principles used in robotics as well as performing in-depth study of selected subtopics. 3 undergraduate hours. 3 or 4 graduate hours. May be repeated in the same term up to 6 undergraduate or 8 graduate hours, or in separate terms up to 12 undergraduate or 16 graduate hours, if topics vary. Prerequisite: ([CS 128](https://catalog.illinois.edu/search/?P=CS%20128 "CSÂ 128") or [ECE 220](https://catalog.illinois.edu/search/?P=ECE%20220 "ECEÂ 220")) and [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") and (CS 241 or [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391")).
**[CS 460 Security Laboratory credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/460)**
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](https://catalog.illinois.edu/search/?P=CS%20461 "CSÂ 461") via hands-on project. Same as [ECE 419](https://catalog.illinois.edu/search/?P=ECE%20419 "ECEÂ 419"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 461](https://catalog.illinois.edu/search/?P=CS%20461 "CSÂ 461") or [ECE 422](https://catalog.illinois.edu/search/?P=ECE%20422 "ECEÂ 422") or a combination of [CS 463](https://catalog.illinois.edu/search/?P=CS%20463 "CSÂ 463") and one of [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340"), [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 461 Computer Security I credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/461)**
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](https://catalog.illinois.edu/search/?P=ECE%20422 "ECEÂ 422"). 4 undergraduate hours. 4 graduate hours. Prerequisite: One of CS 241, [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391"), or a combination of [CS 233](https://catalog.illinois.edu/search/?P=CS%20233 "CSÂ 233") and [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340").
**[CS 462 Issues of Law and Policy in Computer Science credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/462)**
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](https://catalog.illinois.edu/search/?P=CS%20462 "CSÂ 462") and [CS 498](https://catalog.illinois.edu/search/?P=CS%20498 "CSÂ 498"), Law \&Policy Issues in CS. Prerequisite: [CS 340](https://catalog.illinois.edu/search/?P=CS%20340 "CSÂ 340") or [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341") or [ECE 391](https://catalog.illinois.edu/search/?P=ECE%20391 "ECEÂ 391").
**[CS 463 Computer Security II credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/463)**
Program security, trusted base, privacy, anonymity, non-interference, information flow, confinement, advanced auditing, forensics, intrusion detection, key management and distribution, policy composition and analysis, formal approaches to specification and verification of secure systems and protocols, and topics in applied cryptography. Same as [ECE 424](https://catalog.illinois.edu/search/?P=ECE%20424 "ECEÂ 424"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225") and one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400"). [CS 441](https://catalog.illinois.edu/search/?P=CS%20441 "CSÂ 441") completion is recommended.
**[CS 464 Topics in Societal and Ethical Impacts of Computer Technology credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/464)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"). One of [CS 210](https://catalog.illinois.edu/search/?P=CS%20210 "CSÂ 210") or [CS 211](https://catalog.illinois.edu/search/?P=CS%20211 "CSÂ 211") or [ECE 316](https://catalog.illinois.edu/search/?P=ECE%20316 "ECEÂ 316") or [PHIL 316](https://catalog.illinois.edu/search/?P=PHIL%20316 "PHILÂ 316"). One of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400") or [STAT 200](https://catalog.illinois.edu/search/?P=STAT%20200 "STATÂ 200"). Restricted to students with senior standing.
**[CS 465 User Interface Design credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/465)**
A project-focused course covering fundamental principles of user interface design, implementation, and evaluation. Small teams work on a term-long project that involves: analysis of the problem domain, user skills, and tasks; iterative prototyping of interfaces to address user needs; conducting several forms of evaluation such as cognitive walkthroughs and usability tests; implementation of the final prototype. Non-technical majors may enroll as non-programmers who participate in all aspects of the projects with the possible exception of implementation. 4 undergraduate hours. 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 466 Introduction to Bioinformatics credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/466)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 467 Social Visualization credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/467)**
Visualizing social interaction in networked spaces: investigation of patterns in networked communications systems such as messaging (email, instant messaging), social networking sites and collaborative sites; social network theory and visualizations; exploration of how to move beyond existing visualization techniques; visualizing the network identity over compilations of online data. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225").
**[CS 469 Computational Advertising Infrastructure credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/469)**
Thorough coverage of technologies including web-search, auctions, behavioral targeting, mechanisms for viral marketing, that underpin the display of advertisements on a variety of locations (e.g., ads on search engines; display ads). Students shall also learn about emerging areas in computational advertising including location-based adverting and algorithmic synthesis of personalized advertisements. Discussion around privacy will be a significant focus of the class. Same as [ADV 462](https://catalog.illinois.edu/search/?P=ADV%20462 "ADVÂ 462"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CSÂ 173"); [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATHÂ 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRMÂ 406") or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOEÂ 210"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 470 Social and Information Networks credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/470)**
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](https://catalog.illinois.edu/search/?P=CS%20225 "CS 225"); [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CS 173"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CS 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STAT 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECE 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATH 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATH 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATH 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STAT 400"); one of [MATH 225](https://catalog.illinois.edu/search/?P=MATH%20225 "MATH 225"), [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATH 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATH 415"), [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATH 416"), [ASRM 406](https://catalog.illinois.edu/search/?P=ASRM%20406 "ASRM 406"), or [BIOE 210](https://catalog.illinois.edu/search/?P=BIOE%20210 "BIOE 210").
**[CS 473 Algorithms credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/473)**
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](https://catalog.illinois.edu/search/?P=CSE%20414 "CSEÂ 414") and [MATH 473](https://catalog.illinois.edu/search/?P=MATH%20473 "MATHÂ 473"). 4 undergraduate hours. 4 graduate hours. Prerequisite: [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"), and one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 474 Logic in Computer Science credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/474)**
An introduction to mathematical logic from the perspective of computer science, emphasizing both computable aspects of logic, especially automated reasoning, as well as applications of logic to computer science in artificial intelligence, databases, formal methods, and theoretical computer science. Prepares students to use logic as a formal tool to solve problems in computer science and AI. Topics include: syntax, semantics and proofs for propositional and first order logic, the decidable logics and efficient realizations in terms of SAT/SMT solvers, decision and semi-decision procedures for first order logic and several first order logic theories, finite model theory and descriptive complexity. Additional topics include: connections between logic and machine learning, higher order logics, applications of logic to program verification, applications of logic in knowledge representation, proof complexity, modal and temporal logic, Courcelle’s theorem and its applications in parameterized complexity, logic and its role in automatic program synthesis, connections between logic and database query languages. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 173](https://catalog.illinois.edu/search/?P=CS%20173 "CS 173"); [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CS 225"); one of [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CS 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECE 374").
**[CS 475 Formal Models of Computation credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/475)**
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](https://catalog.illinois.edu/search/?P=MATH%20475 "MATHÂ 475"). 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374").
**[CS 476 Program Verification credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/476)**
Formal methods for demonstrating correctness and other properties of programs. Invariant assertions; Hoare axiomatics; well-founded orderings for proving termination; structural induction; computational induction; data structures; parallel programs; overview of predicate calculus. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374"), [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374") or [MATH 414](https://catalog.illinois.edu/search/?P=MATH%20414 "MATHÂ 414").
**[CS 478 Quantum Algorithms and Complexity credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/478)**
A comprehensive introduction to the theoretical foundations of quantum computing, preparing students for advanced study in quantum information sciences: Building blocks of quantum information such as qubits and entanglement; basic quantum operations such as quantum gates and measurements, and key quantum protocols and algorithms like teleportation and Shor's factoring algorithm. Advanced topics include modern quantum algorithms, quantum learning, quantum complexity theory, cryptography, and error correction. Emphasis on theoretical aspects of design and analysis of quantum algorithms and their computational limits. Prior quantum physics knowledge is helpful but not required. 3 undergraduate hours. 4 graduate hours. Prerequisite: [CS 225](https://catalog.illinois.edu/search/?P=CS%20225 "CSÂ 225"); one of [MATH 257](https://catalog.illinois.edu/search/?P=MATH%20257 "MATHÂ 257"), [MATH 415](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415") or [MATH 416](https://catalog.illinois.edu/search/?P=MATH%20416 "MATHÂ 416"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [ECE 313](https://catalog.illinois.edu/search/?P=ECE%20313 "ECEÂ 313"), [MATH 362](https://catalog.illinois.edu/search/?P=MATH%20362 "MATHÂ 362"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463"), [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400"), [PHYS 214](https://catalog.illinois.edu/search/?P=PHYS%20214 "PHYSÂ 214") or [PHYS 486](https://catalog.illinois.edu/search/?P=PHYS%20486 "PHYSÂ 486"). Credit or concurrent enrollment in CS/[ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374") is encouraged.
**[CS 484 Parallel Programming credit: 3 or 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/484)**
Techniques for the programming of all classes of parallel computers and devices including shared memory and distributed memory multiprocessors, SIMD processors and co-processors, and special purpose devices. Key concepts in parallel programming such as reactive and transformational programming, speculation, speedup, isoefficiency, and load balancing. Synchronization primitives, libraries and languages for parallel programming such as OpenMP and MPI, performance monitoring, program tuning, analysis and programming of numerical and symbolic parallel algorithms. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 241 or [CS 341](https://catalog.illinois.edu/search/?P=CS%20341 "CSÂ 341").
**[CS 491 Seminar credit: 0 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/491)**
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 credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/492)**
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](https://catalog.illinois.edu/search/?P=CS%20492 "CSÂ 492") must be taken as a sequence with either [CS 493](https://catalog.illinois.edu/search/?P=CS%20493 "CSÂ 493") or [CS 494](https://catalog.illinois.edu/search/?P=CS%20494 "CSÂ 494"). 3 undergraduate hours. No graduate credit. Credit is not given for both [CS 492](https://catalog.illinois.edu/search/?P=CS%20492 "CSÂ 492") and a project course in another engineering department for the same project. Prerequisite: For Computer Science majors with senior standing.
**[CS 493 Senior Project II, ACP credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/493)**
Continuation of [CS 492](https://catalog.illinois.edu/search/?P=CS%20492 "CSÂ 492"). Identical to [CS 494](https://catalog.illinois.edu/search/?P=CS%20494 "CSÂ 494") except for an additional writing component. See [CS 494](https://catalog.illinois.edu/search/?P=CS%20494 "CSÂ 494"). 3 undergraduate hours. No graduate credit. Credit is not given for both [CS 493](https://catalog.illinois.edu/search/?P=CS%20493 "CSÂ 493") and a project course in another engineering department for the same project. Prerequisite: [CS 492](https://catalog.illinois.edu/search/?P=CS%20492 "CSÂ 492").
This course satisfies the General Education Criteria for:
Advanced Composition
**[CS 497 CS Team Project credit: 1 to 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/497)**
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 credit: 1 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/498)**
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 credit: 3 Hours.](https://courses.illinois.edu/schedule/terms/CS/499)**
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.
This course satisfies the General Education Criteria for:
Advanced Composition
**[CS 500 Current Topics in Computing Education Research credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/500)**
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 credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/507)**
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 510 Advanced Information Retrieval credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/510)**
Advanced concepts, models, and algorithms in information retrieval and major recent developments in the field, including historical milestones in information retrieval research, evaluation methodology, vector space retrieval model, probabilistic retrieval models, learning to rank algorithms, probabilistic topic models, information retrieval systems, text analytics, and topics of research frontiers in information retrieval. Prerequisite: One of [CS 410](https://catalog.illinois.edu/search/?P=CS%20410 "CSÂ 410"), [CS 412](https://catalog.illinois.edu/search/?P=CS%20412 "CSÂ 412"), [CS 446](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446"), [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449") or [LING 406](https://catalog.illinois.edu/search/?P=LING%20406 "LINGÂ 406").
**[CS 511 Advanced Data Management credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/511)**
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](https://catalog.illinois.edu/search/?P=CS%20411 "CSÂ 411").
**[CS 512 Data Mining Principles credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/512)**
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](https://catalog.illinois.edu/search/?P=CS%20412 "CSÂ 412").
**[CS 514 Advanced Topics in Network Science credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/514)**
We shall discuss classic and recent research in network analysis. Advanced topics include individual decision-making models, game theory, mechanism design, social choice, social signal design, diffusion of behavior on a network, choice architecture, network models, network mining algorithms and applications. 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 412](https://catalog.illinois.edu/search/?P=CS%20412 "CSÂ 412"); one of [CS 446](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446") or [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449"). Additional prerequisites or corequisites may be specified each term. See section information.
**[CS 519 Scientific Visualization credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/519)**
Visualization techniques useful in analysis of engineering and scientific data. Physical models; methods of computational science; two- and three-dimensional data types; visual representation schemes for scalar, vector, and tensor data; isosurface and volume visualization methods; visual monitoring; interactive steering. Same as [CSE 527](https://catalog.illinois.edu/search/?P=CSE%20527 "CSEÂ 527"). Prerequisite: [CS 418](https://catalog.illinois.edu/search/?P=CS%20418 "CSÂ 418") or [CSE 427](https://catalog.illinois.edu/search/?P=CSE%20427 "CSEÂ 427").
**[CS 521 Advanced Topics in Programming Systems credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/521)**
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](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"); [CS 421](https://catalog.illinois.edu/search/?P=CS%20421 "CSÂ 421"). Additional prerequisites or corequisites may be specified each term. See section information.
**[CS 523 Advanced Operating Systems credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/523)**
Advanced concepts in operating system design and coverage of recent research directions. Resource management for parallel and distributed systems. Interaction between operating system design and computer architectures. Process management, virtual memory, interprocess communication, context switching, parallel and distributed file system designs, persistent objects, process and data migration, load balancing, security, protection. Term projects. Prerequisite: One of [CS 423](https://catalog.illinois.edu/search/?P=CS%20423 "CSÂ 423") or [CSE 423](https://catalog.illinois.edu/search/?P=CSE%20423 "CSEÂ 423"); one of [CS 425](https://catalog.illinois.edu/search/?P=CS%20425 "CSÂ 425") or [ECE 428](https://catalog.illinois.edu/search/?P=ECE%20428 "ECEÂ 428"); and one of [CS 433](https://catalog.illinois.edu/search/?P=CS%20433 "CSÂ 433") or [CSE 422](https://catalog.illinois.edu/search/?P=CSE%20422 "CSEÂ 422").
**[CS 524 Concurrent Progrmg Languages credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/524)**
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](https://catalog.illinois.edu/search/?P=CS%20422 "CSÂ 422"); one of [CS 475](https://catalog.illinois.edu/search/?P=CS%20475 "CSÂ 475"), [MATH 475](https://catalog.illinois.edu/search/?P=MATH%20475 "MATHÂ 475") or [CS 476](https://catalog.illinois.edu/search/?P=CS%20476 "CSÂ 476").
**[CS 525 Advanced Distributed Systems credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/525)**
Peer-to-peer systems, sensor networks, and fundamental theoretical distributed computing. Review of classical work in each area, and application of design methodologies to explore overlaps across them. Emphasis on protocol design, systems issues, and theory. Reading selections are roughly two-third classical to one-third contemporary. Students write critiques, make presentations, and create a conference paper in a systematic manner. Prerequisite: One of [CS 423](https://catalog.illinois.edu/search/?P=CS%20423 "CSÂ 423"), [CSE 423](https://catalog.illinois.edu/search/?P=CSE%20423 "CSEÂ 423"), [CS 425](https://catalog.illinois.edu/search/?P=CS%20425 "CSÂ 425"), [ECE 428](https://catalog.illinois.edu/search/?P=ECE%20428 "ECEÂ 428"), [CS 438](https://catalog.illinois.edu/search/?P=CS%20438 "CSÂ 438") or [ECE 438](https://catalog.illinois.edu/search/?P=ECE%20438 "ECEÂ 438").
**[CS 534 Advanced Topics in Computer Architecture credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/534)**
Current topics in computer architecture, selected from areas of current research such as: energy efficiency, processing in memory, cloud computing, 3-D architectures, security and privacy, hardware and software resiliency, cross-stack design, heterogeneous platforms, approximate computing, mobile computing, machine learning accelerators, and novel computing technologies. 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 433](https://catalog.illinois.edu/search/?P=CS%20433 "CSÂ 433") or [CSE 422](https://catalog.illinois.edu/search/?P=CSE%20422 "CSEÂ 422"). Additional prerequisites or co-requisites may be specified each term. See Class Schedule information.
**[CS 537 Advanced Topics in Internet of Things (IoT) credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/537)**
Advanced topics in Internet of Things (IoT) algorithms, protocols, architectures, systems, and infrastructures, selected from areas of current research such as: IoT sensors representations and compression, streaming and caching of IoT data, IoT analytics and feature learning, IoT-edge-cloud computing infrastructures, resource optimization for multi-modal IoT systems, applications and human perception of IoT. Students will read and discuss recent research papers and conduct a semester-long research project. 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. Prerequisite: One of [CS 425](https://catalog.illinois.edu/search/?P=CS%20425 "CSÂ 425") or [ECE 428](https://catalog.illinois.edu/search/?P=ECE%20428 "ECEÂ 428"); one of [CS 438](https://catalog.illinois.edu/search/?P=CS%20438 "CSÂ 438") or [ECE 438](https://catalog.illinois.edu/search/?P=ECE%20438 "ECEÂ 438"). Additional prerequisites may be specified each term. See section information.
**[CS 540 Deep Learning Theory credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/540)**
A rigorous mathematical course covering foundational analyses of the approximation, optimization, and generalization properties of Deep Neural Networks. Topics include: constructive and non-constructive approximations with one hidden layer; benefits of depth; optimization in the NTK regime; maximum margin optimization outside the NTK regime; Rademacher complexity, VC dimensino, and covering number bounds for ReLU networks. Evaluation is primarily based on homeworks, with a smaller project component. The course goal is to prepare students perform their own research in the field. Prerequisite: Basic linear algebra, probability, proof-writing, and statistics required. Real analysis recommended.
**[CS 542 Statistical Reinforcement Learning credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/542)**
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 544 Optimiz in Computer Vision credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/544)**
Applications of continuous and discrete optimization to problems in computer vision and machine learning, with particular emphasis on large-scale algorithms and effective approximations: gradient-based learning; Newton's method and variants, applied to structure from motion problems; the augmented Lagrangian method and variants; interior-point methods; SMO and other specialized algorithms for support vector machines; flows and cuts as examples of primal-dual methods; dynamics programming, hidden Markov models, and parsing: 0-1 quadratic forms, max-cut, and Markov random-fields solutions. Prerequisite: One of [CS 450](https://catalog.illinois.edu/search/?P=CS%20450 "CSÂ 450"), [CSE 401](https://catalog.illinois.edu/search/?P=CSE%20401 "CSEÂ 401"), [ECE 491](https://catalog.illinois.edu/search/?P=ECE%20491 "ECEÂ 491"), or [MATH 450](https://catalog.illinois.edu/search/?P=MATH%20450 "MATHÂ 450"); one of [CS 473](https://catalog.illinois.edu/search/?P=CS%20473 "CSÂ 473"), [CSE 414](https://catalog.illinois.edu/search/?P=CSE%20414 "CSEÂ 414") or [MATH 473](https://catalog.illinois.edu/search/?P=MATH%20473 "MATHÂ 473").
**[CS 545 Machine Learning for Signal Processing credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/545)**
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](https://catalog.illinois.edu/search/?P=MATH%20415 "MATHÂ 415"); one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361"), [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 546 Advanced Topics in Natural Language Processing credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/546)**
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](https://catalog.illinois.edu/search/?P=CS%20447 "CSÂ 447") and one of [CS 446](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446") or [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449"), or equivalent background.
**[CS 562 Advanced Topics in Security, Privacy, and Machine Learning credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/562)**
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](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446") or [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449") and one of [CS 463](https://catalog.illinois.edu/search/?P=CS%20463 "CSÂ 463") or [ECE 424](https://catalog.illinois.edu/search/?P=ECE%20424 "ECEÂ 424"), or equivalent courses, by consent of instructor. Additional prerequisites or corequisites may be specified each term. See section information.
**[CS 563 Advanced Computer Security credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/563)**
Current research trends in computer and network security. Privacy, tamper-resistance, unwanted traffic, monitoring and surveillance, and critical infrastructure protection. Subtopics will vary depending upon current research trends. Students work in teams in close coordination with the course instructor to develop one of the topics in depth by carrying out background research and an exploratory project. Same as [ECE 524](https://catalog.illinois.edu/search/?P=ECE%20524 "ECEÂ 524"). Prerequisite: One of [CS 461](https://catalog.illinois.edu/search/?P=CS%20461 "CSÂ 461"), [CS 463](https://catalog.illinois.edu/search/?P=CS%20463 "CSÂ 463"), [ECE 422](https://catalog.illinois.edu/search/?P=ECE%20422 "ECEÂ 422") or [ECE 424](https://catalog.illinois.edu/search/?P=ECE%20424 "ECEÂ 424").
**[CS 565 Human-Computer Interaction credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/565)**
In-depth coverage of advanced topics in human-computer interaction (HCI). Applied models of human performance and attention, design tools for creative design tasks, interruptions and peripheral displays, gestures, and bimanual input, and usability evaluation techniques. Students complete a research-oriented term project of their choosing. Prerequisite: [CS 465](https://catalog.illinois.edu/search/?P=CS%20465 "CSÂ 465").
**[CS 567 Social Signals and Social Media credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/567)**
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](https://catalog.illinois.edu/search/?P=CS%20465 "CSÂ 465") or equivalent or permission of instructor. Prioritize PhD students, then others.
**[CS 568 User-Centered Machine Learning credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/568)**
Introduces guidelines, processes, and systems for designing effective user experiences powered by machine learning models. Topics include design tradeoffs unique to data-driven products and services such as automation versus control, precision versus recall, and personalization versus privacy. Readings from human computer-interaction, product design, cognitive science, machine learning, computer vision, and natural language processing frame in-class design exercises. Students work in teams on a multi-week research project creating or auditing data-driven experiences. Prerequisite: [CS 465](https://catalog.illinois.edu/search/?P=CS%20465 "CSÂ 465") or equivalent course work.
**[CS 574 Randomized Algorithms credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/574)**
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](https://catalog.illinois.edu/search/?P=CS%20473 "CSÂ 473"), [CSE 414](https://catalog.illinois.edu/search/?P=CSE%20414 "CSEÂ 414"), or [MATH 473](https://catalog.illinois.edu/search/?P=MATH%20473 "MATHÂ 473"); one of [MATH 461](https://catalog.illinois.edu/search/?P=MATH%20461 "MATHÂ 461"), [MATH 463](https://catalog.illinois.edu/search/?P=MATH%20463 "MATHÂ 463") or [STAT 400](https://catalog.illinois.edu/search/?P=STAT%20400 "STATÂ 400").
**[CS 576 Topics in Automated Deduction credit: 2 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/576)**
Advanced topics in computer-aided methods for formal deduction, selected from areas of current research, such as: resolution theorem proving strategies, special relations, equational reasoning, unification theory, rewrite systems, mathematical induction, program derivation, hybrid inference systems, and programming with logic. May be repeated in separate terms. Prerequisite: As specified for each topic offering, see Schedule or departmental course description.
**[CS 579 Computational Complexity credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/579)**
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](https://catalog.illinois.edu/search/?P=ECE%20579 "ECEÂ 579"). Prerequisite: One of [CS 473](https://catalog.illinois.edu/search/?P=CS%20473 "CSÂ 473"), [CSE 414](https://catalog.illinois.edu/search/?P=CSE%20414 "CSEÂ 414"), [MATH 473](https://catalog.illinois.edu/search/?P=MATH%20473 "MATHÂ 473"), [CS 475](https://catalog.illinois.edu/search/?P=CS%20475 "CSÂ 475") or [MATH 475](https://catalog.illinois.edu/search/?P=MATH%20475 "MATHÂ 475").
**[CS 580 Topics in Algorithmic Game Theory credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/580)**
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](https://catalog.illinois.edu/search/?P=CS%20473 "CSÂ 473").
**[CS 581 Algorithmic Genomic Biology credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/581)**
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](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374") or [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374") and one of [CS 361](https://catalog.illinois.edu/search/?P=CS%20361 "CSÂ 361") or [STAT 361](https://catalog.illinois.edu/search/?P=STAT%20361 "STATÂ 361"), or consent of instructor.
**[CS 582 Machine Learning for Bioinformatics credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/582)**
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](https://catalog.illinois.edu/search/?P=CS%20446 "CSÂ 446") or [ECE 449](https://catalog.illinois.edu/search/?P=ECE%20449 "ECEÂ 449"); Credit or concurrent enrollment in [CS 466](https://catalog.illinois.edu/search/?P=CS%20466 "CSÂ 466"); or consent of instructor.
**[CS 583 Approximation Algorithms credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/583)**
Approximation algorithms for NP-hard problems. Basic and advanced techniques in approximation algorithm design: combinatorial algorithms; mathematical programming methods including linear and semi-definite programming, local search methods, and others. Algorithms for graphs and networks, constraint satisfaction, packing and scheduling. Prerequisite: CS 573, CSE 515 or consent of instructor.
**[CS 588 Autonomous Vehicle System Engineering credit: 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/588)**
Will introduce students to the computational principles involved in autonomous vehicles, with practical labwork on an actual vehicle. Sensing topics will include vision, lidar and sonar sensing, including state-of-the-art methods for detection, classification, and segmentation. Bayesian filtering methods will be covered in the context of both SLAM and visual tracking. Planning and control topics will cover vehicle dynamics models, state-lattice planning, sampling-based kinodynamic planning, optimal control and trajectory optimization, and some reinforcement learning. Evaluation will involve ambitious challenge projects implemented on a physical vehicle. Prerequisite: [CS 374](https://catalog.illinois.edu/search/?P=CS%20374 "CSÂ 374"), [ECE 374](https://catalog.illinois.edu/search/?P=ECE%20374 "ECEÂ 374"), [ECE 484](https://catalog.illinois.edu/search/?P=ECE%20484 "ECEÂ 484"), or equivalent.
**[CS 591 Advanced Seminar credit: 0 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/591)**
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 598 Special Topics credit: 2 to 4 Hours.](https://courses.illinois.edu/schedule/terms/CS/598)**
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. |
| Shard | 109 (laksa) |
| Root Hash | 5087864546879250709 |
| Unparsed URL | edu,illinois!catalog,/courses-of-instruction/cs/ s443 |