University of OregonWebsiteAcademic Catalog
Computer ScienceDepartment Website
Majors
Courses
source 1source 2CS 102: Fundamentals of Computer and Information Security (4)
This course introduces fundamental concepts, terminologies, principles, methods, and scenarios of computer and information security.
CS 110: Fluency with Information Technology (4)
Introduction to information technology (IT), the study of computer-based information systems. Basics of the Internet and World Wide Web. Students create websites using XHTML and CSS.
CS 111: Introduction to Web Programming (4) intro
Project-based approach to learning computer programming by building interactive web pages using JavaScript and XHTML. Programming concepts including structured and object-oriented program design.
CS 122: Introduction to Programming and Problem Solving (4) intro
Computational problem solving, algorithm design, data structures, and programming using a multi-paradigm programming language. Introduces techniques for program design, testing, and debugging.
CS 210: Computer Science I (4) intro
Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures.
CS 211: Computer Science II (4) intro
Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures.
CS 212: Computer Science III (4) intro
Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures.
CS 313: Intermediate Data Structures (4) algs
Design and analysis of data structures as means of engineering efficient software; attention to data abstraction and encapsulation. Lists, trees, heaps, stacks, queues, dictionaries, priority queues.
CS 314: Computer Organization (4) sys
Introduction to computer organization and instruction-set architecture -- digital logic design, binary arithmetic, design of central processing unit and memory, machine-level programming.
CS 315: Intermediate Algorithms (4) algs
Algorithm design, worst-case and average-behavior analysis, correctness, computational complexity.
CS 322: Introduction to Software Engineering (4) softeng
A project-intensive introduction to software engineering intended to build skills, knowledge, and habits of mind that prepare students for 400-level computer science courses, internships, and other software.
CS 330: C/C++ and Unix (4) sys
Practical software design and programming activities in a C/C++ and Unix environment, with emphasis on the details of C/C++ and good programming style and practices.
CS 332: System and Security Administration Lab (4) sys
CS 333: Applied Cryptography (4) sys
This course provides a systematic study of cryptography and its application. It covers cryptographic algorithms, including symmetric-key cryptography, public-key cryptography, cryptanalysis, cryptographic hash functions, and their usage toward message authentication codes, digital signatures, key management and distribution, and user authentication protocols.
CS 372M: Machine Learning for Data Science (4) ai
Introduction to Machine Learning, with an emphasis on topics relevant for data science.
CS 401: Research: [Topic] (116) special
Repeatable.
CS 402: Supervised College Teaching (12) special
Repeatable.
CS 403: Thesis (112) capstone
Repeatable.
CS 404: Internship: [Topic] (14) special
Repeatable.
CS 405: Reading and Conference: [Topic] (112) special
Repeatable up to five times.
CS 406: Practicum: [Topic] (12) special
Supervised consulting. Students provide learning assistance in computer science courses. Repeatable for a maximum of 4 credits.
CS 407: Seminar: [Topic] (15) talks
Repeatable when the topic changes. Opportunity to study in greater depth specific topics arising out of other courses.
CS 408: Workshop: [Topic] (121) special
Repeatable.
CS 409: Terminal Project (112) capstone
Repeatable.
CS 413: Advanced Data Structures (4) algs
Complex structures, storage management, sorting and searching, hashing, storage of texts, and information compression.
CS 415: Operating Systems (4) sys
Principles of operating system design. Process and memory management, concurrency, scheduling, input-output and file systems, security.
CS 420: Automata Theory (4) theory
Provides a mathematical basis for computability and complexity. Models of computation, formal languages, Turing machines, solvability. Nondeterminism and complexity classes.
CS 422: Software Methodology I (4) softeng
Technical and nontechnical aspects of software development, including specification, planning, design, development, management and maintenance of software projects. Student teams complete projects.
CS 423: Software Methodology II (4) softeng
Application of concepts and methodologies covered in CS 422/CS 522. Student teams complete a large system design and programming project. Final system specification, test plan, user documentation, and system walk throughs.
CS 425: Principles of Programming Languages (4) pls
Syntax and semantics. Scope rules, environments, stores, denoted and expressed values, procedures, and parameters. Definitional interpreters. Types, overloading, parametric polymorphism, and inheritance. Varieties of abstraction.
CS 429: Computer Architecture (4) sys
RISC (reduced instruction-set computer) and CISC (complex instruction-set computer) design, storage hierarchies, high-performance processor design, pipelining, vector processing, networks, performance analysis.
CS 431: Introduction to Parallel Computing (4) sys
Parallel architecture, theory, algorithms, and programming with emphasis on parallel programming, focusing on models, languages, libraries, and runtime systems.
CS 432: Introduction to Networks (4) sys
Principles of computer network design. Link technologies, packet switching, routing, inter-networking, reliability. Internet protocols. Programming assignments focus on protocol design.
CS 433: Computer and Network Security (4) sys
Security for various aspects of computers and networks. Elementary cryptography, program security, trusted operating systems, network security, privacy, and legal and ethical issues.
CS 434: Computer and Network Security II (4) sys
This course covers security threats and solutions for distributed systems and networks, particularly the Internet, the Internet of Things, and distributed systems based on them.
CS 436: Secure Software Development (4) sys
This course establishes a foundation for applying security principles to the lifecycle of software development in order to minimize software vulnerabilities and counter cyber threats.
CS 437: Computer and Network Security Practicum (4) sys
CS 441: Introduction to Computer Graphics (4) graphics
Introduction to the hardware, geometrical transforms, interaction techniques, and shape representation schemes that are important in interactive computer graphics. Programming assignments using contemporary graphics hardware and software systems.
CS 443: User Interfaces (4) humans
Introduction to user interface software engineering. Emphasis on theory of interface design, understanding the behavior of the user, and implementing programs on advanced systems.
CS 445: Modeling and Simulation (4)
Theoretical foundations and practical problems for the modeling and computer simulation of discrete and continuous systems. Simulation languages, empirical validation, applications in computer science.
CS 451: Database Processing (4) sys
Fundamental concepts of DBMS. Data modeling, relational models and normal forms. File organization and index structures. SQL, embedded SQL, and concurrency control.
CS 453: Data Mining (4) ai
Databases, machine learning, artificial intelligence, statistics, and data visualization. Examines data warehouses, data preprocessing, association and classification rule mining, and cluster analysis.
CS 461: Introduction to Compilers (4) pls
Lexical analysis, parsing, attribution, code generation.
CS 471: Introduction to Artificial Intelligence (4) ai
Basic themes, issues, and techniques of artificial intelligence, including agent architecture, knowledge representation and reasoning, problem solving and planning, game playing, and learning.
CS 472: Machine Learning (4) ai
A broad introduction to machine learning and its established algorithms. Topics include concept learning, decision trees, neural network.
CS 473: Probabilistic Methods for Artificial Intelligence (4) ai
Fundamental techniques for representing problems as probability distributions, performing inference, and learning from data. Topics include Bayesian and Markov networks, variable elimination, loopy belief propagation, and parameter.
MATH 231: Elements of Discrete Mathematics I (4) math
Sets, mathematical logic, induction, sequences, and functions. Sequence.
MATH 232: Elements of Discrete Mathematics II (4) math
Relations, theory of graphs and trees with applications, permutations and combinations.
MATH 246: Calculus for the Biological Sciences I (4) math
For students in biological science and related fields. Emphasizes modeling and applications to biology. Differential calculus and applications. Sequence. Students cannot receive credit for more than one of MATH 241, MATH 246, MATH 251.
MATH 247: Calculus for the Biological Sciences II (4) math
For students in biological science and related fields. Emphasizes modeling and applications to biology. Integral calculus and applications. Students cannot receive credit for more than one of MATH 242, MATH 247, MATH 252.
MATH 251: Calculus I (4) math
Standard sequence for students of physical and social sciences and of mathematics. Differential calculus and applications. Students cannot receive credit for more than one of MATH 241, MATH 246, MATH 251. Sequence with MATH 252 and MATH 253.
MATH 252: Calculus II (4) math
Standard sequence for students of physical and social sciences and of mathematics. Integral calculus. Sequence. Students cannot receive credit for more than one of MATH 242, MATH 247, MATH 252.
MATH 253: Calculus III (4) math
Standard sequence for students of physical and social sciences and of mathematics. Introduction to improper integrals, infinite sequences and series, Taylor series, and differential equations. Sequence.
MATH 261: Calculus with Theory I (4) math
Covers both applications of calculus and its theoretical background. Axiomatic treatment of the real numbers, limits, and the least upper bound property.
MATH 262: Calculus with Theory II (4) math
Covers both applications of calculus and its theoretical background. Differential and integral calculus.
MATH 263: Calculus with Theory III (4) math
Covers both applications of calculus and its theoretical background. Sequences and series, Taylor's theorem.
MATH 316: Fundamentals of Analysis I (4) math
Rigorous treatment of topics introduced in calculus such as limits, sequences, series, the Cauchy condition, and continuity. Development of mathematical proof in these contexts. Sequence with MATH 317.
MATH 341: Elementary Linear Algebra (4) math
Vector and matrix algebra; n-dimensional vector spaces; systems of linear equations; linear independence and dimension; linear transformations; rank and nullity; determinants; eigenvalues; inner product spaces; theory of a single linear transformation. Sequence.
MATH 342: Elementary Linear Algebra (4) math
Vector and matrix algebra; n-dimensional vector spaces; systems of linear equations; linear independence and dimension; linear transformations; rank and nullity; determinants; eigenvalues; inner product spaces; theory of a single linear transformation.
MATH 343: Statistical Models and Methods (4) math
Review of theory and applications of mathematical statistics including estimation and hypothesis testing. Students cannot get credit for both MATH 343 and DSCI 345M/MATH 345M.
MATH 345M: Probability and Statistics for Data Science (4) math
Introduction to probability and statistics, with an emphasis upon topics relevant for data science. Multilisted with DSCI 345M. Students cannot get credit for both MATH 343 and DSCI 345M/MATH 345M.
MATH 347: Fundamentals of Number Theory I (4) math
A study of congruences, the Chinese remainder theorem, the theory of prime numbers and divisors, Diophantine equations, and quadratic reciprocity. Development of mathematical proof in these contexts. Sequence with MATH 348.
MATH 351: Elementary Numerical Analysis I (4) math
Basic techniques of numerical analysis and their use on computers. Topics include root approximation, linear systems, interpolation, integration, and differential equations. Sequence.
MATH 352: Elementary Numerical Analysis II (4) math
Basic techniques of numerical analysis and their use on computers. Topics include root approximation, linear systems, interpolation, integration, and differential equations.
MATH 391: Fundamentals of Abstract Algebra I (4) math
Introduction to algebraic structures including groups, rings, fields, and polynomial rings. Sequence.
MATH 425: Statistical Methods I (4) math
Statistical methods for upper-division and graduate students anticipating research in nonmathematical disciplines. Presentation of data, sampling distributions, tests of significance, confidence intervals, linear regression, analysis of variance, correlation, statistical software.
MATH 461: Introduction to Mathematical Methods of Statistics I (4) math
Discrete and continuous probability models; useful distributions; applications of moment-generating functions; sample theory with applications to tests of hypotheses, point and confidence interval estimates. Sequence.
MATH 462: Introduction to Mathematical Methods of Statistics II (4) math
Discrete and continuous probability models; useful distributions; applications of moment-generating functions; sample theory with applications to tests of hypotheses, point and confidence interval estimates.