Computer Science

Courses

CS 500 Fundamentals of Databases 3.0 Credits

This course gives an introduction to data management at scale. Covered topics include ER and relational modeling, SQL, database application development, query processing, and data management on distributed platforms.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 501 Introduction to Programming 3.0 Credits

Develops an understanding of the principles, knowledge, and skills in the practice of programming. For both students with no programming experience and those with a small amount of programming experience, this course will bring them up to speed and prepare them for graduate study in Computer Science.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit

CS 502 Data Structures and Algorithms 3.0 Credits

An introduction to classical algorithms with a focus on implementation and applications. Covers both analysis and implementation of algorithms. Algorithms include searching, sorting, and shortest path. Data Structures and their analysis is also covered. Data Structures include trees and graphs.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 501 [Min Grade: C]

CS 503 Systems Basics 3.0 Credits

This course will introduce fundamental concepts of computer architecture and operating systems, covering the Unix environment from the perspective of an application developer and a systems programmer. Topics include scripting, languages and tools that are part of the Unix environment, as well as introduction to system programming topics, including OS processes and threads, memory management, concurrency, inter-process communication and networking.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 501 [Min Grade: C] (Can be taken Concurrently)

CS 504 Introduction to Software Design 3.0 Credits

This course features hands-on and project-based approaches to object-oriented design, covering abstraction, modularization, inheritance, polymorphism, encapsulation, design principles, design patterns, as well as design modeling languages. Basic concepts of software architecture and database will also be introduced.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 502 [Min Grade: C] (Can be taken Concurrently) and CS 503 [Min Grade: C]

CS 510 Introduction to Artificial Intelligence 3.0 Credits

Well-formed problems; state spaces and search spaces; Lisp and functional programming; uninformed search; heuristic search; stochastic search; knowledge representation; propositional logic; first order logic; predicate calculus; planning; partial order planning; hierarchical planning.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 511 Robot Laboratory 3.0 Credits

Building and programming machines built out of construction pieces, a micro-controller, actuators, motors, sensors, that interact with the world using limited computational resources. Issues in mechanics, physics, electronics, real-time control, uncertainty, map building, path planning, and other topics in introductory robotics.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C] or CS 583 [Min Grade: C]

CS 521 Data Structures and Algorithms I 3.0 Credits

Techniques for analyzing algorithms: asymptotic notation, recurrences, and correctness of algorithms; divide and conquer: quick sort, merge sort, median and order statistics; elementary data structures: hashing, binary heaps, binary search trees, balanced search trees; graph algorithms: Depth and Breadth first searches, connected components, minimum spanning trees, shortest paths in graphs.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 522 Data Structures and Algorithms II 3.0 Credits

Discussion of algorithm design techniques, augmented data structures including Binomial and Fibonacci heaps and Splay tree; Amortized analysis of data structures, topics in pattern and string matching, network flow problem, matching in bipartite graphs, and topics in complexity theory including reduction and NP-completeness, and approximation algorithms.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 521 [Min Grade: C]

CS 523 Cryptography 3.0 Credits

Covers the underlying algorithms behind symmetric key and public key cryptography. Students will learn the underlying mathematics behind the algorithms and the necessary issues involved when implementing these algorithms. A variety of cryptosystems and methods of attack will be implemented and analyzed. Assumes knowledge of linear algebra and discrete math.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 502 [Min Grade: B]

CS 525 Theory of Computation 3.0 Credits

Theory of computation introduces basic mathematical models of computation and the finite representation of infinite objects. These topics covered in the course include: finite automata and regular languages, context free languages, Turning machines, Partial recursive functions, Church's Thesis, undecidability, reducibility and completeness, and time complexity.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 530 Developing User Interfaces 3.0 Credits

This course examines the implementation of multimodal user interfaces within the context of interface design and evaluation. The course involves both practice implementing interfaces using current technologies and study of topical issues such as rapid prototyping, advanced input, and assistive technology.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 536 Computer Graphics 3.0 Credits

An introduction to the basic concepts of computer graphics, with a special emphasis on the mathematical representations of 3D objects (lines, curves, surfaces and solids), as well as the algorithms used to evaluate these objects. Topics such as drawing, clipping, color, viewing, rendering and animation will also be covered.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 537 Interactive Computer Graphics 3.0 Credits

This is a project-oriented class that covers the concepts and programming details of interactive computer graphics. These include graphics primitives, display lists, picking, shading, rendering buffers and transformations. Students will learn an industry-standard graphics system by implementing weekly programming assignments. The course culminates with a student-defined project.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 540 High Performance Computing 3.0 Credits

Covers the design, evaluation and use of high-performance processors, including instruction set architecture, pipelining, superscalar execution, instruction level parallelism, vector instructions, memory hierarchy, parallel computing including multi-core and GPU, and high-performance I/O. Special attention is given to the effective utilization of these features, including automated techniques, in the design and optimization of performance-driven software.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 543 Operating Systems 3.0 Credits

Covers the classical internal algorithms and structures of operating systems, including CPU scheduling, memory management, and device management. Considers the unifying concept of the operating system as a collection of cooperating sequential processes. Covers topics including file systems, virtual memory, disk request scheduling, concurrent processes, deadlocks, security, and integrity.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 544 Computer Networks 3.0 Credits

To examine computer networks using networking models (TCP/IP, OSI and ATM) and break down computer networking, examine each layer and its duties and responsibilities. To analyze networking protocols and understand the design. To use the Internet and other example protocols to illustrate the theory and operation of each layer.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 550 Programming Languages 3.0 Credits

Covers basic concepts of the design and implementation of programming languages, including data representation and types, functions, sequence control, environments, block structure, subroutines and coroutines, storage management. Emphasizes language features and implementation, not mastery of any particular languages.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 551 Compiler Construction 3.0 Credits

Provides a thorough study of modern compiler techniques. Topics include scanners, parsers with emphasis on LR parsing, and syntax-directed translation. Requires students to use a parser generator to write a compiler for a non-trivial language. Examines several advanced topics in depth, such as automatic code generation, error recovery, and optimization techniques.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 525 [Min Grade: C]

CS 555 Computational Network Neuroscience 3.0 Credits

This course provides a broad introduction to computational network neuroscience, also known as connectomics, which is an interdisciplinary field between medicine, neuroscience, machine learning, and graph theory to students coming from a computing background. Processing of neuroimaging data to obtain brain networks, its analysis using basic statistical methods as well as advanced machine learning techniques, with applications on healthy and various patient populations will be covered. After taking the course, the student will become prepared for a postgraduate level research experience in the burgeoning field of connectomics.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 501 [Min Grade: C] or CS 570 [Min Grade: C] or BMES 546 [Min Grade: C] or BMES 550 [Min Grade: C] or BIO 534 [Min Grade: C]

CS 558 Game Engine Programming 3.0 Credits

Introduces the general principles and techniques required to build a game engine from scratch. We will cover basic programming techniques for games, but without focusing on any specific programming language nor platform. Topics will include game engine architecture, game loops, real-time 2D and 3D rendering, collision detection, input handling, networking, animation, scripting, Game AI, and 2D and 3D physics simulation. Additionally, students will also gain knowledge of existing game engines, such as OGRE.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 567 Applied Symbolic Computation 3.0 Credits

For users of symbolic computation (maple, mathematica, derive, macsyma) who wish to gain an understanding of fundamental symbolic mathematical methods. Includes introduction to a symbolic mathematical computation system and application to problems from mathematics, science and engineering. Also includes programming and problems specific to symbolic computation.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 570 Programming Foundations 3.0 Credits

Develops an understanding of the principles behind and skill in the practice of programming. For both students with no programming experience and those with a small amount of programming experience, this course will bring them up to speed and prepare them for graduate study in Computer Science.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit

CS 583 Introduction to Computer Vision 3.0 Credits

Theoretical and algorithmic foundation and applications of computer vision. Covered topics include image formation, image sensing, image filtering, lightness, radiometry, motion, image registration, stereo, photometric stereo, shape-from-shading, and recognition with an emphasis on the underlying mathematics and computational models and complexity as well as computational implementation of representative applications through multiple programming assignments.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 589 Responsible Machine Learning 3.0 Credits

With the rapid deployment of machine learning models in domains such as lending, sentencing, and hiring, it is essential to understand the ethical aspects and negative consequences of such models. In this course, we focus on three of these aspects: fairness, explainability, and recourse.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 590 Privacy 3.0 Credits

This course will motivate the need for privacy protection and introduce basic privacy properties such as anonymity, unlinkability or unobservability. Students will discuss how these properties can be formalized, modeled and measured. The course will provide a broad overview of the state-of-the-art in privacy technologies, explain the main issues that these technologies address, what the current solutions are able to achieve, and the remaining open problems.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 591 Artificial Intelligence and Machine Learning Capstone I 3.0 Credits

This course explores artificial intelligence (AI) and machine learning (ML) in practice as an open-ended team activity. Initiates an in-depth multi-term capstone study applying computing and informatics knowledge in an AI/ML project. Teams work to develop a significant product with advisors from industry and/or academia. Explores AI/ML-related issues and challenges involved in the application domain of the team’s choice. Applies a development process structure for project planning, specification, design, implementation, evaluation, and documentation.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: (CS 510 [Min Grade: C] and CS 613 [Min Grade: C] and CS 615 [Min Grade: C]) or (CS 614 [Min Grade: C] and INFO 629 [Min Grade: C])

CS 592 Artificial Intelligence and Machine Learning Capstone II 3.0 Credits

This course explores artificial intelligence (AI) and machine learning (ML) in practice as an open-ended team activity. Completes an in-depth multi-term capstone study applying computing and informatics knowledge in an AI/ML project. Teams work to develop a significant product with advisors from industry and/or academia. Explores AI/ML-related issues and challenges involved in the application domain of the team’s choice. Applies a development process structure for project planning, specification, design, implementation, evaluation, and documentation.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 591 [Min Grade: C]

CS 610 Advanced Artificial Intelligence 3.0 Credits

Representation, reasoning, and decision-making under uncertainty; dealing with large, real world data sets, learning; and solving problems with time-varying properties; how to apply AI techniques toward building intelligent machines that interact with dynamic, uncertain worlds.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C]

CS 611 Game Artificial Intelligence 3.0 Credits

This course focuses on artificial intelligence (AI) techniques for computer games. Students will learn both basic and advanced AI techniques that are used in a variety of game genres including first-person shooters, driving games, strategy games, platformers, etc. The course will emphasize the difference between traditional AI and game AI, the latter having a strong design component, focusing on creating games that are “fun to play.” Specifically, the topics we will cover in class are basic AI techniques, algorithms, and data structures used for character movement, pathfinding, decision-making, strategy and machine learning in games.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C]

CS 612 Knowledge-based Agents 3.0 Credits

Fundamentals of agent-based computing; distributed AI; representations; agent communication languages; reasoning (expert, rule-based, case-based, production systems); network communication protocols; emergent behavior; swarm intelligence.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C]

CS 613 Machine Learning 3.0 Credits

This course studies modern statistical machine learning with emphasis on Bayesian modeling and inference. Covered topics include fundamentals of probabilities and decision theory, regression, classification, graphical models, mixture models, clustering, expectation maximization, hidden Markov models, Kalman filtering, and linear dynamical systems.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 614 Applications of Machine Learning 3.0 Credits

Machine learning (ML) learns concepts from data to perform complex tasks to solve a variety of challenging problems. With the growth and abundance of data sources and types, ML methods become more sophisticated and give rise to applications in new areas accomplishing tasks perceived as impractical or not feasible before. This course educates students to recognize the relevant factors in applying ML methods and architectures to different application problems in various application domains. The focus on specific application domains, tasks, and areas may vary depending on students’ interest but will cover the essential problem areas of artificial intelligence such as vision, natural language, recommender systems, and applications in the biomedical field.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: INFO 629 [Min Grade: C] or CS 613 [Min Grade: C] or DSCI 631 [Min Grade: C]

CS 615 Deep Learning 3.0 Credits

Introduces a machine learning technique called deep learning and its applications, as well as core machine learning concepts such as data set, evaluation, overfitting, regularization and more. Covers neural network building blocks: linear and logistic regression, followed by shallow artificial neural networks and a variety of deep networks algorithms and their derivations. Includes implementation of algorithms and usage of existing machine learning libraries. Explores the usage of deep learning on a variety of problems including image classification, speech recognition, and natural language processing. Concludes with student-chosen project demonstrations accompanied by a conference-style paper.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 613 [Min Grade: C]

CS 616 Robust Deep Learning 3.0 Credits

This course features hands-on and project-based approaches to the understanding of the robustness and vulnerability of current state-of-the-art deep learning systems, particularly in the context of realworld security applications. Lectures will cover the theoretical foundation and algorithmic details of white/black-box adversarial attacks, data poisoning attacks, and appropriate defenses for multiple machine learning tasks, including image classification, object detection, natural language processing, graph neural networks, etc. More generally, the idea of adversarial machine learning is crucial for expanding learning capabilities, ensuring trustworthy decision-making, and enhancing the generalizability of deep learning methods.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 613 [Min Grade: C]

CS 617 Reinforcement Learning 3.0 Credits

Reinforcement Learning (RL) has emerged as a powerful paradigm for creating intelligent, autonomous agents capable of learning from their interactions with the environment. This course provides a comprehensive understanding of key theoretical concepts, and students will learn about the core challenges and approaches, including generalization and exploration. Through a combination of theoretical lectures and hands-on coding projects, students will learn key concepts in RL, including MDPs, dynamic programming, deep RL, and the latest advances in model-based and model-free RL algorithms.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C] or ECE 612 [Min Grade: C]

CS 618 Algorithmic Game Theory 3.0 Credits

This course explores, from an algorithmic perspective, problems that arise at the interface of economics and computer science. After a short introduction to game theory, the focus will be on understanding how the incentives of strategic agents may affect these agents’ decisions, and on designing mechanisms aiming to improve the outcomes of the interactions among the agents. The topics covered include the design of auctions, matching markets, online advertising markets, fair division, selfish routing, social choice, and preference aggregation.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 521 [Min Grade: C] or CS 522 [Min Grade: C]

CS 621 Approximation Algorithms 3.0 Credits

Study of techniques for designing approximation solution to NP-hard problems. Classification of problems into different categories based on the difficulty of finding approximately sub-optimal solutions for them. The techniques will include greedy algorithms, sequential algorithms, local search, linear and integer programming, primal-dual method, randomized algorithms, and heuristic methods.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 522 [Min Grade: C]

CS 623 Computational Geometry 3.0 Credits

Introduction to algorithms and Data Structures for computational problems in discrete geometry (for points, lines and polygons) primarily in finite dimensions. Topics include triangulation and planar subdivisions, geometric search and intersections, convex hulls, Voronoi diagram, Delaunay triangulation, line arrangements, visibility, and motion planning.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 521 [Min Grade: C]

CS 629 Software Defined Radio Laboratory 3.0 Credits

This laboratory course takes a Software-Defined Radio (SDR) implementation approach to learn about modern analog and digital communication systems. Software defined radio uses general purpose radio hardware that can be programmed in software to implement different communication standards. We will begin by discussing the basic principles of wireless radio frequency transmissions and leverage this knowledge to build analog and digital communication systems. Knowledge of these techniques and systems will provide a platform that can be used in the class project for further exploration of wireless networking topics such as cybersecurity, cognitive radio, smart cities, and the Internet of Things.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 630 Cognitive Systems 3.0 Credits

This course explores the principles of cognition and intelligence in human beings and machines, focusing in how to build computational models that, in essence, think and act like people. The course reviews existing frameworks for such models, studies model development within one particular framework, and discusses how models can be employed in real-world domains.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C] or CS 530 [Min Grade: C]

CS 634 Advanced Computer Vision 3.0 Credits

A research-intensive course on advanced topics that reflect the state-of-the-art of current research activities in computer vision. The course alternates between lectures on the fundamentals of, and paper presentations by the students on, selected topics.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 583 [Min Grade: C]

CS 636 Advanced Computer Graphics 3.0 Credits

Rendering techniques (ray tracing, phong, radiosity, photon mapping); texture and bump mapping; particle systems; hierarchical models; photorealism; non-photorealistic rendering; mathematical structures for graphics.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 536 [Min Grade: C] or CS 537 [Min Grade: C]

CS 643 Advanced Operating Systems 3.0 Credits

In-depth examination of operating systems issues expanding on topics covered in CS 543 (Operating Systems) including: Kernal services, memory management, input/output, file systems, interprocess communication, networking, device drivers, system initialization. Included discussion of production systems such as BSD Unix and Microsoft Windows.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 543 [Min Grade: C]

CS 645 Network Security 3.0 Credits

The purpose of this course is to cover the principles and practice of cryptography and network security. The first half of the course covers cryptography and network security techniques. The second part deals with the practice of network security, i.e. with the processes and application that have to be in place to provide security.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 503 [Min Grade: C]

CS 647 Distributed Systems Software 3.0 Credits

In-depth discussion of fundamental concepts of distributed computer systems. Covers development techniques and runtime challenges, with a focus on reliability and system validation techniques. Subjects discussed include: interprocess communication, remote procedure calls and method invocation, middleware, distributed services, coordination, transactions, replication and weak data consistency models. Significant system-building term project in Java or similar language.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 650 Program Generation and Optimization 3.0 Credits

This course introduces the student to the foundations and state-of-the-art techniques in high performance software development for numeric libraries and other important kernels. Topics include: 1) fundamental tools in algorithm theory, 2) optimizing compilers, 3) effective utilization of the memory hierarchy and other architectural features, 4) how to use special instruction sets, and 5) an introduction to the concepts of self-adaptable software and program generators.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 550 [Min Grade: C] and CS 540 [Min Grade: C]

CS 660 Data Analysis at Scale 3.0 Credits

Focuses on systems and algorithms for scalable processing of large complex datasets. Consists of four thematic units: data preparation, including data cleaning and integration; distributed computation on MapReduce and Apache Spark; analysis of graph, network and spatiotemporal data; and analysis of streaming data.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 504 [Min Grade: C]

CS 668 Computer Algebra 3.0 Credits

Introduction to Foundations of Symbolic Computation. Typical topics : Arithmetic with large integers, rational numbers, polynomials, modular arithmetic, greatest common divisors, chinese remainder algorithm.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 521 [Min Grade: C]

CS 676 Parallel Programming 3.0 Credits

Covers a variety of paradigms and languages for programming parallel computers. Several tools for debugging and measuring the performance of parallel programs will be introduced. Issues related to writing correct and efficient parallel programs will be emphasized. Students will have ample opportunity to write and experiment with parallel programs using a variety of parallel programming environments.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 521 [Min Grade: C] and CS 543 [Min Grade: C]

CS 695 Research Rotations in Cybersecurity 1.0-12.0 Credit

The research rotation course allows students to gain exposure to cybersecurity-­related research that cuts across conventional departmental barriers and traditional research groups, prior to identifying and focusing on a specific interdisciplinary project or thesis topic. Students selecting to participate in research rotations would participate in the research activities of two labs for each three credits of research rotation they undertake.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS 741 Computer Networks II 3.0 Credits

Continues CS 740.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 544 [Min Grade: C]

CS 751 Database Theory 3.0 Credits

Covers topics in database theory and implementation, varying yearly. May include physical data organization, transaction management, concurrency, distributed data-bases, and semantics.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 500 [Min Grade: C]

CS 759 Complexity Theory 3.0 Credits

Introduces formal models of computation, including inherent difficulty of various problems, lower bound theory, polynomial reducibility among problems, Cook's theorem, NP-completeness, and approximation strategies.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 525 [Min Grade: C]

CS 760 Theory Reading Group 0.0-3.0 Credits

This class covers a wide variety of special topics in theoretical computer science and mathematics, including advanced techniques for the design and analysis of algorithms, algorithmic game theory, approximation algorithms, randomized algorithms, computational complexity, and discrete mathematics.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit
Prerequisites: CS 521 [Min Grade: C]

CS 770 Topics in Artificial Intelligence 3.0 Credits

Covers issues in robotics, vision, and pattern recognition.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit
Prerequisites: CS 510 [Min Grade: C]

CS 898 Master's Thesis 1.0-12.0 Credit

Master's thesis.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit

CS 997 Research in Computer Science 1.0-12.0 Credit

Research.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS 998 Ph.D. Dissertation 1.0-12.0 Credit

Hours and credits to be arranged.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS I599 Independent Study in Computer Science 0.0-9.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS I699 Independent Study in Computer Science 1.0-6.0 Credit

Independent study in computer science under faculty supervision. After finding a willing Computer Science Department faculty supervisor and working out the term of study, students obtain approval to take this course from the department's graduate advisor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated 3 times for 18 credits

CS I799 Independent Study in Computer Science 0.0-9.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS I899 Independent Study in Computer Science 0.0-9.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS I999 Independent Study in Computer Science 0.0-9.0 Credits

Self-directed within the area of study requiring intermittent consultation with a designated instructor.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS T580 Special Topics in Computer Science 0.0-9.0 Credits

Topics decided upon by faculty will vary within the area of study.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS T680 Special Topics in Computer Science 0.0-12.0 Credits

Special Topics Covers topics of special interest to students and faculty.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS T780 Special Topics in Computer Science 0.0-9.0 Credits

Topics decided upon by faculty will vary within the area of study.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS T880 Special Topics in Computer Science 0.0-12.0 Credits

Topics decided upon by faculty will vary within the area of study.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit

CS T980 Special Topics in Computer Science 0.0-9.0 Credits

Topics decided upon by faculty will vary within the area of study.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit