Computer Laboratory

Freshers: Preparing to study Computer Science (October 2014 Entry)

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

Pi power

Many of you will have access to a Raspberry Pi (they are available for £25 or so). If so, be sure to check out the many official and unofficial tutorials. Our own Raspberry Pi pages may give you inspiration.

If you don't have one, many of the programming tutorials are just as applicable to other devices...

Join the 2014 Facebook Group

Your peers have set up a Facebook group so you can all meet before you arrive! Click here to go to the group

Note: This is a closed Facebook group that was created and is administered entirely by students.

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)

Note that the starred options have 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 fewer 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 at 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.

General Reading

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, ISBN 978-0-521-71978-0.
    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.

Equipment

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.

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, ISBN 978-0262640688.
    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.

Course reading

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.

Further information

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.