Preparing to study Computer Science
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.
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 collecion 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.
Academic study of Computer Science relies on mathematical techniques to formulate and analyse problems. An elegantly written presentation of practical applications (some of them specifically related to programming computers) is:
- The pleasures of counting, Tom Körner, Cambridge University Press, 1996, ISBN 978-0-521-56823-4.
It will also help to pursue recreational mathematics in the form of games and puzzles to keep your skills tuned. Indeed, the exercises in Körner's book probably count as recreational mathematics.
Students have recommended the following introduction to code-breaking and cryptography, fields that have a strong connection to Computer Science:
- The code book, Simon Singh, Fourth Estate, 2000, ISBN 978-1857028898.
For general reading, New Scientist covers a range of scientific topics in an accessible style, and often has articles relating to advances in computer science.
Learning at university is rather different from being taught at school. You will have to manage your own studies, schedule your time and arrange classes. The Open University has produced an excellent book for its students which includes much that is directly relevant to more conventional universities and will continue to be valuable throughout your time in Cambridge:
- The sciences good study guide, Andrew Northedge, Jeff Thomas, Andrew Lane and Alice Peasgood, The Open University, 1997, ISBN 978-0-7492-3411-3.
Most students arrive with a computer. If you do not have one already, it would be better not to rush out and buy one before coming to Cambridge. The time that your own computer is most valuable is later on when it can be used to support final-year projects. You may therefore like to delay buying one for a while. Your money will buy a better machine in a year's time. It is possible, if unusual, to do the entire course using only the University and College provision of computing facilities.
You will be spending a fair amount of your time over the next three years using computers so touch-typing will prove a valuable skill. 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. As your first programming language, avoid languages like C and C++.
The best bet would be to play with a language such as Python or Smalltalk 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. However, the important thing is to find some suitable problems to solve; The New Turing Omnibus, listed above, is a good source of ideas. It is also worth remembering that programming is best undertaken as a collaborative activity; get together with a friend to discuss problems and to criticise each other's solutions.
Although it is not the same as programming, you can learn useful lessons about users from designing web pages. Having constructed a site, review it as it might appear to readers using a variety of different browsers with different screen resolutions and different bandwidth connections. Would it work with a text-only browser? Would a blind user be able to use the site? Again, this sort of review is best undertaken as a collaborative activity.
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. Alternatively, George Mills distributes an excellent electronic simulator called MultiMedia Logic through www.softronix.com free of charge.
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 under the Syllabuses heading on www.cl.cam.ac.uk. 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.