CS Curricula

←All schools

University of OregonWebsiteAcademic Catalog

Computer ScienceDepartment Website

Majors

Courses

source 1source 2

CS 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.