Background reading & activities
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.
Your local library should be able to help with many of the books listed below:
- Computational Fairy Tales by Jeremy Kubica; CreateSpace, 2012. 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."
- Artificial Intelligence: A Ladybird Expert Book by Michael Wooldridge; Michael Joseph Books, 2018. Written by our Head of Department, this book “…chronicles the development of intelligent machines, from Turing's dream of machines that think, to today's digital assistants like Siri and Alexa.”
- Once Upon an Algorithm: How Stories Explain Computing by Martin Erwig; MIT Press, 2017. Concepts in Computer Science explained through familiar stories such as Hansel and Gretel, Sherlock Holmes, the movie Groundhog Day, and Harry Potter.
- Computer Science: An Overview by J. Glenn Brookshear; Pearson, 2014. 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. Microsoft Press, 2000. "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."
- The Pattern on the Stone: The Simple Ideas That Make Computers Work by Daniel Hillis; Basic Books, 1999. Explains the basic concepts of the computer in everyday language.
- The Information: A History, a Theory, a Flood by James Gleick; Fourth Estate, 2012. A chronicle that shows how information has become "the modern era's defining quality - the blood, the fuel, the vital principle of our world."
- Outnumbered: From Facebook and Google to fake news and filter-bubbles – the algorithms that control our lives by David Sumpter; Bloomsbury Sigma, 2018. An applied mathematician takes a look at what algorithms are doing with our data and how they are changing our lives.
- AI: Its Nature and Future by Margaret A Boden; Oxford University Press, 2016. “…reviews the philosophical and technological challenges raised by Artificial Intelligence, considering whether programs could ever be really intelligent, creative or even conscious, and shows how the pursuit of Artificial Intelligence has helped us to appreciate how human and animal minds are possible.”
- The Code Book by Simon Singh; Fourth Estate, 2002. Not strictly about Computer Science, but an interesting introduction to code-breaking and cryptography, fields that have a strong connection to Computer Science.
- Algorithmic Puzzles by Anany Levitin and Maria Levitin; Oxford University Press, 2011. "...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 ..."
- The New Turing Omnibus by A Kee Dewdney; Palgrave Macmillan, 2003. Mini articles on Computer Science topics.
- Hello World: How to be Human in the Age of the Machine by Hannah Fry; Black Swan, 2019. "...a tour of the good, the bad and the downright ugly of the algorithms that surround us."
- The Road to Conscious Machines: The Story of AI by Michael Wooldridge; Pelican, 2021. "...elucidates the discoveries of its greatest pioneers from Alan Turing to Demis Hassabis, and shows us what today's AI researchers actually think and do. AI appeals to fundamental questions about what it means to be human; so too do the failures and limitations of its past."
- Hidden Figures: The American Dream and the Untold Story of the Black Women Who Helped Win the Space Race by Margot Lee Shetterly; HarperCollins, 2016. The story of NASA’s African-American female 'Human Computers'.
- Computing with Quantum Cats: From Alan Turing to Teleportation: From Colossus to Qubits by John Gribbin; MIT Press, 2015. Pioneering study of the science behind quantum computing and what the new quantum reality will mean for mankind.
- Alice in Puzzle-Land by Raymond M.Smullyan;Dover Publications Inc., 2011. Characters from Alice's Adventures in Wonderland and Through the Looking-Glass populate these 88 intriguing puzzles. Mathematician Raymond Smullyan re-creates the spirit of Lewis Carroll's writings in puzzles involving word play, logic and metalogic, and philosophical paradoxes. Challenges range from easy to difficult and include solutions, plus 60 charming illustrations.
Magazines, blogs, journals, videos, websites & other stuff
- Isaac Computer Science - free online learning platform for A-level Computer Science
- Computerphile videos
- Computer Science Unplugged - a Computer Science curriculum for pre-university students developed in New Zealand.
- 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 was printed twice a year (up to 2018) and has an associated website with additional articles.
- Making sense of artificial intelligence This A-Z guide offers a series of simple, bite-sized explainers to help anyone understand what AI is, how it works and how it’s changing the world around us.
- The A-Z of AI - Computational Thinking by Jeannette Wing of Carnegie-Mellon University - It represents a universally applicable attitude and skill set everyone, not just computer scientists, would be eager to learn and use.
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
- STEP Support Programme [Note: we don’t require our applicants to take STEP, and we don’t make it part of our conditional offers. But the STEP Support Programme can help you to develop your problem-solving skills, and that’s useful even if you’re not taking STEP.]
- Numberphile videos
- Chalkdust Magazine, written by Maths students at University College London
- 3Blue1Brown: YouTube channel
- Python Challenges page
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 - Fire up your 7–11 year old’s imagination.
- 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.
- The UK Bebras Challenge 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.
- Project Euler is a series of challenging mathematical/computer programming problems.
- Codecademy provides a fun introduction to programming.
- The British Informatics Olympiad is a national computer programming competition for British Schools and colleges.
- CodeClub is an after school activity for children.
- 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.
- Cyber Discovery – an extracurricular cyber security learning programme for Y10–13 students from across England.
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. Please note that due to the Covid-19 pandemic, all of outreach is currently remote in format.
Suggestions for Computer Science and Philosophy applicantsIf 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 (2nd edition) by Graham Hutton; Cambridge University Press, 2016 OR
- Introduction to Functional Programming using Haskell (2nd edition) by Richard Bird; Prentice-Hall International, 1998 OR
- Learn You a Haskell for Great Good! A Beginner's Guide by Miran Lipovača; No Starch Press, 2011.
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 (5th edition) by Kenneth Ross and Charles Wright; Prentice-Hall, 2003.
- Discrete Mathematics by A Chetwynd and P Diggle; Arnold, 1995.
- Discrete and Combinatorial Mathematics: An Applied Introduction (5th edition) by Ralph P Grimaldi (3rd edition); Addison Wesley, 2003.
- A study skills guide:
- How to Study for a Mathematics Degree by Lara Alcock; Oxford University Press, 2012. (Maths focused, but much of the content is also applicable to mathematical Computer Science.)
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
- 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.