Inspired by the Atlantic Monthly Tech Canon, books every technie ought to have read, I have volunteered to put together a reading list for computer science students. This is not a list of textbooks but a list of more general reading on tech topics (computing and others) that will help them broaden their understanding of technology and science. This is a ‘work in progress’ – some of my colleagues are making suggestions and these will be added when they give me more information about them. We want perhaps 20 books in total that we think every computer science student should have read.
Perrow, C. (1984). Normal Accidents: Living with High-Risk Technologies. New York: Basic Books. Reprinted 1999. [Ian S.]
A case study of a number of accidents and a discussion of why accidents are inevitable in technically complex systems. Looks at risk from a social perspective and discusses why we can’t eliminate risk by technology alone. In fact, adding technology supposedly to reduce risk can have the opposite effect as it increases complexity and increases the likelihood of unexpected couplings between elements of the system.
Nick Carr. (2008). The Big Switch: Rewiring the World from Edison to Google. W.W. Norton & Co.[Ian S.]
An introduction to cloud computing and how it will change the way we use computing systems. All students should know something about the cloud even if it isn’t a course module.
Clay Shirky. (2009). Here Comes Everybody: How Change Happens when People Come Together. Penguin. [Ian S.]
All about social media and how it’s use is fundamentally changing the way people interact and how it can empower group actions. Gets over the importance of social media and how it isn’t just about interactions with ‘friends’.
Henry Petroski. (1992). To Engineer is Human: The Role of Failure in Successful Design. Vintage Books. [Ian S.]
Discusses how engineering design is all about learning from failure and changing design practice to avoid the same failures. It’s important that CS students have an understanding of design in other disciplines, constrained by the laws of physics. It is worrying that in software engineering, we haven’t really learned these lessons.
Douglas Coupland. (1995). Microserfs. Harper Collins. Reprinted, 2004. [Ian S.]
Fictional life of a group of geeks (and their search for a life) at MicroSSSS and at a startup in Silicon Valley. Good fun; I suspect it’s a pretty accurate portrayal of these times and Coupland seems to have learned enough about the technology to make it believable.
Don Norman (1988) The Design of Everyday Things [Aaron Q.]
This is very easy to read yet insightful book on what makes for good and bad design in the everyday objects around us. Some of the examples will make you laugh, some cry, and some will make you think, could I have designed that? Originally called the Psychology of Everyday things, Norman walks us through elements of psychology, knowledge and knowing. Completing with a discussion on the design challenge we face and how “User Centred Design” can be employed. After reading this any computer scientist will start to look at the physical and digital objects in your work and life differently.
Ed Tufte (1990) Envisioning Information [Aaron Q.]
This book is a beautiful exposition of various visual design concepts drawing on rich examples from both our recent and more distant past. Computer scientist’s interested in Information Visualisation might wish a text on algorithms, methods and visual toolkits. This is not that book, there are many other books which address those topics. Instead here, Tufte demonstrates how elements of graphic design and information display can alter our thinking, argumentation, confidence, resolve and sense of aesthetic. Importantly, Tufte draws on a range of physical printed graphical displays (maps, charts, diagrams etc.) to offer practical advice on how to explain complex material by visual means. This book challenges us to start looking at how both desktop and mobile graphical displays might better present information.
Neal Stephenson Cryptonomicon [Al D].
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.
Charles Stross Accelerando [Al D.]
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.
E. DiMarco and T. Lister. Peopleware [Al D]
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.
William Poundstone. How Would You Move Mount Fuji? [Al D]
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…
Charles Murray and Catherine Bly Cox. Apollo: the Race to the Moon
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. [Saleem B.]
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 [Saleem B.]
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 [Saleem B.]
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. [Saleem B.]
The title says it all – it’s the Daddy.
Eco, U. (1980) The Name Of The Rose. Vintage Classics; New edition (1 May 2008) [Saleem B.]
First published in 1980, this is a medieval murder mystery involving coded manuscripts and a brotherhood of conspiratorial monks. A really good whodunnit.