Computer Science at Oxford
Mathematics and Computer Science core 2
From Computer Science at Oxford
In their second year, students in the Mathematics and Computer Science degree study four of five core Computer Science papers: Concurrency, Logic and Proof, Models of Computation, Numerical Analysis, and Object Oriented Programming; and two core Mathematics courses from Algebra, Analysis and Differential Equations.
Contents |
Computer Science courses
Object-Oriented Programming
On this course you will focus on the construction and maintenance of larger programs. Building on the course in Imperative Programming, the course uses a sequence of graduated case studies to illustrate the principles of abstraction and modularity that underlie the design of successful software systems. The course is structured around a large case-study, the design of an editing and production system for magazine publishing.
Concurrency
Computer networks, multiprocessors and parallel algorithms, though radically different, all provide examples of processes acting in parallel to achieve some goal. All benefit from the efficiency of concurrency yet require careful design to ensure that they function correctly. The concurrency course introduces the fundamental concepts of concurrency using the notation of Communicating Sequential Processes. By introducing communication, parallelism, deadlock, live-lock, etc., it shows how CSP represents, and can be used to reason about, concurrent systems. Students are taught how to design interactive processes and how to modularise them using synchronisation. One important feature of the module is its use of both algebraic laws and semantic models to reason about reactive and concurrent designs. Another is its use of FDR to animate designs and verify that they meet their specifications.
Models of Computation
On this course you will gain a basic understanding of the classical mathematical models used to analyse computing processes, including finite automata, grammars, and Turing machines. These mathematical models can be used to answer questions such as what problems can be solved by computer, and whether there some problems that are intrinsically harder to solve than others.
Logic and Proof
This course is an introduction for Computer Scientists to the ideas of formal logic. It begins with basic examples of the finite mathematical structures used in computing, and builds up a formal, logical language for making statements about these structures that can be proved in a system of symbolic rules of inference. You will develop the skills of using formal logic to express and prove useful properties of mathematical structures, and more generally in constructing rigorous proofs and manipulating formal notation. You will end the course with a brief survey of other uses of formalisms in Computer Science.
Numerical analysis
Scientific computing pervades our lives: modern buildings and structures are designed using it, medical images are reconstructed for doctors using it, the cars and planes we travel on are designed with it, the pricing of "instruments" in the financial market is done using it, tomorrows weather is predicted with it. The derivation and study of the core, underpinning algorithms for this vast range of applications defines the subject of Numerical Analysis. This course gives an introduction to that subject. The emphasis in the course is on applying algorithms to numerical problems, but this demonstration shows how the same algorithms can be applied to solving a combinatorial puzzle.
Mathematics courses
Algebra
Further Linear Algebra: The core of linear algebra comprises the theory of linear equations in many variables, the theory of matrices and determinants, and the theory of vector spaces and linear transformations. All these topics were introduced in the Moderations course. Here they are developed further to provide the tools for applications in geometry, modern mechanics and theoretical physics, probability and statistics, functional analysis and, of course, algebra and number theory. Our aim is to provide a thorough treatment of some classical theorems that describe the behaviour of linear transformations on a finite-dimensional vector space to itself, both in the purely algebraic setting and in the situation where the vector space carries a metric deriving from an inner product.
Rings and Arithmetic: This half-course introduces the student to some basic ring theory with a number-theoretic slant. The first year algebra course contains a treatment of the Euclidean Algorithm in its classical manifestations for integers and for polynomial rings over a field. Here the idea is developed in abstracto. The Gaussian integers, which have applications to some classical questions of number theory, give an important and interesting (and entertaining) illustration of the theory.
Analysis
The theory of functions of a complex variable is a rewarding branch of mathematics to study at the undergraduate level with a good balance between general theory and examples. It occupies a central position in mathematics with links to analysis, algebra, number theory, potential theory, geometry, topology, and generates a number of powerful techniques (for example, evaluation of integrals, solution of ordinary and partial differential equations) with applications in many aspects of both pure and applied mathematics, and other disciplines, particularly the physical sciences.
In these lectures we begin by introducing students to the language of topology before using it in the exposition of the theory of (holomorphic) functions of a complex variable. The central aim of the lectures is to present Cauchy's theorem and its consequences, particularly series expansions of holomorphic functions, the calculus of residues and its applications.
The course includes an introduction to series solutions of second order ordinary differential equations in the complex plane and concludes with an account of the conformal properties of holomorphic functions and applications to mapping regions.
Differential Equations
The aim of this course is to introduce all students reading mathematics to the basic theory of ordinary and partial differential equations. On completion of the course, students will understand the importance of existence and uniqueness and will be aware that explicit analytic solutions are the exception rather than the rule. They will acquire a toolbox of methods for solving linear equations and for understanding the solutions of nonlinear equations.
The course will be example-led and will concentrate on equations that arise in practice rather than those constructed to illustrate a mathematical theory. The emphasis will be on solving equations and understanding the possible behaviours of solutions, and the analysis will be developed as a means to this end.
The course will furnish undergraduates with the necessary skills to pursue any of the applied options in the third year and will also form the foundation for a deeper and more rigorous course in partial differential equations.
