This article aims to provide you with all the information you need and more regarding the computer science post bacc at the oregon state university. There are articles on the Internet with unreliable sources of information, and searching for information may not always yield satisfactory results.
Search available oregon state university computer science post bacc, oregon state university post bacc computer science reviews, oregon state university post bacc computer science tuition, oregon state university post bacc computer science curriculum, post baccalaureate computer science online, and auburn post bacc computer science information available. oregon state university computer science post bacc in related posts on collegelearners.
Computer Science (CS)
CS 101, COMPUTERS: APPLICATIONS AND IMPLICATIONS, 4 Credits
The varieties of computer hardware and software. The effects, positive and negative, of computers on human lives. Ethical implications of information technology. Hands-on experience with a variety of computer applications. Lec/lab.
Available via Ecampus
CS 160, COMPUTER SCIENCE ORIENTATION, 3 Credits
Introduction to the computer science field and profession. Team problem solving. Introduction to writing computer programs. Approaches to teaching course topics vary across sections. Lec/lab.
Equivalent to: CS 160H
Available via Ecampus
CS 160H, COMPUTER SCIENCE ORIENTATION, 3 Credits
Introduction to the computer science field and profession. Team problem solving. Introduction to writing computer programs. Approaches to teaching course topics vary across sections. Lec/lab.
Attributes: HNRS – Honors Course Designator
Equivalent to: CS 160
CS 161, INTRODUCTION TO COMPUTER SCIENCE I, 4 Credits
Overview of fundamental concepts of computer science. Introduction to problem solving, software engineering, and object-oriented programming. Includes algorithm design and program development. Lec/lab/rec.
Prerequisite: MTH 112 (may be taken concurrently) with C or better or Math Placement Test with a score of 33 or Math Placement – ALEKS with a score of 061
Equivalent to: EECS 161
Available via Ecampus
CS 162, INTRODUCTION TO COMPUTER SCIENCE II, 4 Credits
Basic data structures. Computer programming techniques and application of software engineering principles. Introduction to analysis of programs. Lec/lab/rec.
Prerequisite: CS 161 with C or better or EECS 161 with C or better
Equivalent to: EECS 162
Available via Ecampus
CS 165, ACCELERATED INTRODUCTION TO COMPUTER SCIENCE, 8 Credits
Overview of the fundamental concepts of computer science. Introduction to problem solving, algorithm development, data types, and basic data structures. Introduction to analysis of algorithms and principles of software engineering. System development and computer programming using procedural/object-oriented paradigms. Offered via Ecampus only.
Prerequisite: MTH 112 with C or better or Math Placement – ALEKS with a score of 075
CS 175, *COMMUNICATIONS SECURITY AND SOCIAL MOVEMENTS, 3 Credits
Equipping students with the theory and practice of communications security, this course explores how social movements can remain effective in the context of mass surveillance and state repression. Lec/rec. (Bacc Core Course)
Attributes: CPDP – Core, Perspective, Difference/Power/Discrimination
CS 195, WEBSITE DESIGN, 4 Credits
How to design and publish a static website using an existing publishing platform: Techniques and tools for designing and publishing on the World Wide Web; hypertext and HTMTL; site and page design; media integration; issues raised by Internet publishing.
Equivalent to: CS 295
CS 199, SPECIAL TOPICS/COMPUTER SCIENCE, 1-16 Credits
This course is repeatable for 16 credits.
Available via Ecampus
CS 201, COMPUTER PROGRAMMING FOR NON-CS MAJORS, 3 Credits
Covers a variety of fundamental topics in computer programming relevant to anyone who wants to write or work with computer code in their work or studies. Teaches basic computational thinking and programming skills which will allow students to solve a variety of real-world problems. In addition, students will learn more advanced topics such as how some basic algorithms work and can be written in computer code.
Prerequisite: MTH 111 with C- or better
Available via Ecampus
CS 225, DISCRETE STRUCTURES IN COMPUTER SCIENCE, 4 Credits
An introduction to the discrete mathematics of computer science, including logic, set and set operations, methods of proof, recursive definitions, combinatorics, and graph theory. (Note: Students may take either MTH 231 or CS 225, but cannot receive credit for both.)
Prerequisite: MTH 111 with C or better or Math Placement Test with a score of 24 or Math Placement – ALEKS with a score of 061 or MTH 112 (may be taken concurrently) with C or better
Available via Ecampus
CS 261, DATA STRUCTURES, 4 Credits
Abstract data types, dynamic arrays, linked lists, trees and graphs, binary search trees, hash tables, storage management, complexity analysis of data structures. Lec/rec.
Prerequisite: (CS 162 with C or better or CS 165 with C or better) and (CS 225 [C] or MTH 231 [C])
Equivalent to: EECS 261
Available via Ecampus
CS 262, PROGRAMMING PROJECTS IN C++, 4 Credits
Learning a second computer programming language. Elements of C++. Object-oriented programming. Experience team work on a large programming project.
Prerequisite: CS 261 with C or better
CS 271, COMPUTER ARCHITECTURE AND ASSEMBLY LANGUAGE, 4 Credits
Introduction to functional organization and operation of digital computers. Coverage of assembly language; addressing, stacks, argument passing, arithmetic operations, decisions, macros, modularization, linkers and debuggers.
Prerequisite: CS 151 with C or better or CS 161 with C or better or CS 165 with C or better
Available via Ecampus
CS 290, WEB DEVELOPMENT, 4 Credits
How to design and implement a multi-tier application using web technologies: Creation of extensive custom client- and server-side code, consistent with achieving a high-quality software architecture.
Prerequisite: CS 162 with C or better or CS 165 with C or better
Equivalent to: CS 494
Available via Ecampus
CS 295, WEBSITE MANAGEMENT, 4 Credits
How to create and promote a dynamic website using existing frameworks/libraries: Designing, developing, publishing, maintaining, and marketing dynamic websites; web security and privacy issues; emerging web technologies; running a website marketing campaign.
Prerequisite: CS 195 with C or better
Recommended: Basic HTML and CSS
CS 299, SPECIAL TOPICS, 0-4 Credits
This course is repeatable for 99 credits.
CS 312, SYSTEM ADMINISTRATION, 4 Credits
Introduction to system administration. Network administration and routing. Security issues. Computer, server, and network hardware. Lec/lab.
Prerequisite: (CS 311 with C or better or CS 344 with C or better) and CS 372 [C]
CS 321, INTRODUCTION TO THEORY OF COMPUTATION, 3 Credits
Survey of models of computation including finite automata, formal grammars, and Turing machines.
Prerequisite: CS 261 with C or better and (CS 225 [C] or MTH 231 [C])
Equivalent to: CS 321H
Available via Ecampus
CS 321H, INTRODUCTION TO THEORY OF COMPUTATION, 3 Credits
Survey of models of computation including finite automata, formal grammars, and Turing machines.
Attributes: HNRS – Honors Course Designator
Prerequisite: CS 261 with C or better and (CS 225 [C] or MTH 231 [C])
Equivalent to: CS 321
CS 325, ANALYSIS OF ALGORITHMS, 4 Credits
Recurrence relations, combinatorics, recursive algorithms, proofs of correctness.
Prerequisite: CS 261 with C or better and (CS 225 [C] or MTH 231 [C])
Equivalent to: CS 325H
Available via Ecampus
CS 325H, ANALYSIS OF ALGORITHMS, 4 Credits
Recurrence relations, combinatorics, recursive algorithms, proofs of correctness.
Attributes: HNRS – Honors Course Designator
Prerequisite: CS 261 with C or better and (CS 225 [C] or MTH 231 [C])
Equivalent to: CS 325
CS 331, INTRODUCTION TO ARTIFICIAL INTELLIGENCE, 4 Credits
Fundamental concepts in artificial intelligence using the unifying theme of an intelligent agent. Topics include agent architectures, search, games, logic and reasoning, and Bayesian networks.
Prerequisite: CS 325 with C or better or CS 325H with C or better
CS 340, INTRODUCTION TO DATABASES, 4 Credits
Design and implementation of relational databases, including data modeling with ER or UML, diagrams, relational schema, SQL queries, relational algebra, user interfaces, and administration.
Prerequisite: CS 290 with C or better
Equivalent to: CS 275
Available via Ecampus
CS 344, OPERATING SYSTEMS I, 4 Credits
Introduction to operating systems using UNIX as the case study. System calls and utilities, fundamentals of processes and interprocess communication.
Prerequisite: CS 261 with C or better and (CS 271 [C] or ECE 271 [C])
Equivalent to: CS 311
Recommended: Experience programming in the C language
Available via Ecampus
CS 352, INTRODUCTION TO USABILITY ENGINEERING, 4 Credits
Basic principles of usability engineering methods for the design and evaluation of software systems. Includes the study of human-machine interactions, user interface characteristics and design strategies, software evaluation methods, and related guidelines and standards.
Prerequisite: CS 151 with C or better or CS 161 with C or better or CS 165 with C or better or CS 295 with C or better or ECE 151 with C or better
Equivalent to: CS 252
Available via Ecampus
CS 361, SOFTWARE ENGINEERING I, 4 Credits
Introduction to the “front end” of the software engineering lifecycle; requirements analysis and specification; design techniques; project management.
Prerequisite: CS 261 with C or better
Available via Ecampus
CS 362, SOFTWARE ENGINEERING II, 4 Credits
Introduction to the “back end” of the software engineering lifecycle implementation; verification and validation; debugging; maintenance.
Prerequisite: CS 261 with C or better
Recommended: Experience with object-oriented programming and data structures (eg. CS 161, CS 162, CS 361)
Available via Ecampus
CS 370, INTRODUCTION TO SECURITY, 4 Credits
Introductory course on computer security with the objective to introduce concepts and principles of computer systems security. Notions of security, basic crytographic primitives and their application, basics of authentication and access control, basics of key-management, basics of malware and software security.
Prerequisite: CS 344 (may be taken concurrently) with C or better
Available via Ecampus
CS 372, INTRODUCTION TO COMPUTER NETWORKS, 4 Credits
Computer network principles, fundamental networking concepts, packet-switching and circuit switching, TCP/IP protocol layers, reliable data transfer, congestion control, flow control, packet forwarding and routing, MAC addressing, multiple access techniques. CROSSLISTED as CS 372/ECE 372.
Prerequisite: CS 261 with C or better and (ECE 271 [C] or CS 271 [C])
Equivalent to: ECE 372
Recommended: C programming and Unix familiarity.
Available via Ecampus
CS 373, DEFENSE AGAINST THE DARK ARTS, 4 Credits
Introduction to the current state of the art in anti-malware, computer forensics, and networking, messaging, and web security. Broad introduction to the field of computer security.
Prerequisite: CS 344 with C or better and CS 340 [C] and CS 372 [C]
Available via Ecampus
CS 381, PROGRAMMING LANGUAGE FUNDAMENTALS, 4 Credits
An introduction to the concepts found in a variety of programming languages. Programming languages as tools for problem solving. A brief introduction to languages from a number of different paradigms.
Prerequisite: CS 261 with C or better and (CS 225 [C] or MTH 231 [C])
Available via Ecampus
CS 391, *SOCIAL AND ETHICAL ISSUES IN COMPUTER SCIENCE, 3 Credits
In-depth exploration of the social, psychological, political, and ethical issues surrounding the computer industry and the evolving information society. (Bacc Core Course)
Attributes: CSST – Core, Synthesis, Science/Technology/Society
Equivalent to: CS 391H, CS 391H
Recommended: CS 101 or computer literacy.
Available via Ecampus
CS 391H, *SOCIAL AND ETHICAL ISSUES IN COMPUTER SCIENCE, 3 Credits
In-depth exploration of the social, psychological, political, and ethical issues surrounding the computer industry and the evolving information society. (Bacc Core Course)
Attributes: CSST – Core, Synthesis, Science/Technology/Society; HNRS – Honors Course Designator
Equivalent to: CS 391
Recommended: CS 101 or computer literacy
CS 395, WEBSITE MULTIMEDIA, 4 Credits
How to create and deploy interactive digital multimedia through static websites: Technological, aesthetic, and pedagogical issues of communication using interactive multimedia and hypermedia; techniques for authoring interactive multimedia projects using a variety of digital media roots.
Prerequisite: CS 195 with C or better or (ART 120 with C or better and (CS 162 [C] or CS 165 [C]))
CS 399, SPECIAL TOPICS, 0-4 Credits
This course is repeatable for 99 credits.
CS 401, RESEARCH, 1-16 Credits
This course is repeatable for 16 credits.
CS 403, THESIS, 1-16 Credits
This course is repeatable for 16 credits.
CS 405, READING AND CONFERENCE, 1-16 Credits
This course is repeatable for 16 credits.
CS 406, PROJECTS, 1-16 Credits
This course is repeatable for 16 credits.
Available via Ecampus
CS 407, SEMINAR, 1-16 Credits
Graded P/N.
Equivalent to: CS 407H
This course is repeatable for 16 credits.
CS 407H, SEMINAR, 1-16 Credits
Graded P/N.
Attributes: HNRS – Honors Course Designator
Equivalent to: CS 407
This course is repeatable for 16 credits.
CS 410, OCCUPATIONAL INTERNSHIP, 1-16 Credits
Graded P/N.
This course is repeatable for 16 credits.
CS 419, SELECTED TOPICS IN COMPUTER SCIENCE, 0-5 Credits
Topics of special and current interest not covered in other courses.
Equivalent to: CS 419H
This course is repeatable for 99 credits.
CS 419H, SELECTED TOPICS IN COMPUTER SCIENCE, 1-5 Credits
Topics of special and current interest not covered in other courses.
Attributes: HNRS – Honors Course Designator
Equivalent to: CS 419
This course is repeatable for 99 credits.
CS 420, GRAPH THEORY WITH APPLICATIONS TO COMPUTER SCIENCE, 3 Credits
Directed and undirected graphs; paths, circuits, trees, coloring, planar graphs, partitioning; computer representation of graphs and graph algorithms; applications in software complexity metrics, program testing, and compiling.
Prerequisite: (CS 325 with C or better or CS 325H with C or better)
CS 427, CRYPTOGRAPHY, 4 Credits
Introduction to the theory and practice of modern cryptography. Fundamental primitives including pseudorandom generators, block ciphers, hash functions. Symmetric-key cryptography for privacy and authenticity. Public-key cryptography based on number-theoretic problems.
Prerequisite: CS 261 with C or better or MTH 355 with C or better
CS 434, MACHINE LEARNING AND DATA MINING, 4 Credits
Introduction to machine learning and data mining algorithms (supervised learning, unsupervised learning, and reinforcement learning) tools that are widely employed in industrial and research settings.
Prerequisite: CS 325 with C or better or CS 325H with C or better
CS 440, DATABASE MANAGEMENT SYSTEMS, 4 Credits
Relational database design, normalization, file structures, disk storage, query processing and optimization, team development of database applications.
Prerequisite: CS 261 with C or better and CS 340 [C]
CS 444, OPERATING SYSTEMS II, 4 Credits
Explores principles of computer operating systems: concurrent processes, memory management, job scheduling, multiprocessing, file systems, performance evaluation, and networking.
Prerequisite: CS 344 with C or better and (CS 271 [C] or ECE 375 [C])
Equivalent to: CS 411
CS 446, NETWORKS IN COMPUTATIONAL BIOLOGY, 3 Credits
An introduction to biological networks and computational methods for their analysis, inference, and functional modeling. Various network centralities, topological measures, clustering algorithms, and probabilistic annotation models are introduced in the context of protein interaction, gene regulatory, and metabolic networks. Surveys bioinformatics methods for data-driven inference of network structure.
Prerequisite: CS 261 with C or better or BOT 476 with C or better
Recommended: Completion or concurrent enrollment in CS 325
CS 447, WIRELESS EMBEDDED SYSTEMS, 4 Credits
A hands-on introduction to programming wireless embedded systems (aka the “Internet of Things”). Topics include sensors, actuators, state machines, scheduling, wireless communications, time synchronization, localization, fault tolerance, and security related to cyber-physical systems.
Prerequisite: CS 344 with C or better
CS 450, INTRODUCTION TO COMPUTER GRAPHICS, 4 Credits
Theoretical and practical treatment of 3D computer graphics using OpenGL: geometric modeling, transformations, viewing, lighting, texture mapping, shading, rendering, and animation.
Prerequisite: CS 261 with C or better
CS 453, SCIENTIFIC VISUALIZATION, 4 Credits
Applies 3D computer graphics methods to visually understand scientific and engineering data. Methods include hyperbolic projections; mapping scalar values to color spaces; data visualization using range sliders; scalar visualization (point clouds, cutting planes, contour plots, isosurfaces); vector visualization (arrow clouds, particle advection, streamlines); terrain visualization; Delauney triangulation; and volume visualization.
Prerequisite: CS 261 with C or better
Recommended: Prior experience with Unix or Windows, programming experience
CS 457, COMPUTER GRAPHICS SHADERS, 4 Credits
Theoretical and practical treatment of computer graphics shaders, including both RenderMan and GPU shaders. Programming in both RenderMan and OpenGL shading languages.
Recommended: Previous graphics pipeline programming experience.
CS 458, INTRODUCTION TO INFORMATION VISUALIZATION, 4 Credits
Tools and techniques for designing, developing, and deploying interactive visualizations of abstract data sources. Discusses techniques based on principles from design, cognitive science, and perceptual psychology. Topics include 1D, 2D, 3D, multivariate representations, time-series, graphs and trees, text and documents, and interaction techniques.
Prerequisite: CS 361 with C or better
CS 461, ^SENIOR SOFTWARE ENGINEERING PROJECT I, 3 Credits
Utilize software engineering methodology in a team environment to develop a real-world application. Teams will be responsible for all phases of software development, including project planning, requirements analysis, design, coding, testing, configuration management, quality assurance, documentation, and delivery. (Writing Intensive Course)
Attributes: CWIC – Core, Skills, WIC
Prerequisite: CS 361 with C or better and CS 325 [C] and CS 362 [C]
Available via Ecampus
CS 462, ^SENIOR SOFTWARE ENGINEERING PROJECT II, 3 Credits
Utilize software engineering methodology in a team environment to develop a real-world application. Teams will be responsible for all phases of software development, including project planning, requirements analysis, design, coding, testing, configuration management, quality assurance, documentation, and delivery. Three-term sequence required. (Writing Intensive Courses)
Attributes: CWIC – Core, Skills, WIC
Prerequisite: CS 362 with C or better and CS 461 [C]
CS 463, SENIOR SOFTWARE ENGINEERING PROJECT, 2 Credits
Utilize software engineering methodology in a team environment to develop a real-world application. Teams will be responsible for all phases of software development, including project planning, requirements analysis, design, coding, testing, configuration management, quality assurance, documentation, and delivery. Three-term sequence required.
Prerequisite: CS 462 with C or better
CS 464, OPEN SOURCE SOFTWARE, 4 Credits
Provides a theoretical foundation of the history, key concepts, technologies, and practices associated with modern Free and Open Source Software (FOSS) projects, and gives students an opportunity to explore and make contributions to FOSS projects with some mentoring and guidance.
Prerequisite: CS 261 with C or better and CS 361 [C]
Available via Ecampus
CS 466, WEB-BASED START-UP PROJECT, 4 Credits
Real-world, hands-on learning in a high-tech web/mobile-based company environment. Research in the development of product ideas, hypotheses, and business models to create customer experiments. Prototyping and statistical analysis to develop, optimize, and evaluate solutions. Rapid iteration/refactoring based on customer input, web analytics, and user engagement metrics. Offered at OSU-Cascades only.
Corequisites: CS 461
CS 467, ONLINE CAPSTONE PROJECT, 4 Credits
Real-world team-based experience with the software engineering design and delivery cycle, including requirements analysis and specification, design techniques, and requirements and final project written documentation. For students in the online CS double-degree program only.
Prerequisite: CS 344 with C or better and CS 361 [C] and CS 362 [C]
Available via Ecampus
CS 468, INCLUSIVE DESIGN (HCI), 4 Credits
Inclusive design is designing software that works for a wide variety of differently abled customers. Teaches the skills needed to design inclusively without having to have a separate design for each differently abled customer.
Prerequisite: CS 352 with C or better
Recommended: CS 565 with a minimum grade of C
CS 472, COMPUTER ARCHITECTURE, 4 Credits
Computer architecture using processors, memories, and I/O devices as building blocks. Issues involved in the design of instruction set architecture, processor, pipelining and memory organization. Design philosophies and trade-offs involved in Reduced Instruction Set Computer (RISC) architectures. Lec/lab. CROSSLISTED as CS 472/ECE 472 and CS 572/ECE 572.
Prerequisite: ECE 375 with C or better
Equivalent to: CS 470, ECE 472
CS 475, INTRODUCTION TO PARALLEL PROGRAMMING, 4 Credits
Theoretical and practical survey of parallel programming, including a discussion of parallel architectures, parallel programming paradigms, and parallel algorithms. Programming one or more parallel computers in a higher-level parallel language.
Prerequisite: CS 261 with C or better
Available via Ecampus
CS 476, ADVANCED COMPUTER NETWORKING, 4 Credits
Advanced networking concepts: source/channel coding, queuing theory, router design, network architectures (Intserv, DiffServ, MPLS), multimedia protocols (TFRC, RTP), overlay networks, and wireless standards (Bluetooth 802.11b, 3/4G). CROSSLISTED as CS 476/ECE 476 and CS 576/ECE 576.
Prerequisite: (CS 372 with C or better or ECE 372 with C or better) and (ECE 353 [C] or ST 314 [C] or ST 314H [C])
Equivalent to: ECE 476, EECS 476
CS 477, INTRODUCTION TO DIGITAL FORENSICS, 4 Credits
Introduces concepts related to digital forensics, its role and importance, and tools and techniques for collecting and curating digital evidence. The course will also discuss the role of evidence in the justice system and some legal aspects as they pertain to digital forensics. It will introduce tools and techniques for computer and network forensics.
Prerequisite: CS 344 with C or better and CS 370 [C]
Available via Ecampus
CS 478, NETWORK SECURITY, 4 Credits
Basic concepts and techniques in network security, risks and vulnerabilities, applied cryptography and various network security protocols. Coverage of high-level concepts such as authentication, confidentiality, integrity, and availability applied to networking systems. Fundamental techniques including authentication protocols, group key establishment and management, trusted intermediaries, public key infrastructures, SSL/TLS, IPSec, firewalls and intrusion detection CROSSLISTED as CS 478/ECE 478.
Prerequisite: CS 372 with C or better or ECE 372 with C or better
Equivalent to: ECE 478
Recommended: CS 370
Available via Ecampus
CS 480, TRANSLATORS, 4 Credits
Explores content on the subject of compilers; attribute grammars, syntax-directed translation, lex, yacc, LR(1) parsers, symbol tables, semantic analysis, and peep-hole optimization.
Prerequisite: CS 344 with C or better and CS 381 [C] and (CS 321 [C] or CS 321H [C])
CS 491, COMPUTER SCIENCE SKILLS FOR SIMULATION AND GAME PROGRAMMING, 4 Credits
Game and simulation development is very much a data and math-intensive activity. A certain number of actions must be produced, and producing them by hand is hard. This is a middleware CS course that fills in many of the missing pieces for those wanting to enter the simulation and game development worlds in a software tool-building capacity.
Prerequisite: CS 261 with C or better and (CS 225 [C] or MTH 231 [C]) and MTH 252 [C]
CS 492, MOBILE SOFTWARE DEVELOPMENT, 4 Credits
Introduction to concepts and techniques for developing mobile applications. Students will become familiar with modern mobile structure, implementation, development tools, and workflow.
Prerequisite: CS 344 with C or better
Available via Ecampus
CS 493, CLOUD APPLICATION DEVELOPMENT, 4 Credits
Covers developing RESTful cloud services, an approach based on representational state transfer technology, an architectural style and approach to communications used in modern cloud services development.
Prerequisite: CS 290 with C or better and CS 340 [C] and CS 372 [C]
Available via Ecampus
CS 495, INTERACTIVE MULTIMEDIA PROJECTS, 4 Credits
Students apply principles and procedures of digital art, design, communication, and software authoring while working on large integrated media projects.
Recommended: CS 395
CS 496, MOBILE AND CLOUD SOFTWARE DEVELOPMENT, 4 Credits
Introduction to the concepts and techniques for developing mobile and cloud applications.
Prerequisite: CS 344 with C or better or CS 311 with C or better
Recommended: Working knowledge of at least one operating system
CS 499, SPECIAL TOPICS, 0-16 Credits
This course is repeatable for 16 credits.
CS 501, RESEARCH, 1-16 Credits
Graded P/N.
This course is repeatable for 99 credits.
CS 503, COMPUTER SCIENCE MS THESIS, 1-16 Credits
This course is repeatable for 999 credits.
CS 504, WRITING AND CONFERENCE/EXPLORATION, 1-9 Credits
This course is repeatable for 15 credits.
CS 505, READING AND CONFERENCE, 1-16 Credits
This course is repeatable for 20 credits.
CS 506, PROJECTS, 1-16 Credits
Graded P/N.
This course is repeatable for 99 credits.
CS 507, SEMINAR, 1-16 Credits
Graded P/N.
This course is repeatable for 16 credits.
CS 510, OCCUPATIONAL INTERNSHIP, 1-4 Credits
This course is repeatable for 99 credits.
Available via Ecampus
CS 511, PROGRAMMING AND DATA STRUCTURES, 4 Credits
Computer programming, problem solving, data structures, object-oriented programming, recursion, sorting, dynamic programming, asymptotic time complexity
Recommended: College algebra, plus the ability to navigate an operating system, manipulate files, and use a command line.
Available via Ecampus
CS 512, DATA SCIENCE TOOLS AND PROGRAMMING, 4 Credits
Accessing and distributing data in the cloud; relational and non-relational databases; map reduction; cloud data processing; load balancing; types of data-stores used in the cloud.
Recommended: CS 511 or an equivalent course or programming experience in in a high-level language like Python, Java or C++.
CS 514, ALGORITHMS: DESIGN, ANALYSIS, AND IMPLEMENTATION, 4 Credits
Explores sorting and selection algorithms including divide-and-conquer, quicksort/quick select, merge sort, binary search trees, memorization, heaps and heapsort, priority queues, hashing, hashed heaps; asymptotic complexity analysis including the Master equation, tree method, amortization; Dynamic Programming on sequences, graphs, trees, and intervals; Graph algorithms including breadth-first search, depth-first search, topological sort, shortest path, minimum spanning tree, network flow. NP-hard and NP-Complete problems.
Recommended: Experience with algorithms and CS 261 or an equivalent undergraduate Data Structures course with a minimum grade of B
CS 515, ALGORITHMS AND DATA STRUCTURES, 4 Credits
Greedy algorithms, divide and conquer, dynamic programming, network flow, data structures.
Recommended: Undergraduate course in algorithms
CS 516, THEORY OF COMPUTATION AND FORMAL LANGUAGES, 4 Credits
Models of computation. Universal machines. Unsolvable problems. Nondeterministic computation. Chomsky hierarchy: regular, context-free, context-sensitive and unrestrictive grammars; characterization, closure properties, algorithms, and limitations.
CS 517, THEORY OF COMPUTATION, 4 Credits
Turing machines, decidability, NP-completeness, complexity classes, randomized computation, relativization, circuit complexity, interactive proof systems, lower bounds, cryptography.
CS 519, SELECTED TOPICS IN COMPUTER SCIENCE, 0-5 Credits
Topics of special and current interest not covered in other courses. May not be offered every year.
This course is repeatable for 99 credits.
Available via Ecampus
CS 520, GRAPH THEORY WITH APPLICATIONS TO COMPUTER SCIENCE, 3 Credits
Directed and undirected graphs; paths, circuits, trees, coloring, planar graphs, partitioning; computer representation of graphs and graph algorithms; applications in software complexity metrics, program testing, and compiling.
Recommended: CS 325 and MTH 232
CS 523, ADVANCED ALGORITHMS, 4 Credits
Approximation algorithms, randomized and probabilistic algorithms, online algorithms.
Recommended: CS 515
CS 527, ERROR-CORRECTING CODES, 4 Credits
Hamming codes, linear codes, cyclic codes, BCH and Reed-Solomon codes. Introduction to Galois fields. Encoding and decoding algorithms. Burst error correcting codes, asymmetric and unidirectional codes. Applications of codes for computer systems.
Recommended: Discrete math and probability
CS 529, SELECTED TOPICS IN THEORETICAL COMPUTER SCIENCE, 1-5 Credits
Topics of interest in algorithms and theory of computation. Topics include approximation algorithms, planar graph algorithms, distributed algorithms, combinatorial optimization, computational geometry.
This course is repeatable for 99 credits.
Recommended: CS 515
CS 531, ARTIFICIAL INTELLIGENCE, 4 Credits
Intelligent agents. Problem-solving as heuristic search. Adversarial search. Constraint satisfaction methods; Arc-consistency. Knowledge representation and reasoning. Propositional logic. Reasoning with propositional logic: algorithms for satisfiability. First-order logic. Proof theory, model theory, resolution refutation, forward and backward chaining, representing events and actions. Lec/lab.
CS 533, INTELLIGENT AGENTS AND DECISION MAKING, 4 Credits
Representations of agents, execution architectures. Planning: non-linear planning, graphplan, SATplan. Scheduling and resource management. Probabilistic agents. Dynamic belief networks. Dynamic programming (value iteration and policy iteration). Reinforcement learning: Prioritized sweeping, Q learning, value function approximation and SARSA (lamda), policy gradient methods.
Recommended: CS 531
CS 534, MACHINE LEARNING, 4 Credits
Continuous representations. Bias-variance tradeoff. Computational learning theory. Gaussian probabilistic models. Linear discriminants. Support vector machines. Neural networks. Ensemble methods. Feature extraction and dimensionality reduction methods. Factor analysis. Principle component analysis. Independent component analysis. Cost-sensitive learning.
CS 535, DEEP LEARNING, 4 Credits
An introduction to the concepts and algorithms in deep learning; basic feedforward neural networks, convolutional neural networks, recurrent neural networks including long short-term memory models, deep belief nets, autoencoders and deep networks applications in computer vision, natural language processing and reinforcement learning.
Prerequisite: CS 534 with C or better or ROB 537 with C or better
CS 536, PROBABILISTIC GRAPHICAL MODELS, 4 Credits
Representation of probabilistic graphical models, both directed (Bayesian networks) and undirected (Markov networks). Exact and approximate inference techniques. Parameter and structure learning from data.
Recommended: Strong programming skills
CS 537, COMPUTER VISION I, 3 Credits
An introduction to low-level computer vision and visual geometry. Topics of interest include the following: detection of interest points and edges, matching points and edges, color models, projective geometry, camera calibration, epipolar geometry, homography, image stitching, and multitarget tracking.
Recommended: Undergraduate-level statistics, probability, calculus, linear algebra, good programming skills, machine learning or AI
CS 539, SELECTED TOPICS IN ARTIFICIAL INTELLIGENCE, 0-5 Credits
Advanced topics in artificial intelligence. Typical topics include machine learning for sequential and spatial data, knowledge representation and inference, probabilistic modeling of complex systems, data mining and information extraction.
This course is repeatable for 99 credits.
CS 540, DATABASE MANAGEMENT SYSTEMS, 4 Credits
Purpose of database systems, levels of data representation. Entity-relationship model. Relational systems: data definition, data manipulation, query language (SQL), relational calculus and algebra, data dependencies and normal forms. DBTG network model. Query optimization, recovery, concurrency control.
Recommended: CS 261
CS 544, OPERATING SYSTEMS II, 4 Credits
Principles of computer operating systems: concurrent processes, memory management, job scheduling, multiprocessing, file systems, performance evaluation, and networking. Lec/rec.
Equivalent to: CS 511
Recommended: (CS 311 or CS 344) and (CS 271 or ECE 375)
CS 546, NETWORKS IN COMPUTATIONAL BIOLOGY, 3 Credits
An introduction to biological networks and computational methods for their analysis, inference, and functional modeling. Various network centralities, topological measures, clustering algorithms, and probabilistic annotation models are introduced in the context of protein interaction, gene regulatory, and metabolic networks. Surveys bioinformatics methods for data-driven inference of network structure.
Recommended: Completion or concurrent enrollment in CS 325
CS 549, SELECTED TOPICS ON DATA SCIENCE & SYSTEMS, 0-5 Credits
Current topics in data science and systems, e.g. querying, inference, and learning over large datasets; reasoning and learning on graph, heterogeneous, and multi-modal data; data curation; knowledge representation; systems for large data exploration and analytics; distributed data systems; human-centered data science; fairness and responsibility in data science.
This course is repeatable for 99 credits.
Recommended: CS 540
CS 550, INTRODUCTION TO COMPUTER GRAPHICS, 4 Credits
Theoretical and practical treatment of 3D computer graphics using OpenGL: geometric modeling, transformations, viewing, lighting, texture mapping, shading, rendering, and animation.
Recommended: CS 261
CS 551, COMPUTER GRAPHICS, 4 Credits
3-D graphics hardware: Line and polygon scan conversion, modeling transformations, viewing transformations, matrix stacks, hierarchical models, perspective and orthographic projections, visible surface determination, illumination models, shading models, texture mapping, ray tracing.
CS 552, COMPUTER ANIMATION, 4 Credits
Traditional animation concepts: production pipeline, keyframing implementation, interpolation, point-mass dynamics, spring-mass systems, rigid body dynamics, forward and inverse kinematics, human motion control, motion capture.
Recommended: CS 551
CS 553, SCIENTIFIC VISUALIZATION, 4 Credits
Applies 3D computer graphics methods to visually understand scientific and engineering data. Methods include hyperbolic projections; mapping scalar values to color spaces; data visualization using range sliders; scalar visualization (point clouds, cutting planes, contour plots, isosurfaces); vector visualization (arrow clouds, particle advection, streamlines); terrain visualization; Delauney triangulation; and volume visualization.
Recommended: Prior experience with Unix or Windows, programming experience
CS 554, GEOMETRIC MODELING IN COMPUTER GRAPHICS, 4 Credits
Advanced topics in computer graphics focusing on representation and processing of polygonal models and their application. Surface fundamentals; discrete differential geometry and topology; data structures for representing 3-D surfaces; surface subdivision and smoothing; mesh simplification and multi-resolution representation of 3-D surfaces; geometry compression; surface parameterization; geometry remeshing; topological simplification; implicit surfaces.
Recommended: CS 450
CS 557, COMPUTER GRAPHICS SHADERS, 4 Credits
Theoretical and practical treatment of computer graphics shaders, including both RenderMan and GPU shaders. Programming in both RenderMan and OpenGL shading languages.
Recommended: Previous graphics pipeline programming experience.
CS 559, SELECTED TOPICS IN COMPUTER GRAPHICS AND VISION, 0-5 Credits
Advanced topics in graphics, animation, and vision. Topics include distribution ray tracing, global-illumination, radiosity, image-based modeling and rendering, vision-assisted image and video editing, 3-D vision, 3-D virtual environments, 3-D interaction, control for physical simulation, motion graphs, computational geometry, etc.
This course is repeatable for 99 credits.
CS 560, DATA-DRIVEN SOFTWARE ENGINEERING, 4 Credits
An overview of data-driven empirical research methods that can be used to understand the different aspects of software engineering.
Prerequisite: CS 561 with C or better
CS 561, SOFTWARE ENGINEERING METHODS, 4 Credits
Master software engineering methods and supporting tools in the context of agile processes. Teams will engage in all aspects of software development including design, testing, implementation, deployment and maintenance. 3 hours of lecture per week plus one-hour independent lab per week.
Recommended: CS 362
CS 562, SOFTWARE PROJECT MANAGEMENT, 4 Credits
Master software project management with an emphasis on timely, cost-effective delivery of high-quality systems. Learn about existing techniques and supporting tools, with a particular focus on coordination and project management. 3 hours of lecture per week plus one-hour independent lab per week.
Recommended: CS 561
CS 563, SOFTWARE MAINTENANCE AND EVOLUTION, 4 Credits
Contribute to the cutting-edge of software engineering. Learn about existing techniques and supporting tools, with a particular focus on maintenance and evolution. Identify opportunities to support software maintenance and evolution more effectively, by creating new knowledge and supporting systems through research and innovation. 3 hours of lecture per week plus one-hour independent lab per week.
Prerequisite: CS 561 with C or better
CS 564, FIELD STUDIES IN SE AND HCI, 4 Credits
Deals with the type of empirical study known as the “case” study. These are studies that collect data from natural software development situations as they really occur in the field, in which the researcher does not manipulate or “control” anything. The course is an end-to-end coverage of the process. Mainly focuses on case studies involving human software developers in the field. The student will conduct a field study as part of this course.
CS 565, HUMAN-COMPUTER INTERACTION, 4 Credits
Basic principles of Human-Computer Interaction (HCI) for the design and evaluation of software systems. Includes research methods for studying human-machine interactions and user interfaces, design strategies, software evaluation methods, and related guidelines and standards.
CS 567, LABORATORY STUDIES IN SE AND HCI, 4 Credits
Empirical lab studies of software development. Covers how to go about designing, preparing for, running, analyzing, and writing-for-publication lab experiments of programming situations involving human subjects. This is an end-to-end coverage of the entire process, and will put students in a position to conduct lab studies of their own with human subjects.
CS 568, INCLUSIVE DESIGN (HCL), 4 Credits
Inclusive design is designing software that works for a wide variety of differently abled customers. Teaches the skills needed to design inclusively without having to have a separate design for each differently abled customer.
Recommended: CS 352 [C] or CS 565 [C]
CS 569, SELECTED TOPICS IN SOFTWARE ENGINEERING, 0-5 Credits
Topics include new programming methodologies, productivity, software development, software complexity metrics.
This course is repeatable for 99 credits.
Recommended: CS 561
CS 570, HIGH PERFORMANCE COMPUTER ARCHITECTURE, 4 Credits
Advanced concepts in computer architecture. Performance improvement employing advanced pipelining and multiple instruction scheduling techniques. Issues in memory hierarchy and management. CROSSLISTED as CS 570/ECE 570.
Equivalent to: ECE 570
Recommended: ECE 472 or ECE 572
CS 572, COMPUTER ARCHITECTURE, 4 Credits
Computer architecture using processors, memories, and I/O devices as building blocks. Issues involved in the design of instruction set architecture, processor, pipelining and memory organization. Design philosophies and trade-offs involved in Reduced Instruction Set Computer (RISC) architectures. Lec/lab. CROSSLISTED as CS 472/ECE 472 and CS 572/ECE 572.
Equivalent to: ECE 572
Recommended: ECE 375
CS 575, INTRODUCTION TO PARALLEL PROGRAMMING, 4 Credits
Theoretical and practical survey of parallel programming, including a discussion of parallel architecture, parallel programming paradigms, and parallel algorithms. Programming one or more parallel computers in a higher-level parallel language.
Available via Ecampus
CS 576, ADVANCED COMPUTER NETWORKING, 4 Credits
Advanced networking concepts: source/channel coding, queuing theory, router design, network architectures (Intserv, DiffServ, MPLS), multimedia protocols (TFRC, RTP), overlay networks, and wireless standards (Bluetooth 802.11b, 3/4G). CROSSLISTED as CS 476/ECE 476 and CS 576/ECE 576.
Equivalent to: ECE 576
Recommended: (CS 372 or ECE 372) and (ECE 353 or ST 314 or ST 314H)
CS 578, CYBER-SECURITY, 4 Credits
A broad overview of the field of computer and network security. Essential cryptographic mechanisms such as symmetric and public-key cryptography (e.g., encryption, signatures), network security and authentication protocols (e.g., Kerberos, TLS, IPSec), system security (e.g., access control, firewalls), advanced topics (e.g., searchable encryption, cloud security, secure computation). CROSSLISTED as CS 578/ECE 578.
Equivalent to: ECE 578
CS 579, TOPICS IN COMPUTER ARCHITECTURE AND PARALLEL PROCESSING, 0-5 Credits
Current topics in advanced computer architecture and parallel processing.
This course is repeatable for 99 credits.
Recommended: CS 575 or CS 572 or ECE 572
CS 581, PROGRAMMING LANGUAGES I, 4 Credits
Graduate-level introduction to functional programming and programming language theory. Strongly typed functional programming in Haskell, abstract syntax and grammars, interpreters, denotional semantics, domain theory, and lambda calculus.
CS 582, PROGRAMMING LANGUAGES II, 4 Credits
Essentials of programming language theory for understanding and conducting programming language research. Dependently typed programming in Agda, Coq, or Idris; operational semantics; type systems; unification and type inference.
Prerequisite: CS 581 with C or better
CS 583, ADVANCED FUNCTIONAL PROGRAMMING, 4 Credits
Advanced functional programming concepts and strategies, with a focus on techniques useful for the design and implementation of programming languages. Includes higher-order abstract syntax, functors and monads, generalized algebraic data types, functional data structures, and graph reduction.
Prerequisite: CS 581 with C or better
CS 585, DOMAIN-SPECIFIC LANGUAGES, 4 Credits
Graduate-level introduction to the design and implementation of domain-specific languages (DSLs). Domain analysis; review and revision of language designs; binding constructs to support abstraction; definition of syntax and semantics of DSLs; prototype implementation of embedded DSL.
Prerequisite: CS 581 with C or better
CS 589, SELECTED TOPICS IN PROGRAMMING LANGUAGES, 1-5 Credits
An in-depth examination of a specific topic of interest in programming language design and implementation. Example topics include object-oriented programming, parallel programming, compiler optimization, programming language semantics.
This course is repeatable for 99 credits.
CS 599, SPECIAL TOPICS, 0-16 Credits
This course is repeatable for 16 credits.
CS 601, RESEARCH, 1-16 Credits
Graded P/N.
This course is repeatable for 99 credits.
CS 603, COMPUTER SCIENCE PHD THESIS, 1-16 Credits
This course is repeatable for 999 credits.
CS 605, READING AND CONFERENCE, 1-16 Credits
This course is repeatable for 16 credits.
CS 607, SEMINAR, 1-16 Credits
This course is repeatable for 16 credits.
CS 637, COMPUTER VISION II, 4 Credits
An introduction to recent advances in visual recognition, including object detection, semantic segmentation, multimodal parsing of images and text, image captioning, face recognition, and human activity recognition. The course covers common formulations of these problems, including energy minimization on graphical models, and supervised machine learning approaches to low- and high-level recognition tasks.
Prerequisite: CS 535 with B+ or better or CS 537 with B- or better
Recommended: CS 519