Computer Science

CS 103. Exploring Computer Science (Staff)
A survey of the many sub-fields of computer science, which will provide an introduction to what computer science is and what computer scientists do. Topics will range from the theoretical (mathematical foundations of computing, design algorithms) to the practical (components of the computer, how the Internet works). No credit will be given for this course if a student has previous credit for CS 110 or any computer science course with a higher number than 110. F, S. (Group II, Quantitative)

CS 110. Introduction to Computer Science and Programming (Staff)
An introduction to the fundamental concepts and abstractions of computer science, using a study of algorithms and computer programming as a vehicle. Topics include: the design, implementation, and application of algorithms; the uses of abstraction; the modeling and representation of values and entities; control flow and modularity. A high-level programming language is introduced and used. F, S. (Group II, Quantitative)

CS 210. Intermediate Computer Science and Data Structures (Zaring)
A continuation of the study of abstraction, algorithms, and computer science. Concepts related to the design, analysis, and implementation of more advanced abstract data types (lists, stacks, queues, trees, graphs, etc.) are covered in detail. Prerequisite: CS 110. S. (Group II, Quantitative)

CS 255. Computer Organization (McCulloch)
The organization and inner-workings of computer systems are covered in some detail, with an emphasis on the relationships among the various levels of hardware and software found in such systems. Attention is focused both on general concepts and on case studies of specific systems. Assembly language programming is introduced. Prerequisites: CS 110 and CS 210 or consent of instructor. F. (Group II)

CS 270. Paradigms of Computation (Zaring)
An introduction to the fundamental and emergent paradigms, both formal and pragmatic, of algorithms and computation. Topics include basic automata theory, functional programming, object-oriented design, and concurrent/parallel programming. The Scheme programming language is introduced. This course cannot be taken for credit after receiving credit for CS 380. Prerequisites: CS 210, CS 255, MATH 250. S. (Group II)

CS 310. Database Systems (Zaring)
A study of the foundations, design, and implementation of database systems. Topics include data models, database design, query languages, database architectures, implementation issues, and case studies. Projects involving implementations of or use of database systems are required. Prerequisites: CS 210, CS 270 or consent of instructor, MATH 250. (Group II)

CS 320. Computer Systems and Architecture (McCulloch)
A detailed discussion of the architecture of computer systems, including studies of data- and control-paths, memory systems, and parallel/distributed systems. Programming and digital-circuit design projects may be required. Prerequisites: CS 210, CS 255, MATH 250. (Group II)

CS 340. Artificial Intelligence (McCulloch)
An introduction to issues surrounding machine intelligence. General topics include knowledge representation, searching, reasoning, learning, and planning. Specific problems drawn from areas including computer game playing, theorem proving, natural language processing, expert systems, and robotics will be addressed. Programming projects in LISP, Scheme, Prolog, or related languages are required. Prerequisites: CS 210, CS 270, MATH 250. (Group II)

CS 350. Operating Systems (Wiebe)
The fundamental concepts of resource management in operating systems. This includes process management, storage management, device management, and networking issues. Case studies of actual operating systems will be presented. Prerequisites: CS 210, CS 255, MATH 250. (Group II)

CS 355. Computer Networking and Communications (Wiebe)
Practical and theoretical aspects of computer networking and communications are covered (using the Open Systems Interconnection Reference Model as a unifying framework), with reference to actual implementations of network protocols (e.g., TCP/IP and Ethernet). Network security and other topics of current interest are discussed. Prerequisites: CS 210, CS 255, MATH 250. (Group II)

CS 360. Algorithm Analysis and Design (McCulloch)
A continuation of the study of data structures begun in CS 250 with emphasis on the design and analysis of algorithms. Also an introduction to questions of efficiency and NP completeness. Prerequisites: CS 210, CS 270, MATH 111, 250. (Group II)

CS 370. Programming Languages (Zaring)
A systematic study of programming language design, analysis, and implementation. Relationships among languages, language properties and features, and formal notions of language semantics are considered. Major language paradigms (imperative, functional, object-oriented, logic programming, and others) are studied. Prerequisites: CS 210, CS 270, MATH 250. (Group II)

CS 380. Theory of Computation (Zaring)
A study of the formal theories underlying computer science. Topics include Turing machines, automata theory, recursive functions, computability, and formal languages. Prerequisites: CS 270 or consent, MATH 250. F. (Group II)

CS 390. Special Topics in Computer Science
A course of varying content reflecting the needs and interests of students. (Group II)

CS 410. Compiler Theory and Design (Zaring)
An investigation of compiler theory, design, and construction. Formal and practical issues in lexical analysis, syntactic analysis, semantic analysis (including type-checking and optimization), and code generation are covered. Substantial projects concerning implementation of working compilers are required. Prerequisites: CS 210, CS 255, CS 270, CS 380. S. (Group II)

CS 490. Independent Study (Staff)
Independent study of a topic in advanced computer science under the guidance of a faculty member. Individually arranged.

CS 491. Directed Readings (Staff)
Readings in advanced computer science under the guidance of a faculty member. Individually arranged.

CS 499. Seminar (Staff)
Intensive study of a topic selected by the faculty member in charge with presentation by students.

Mathematics

MATH 104. Great Ideas in Mathematics (Staff)
A course intended for non-majors which will emphasize the ideas of modern mathematics. Topics may include Number Systems, Infinity, The Fourth Dimension, Chaos and Fractals, Probability, and Chance. No credit can be awarded for this course if a student has previous credit for Math 111 or any mathematics course with a higher number than 111. F. (Group II, Quantitative)

MATH 105. Basic Probability and Statistics (Linder)
Organization and display of data; the meaning of probability, measures of dispersion, binomial and normal distribution, one and two sample methods, estimation and hypothesis testing, correlation and regression. The MINITAB statistical computing package is used to analyze data. Students may not count graduation credit for both MATH 105 and PSYC 210. This course cannot be taken after receiving credit for MATH 110 or above. Proficiency credit for MATH 110 or MATH 111 may not be awarded after credit for MATH 105. F, S. (Quantitative)

MATH 108. Precalculus Mathematics (Staff)
This course is designed for students who wish eventually to take calculus but have insufficient mathematical background. It is expected that these students will have studied Algebra 2 and Geometry in high school. The course will emphasize the techniques and thought processes that are important in calculus. Principal topics: functions, graphs, exponentials and logarithms, trigonometry, mathematical reasoning, word problems. Use will be made of modern technology. Prerequisite: At least three years of high school mathematics, including two years of algebra and geometry. S.

MATH 110. Calculus I (Staff)
A detailed treatment of the differential calculus and an introduction to the integral are presented. Symbolic algebra software is introduced and used. Applications to social, life, and physical sciences are included. Students wishing to major in mathematics or computer science are urged to take this course in the fall of the freshman year. F, S. (Group II, Quantitative)

MATH 111. Calculus II (Staff)
Continuation of MATH 110. A thorough treatment of integral calculus, including the Fundamental Theorem of calculus. Transcendental functions, followed by a study of techniques of integration, polar coordinates, and infinite series. Computer symbolic algebra projects are included. Prerequisite: MATH 110. F, S. (Group II, Quantitative)

MATH 200.2. Mathematical Models of Climate (Jackson)
This course will examine climate from the point of view of mathematical modeling. Emphasis will be on simple models that serve to highlight the relative roles and interactions of individual climate processes. This course will have a particular focus on the near-polar regions primarily through the modeling of glaciers and climate-glacier interaction. Prerequisite: MATH 110. S. (Group II)

MATH 200.3. Biostatistics (Linder)
Introduction to statistical methods common in biological and biomedical sciences. Includes sampling and experimental design, probability, continuous and discrete random variables, sampling distributions, one and multiple sample inferences using confidence intervals and significance tests, contingency table analysis, simple and multiple linear regression, one-factor ANOVA with multiple comparisons. Students will use the R statistical software package. Students may count for graduation credit only one of the courses MATH 105, MATH 200.3, MATH 230, and PSYCH 210. Prerequisite: MATH 110. F. (Group II, Quantitative)

MATH 210. Multivariable Calculus (Pyzza)
Vectors and geometry of three-dimensional space, partial derivatives, multiple integrals, and an introduction to vector analysis. Computer symbolic algebra projects are included. Prerequisite: MATH 111. F. (Group II, Quantitative)

MATH 230. Applied Statistics (Linder)
Introductory course in statistics. Exploratory data analysis, questions of causation, probability, continuous and discrete random variables, distributions of sums of random variables, sampling distributions, one and two-sample confidence intervals and significance tests, limitations of inference, model selection and inference in simple and multiple linear regression. Students may count for graduation credit only one of the courses MATH 105, MATH 200.3, MATH 230, and PSYC 210. Prerequisite: MATH 110. F, S. (Group II, Quantitative)

MATH 250. Discrete Mathematics (Jackson)
An introduction to mathematical reasoning and to the kind of mathematics appropriate for the study of properties of (possibly large) finite systems. Topics include proof techniques, mathematical induction, elementary number theory, combinatorics, relations, and graph theory. Applications will be made to the construction of models useful in the social and physical sciences and to the study of algorithms in computer science. Prerequisite: MATH 111 F. (Group II)

MATH 270. Linear Algebra (Jackson)
Matrix algebra, finite dimensional vector spaces, linear transformations, determinants, eigenvalues, and applications. Prerequisite: MATH 210 or MATH 250. Recommended: MATH 250. S. (Group II)

MATH 280. Differential Equations (Schwartz)
Study of first and second-order equations, numerical methods, and first-order systems. Applications to problems in the physical, life, and social sciences are emphasized. Computer software is used to support the study by providing enhanced symbolic, numerical, and graphing capability. Additional topics include certain prerequisites from linear algebra (as needed), and Laplace transforms. Prerequisite: MATH 111. S. (Group II)

MATH 300.3. Dynamical Systems in Neuroscience (Pyzza)
A mathematical modeling course focusing on dynamical systems with applications in neuroscience. Topics include equilibria, bifurcations, phase plane analysis, limit cycles, and numerical integration techniques. Neuroscience examples will be taken from Hodgkin-Huxley, integrate-and-fire, and firing-rate models. Prerequisite: MATH 280. F. (Group II)

MATH 310. Mathematical Logic (Nunemacher)
A study of the foundations of mathematics and logical reasoning. Topics include propositional calculus, predicate calculus, properties of formal systems, completeness and compactness theorems, Godel’s Incompleteness Theorem, and axiomatic set theory. Some attention will be given to related philosophical issues. Prerequisite: MATH 250. Also listed as PHIL 371. (Group II)

MATH 320. Geometry (Schwartz)
An introduction to the study of geometry, both ancient and modern. Topics will be chosen from Euclidean, affine, projective, elliptic, and hyperbolic geometries. Some time will be spent on axiomatics and the history of geometry. Tools such as matrices and groups will be developed as they are needed for the study of geometric problems. Prerequisite: MATH 250 or consent of instructor. F. (Group II)

MATH 330. Complex Variables (Nunemacher)
A study of analytic functions, power series, complex integration, conformal mapping, and the calculus of residues with applications to physical science. Prerequisite: MATH 210 and one course numbered 250 or above. (Group II)

MATH 335. Vector Analysis and Geometry (Nunemacher)
Advanced calculus of functions of more than one variable. Topics include the geometry of Euclidean space, vector fields, line and surface integrals, curvature and differential geometry. Prerequisite: MATH 210. (Group II)

MATH 340. Analysis I (Schwartz)
Rigorous development of the topology of the real line, theory of metric spaces, and the foundations of calculus. Attention is given to constructing formal proofs. Prerequisite: MATH 210 and MATH 250. Recommended: MATH 270. F. (Group II)

MATH 345. Special Topics in Mathematics (Staff)
A course of varying content reflecting the needs and interests of students. (Group II)

MATH 350. Probability (Schwartz)
An introduction to the major topics of probability including sample spaces, conditional probability, discrete and continuous random variables, exception and variance, and limit theorems (law of large numbers, central limit theorem). Time permitting, topics in stochastic processes or statistics are introduced. Prerequisite: MATH 210. F. (Group II)

MATH 360. Mathematical Statistics (Linder)
Sampling distributions, derivation of distributions, proof of the Central Limit Theorem, methods of estimation, hypothesis testing, uniformly most powerful tests, estimation in multiple regression, nonparametric methods, experimental design. Prerequisite: MATH 230, and 350. S. (Group II)

MATH 365. Special Topics in Statistics (Linder)
A course of varying content reflecting the needs and interests of students. (Group II)

MATH 370. Abstract Algebra I (Jackson)
Introduction to the algebraic systems of groups, rings, and fields; with applications. Attention is given to the construction of formal proofs. Prerequisite: MATH 250, MATH 270. F. (Group II)

MATH 380. Applied Mathematics (Wiebe)
Selected topics in ordinary and partial differential equations including Sturm-Liouville problems, Fourier series, Laplace transforms, boundary value problems, and special functions of mathematical physics. Prerequisite: MATH 210 and MATH 280. (Group II)

MATH 385. Numerical Analysis (Pyzza)
A survey of numerical mathematics and continuous algorithms. Topics may include number representation, error analysis, finding roots of equations, interpolation, numerical differentiation and integration, solving system of linear equations, and numerical methods for differential equations. Prerequisite: MATH 210, MATH 270, CS 110. (Group II)

MATH 440. Analysis II (Schwartz)
An advanced analysis course considering topics such as Lebesque measure and integration, Hilbert and Banach spaces, Fourier series, and topology. Prerequisite: MATH 340. (Group II)

MATH 470. Abstract Algebra II (Jackson)
Continuation of MATH 270 and MATH 370. Topics may include further group theory, field and Galois theory, and linear algebra topics such as Jordan normal form. Prerequisite: MATH 370. (Group II)

MATH 490. Independent Study in Mathematics (Staff)
Independent study of a topic in advanced mathematics under the guidance of a faculty member. Individually arranged.

MATH 491. Directed Readings (Staff)
Reading in advanced mathematics under the guidance of a faculty member. Individually arranged.

MATH 498. Student Seminar (0.5 unit; Jackson)
A student-lead discussion of advanced topics of interest to the students and the instructor. Students will complete an independent or group project on the selected topic, write a paper on their findings, and present their results to the class. Intended for junior and senior mathematics majors; other students may be admitted with the consent of the instructor. Grading for the course is S/U. The course may be repeated for credit on a different topic. Prerequisite: MATH 250.

MATH 499. Seminar (Staff)
Intensive study of a topic selected by the faculty member in charge with presentations by students. Recent topics have included chaos, stochastic processes, combinatorics, experimental design, number theory, and curves and singularities. S.