## Courses

### Mathematics 111 - Calculus

Full course for one semester. This includes a treatment of limits, continuity, derivatives, mean value theorem, integration—including the fundamental theorem of calculus, and definitions of the trigonometric, logarithmic, and exponential functions. Prerequisite: three years of high school mathematics. Lecture-conference.

### Mathematics 112 - Introduction to Analysis

Full course for one semester. Field axioms, the real and complex fields, sequences and series. Complex functions, continuity and differentiation; power series and the complex exponential. Prerequisite: Mathematics 111 or equivalent. Lecture-conference.

### Mathematics 113 - Discrete Structures

Full course for one semester. Sets, cardinality, number theory, combinatorics, probability. Proof techniques and problem solving. Additional topics may include graph theory, finite fields, and computer experimentation. Prerequisite: three years of high school mathematics. Lecture-conference.

### Mathematics 131 - Introduction to Number Theory

Full course for one semester. A rigorous introduction to the theorems of elementary number theory. Topics may include: axioms for the integers, Euclidean algorithm, Fermat’s little theorem, unique factorization, primitive roots, primality testing, public-key encryption systems, Gaussian integers. Prerequisite: three years of high school mathematics or consent of instructor. Lecture-conference.

Not offered 2018–19.

### Mathematics 138 - Knot Theory, Knot Practice

Full course for one semester. An introduction to modern mathematics through the lens of knot theory. Through the study of invariants, we will see how the notions of number and algebra come to bear on a simply stated but perplexing question: when are two knots the same? Topics include Reidemeister moves, rational tangles, Seifert surfaces, quantum knot invariants, and applications of knot theory to tertiary DNA structures. Students of all mathematical backgrounds welcome. Prerequisite: three years of high school mathematics or consent of the instructor. Lecture-conference.

Not offered 2018–19.

### Mathematics 141 - Introduction to Probability and Statistics

Full course for one semester. The basic ideas of probability including properties of expectation, the law of large numbers, and the central limit theorem are discussed. These ideas are applied to the problems of statistical inference, including estimation and hypothesis testing. The linear regression model is introduced, and the problems of statistical inference and model validation are studied in this context. A portion of the course is devoted to statistical computing and graphics. Prerequisite: three years of high school mathematics. Lecture-conference and laboratory.

### Mathematics 201 - Linear Algebra

Full course for one semester. A brief introduction to field structures, followed by presentation of the algebraic theory of finite dimensional vector spaces. Topics include linear transformations, determinants, eigenvalues, eigenvectors, diagonalization. Geometry of inner product spaces is examined in the setting of real and complex fields. Prerequisite: Mathematics 112. Lecture-conference.

### Mathematics 202 - Vector Calculus

Full course for one semester. The derivative as a linear function, partial derivatives, optimization, Taylor series, multiple integrals, change of variables, Stokes’s theorem. Prerequisite: Mathematics 201. Lecture-conference.

### Mathematics 241 - Case Studies in Statistical Analysis

Full course for one semester. Applied statistics class with an emphasis on data analysis. The course will be problem driven with a focus on collecting and manipulating data, using exploratory data analysis and visualization tools, identifying statistical methods appropriate for the question at hand, and communicating the results in both written and presentation form. For 2017, the course will focus on data management and inferential challenges related to working with voter registration, voter history, and elections returns data. Prerequisite for mathematics credit: Mathematics 141 or equivalent. Prerequisite for political science credit: one statistics course (Mathematics 141, Economics 311 or 312, Political Science 311, or Sociology 311) and one introductory policy course (Political Science 210, 250, or 260, Economics 201, or Sociology 211). Lecture-conference. Cross-listed in 2016–17 as Political Science 341 (renumbered as Political Science 376). Not offered for Political Science credit in 2018–19.

Not offered 2018–19.

### Mathematics 243 - Statistical Learning

Full course for one semester. An overview of modern approaches to analyzing large and complex data sets that arise in a variety of fields from biology to marketing to astrophysics. The most important modeling and predictive techniques will be covered, including regression, classification, clustering, resampling, and tree-based methods. There will be several projects throughout the course, which will require significant programming in R. Prerequisite: Mathematics 141, or experience with linear regressions and programming. Lecture-conference.

### Mathematics 311 - Complex Analysis

Full course for one semester. A study of complex valued functions: Cauchy’s theorem and residue theorem, Laurent series, and analytic continuation. Prerequisite: Mathematics 202. Lecture-conference.

### Mathematics 321 - Real Analysis

Full course for one semester. A careful study of continuity and convergence in metric spaces. Sequences and series of functions, uniform convergence, normed linear spaces. Prerequisite: Mathematics 202. Lecture-conference.

### Mathematics 322 - Ordinary Differential Equations

Full course for one semester. An introduction to the theory of ordinary differential equations. Existence and uniqueness theorems, global behavior of solutions, qualitative theory, numerical methods. Prerequisite: Mathematics 202. Lecture-conference. Offered in alternate years.

Not offered 2018–19.

### Mathematics 332 - Abstract Algebra

Full course for one semester. An elementary treatment of the algebraic structure of groups, rings, fields, and/or algebras. Prerequisite: Mathematics 331, or Mathematics 201 and one of Mathematics 113, 131, or 138. Lecture-conference.

### Mathematics 341 - Topics in Geometry

Full course for one semester. Topics in geometry selected by the instructor. Possible topics include the theory of plane ornaments, coordinatization of affine and projective planes, curves and surfaces, differential geometry, algebraic geometry, and non-Euclidean geometry. Prerequisite: Mathematics 202. Lecture-conference. Offered in alternate years.

### Mathematics 342 - Topology

Full course for one semester. An introduction to basic topology, followed by selected topics such as topological manifolds, embedding theorems, and the fundamental group and covering spaces. Prerequisite: Mathematics 202 and 332, the latter of which may be taken concurrently. Lecture-conference.

### Mathematics 361 - Number Theory

Full course for one semester. A study of integers, including topics such as divisibility, theory of prime numbers, congruences, and solutions of equations in the integers. Prerequisite: Mathematics 201. Mathematics 332 is recommended. Lecture-conference. Offered in alternate years.

### Mathematics 372 - Combinatorics

Full course for one semester. Emphasis is on enumerative combinatorics including such topics as the principle of inclusion-exclusion, formal power series and generating functions, and permutation groups and Pólya theory. Selected other topics such as Ramsey theory, inversion formulae, the theory of graphs, and the theory of designs will be treated as time permits. Prerequisite: Mathematics 113 and 201. Lecture-conference. Offered in alternate years.

Not offered 2018–19.

### Mathematics 382 - Algorithms and Data Structures

See Computer Science 382 (below) for description.

### Mathematics 387 - Computability and Complexity

See Computer Science 387 (below) for description.

### Mathematics 388 - Cryptography

See Computer Science 388 (below) for description.

### Mathematics 391 - Probability

Full course for one semester. A development of probability theory in terms of random variables defined on discrete sample spaces. Special topics may include Markov chains, stochastic processes, and measure-theoretic development of probability theory. Prerequisite: Mathematics 202. Lecture-conference.

### Mathematics 392 - Mathematical Statistics

Full course for one semester. Theories of statistical inference, including maximum likelihood estimation and Bayesian inference. Topics may be drawn from the following: large sample properties of estimates, linear models, multivariate analysis, empirical Bayes estimation, and statistical computing. Prerequisite: Mathematics 391 or consent of the instructor. Lecture-conference.

### Mathematics 411 - Topics in Advanced Analysis

Full course for one semester. Topics selected by the instructor. Prerequisite: Mathematics 321 or consent of the instructor. Lecture-conference.

### Mathematics 412 - Topics in Algebra

Full course for one semester. Topics selected by the instructor, for example, commutative algebra, Galois theory, algebraic geometry, and group representation theory. Prerequisite: Mathematics 332 or consent of the instructor. Lecture-conference.

### Mathematics 441 - Topics in Computer Science Theory

See Computer Science 441 (below) for description.

Not offered 2018–19.

### Mathematics 470 - Thesis

Full course for one year.

### Mathematics 481 - Independent Study

One-half course for one semester. Independent reading primarily for juniors and seniors. Prerequisite: approval of the instructor and the division.

## Computer Science

### Computer Science 121 - Computer Science Fundamentals I

Full course for one semester. An introduction to computer science, covering topics including elementary algorithms and data structures, functional and procedural abstraction, data abstraction, object orientation, logic, and the digital representations of numbers. Emphasis is on mathematical problems and calculations and on recursive algorithms and data structures. The course includes a significant programming laboratory component where students will solve computational problems using a high-level language. The mechanisms for processing and executing programs will be surveyed. Prerequisite: three years of high school mathematics. Lecture-laboratory. *Previously numbered Mathematics 121.*

### Computer Science 221 - Computer Science Fundamentals II

Full course for one semester. A second course in computer science, an introduction to advanced structures and techniques. The course will develop the foundations of computing, providing an introduction to theoretical models of computation and also to practical computer system construction. Selected topics include digital design, from gates to processors; the construction of interpreters, including language parsing and run-time systems; parallelism and concurrency; and universality. There will be significant programming projects exploring a number of these topics, and students will be introduced to the advanced programming techniques and data structures that support their construction. Prerequisite: Computer Science 121 or equivalent. Lecture-laboratory. *Previously numbered Mathematics 221.*

### Computer Science 382 - Algorithms and Data Structures

Full course for one semester. An introduction to computer science covering the design and analysis of algorithms. The course will focus on various abstract data types and associated algorithms. The course will include implementation of some of these ideas on a computer. Prerequisite: Computer Science 121 or equivalent, and one of Mathematics 112 or 113. Conference. Cross-listed as Mathematics 382. *Numbered solely as Mathematics 382 prior to 2017—18.*

### Computer Science 384 - Programming Language Design and Implementation

Full course for one semester. A study of the organization and structure of modern programming languages. This course will survey key programming language paradigms, including functional, object-oriented, and logic- and constraint-based languages. A formal approach will be taken to understanding the fundamental concepts underlying these paradigms, including their syntax, semantics, and type systems. The course will cover selected topics in the implementation of language systems such as parsers, interpreters, and compilers, and of run-time support for high-level languages. Prerequisite: Computer Science 221, and one of Mathematics 112 or 113. Lecture-conference. *Previously numbered Mathematics 384.*

Not offered 2018–19.

### Computer Science 385 - Computer Graphics

Full course for one semester. Introduction to computer image synthesis and mathematical modeling for computer graphics applications. Topics include image processing, 2-D and 3-D modeling techniques such as curve and surface representation, geometric algorithms for intersection and hidden surface removal, 3-D rendering, and animation. Prerequisite: Computer Science 121 and Mathematics 201. Lecture-conference. *Previously numbered Mathematics 385.*

Not offered 2018–19.

### Computer Science 387 - Computability and Complexity

Full course for one semester. Introduction to models of computation including finite automata, formal languages, and Turing machines, culminating in universality and undecidability. An introduction to resource-bounded models of computation and algorithmic complexity classes, including NP and PSPACE, and the notions of relative hardness and completeness. Prerequisite: Computer Science 121 or equivalent, and Mathematics 112 and 113. Lecture-conference. Cross-listed as Mathematics 387. *Numbered solely as Mathematics 387 prior to 2017—18.*

### Computer Science 388 - Cryptography

Full course for one semester. An introduction to modern cryptography. Topics include private- and public-key encryption, message authentication codes, pseudorandomness, and digital signatures. Emphasis is placed on formal definitions of security, proofs of security, and key constructions. Prerequisite: Computer Science 382, 387, or Mathematics 382, 387, or 332. Lecture-conference. Cross-listed as Mathematics 388. *Numbered solely as Mathematics 388 prior to 2017—18.*

### Computer Science 389 - Computer Systems

Full course for one semester. A study of the design and implementation of computing systems, focusing on aspects whose underpinnings are firmly based in algorithms and applied logic or whose implementation offers interesting problems in those areas. A survey of computer architecture and the hardware-software interface, compilation and run time, and concurrent and networked programming. An introduction to theoretical approaches to problems related to the synchronization and coordination of independently executing processes. Prerequisite: Computer Science 221. Lecture-conference. *Previously numbered Mathematics 389.*

### Computer Science 393 - Operating System Design and Implementation

Full course for one semester. This course covers the low-level details of the software that drives computing hardware, spanning such disparate systems as supercomputers, the Internet backbone, laptops, and smartphones. Topics include kernel architectures, scheduling, memory management, security policies and mechanisms, assurance, file systems, networking, virtualization, real time, safety-critical and security-critical systems. Students will implement several operating system components. Prerequisite: Computer Science 221. Lecture-Conference-Laboratory.

Not offered 2018–19.

### Computer Science 394 - Principles of Compiler Design

Full course for one semester. This course covers the design and construction of programming language compilers. It covers the basic phases of the compilation process, including syntactic analysis and parsing, semantic analysis, intermediate representations of code, dataflow analysis, register allocation, code generation, and other optimizations. The end product of the course is a working compiler for a programming language. Time permitting, the course surveys advanced techniques such as compilation of functional programming languages or compilation for high-performance hardware. Prerequisite: Computer Science 389 or consent of the instructor. Lecture-conference.

Not offered 2018–19.

### Computer Science 395 - Advanced Computer Architecture

Full course for one semester. A course that explores the implementation of computer processors, with focus on techniques and designs that seek high performance. We look at pipelining, superscalar designs, multiprocessor systems, cache coherence in multiprocessors, graphics processing units, embedded systems, and network processors. Material includes reading and discussion of technical papers as well as programming projects on several different architectures. Prerequisite: Computer Science 389 or consent of the instructor. Lecture-conference.

Not offered 2018–19.

### Computer Science 441 - Topics in Computer Science Theory

Full course for one semester. Exploration of topics from advanced algorithm design and theoretical computer science including complexity theory, cryptography, computational geometry, and randomized algorithms, as selected by the instructor. Prerequisite: Computer Science or Mathematics 387 or consent of the instructor. Lecture-conference. Offered in alternate years. Cross-listed as Mathematics 441. *Numbered solely as Mathematics 441 prior to 2017—18.*

Not offered 2018–19.

### Computer Science 442 - Topics in Computer Science Systems

Full course for one semester. A study of the design and implementation techniques used in a particular area of computer science as selected by the instructor. Students will implement a working system in that area. Recent offerings have covered distributed and networked systems, compilers, and computer game design. Prerequisite: Computer Science 389 or consent of the instructor. Lecture-conference. Offered in alternate years. *Previously numbered Mathematics 442.*

### Computer Science 470 - Thesis (Computer Science)

Full course for one year.

### Computer Science 481 - Independent Study

One-half course for one semester. Primarily for juniors and seniors. Prerequisite: approval of the instructor and the division.