Following an article in Atlantic Monthly there has been a suggestion from Simon Dobson to create a ‘must read’ reading list for Computer Scientists. These are not supposed to be text books but rather goo background reading. Each Professor in the School is going to suggest 5 books. Here are mine:
Cryptonomicon by Neal Stephenson.
A fictional epic featuring everything for a Computer Science: Bletchley Park, encryption, Van-Eck freaking, protecting electronic assets, Internet banking (did I mention gold, submarines and the second World War). If you like this you should also read Snow Crash by the Same Author.
Accelerando by Charles Stross
This is another amazing book in the Cyber-Punk genre. It features a myriad of ideas including the world being turned into Computronium, digitised humans being sent to the other side of the Universe in a Coke can and the idea that no advanced civilisation would want to invade the Earth because we are too far away from the centre of the Universe and consequently there would not be enough bandwidth! Once you read this one, read his other novels – brilliant.
Peopleware by DiMarco and Lister
This is a classic – everything you need to know about working in a team (and how not to). Lots of stuff about the working environment which I try to follow whenever I can.
How Would You Move Mount Fuji? by William Poundstone
This book is subtitled “Microsoft’s Cult of the Puzzle – How the World’s Smartest Company Selects the Most Creative Thinkers”. Most Computer Science students will be looking to get a job sometime. This book contains what are essentially interview questions – many of them based on what we teach in CS2001 – how do you find out if a linked list has a look in it…
Apollo: the Race to the Moon
by Charles Murray (Author), Catherine Bly Cox (Author) This book is amazing but very hard to find (so I include this link http://www.amazon.co.uk/gp/product/0436302241/). This book is all about how the Americans put Man on the moon. The book is really all about projects and how to run them and also how not to. I would really recommend this book to anyone but especially to anyone who thinks they can manage projects (or want to).
Goldacre, B. (2009). Bad Science
. Harper Perennial.
Describes how data can be mis-used to present what appear to be “facts”.
Includes many examples from real stories reported in the press and in
scientific publications, covering topics from medicine to the public
misunderstanding of science. It is scary how much completely wrong
stuff people can believe to be true.
Hannam, B. (2010) God’s Philosophers: How the Medieval World Laid the Foundations of Modern Science. Icon Books Ltd
Most people think that science is a relatively modern occurrence, and
that the Dark Ages were an intellectual void. This book discusses some
of the key inventions of our time such as spectacles, the mechanical clock,
the compass and gunpower, and places them into their historical context in
the Middle Ages of Europe.
(Shortlisted for the Royal Society Prize for Science Books 2010)
du Sautoy, M. (2010). The Number Mysteries: A Mathematical Odyssey Through Everyday Life. Fourth Estate
An explanation of how mathematics impacts our everyday lives, from playing
football to shopping on the Internet. The examples from everyday life,
presented in a very accessible manner, are what make this book such a good read.
(Prof Marcus Du Sautoy delivered the 2005 Royal Institute Christmas Lectures)
Stephens, W. R., Rago, S. A. (2005). Advanced Programming in the UNIX Environment. Addison Wesley; 2nd Ed.
The title says it all – it’s the Daddy.
Eco, U. (1980) The Name Of The Rose. Vintage Classics; New edition (1 May 2008)
First published in 1980, this is a medieval murder mystery involving coded
manuscripts and a brotherhood of conspiratorial monks. A really good whodunnit.
Ian Sommerville’s are here: http://se9book.wordpress.com/2010/10/27/reading-list-for-techies/
ian Gent’s list:
How to Get a PhD Estelle Phillips, Derek Pugh, (2005, Fourth Edition). Open University Press.
A slight wild card, because not every CS undergraduate should read it. But everybody in any discipline who wants to do a PhD should read it, and they should read it before they even decide to do a PhD – so while they are an undergraduate. The chapter on How Not To Get A PhD is a classic. A book which I have lent to people many more times than I have got it back – but I don’t mind since it’s so important that people read it.
Andrew Hodges, (1992, New edition). Alan Turing: The Enigma. Vintage
Alan Turing must be one of the top three British scientists – with Darwin and Newton. He founded theoretical computer science (the Turing machine). He founded practical computer science (at Bletchley and with the ACE). He founded theoretical AI (the Turing test). He founded practical AI (the first chess playing program.) In his spare time he won the Second World War. And he could run a marathon in 11 minutes outside Olympics winning pace. This is an excellent biography of him.
Brian Kernighan and Dennis M Ritchie, (1988, second edition). The C Programming Language. Prentice-Hall.
This book shows just how short a great programming language book can be. Written by one of designers of C (Ritchie) and one of the great technical computing writers (Kernighan.) And yes, I am saying that reading a great book about a programming language can be a great pleasure even if you don’t use the language.
Fred Brooks (1995, second edition). The Mythical Man Month. Addison-Wesley
If a software project with 100 people will take a year, how long will it take if you add another 100 people half way through? Answer: who knows? Could be it now takes 2 years, or maybe never finishes. If you answered 9 months you’re good at puzzles but you REALLY need to read this book!
I would have had this one too had Ian not suggested it first.
Simon Dobson’s list:
Structure and interpretation of computer programs. Abelson and Sussman.
(OK, bit of a text book…)
The design of everyday things. Donald Norman.
Casting the net. Janet Abate.
The transparent society. David Brin.
Godel, Escher, Bach, Douglas Hofstadter.
These will be posted more formally at some point on the School Web pages – possibly as an edited list.