Computer Science at Oxford

Slides:



Advertisements
Similar presentations
Numbers Treasure Hunt Following each question, click on the answer. If correct, the next page will load with a graphic first – these can be used to check.
Advertisements

Advanced Piloting Cruise Plot.
& dding ubtracting ractions.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
Chapter 1 The Study of Body Function Image PowerPoint
Author: Julia Richards and R. Scott Hawley
1 Copyright © 2013 Elsevier Inc. All rights reserved. Appendix 01.
Properties Use, share, or modify this drill on mathematic properties. There is too much material for a single class, so you’ll have to select for your.
ALGEBRA Number Walls
How to Factor Quadratics of the Form
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Title Subtitle.
CALENDAR.
FACTORING ax2 + bx + c Think “unfoil” Work down, Show all steps.
Year 6 mental test 5 second questions
Year 6 mental test 10 second questions
Around the World AdditionSubtraction MultiplicationDivision AdditionSubtraction MultiplicationDivision.
Solve Multi-step Equations
REVIEW: Arthropod ID. 1. Name the subphylum. 2. Name the subphylum. 3. Name the order.
Evaluating Expressions
Order of Operations Lesson
Factoring Quadratics — ax² + bx + c Topic
Randomized Algorithms Randomized Algorithms CS648 1.
PP Test Review Sections 6-1 to 6-6
Hash Tables.
1 University of Utah – School of Computing Computer Science 1021 "Thinking Like a Computer"
CS 6143 COMPUTER ARCHITECTURE II SPRING 2014 ACM Principles and Practice of Parallel Programming, PPoPP, 2006 Panel Presentations Parallel Processing is.
2 |SharePoint Saturday New York City
Green Eggs and Ham.
VOORBLAD.
R.USHA TGT ( MATHEMATICS) KV,GILL NAGAR CHENNAI.
Factor P 16 8(8-5ab) 4(d² + 4) 3rs(2r – s) 15cd(1 + 2cd) 8(4a² + 3b²)
Basel-ICU-Journal Challenge18/20/ Basel-ICU-Journal Challenge8/20/2014.
1..
© 2012 National Heart Foundation of Australia. Slide 2.
Sets Sets © 2005 Richard A. Medeiros next Patterns.
Understanding Generalist Practice, 5e, Kirst-Ashman/Hull
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Synthetic.
Note to the teacher: Was 28. A. to B. you C. said D. on Note to the teacher: Make this slide correct answer be C and sound to be “said”. to said you on.
Model and Relationships 6 M 1 M M M M M M M M M M M M M M M M
25 seconds left…...
1 Using one or more of your senses to gather information.
Slippery Slope
Januar MDMDFSSMDMDFSSS
Analyzing Genes and Genomes
We will resume in: 25 Minutes.
©Brooks/Cole, 2001 Chapter 12 Derived Types-- Enumerated, Structure and Union.
Essential Cell Biology
Local Search Jim Little UBC CS 322 – CSP October 3, 2014 Textbook §4.8
Intracellular Compartments and Transport
PSSA Preparation.
Essential Cell Biology
1 Chapter 13 Nuclear Magnetic Resonance Spectroscopy.
CpSc 3220 Designing a Database
Order of Operations And Real Number Operations
1 Decidability continued…. 2 Theorem: For a recursively enumerable language it is undecidable to determine whether is finite Proof: We will reduce the.
Mathematical Sciences at Oxford Stephen Drape. 2 Who am I? Dr Stephen Drape Access and Schools Liaison Officer for Computer Science (Also a Departmental.
Mathematical Sciences at Oxford Stephen Drape. 2 Who am I? Dr Stephen Drape Access and Schools Liaison Officer for Computer Science (Also a Departmental.
Mathematical Sciences at Oxford Stephen Drape. 2 Who am I? Dr Stephen Drape Access and Schools Liaison Officer for Computer Science (Also a Departmental.
Choosing Oxford. 2 Who am I? Dr Stephen Drape Access and Schools Liaison Officer for Computer Science (Also a Departmental Lecturer) 8 years at Oxford.
Mathematical Sciences at Oxford Stephen Drape Access/Schools Liaison Officer Computer Science.
Computer Science at Oxford Stephen Drape Access/Schools Liaison Officer.
Mathematical Sciences at Oxford Stephen Drape. 2 Who am I? Dr Stephen Drape Access and Schools Liaison Officer for Computer Science (Also a Departmental.
Mathematical Sciences at Oxford Stephen Drape. 2 Who am I? Dr Stephen Drape Access and Schools Liaison Officer for Computer Science (Also a Departmental.
Presentation transcript:

Computer Science at Oxford Stephen Drape Access/Schools Liaison Officer (Adapted from Mike Spivey’s slides)

Four myths about Oxford There’s little chance of getting in It’s expensive College choice is very important You have to be very bright

Myth 1: Little chance of getting in False! Statistically: you have a 30–50% chance Logistically: it’s never been easier

Myth 2: It’s very expensive False! Most colleges provide cheap accommodation for three years. College libraries and dining halls also help you save money. Increasingly, bursaries help students from poorer backgrounds.

Myth 3: College Choice Matters False! If the college you choose is unable to offer you a place because of space constraints, they will pass your application on to a second, computer-allocated college. Application loads are intelligently redistributed in this way. Lectures are given centrally by the department as are many classes for courses in later years.

Myth 3: College Choice Matters However… Choose a college that you like as you have to live and work there for 3 or 4 years – visit if possible. Look at accommodation & facilities offered. Choose a college that has a tutor in your subject.

Myth 4: You have to be bright True! We find it takes special qualities to benefit from the kind of teaching we provide. So we are looking for the very best in ability and motivation.

Our courses Computer Science Mathematics and Computer Science Computer Science firmly based on Mathematics Mathematics and Computer Science Closer to a half/half split between CS and Maths Courses can be for three or four years

Computer Science Year 1 Year 2 Year 3 Year 4 Mathematics Computing Project work

Computer Science Core CS 1 (75%) Core Maths (25%) Core CS 2 (50%) Year 1 Core CS 2 (50%) CS Options (50%) Year 2 CS Options (25%) Advanced Options (50%) Project (25%) Year 3 Advanced Options (66%) Project (33%) Year 4 (optional)

Mathematics & Computer Science Year 1 Year 2 Year 3 Year 4 Mathematics Computing Project work

Mathematics & Computer Science Core 1 (100%) Year 1 Core 2 (58%) Maths Options (17%) CS Options (25%) Year 2 Maths Options (25-75%) CS Options (25-75%) Year 3 Maths Options (25-75%) CS Options (25-75%) Optional Project (33%) Year 4 (optional)

Some of the different courses Functional Programming Design and Analysis of Algorithms Imperative Programming Digital Hardware Calculus Linear Algebra Logic and Proof

Useful Sources of Information Admissions: http://www.admissions.ox.ac.uk/ Computing Laboratory: http://web.comlab.ox.ac.uk/oucl/ Mike Spivey’s info pages: http://web.comlab.ox.ac.uk/oucl/prospective/ugrad/csatox/ College admissions tutors

What is Computer Science? It’s not about learning new programming languages. It is about understanding why programs work, and how to design them. If you know how programs work then you can use a variety of languages. It is the study of the Mathematics behind lots of different computing concepts.

Finding the Highest Common Factor Example: Find the HCF of 308 and 1001. 1) Find the factors of both numbers: 308 – [1,2,4,7,11,14,22,28,44,77,154,308] 1001 – [1,7,11,13,77,91,143,1001] 2) Find those in common [1,7,11,77] 3) Find the highest Answer = 77

Creating an algorithm For our example, we had three steps: Find the factors Find those factors in common Find the highest factor in common These steps allow us to construct an algorithm.

Creating a program We are going to use a programming language called Haskell. Haskell is used throughout the course at Oxford. It is very powerful as it allows you write programs that look very similar to mathematical equations. You can easily prove properties about Haskell programs.

Step 1 We need produce a list of factors for a number n – call this list factor(n). A simple way is to check whether each number d between 1 and n is a factor of n. We do this by checking what the remainder is when we divide n by d. If the remainder is 0 then d is a factor of n. We are done when d=n. We create factor lists for both numbers.

Function for Step 1

Step 2 Now that we have our factor lists, which we will call f1 and f2, we create a list of common factors. We do this by looking at all the numbers in f1 to see if they are in f2. We there are no more numbers in f1 then we are done. Call this function: common(f1,f2).

Function for Step 2

Step 3 Now that we have a list of common factors we now check which number in our list is the biggest. We do this by going through the list remembering which is the biggest number that we have seen so far. Call this function: highest(list).

Function for Step 3 If list is empty then return 0, otherwise we check whether the first member of list is higher than the rest of list.

Putting the three steps together To calculate the hcf for two numbers a and b, we just follow the three steps in order. So, in Haskell, we can define Remember that when composing functions, we do the innermost operation first.

Problems with this method Although this method is fairly easy to explain, it is quite slow for large numbers. It also wastes quite a lot of space calculating the factors of both numbers when we only need one of them. Can we think of any ways to improve this method?

Possible improvements Remember factors occur in pairs so that we actually find two factors at the same time. If we find the factors in pairs then we only need to check up to n. We could combine common and highest to find the hcf more quickly (this kind of technique is called fusion). Could use prime numbers.

A Faster Algorithm This algorithm was apparently first given by the famous mathematician Euclid around 300 BC.

An example of this algorithm hcf(308,1001) = hcf(308,693) = hcf(308,385) = hcf(308,77) = hcf(231,77) = hcf(154,77) = hcf(77,77) = 77 The algorithm works because any factor of a and b is also a factor of a – b

Writing this algorithm in Haskell

An even faster algorithm hcf(1001,308) 1001 = 3 × 308 + 77 = hcf(308,77) 308 = 4 × 77 = hcf(77,0) = 77

Algorithm Design When designing algorithms, we have to consider a number of things: Our algorithm should be efficient – that is, where possible, it should not take too long or use too much memory. We should look at ways of improving existing algorithms. We may have to try a number of different approaches. We should make sure that our algorithms are correct.

Comments and Questions If there’s any comments or questions then please ask. There should be staff and students available to talk to Thank You