+ All Categories
Home > Documents > Computer Science at Oxford Stephen Drape Access/Schools Liaison Officer (Adapted from Mike...

Computer Science at Oxford Stephen Drape Access/Schools Liaison Officer (Adapted from Mike...

Date post: 31-Mar-2015
Category:
Upload: keagan-brummett
View: 215 times
Download: 2 times
Share this document with a friend
Popular Tags:
33
Computer Science at Oxford Stephen Drape Access/Schools Liaison Officer (Adapted from Mike Spivey’s slides) 1
Transcript
Page 1: Computer Science at Oxford Stephen Drape Access/Schools Liaison Officer (Adapted from Mike Spivey’s slides) 1.

Computer Science at Oxford

Stephen Drape

Access/Schools Liaison Officer

(Adapted from Mike Spivey’s slides)

1

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

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

2

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

Myth 1: Little chance of getting in False!

Statistically: you have a 30–50% chance Logistically: it’s never been easier

3

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

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.

4

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

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.

5

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

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.

6

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

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.

7

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

Our courses 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

8

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

Computer Science

Year 1

Year 2

Year 3

Mathematics Computing

Project work

Year 4

9

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

Computer Science

Core CS 1(75%)

Core CS 2(50%)

CS Options(50%)

CS Options(25%)

Advanced Options(50%)

Project(25%)

Advanced Options(66%)

Project(33%)

Core Maths(25%)

Year 1

Year 2

Year 3

Year 4(optional)

10

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

Mathematics & Computer Science

Year 1

Year 2

Year 3

Mathematics Computing

Year 4

Project work

11

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

Mathematics & Computer Science

Core 1(100%)

Core 2(58%)

CS Options(25%)

CS Options(25-75%)

OptionalProject(33%)

MathsOptions(17%)

Year 1

Year 2

Year 3

Year 4(optional)

MathsOptions

(25-75%)

MathsOptions

(25-75%)

CS Options(25-75%)

12

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

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

13

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

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

14

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

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.

15

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

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

16

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

Creating an algorithm

For our example, we had three steps:1) Find the factors2) Find those factors in common3) Find the highest factor in common

These steps allow us to construct an algorithm.

17

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

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.

18

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

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.

19

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

Function for Step 1

20

Page 21: Computer Science at Oxford Stephen Drape Access/Schools Liaison Officer (Adapted from Mike Spivey’s slides) 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).

21

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

Function for Step 2

22

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

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

23

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

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.

24

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

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.

25

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

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?

26

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

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.

27

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

A Faster Algorithm

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

28

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

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

29

The algorithm works because any factor of a and b is also a factor of a – b

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

Writing this algorithm in Haskell

30

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

An even faster algorithm

hcf(1001,308) 1001 = 3 × 308 + 77= hcf(308,77) 308 = 4 × 77= hcf(77,0)= 77

31

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

Algorithm DesignWhen 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.

32

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

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

33


Recommended