Computer Science

Courses

CS 122 Computation Laboratory II 1.0 Credit

Introduces computation and programming through the use of a symbolic mathematical computation system. Programming techniques and algorithmic problem solving are introduced in the context of the integral calculus. Illustrates the power and limitations of the computer in solving mathematical, engineering and scientific problems. Some or all pre-requisites may be taken as either a pre-requisite or co-requisite. Please see the department for more information.

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

CS 123 Computation Laboratory III 1.0 Credit

Introduces computation and programming through the use of a symbolic mathematical computation system. Programming techniques and algorithmic problem solving are introduced in the context of the multivariate calculus and series. Illustrates the power and limitations of the computer in solving mathematical, engineering and scientific problems. Some or all pre-requisites may be taken as either a pre-requisite or co-requisite. Please see the department for more information.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: MATH 121 [Min Grade: D], MATH 122 [Min Grade: D] (Can be taken Concurrently)CS 122 [Min Grade: D]

CS 132 Computer Programming B 3.0 Credits

Introduction to structured computer programming in the language of instruction (e.g. C++). Topics include: random numbers, recursion, vectors, searching and sorting, classes, information hiding principles. Stresses good programming style, documentation, debugging, and testing.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 131 [Min Grade: D] or CS 171 [Min Grade: D]
Corequisite: EXAM 080

CS 133 Computer Programming C 3.0 Credits

Advanced principles of computer programming in the language of instruction (e.g. C++). Classes, inheritance, information hiding principles, recursion, quicksort, multidimensional arrays, pointers, and dynamic memory. Stresses good programming style, documentation, debugging, and testing.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 132 [Min Grade: D]
Corequisite: EXAM 080

CS 140 Introduction to Multimedia Programming 3.0 Credits

Introduction to structured computer programming in a language designed for working with media (images, sound, video), e.g. Python/Jython. Topics include: variables, input and output, expressions, assignment statements, conditionals and branching, files, repetition, functions and parameter passing, one-dimensional and two-dimensional arrays, and media manipulation. Stresses good programming style, documentation, debugging, and testing.

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

CS 143 Computer Programming Fundamentals 3.0 Credits

Introduction to structured computer programming in language of instruction (e.g. C++). Topics include: variables, input and output, expressions, assignment statements, conditionals and branching, files, repetition, functions and parameter passing, arrays, and string manipulation. Stresses good programming style, documentation, debugging and testing.

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

CS 161 Introduction to Computing 3.0 Credits

Introduction to the computer as a tool for productivity and communications. Provides fluency in the use of industry-standard software for professional communications and presentations, data analysis, and telecommunication. Introduce automation and programming to enhance the effective use of computers and computer applications.

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

CS 164 Introduction to Computer Science 3.0 Credits

An introduction to the field of computer science. Exposure to core areas (selected from algorithms, artificial intelligence, computer architecture, databases, graphics, human-computer interaction, programming languages, scientific computation, software engineering) while introducing and reinforcing the importance of programming.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Can enroll if major is CS or major is MATH and classification is Freshman.
Corequisite: EXAM 080

CS 171 Computer Programming I 3.0 Credits

Covers fundamentals of structured computer programming in the language of instruction (e.g., C++): variables, input and output, expressions, assignment statements, conditionals and branching, subprograms, parameter passing, repetition, arrays, top-down design, testing, and debugging.

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

CS 172 Computer Programming II 3.0 Credits

Covers object-oriented design, inheritance hierarchies, information hiding principles, string processing, recursion, good programming style, documentation, debugging, and testing.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 171 [Min Grade: C] or CS 132 [Min Grade: C]
Corequisite: EXAM 080

CS 175 Computer Programming I-II 3.0 Credits

Advanced programming in language of instruction at an accelerated pace: object-oriented design, inheritance hierarchies, information hiding principles, recursion, quick sort, multidimensional arrays, classes, pointers, dynamic memory, good programming style, documentation, debugging, and testing.

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

CS 190 Selected Computer Language 3.0 Credits

Focuses on programming in a selected language of interest. Course content, language, and prerequisites may vary according to instructor, with emphasis on applications for which the language is designed. May be repeated for credit.

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

CS 203 Programming for Engineers 3.0 Credits

Fundamentals of computer organization; rudiments of programming including data types, arithmetic and logical expressions, conditional statements, control structures; problem solving techniques for engineers using programming; object-oriented programming; arrays; simulation of engineering systems; principles of good programming practice.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman

CS 204 Advanced Programming for Engineers 3.0 Credits

An advanced introduction to classes and objects; inheritance and polymorphism; abstract classes and interfaces; exception handling; files and streams; garbage collection and dynamic memory allocation; recursion; using linked lists, stacks, queues, and trees; search and sorting algorithms; generic methods and classes; a comparative introduction to dominant programming languages; engineering examples.

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

CS 260 Data Structures 3.0 Credits

Covers stacks, queues, linked allocation, binary trees, internal searching and sorting, hashing, and applications.

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

CS 265 Advanced Programming Tools and Techniques 3.0 Credits

Introduction to the basic principles of programming practice: testing, debugging, portability, performance, design alternatives, and style. Application in a variety of programming languages, programming environments, and operating systems. Introduction to tools used in the software development process for improving program functionality, performance, and robustness.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 172 [Min Grade: D] or CS 133 [Min Grade: D] or SE 103 [Min Grade: D] or ECEC 301 [Min Grade: D]

CS 270 Mathematical Foundations of Computer Science 3.0 Credits

Emphasizes analytic problem-solving and introduction of mathematical material necessary for later courses in algorithms, compiler theory, and artificial intelligence. Includes topics such as logic, theorem-proving, language operations, context-free grammars and languages, recurrence relations, and analysis of algorithms.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 172 [Min Grade: D] or CS 265 [Min Grade: D] or SE 103 [Min Grade: D]

CS 275 Web and Mobile App Development 3.0 Credits

This course introduces students to web-based and mobile development technologies and practices, including tiered application development, Service-Oriented Architectures and associated exchange protocols, and web-database programming. This course explores development and integration of web services from well-known providers as well as services created by the student, using a mobile platform as a vehicle for interactions with the services.

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

CS 280 Special Topics in Computer Science 12.0 Credits

Covers topics in modern computer science. Different topics may be considered in different quarters.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit
Restrictions: Cannot enroll if classification is Freshman

CS 281 Systems Architecture 4.0 Credits

Covers internal function and organization of digital computers, including instruction sets, addressing methods, input-output architectures, central processor organization, machine language, and assembly language.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: (ECE 200 [Min Grade: D] or CS 270 [Min Grade: D]) and (CS 172 [Min Grade: D] or SE 103 [Min Grade: D])

CS 283 Systems Programming 3.0 Credits

This course introduces computer systems, including interaction of hardware and software through the operating system, from the programmer's perspective. Three fundamental abstractions are emphasized: processes, virtual memory, and files. These abstractions provide programmers a common interface to a wide variety of hardware devices. Topics covered include linking, system level I/O, concurrent programming, and network programming.

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

CS 300 Applied Symbolic Computation 3.0 Credits

This course covers the fundamentals of symbolic mathematical methods as embodied in symbolic mathematics software systems, including: fundamental techniques, simplification of expressions, solution of applications problems, intermediate expressions swell, basic economics of symbolic manipulation, efficient solution methods for large problems, hybrid symbolic/numeric techniques.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and CS 270 [Min Grade: D] and MATH 200 [Min Grade: D] and MATH 201 [Min Grade: D]

CS 303 Algorithmic Number Theory and Cryptography 3.0 Credits

Covers fundamental algorithms for integer arithmetic, greatest common divisor calculation, modular arithmetic, and other number theoretic computations. Algorithms are derived, implemented and analyzed for primality testing and integer factorization. Applications to cryptography are explored including symmetric and public-key cryptosystems. A cryptosystem will be implemented and methods of attack investigated.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and MATH 221 [Min Grade: D] and (MATH 201 [Min Grade: D] or MATH 261 [Min Grade: D] or ENGR 231 [Min Grade: D])

CS 337 The Psychology of Human-Computer Interaction 3.0 Credits

Applies cognitive and experimental psychology to the understanding of human-computer interaction.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: PSY 101 [Min Grade: D] and CS 171 [Min Grade: D]

CS 338 Graphical User Interfaces 3.0 Credits

This course covers the design and implementation of graphical user interfaces. Topics include: event-driven programming, application programmer interfaces, widgets, callback functions, windowing systems and desktops, rapid prototyping languages, multithreaded GUI's. A term project involving implementation of a complex application will be undertaken.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 350 [Min Grade: D] or SE 310 [Min Grade: D]

CS 345 Computer Game Design and Development 3.0 Credits

This course introduces students to the computer game design process. Students also learn how the individual skills of modeling, animation, scripting, interface design and story telling are coordinated to produce interactive media experiences for various markets, devices and purposes.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: (DIGM 260 [Min Grade: D] or GMAP 260 [Min Grade: D]) and (CS 265 [Min Grade: D] or DIGM 141 [Min Grade: D])

CS 347 Experimental Game Development 3.0 Credits

The goal of this course is to develop new ideas and innovations in games through the design, development, and implementation of games using short development cycles and creative thematic constraints.

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

CS 348 Serious Game Development 3.0 Credits

The goal of this course is to learn more about serious games, that is games used in a non-entertainment context, such as games for health, education, and persuasion, through readings and through the design, development, and implementation of serious games.

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

CS 350 [WI] Software Design 3.0 Credits

Covers software design methods and implementation. Good design and implementation approaches will be motivated through software examples and reinforced through programming projects. Topics include architectural styles, code reuse, modularity and information hiding principles, object-oriented design patterns, design specification and formal methods, good coding and documentation practices. This is a writing intensive course.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman or Sophomore
Prerequisites: CS 260 [Min Grade: D] and CS 265 [Min Grade: D]

CS 352 Processor Architecture & Analysis 3.0 Credits

This course covers performance evaluation and benchmarking, pipelining, superscalar processors, multiprocessors, and interfacing processors and peripherals. The memory hierarchy, including cache and virtual memory, are also explored from a programmer's perspective with high-performance computing techniques in mind.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 281 [Min Grade: D] or ECEC 355 [Min Grade: D]

CS 360 Programming Language Concepts 3.0 Credits

Introduces the design and implementation of modern programming languages: formal theory underlying language implementation; concerns in naming, binding, storage allocation and typing; semantics of expressions and operators, control flow, and subprograms; procedural and data abstraction; functional, logic, and object-oriented languages. Students will construct an interpreter for a nontrivial language.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and CS 265 [Min Grade: D] and CS 270 [Min Grade: D]

CS 361 Concurrent Programming 3.0 Credits

Covers programming of concurrent, cooperating sequential processes. Studies race conditions, critical sections, mutual exclusion, process synchronization, semaphores, monitors, message passing, the rendezvous, deadlock, and starvation.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 260 [Min Grade: D] and CS 281 [Min Grade: D]

CS 365 System Administration 3.0 Credits

Fundamentals of system administration featuring hands-on practice with an industry standard operating system. Focus on installation, maintenance and management of several systems for multi-user environments.

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

CS 370 Operating Systems 3.0 Credits

Explores the internal algorithms and structures of operating systems: CPU scheduling, memory management, file systems, and device management. Considers the operating system as a collection of cooperating sequential processes (servers) providing an extended or virtual machine that is easier to program than the underlying hardware. Topics include virtual memory, input/output devices, disk request scheduling, deadlocks, file allocation, and security and protection.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 283 [Min Grade: D] or CS 361 [Min Grade: D]

CS 380 Artificial Intelligence 3.0 Credits

Explores the foundations of artificial intelligence: production systems, heuristic programming, knowledge representation, and search algorithms. Also covers programming in an AI language. Additional topics chosen from game theory, decision support systems, pattern matching and recognition, image understanding, natural language, fuzzy and non-monotonic logic, machine learning, theorem proving, and common sense reasoning.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 260 [Min Grade: D] and CS 270 [Min Grade: D]

CS 383 Machine Learning 3.0 Credits

This course covers the fundamentals of modern statistical machine learning. Lectures will cover the theoretical foundation and algorithmic details of representative topics including probabilities and decision theory, regression, classification, graphical models, mixture models, clustering, expectation maximization, hidden Markov models, and weak learning.

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

CS 385 Evolutionary Computing 3.0 Credits

This course covers computational intelligence approaches to problem solving for classification, adaptation, optimization, and automated control. Methods covered will include evolutionary programming/genetic algorithms, genetic programming, neural networks, swarm optimization, and fuzzy logic.

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

CS 387 Game AI Development 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.” Topics include path-finding, decision-making, strategy and machine learning in games.

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

CS 430 Computer Graphics 3.0 Credits

The course presents the fundamental geometric representations and drawing algorithms of computer graphics through lectures and programming assignments. The representations include lines, curves, splines, polygons, meshes, parametric surfaces and solids. The algorithms include line drawing, curve and surface evaluation, polygon filling, clipping, 3D-to-2D projection and hidden surface removal.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: MATH 200 [Min Grade: D] and MATH 201 [Min Grade: D] and (CS 350 [Min Grade: D] or SE 310 [Min Grade: D])

CS 431 Advanced Rendering Techniques 3.0 Credits

The creation of realistic images from 3D models is central to the development of computer graphics. The ray tracing algorithm has become one of the most popular and powerful techniques for creating photo-realistic images. This class explores the algorithmic components of ray tracing. Students implement many of these components in their class programming projects.

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

CS 432 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 260 [Min Grade: D] and (MATH 200 [Min Grade: D] or MATH 201 [Min Grade: D] or MATH 261 [Min Grade: D] or ENGR 231 [Min Grade: D])

CS 435 Computational Photography 3.0 Credits

Fundamentals of computational photography, an interdisciplinary field at the intersection of computer vision, graphics, and photography. Covered topics include fundamentals of cameras, novel camera designs, image manipulation, single-view modeling, and image-based rendering with an emphasis on learning the computational methods and their underlying mathematical concepts through hands-on assignments.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: (MATH 123 [Min Grade: D] or MATH 200 [Min Grade: D]) and (MATH 201 [Min Grade: D] or MATH 261 [Min Grade: D] or ENGR 231 [Min Grade: D]) and CS 260 [Min Grade: D]

CS 440 Theory of Computation 3.0 Credits

Finite automata, regular sets, and regular expressions; pushdown automata, context-free languages, and normal forms for grammars; Turing machines and recursively enumerable sets; Chomsky hierarchy; computability theory.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman or Sophomore
Prerequisites: CS 270 [Min Grade: D] and MATH 221 [Min Grade: D]

CS 441 Compiler Workshop I 3.0 Credits

Design and implementation of compiler for specified language. Practical application and in-depth study of parsing, scanning, run-time storage management, type analysis, code generation, and error recovery.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman or Sophomore
Prerequisites: CS 270 [Min Grade: D] and CS 283 [Min Grade: D] and CS 360 [Min Grade: D] and CS 440 [Min Grade: D]

CS 442 Compiler Workshop II 3.0 Credits

Continuation of CS 441. Advanced topics in compilation, code generation, and optimization for various programming languages and paradigms.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman or Sophomore
Prerequisites: CS 441 [Min Grade: D]

CS 445 Topics in Computer Gaming 3.0 Credits

Contemporary topics in the design and implementation of computer games. Topics may include game genres, psychological and sociological aspects of games, software tools and game development engines, character and behavior modeling, physical models and realism, virtual reality, graphics and animation, network-based games, performance analysis and efficiency.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated 3 times for 9 credits
Prerequisites: CS 345 [Min Grade: D] or DIGM 345 [Min Grade: D]

CS 451 Software Engineering 3.0 Credits

Covers requirements specification, system modeling, formal methods, architectural design, object-oriented design, programming for reliability, user interface design, functional and structural testing, software reuse, and configuration management.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 270 [Min Grade: D] and MATH 221 [Min Grade: D] and (CS 350 [Min Grade: D] or SE 310 [Min Grade: D])

CS 457 Data Structures and Algorithms I 3.0 Credits

This course covers techniques for analyzing algorithms, including: elementary combinatorics, recurrence relations, and asymptotic analysis; data structures such as hash tables, red-black trees, B-trees, binomial and Fibonacci heaps, union-find trees; sorting algorithms and elementary graph algorithms.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 260 [Min Grade: D] and CS 270 [Min Grade: D] and MATH 221 [Min Grade: D]

CS 458 Data Structures and Algorithms II 3.0 Credits

This course presents algorithm design techniques such as dynamic programming, greedy methods, divide and conquer, amortized algorithms; more graph algorithms for minimum spanning trees, shortest paths, and network flows; string matching algorithms; algorithms for finding the convex hull of a discrete set of points; NP-Completeness and approximation algorithms.

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

CS 461 Database Systems 3.0 Credits

Covers topics including structure and function of database systems, normal form theory, data models (relational, network, and hierarchical), query processing (ISBL), relational algebra and calculus, and file structures. Includes programming project using DBMS.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 260 [Min Grade: D]

CS 470 Operating Systems Workshop 3.0 Credits

Studies a modern multitasking operating system in detail, including device drivers, CPU scheduling, memory management, and file systems. Includes programming assignments that modify or enhance the operating system.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Restrictions: Cannot enroll if classification is Freshman
Prerequisites: CS 370 [Min Grade: D]

CS 472 Computer Networks: Theory, Applications and Programming 3.0 Credits

Introduction to computer networking theory, applications and programming, focusing on large heterogeneous networks. Broad topdown introductions to computer networking concepts including distributed applications, socket programming, operation system and router support, router algorithms, and sending bits over congested, noisy and unreliable communication links.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 361 [Min Grade: D] or CS 283 [Min Grade: D]

CS 475 Computer and Network Security 3.0 Credits

The key objective of this course is to provide a thorough understanding of technologies and methodologies with which computer networks can be protected. Topics that are covered include: key management and credentials, steganography and watermarking, networking security (VPNs, firewalls, intrusion detection) and system security policies.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 472 [Min Grade: D] or CS 283 [Min Grade: D]

CS 476 High Performance Computing 3.0 Credits

This course is an introduction to high performance computing, including concepts and applications. Course contents will include discussions of different types of high performance computer architectures (multi-core/multi-threaded processors, parallel computers, etc), the design, implementation, optimization and analysis of efficient algorithms for uni-processors, multi-threaded processors, parallel computers, and high performance programming.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: (CS 281 [Min Grade: D] and CS 283 [Min Grade: D]) or (ECEC 353 [Min Grade: D] and ECEC 355 [Min Grade: D])

CS 480 Special Topics in Computer Science 12.0 Credits

Covers topics in computer science of interest to students or faculty. Different topics may be considered during different quarters.

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

CS 481 Advanced Artificial Intelligence 3.0 Credits

This course covers topics in representation, reasoning, and decision-making under uncertainty; learning; solving problems with time-varying properties. Assignments applying AI techniques toward building intelligent machines that interact with dynamic, uncertain worlds will be given.

College/Department: College of Computing and Informatics
Repeat Status: Not repeatable for credit
Prerequisites: CS 380 [Min Grade: D] and (MATH 311 [Min Grade: D] or MATH 410 [Min Grade: D])

CS 485 Special Topics in Artificial Intelligence 3.0 Credits

A variety of special topics are offered in artificial intelligence (AI) including: intelligent time-critical reasoning, knowledge-based agents, machine learning, natural language processing, and geometric reasoning. This course may be repeated for credit as topics vary.

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

CS 491 [WI] Software Engineering Workshop 3.0 Credits

Offers in-depth study and application of software engineering practice. Students work in teams to develop a significant software system. Course is intended to serve as a capstone experience for students in the senior year. The project involves the specification and review of software requirements and designs, implementation and code inspections, functional testing, and documentation. This course is writing intensive.

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

CS 492 [WI] Software Engineering Workshop II 3.0 Credits

Continues CS 491 team project. This course is writing intensive.

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

CS 493 [WI] Software Engineering Workshop III 3.0 Credits

Continues CS 492 team project. This course is writing intensive.

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

CS 498 Independent Study in Computer Science 12.0 Credits

Provides supervised study of selected topics in computer science.

College/Department: College of Computing and Informatics
Repeat Status: Can be repeated multiple times for credit
Restrictions: Cannot enroll if classification is Freshman

  • Schedule of Classes
  • All Course Descriptions
  • Co-op
  • Academic Advising
  • Admissions
  • Tuition & Fees
LEARN MORE