# Background reading & activities

## Contents |

## Prospective undergraduate students

Books & e-book reader. Photo credit: Relly Butler
**For prospective undergraduate students, or those just wanting to learn a bit more about what Computer Science is really about,
we encourage you to read any relevant materials that you find interesting.
Some examples are provided below to get you started. This can also be downloaded as a PDF file, here.
**

## Books

You don't need to read all of them, but nor is the list exhaustive. Your local library should be able to help with many of the books listed below:

*Computational Fairy Tales*by Jeremy Kubica. ISBN: 978-1477550298 - a romp through the principles of computational thinking, illustrating high-level computer science concepts, the motivation behind them, and their application via the medium of a fairy tale. Aimed at secondary school students. "Bonkers, but very enjoyable."*Computer Science: An Overview*by J. Glenn Brookshear. ISBN: 978-0321544285 - overview of what computer science is all about: each topic is presented with its historical perspective, current state, and future potential, as well as ethical issues.*Code: The Hidden Language of Computer Hardware and Software*by Charles Petzold. ISBN: 978-0735611313 - "What do flashlights, the British invasion, black cats, and seesaws have to do with computers? ...see how ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries."*Out of Their Minds*by D Shasha and Cathy Lazere. ISBN: 978-3540979920 - the lives and discoveries of fifteen unsung computer scientists whose programs have helped people from factory owners to cartoonists.*The Pattern on the Stone: The Simple Ideas That Make Computers Work*by Daniel Hillis. ISBN: 978-0465025961 - explains the basic concepts of the computer in everyday language.*The Information: A History, a Theory, a Flood*by James Gleick. ISBN: 978-0007225736 - a chronicle that shows how information has become "the modern era's defining quality - the blood, the fuel, the vital principle of our world."*The Pleasures of Counting*by Tom Kôrner. ISBN: 978-0521568234 - puts Maths into the context of how it is used to solve real-world problems.*The Code Book*by Simon Singh. ISBN: 978-1857028898 - not strictly about Computer Science, but an interesting introduction to code-breaking and cryptography, fields that have a strong connection to Computer Science.*The New Turing Omnibus*by A Kee Dewdney. ISBN: 978-0805071665 - mini articles on Computer Science topics.*Algorithmic Puzzles*by Anany Levitin and Maria Levitin. ISBN: 978-0199740444 - "...The emphasis lies in training the reader to think algorithmically and develop new puzzle-solving skills: the majority of puzzles are problems where we are asked to find the shortest distance or the fewest moves to get from A to B, or construct a proof that a puzzle has no solution ..."

## Magazines, blogs, journals, videos, websites & other stuff

- CS4FN (Computer Science for Fun) is a magazine on computer science aimed at school students "Explore how computer science is also about people, solving puzzles, creativity, changing the future and, most of all, having fun." It is printed twice a year and has an associated website with additional articles.
- Computer Science Unplugged - a Computer Science curriculum for pre-university students developed in New Zealand.
- Free, online lectures and courses from Academic Earth. (There's a Maths section as well as the Computer Science one.)
- BBC's Make IT Digital initiative.

## Mathematical activities

Computer Science is a mathematical subject, and we are looking for students who enjoy mathematics as well as computing. Here is a selection of resources which may help you to develop your abilities in this area.

- The United Kingdom Mathematics Trust offers a range of Challenges and Olympiads for UK students, and also publishes books on mathematical problem-solving.
- Art of Problem Solving: Resources
- NRich Maths
- Numberphile videos
- Chalkdust Magazine, written by Maths students at University College London
- Blogs, videos and books by Alex Bellos
- Dr Vicky Neale's homepage
- Oxford Mathematics Alphabet.

## For a younger audience

These activities are a great way to start your first steps into Computer Science if you're 12 or younger.

- Just Add Imagination - Creative science and maths activities to inspire imaginative futures for 7 - 11 year olds
- Scratch is a programming language and online community where you can create your own interactive stories, games, and animations. (Great for an older audience too)

## Some more practical activities

Don't forget: programming goes far beyond creating web pages, so don't restrict your reading and practical experimentation to this one area.

- You may like to look at our GeomLab website which will introduce you to some of the most important ideas in computer programming in an interactive, visual way through a guided activity.
- The Turtle system is a graphics programming environment designed to provide an enjoyable introduction to programming in Java syntax, together with a practical insight into fundamental concepts of computer science such as compilation and machine code.
- The Alice system from Carnegie Mellon University provides a point-and-click environment for designing 3-D animations and is a useful introduction to object-oriented programming.
- Elizabeth is an automated conversation and natural language processing program that provides an enjoyable introduction to natural language processing, and that can give insights into some of the fundamental methods and issues of artificial intelligence within an entertaining context.
- CodeAcademy provides a fun introduction to programming.
- Or for a younger audience there's the after school CodeClub.
- Young Rewired State is a series of collaborative hacking events for under 18s. It brings together young developers to build web and mobile applications that attempt to solve real world problems.
- Project Euler is a series of challenging mathematical/computer programming problems.
- Female prospective students (and their teachers) might be interested in the work of the National Centre for Women and Information Technology.
- The British Informatics Olympiad is a national computer programming competition for British Schools and colleges.
- The UK Bebras Competition is a problem solving competition for years 2 – 13, with a focus on computational and logical thinking, designed to get students excited about computing and computational thinking. It does not require any preparation and is completed online in schools. Registration takes place through school coordinators.
- Khan Academy Pixar in a Box is a behind-the-scenes look at how Pixar artists do their jobs. You will be able to animate bouncing balls, build a swarm of robots, and make virtual fireworks explode.

The Department of Computer Science at Oxford hosts Open Days and events for school-age pupils. These are normally free of charge and range from five-day residential courses to one off Taster Days.

## Suggestions for Computer Science and Philosophy applicants

If you're interested in applying to study Computer Science and Philosophy and want to find out a bit more about Philosophy, some suggested reading materials are given here.## Candidates with offers

**The following are suggestions for summer reading once you've been offered a place on an Oxford undergraduate Computer Science course
(including joint honours courses). You do not necessarily need to purchase these - your local library can probably help,
and there will be copies available in your College library once you get to Oxford.**

- A functional programming book:
*Programming in Haskell*by Graham Hutton. ISBN: 978-0521692694 OR*Introduction to Functional Programming using Haskell*by Richard Bird (2nd edition). ISBN: 978-0134843469

The first is more accessible but the second covers more areas relevant to the Oxford Computer Science degrees. These books are intended to be challenging so please don't worry if you find them difficult. Richard Bird's book is the set text for the Functional Programming course that you will take in your first term: during this course you will have the benefit of tutorials, lectures and practicals to help your understanding, not just the text book in isolation.

- A background text on discrete Maths, for example one of these (there are many others):
*Discrete Mathematics*by Kenneth Ross and Charles Wright (5th edition). ISBN: 978-0130652478*Discrete Mathematics*by A Chetwynd and P Diggle. ISBN: 978-0340610473*Discrete Mathematics for Computing*by Peter Grossman (3rd edition). ISBN: 978-0230216112

plus the useful Mathematics for Computer Science Facts & Formulae leaflet (PDF), available free from the Maths, Stats and OR Network.

- A study skills guide:
*The Sciences Good Study Guide*by Andrew Northedge, Jeff Thomas, Andrew Lane and Alice Peasgood. ISBN: 978-0749234113

### Students without Further Maths

Although an A-level in Further Maths is not a requirement for studying Computer Science at Oxford, it is recommended. If you have only studied a single A-level in Maths, it would be helpful for you to do some preparatory work particularly focusing on discrete Maths and logical thinking, before coming up in October. Please see the free resources from the Oxford University Mathematical Institute for suggestions, especially the notes on Induction and Recursion.

- Other useful texts:
*How to Prove It: A Structured Approach*by Daniel Velleman. ISBN: 978-0521446631*Algorithmics: The Spirit of Computing*by David Harel. ISBN: 978-0321117847 - the concepts, ideas, methods and results fundamental to Computer Science, in a way that is independent of the details of specific computers, languages, etc.