Freshers: Preparing to study Computer Science
These pages are intended to support and inspire incoming IA Computer Science students. In the period between receiving exam results and arriving in Cambridge, it is all too tempting to sit back and relax. However, it can be immensely beneficial (if not crucial) to take a more active role in preparing to start your studies, and this page is a great starting point for doing so! This note is intended to help students prepare for studying Computer Science at Cambridge both in the Computer Science Tripos and for the Computer Science option in the Natural Sciences and PPS Triposes. The background reading will give you an idea of the breadth of topics covered by the course rather than actually starting on course material. There are also some practical steps that it would be worth taking. Finally, some pointers to text books that are relevant for first-year courses are mentioned; if you are able to browse through these in advance, so much the better, but do complete all the general reading first.
You should also consult the reading lists and other preparatory material for the Natural Sciences or Mathematical Triposes. In particular, you should try all the exercises in the workbook from the University's Faculty of Mathematics.
Meeting your peers
Education is often best when practised as a collaborative activity. In years gone by, there was little hope of finding out about your peers before your arrival in Cambridge, so it was difficult to usefully collaborate. Social networking has changed all this however, and you should join the Facebook group for the 2012 Freshers (which is run by current students and NOT the department!):
|Join the 2012 CompSci
Fresher Facebook group
NEW for 2012:The Computer Laboratory has generously purchased a Raspberry Pi computer for every new CST fresher! These have been distributed to the Colleges to be forwarded to students, and may even have arrived with the confirmation letter for some.
Once you've got yours, check out our Raspberry Pi Fresher pages for inspiration (and a little chance to show off...).
Confirm your option
The first year of the course has a series of options as described on the admissions page. Most of you will have specified your choice when you applied, but many Colleges do not require a final decision until you arrive (with the exception of "Computer Science with Maths", which has different entry requirements).
Before you arrive, you should carefully review the options to make sure you know what they entail. Your Director of Studies will gladly assist you if you have questions, or you can use the Facebook group linked to above to ask current students.
To remind you, the options are as follows (linked to their official option pages)
- Maths Tripos papers 1 and 2* (only if you applied for this option and did well in STEP)
- Physiology of Organisms
- Earth Sciences
- Evolution and Behaviour
- Psychology (PPS Paper 3)
Note that the starred options have specific entry requirements specified on their linked pages. Others may have recommended or desirable backgrounds - please check the option you are interested in carefully.
The majority of our students take the Physics option, which is similar in teaching style and workload to the Computer Science papers. By way of contrast, the Psychology option is more essay-based with few lectures and would suit an interested student with good language skills who is willing to study independently.
The maths workbook
Cambridge throws a lot of material a you in a short period of time, and much of it is mathematical. Unfortunately, skills in mathematics are prone to atrophy if not practised so it is worth spending time brushing up on a wide range of topics.
To assist you in this endeavour, you should try all the exercises in the mathematics workbook produced by the University's Faculty of Mathematics before you arrive.
The most important preparation is to build up a broad background understanding of issues in computer science. There are a range of useful books. An excellent informal collection of accessible and relevant articles is:
- The new Turing omnibus, A Kee Dewdney, Palgrave Macmillan,
2003, ISBN 978-0805071665.
Remember to try the exercises at the end of each chapter.
Computer science relies heavily on mathematics, not only for formal proofs but also as the language used to describe almost every aspect of the subject. You will need to be fluent in mathematics and familiar with the ideas of formal proof. An excellent introduction is:
- How to think like a mathematician,
Kevin Houston, Cambridge University Press, 2009,
Don't be misled by the title; this book is absolutely relevant for computer scientists. It includes many worked examples and also illustrates common mistakes.
It is worth keeping up with advances in science more generally. Magazines like Scientific American and New Scientist cover a wide range of topics in an accessible style, and often have articles relating to computer science. Of course, there are also many web sites that carry technical news.
It is possible, if unusual, to do the entire course using only the University and College provision of computing facilities. However, most students arrive with their own computers. The specification need not be particularly high, since shared facilities can always be used for substantial computation, but it is useful to be able reconfigure your own machine and install alternative operating systems.
Freshers in 2012 will also be receiving a free Raspberry Pi computer to experiment with. This will also come in handy once the course has started.
Programming and other practical skills
There is some advantage to building up a set of core skills that will be useful for your studies. Some students have found touch-typing to be valuable. Training software is available on most computer systems. Use it. Automatic speech recognition is almost impossible to use for programming.
You might care to try a little programming. However, approach this with care! Teaching yourself to program can lead to your picking up bad habits that will hinder your progress later. Avoid languages like C and C++ as your first programming languages.
The best bet would be to play with a language such as Python that will allow you to explore algorithms without getting bogged down in details. Have a look at www.python.org for a free implementation and introductory tutorials. Python will run on a Raspberry Pi or standard PC. However, the important thing is to find some suitable problems to solve; The New Turing Omnibus, listed above, is a good source of ideas. Another excellent book is:
- The elements of computing systems: Building a modern computer from first principles,
Noam Nisan & Shimon Schocken, MIT Press, 2008,
The book leads you through the construction of a computer from digital logic to writing a game, all in easy stages. It includes practical exercises which can be written in Python.
It is also worth remembering that programming is usefully undertaken as a collaborative activity; get together with a friend to discuss problems and compare each other's solutions.
The first year course includes lectures and practical work on digital electronics. You should know the difference between voltage and current, and the ideas of resistance and capacitance. It will also help to have handled electronic components and built some circuits. Electronics retailers such as Maplins sell a number of introductory radio and logic kits for about £10. The elements of computing systems also includes a program that allows you to simulate digital circuits.
Finally, you might like to look at some text books that will be recommended for first-year lecture courses. Follow the link to Part IA and click on the Syllabus tab for any of the lecture courses there: www.cl.cam.ac.uk/teaching/current/. Several books are included for each major course and you might like to look at more than one to find which suits you. Printed notes will be handed out for most courses, so you don't actually need to buy all of these.
The Computer Laboratory's Web pages at www.cl.cam.ac.uk carry a lot of information about the course. The Director of Studies at your college will also be pleased to advise you. If all else fails, the Student Administration Secretary in the Computer Laboratory should be able to help.