Category Archives: Reading

ACM considered harmful

The Association of Computing Machinery is the premier US representative body for computer science and according to its own blurb:

“serves its members and the computing profession with leading-edge publications, conferences and career resources”

Well, yes and no.  The ACM may perhaps serve its members but for sure it does not serve the profession in general. It has copyright policies for publications which don’t respect the rights of members and it restricts information to those who are not members either explicitly or by excessive costs.

Firstly, the copyright issue. The ACM, in common with other organizers, requires those who have papers published in its journals and conferences to sign over the copyright to them. This means that you can’t republish a paper elsewhere and that the ACM can charge for your writing without paying you any fee. If you are not a member of the ACM’s Digital Library and you lose your own article, you have to pay to get a copy back from them.  Remember ACM don’t pay for articles but (as discussed below) don’t hesitate to charge – and as an author, you get no revenue.

Another area where the ACM’s policies are restrictive is in access to information. I tried today to access what I thought was rather a good idea – a tech pack in cloud computing, which is an annotated bibliography of articles in this area. But to access it, you need to login i.e. its not a resource for the profession but for members only.

Correction. I have been contacted by the ACM and it has been pointed out that you don’t have to be an ACM member to get a login to access the tech packs. I have included the full response from the ACM as a comment to this post.

I also tried to access the ACM Digital Library to get a copy of a paper that I had written in 1988.  This was interesting to me as a historical document but let’s be honest – it doesn’t have much to do with modern CS. Now, my university is an ACM subscriber so I could access it for free but the ACM actually ask for $15 for non-members for this (and all other) articles.

How can this outrageous sum be justified for articles, especially when only very limited information about that article is available. While I think that there is some rationale for charging a small fee (not $15) for very recent papers, all papers that are more than a few years old should be available to the profession for free.  I really can’t believe that this would have a significant effect on ACM’s revenue stream. The Computer Journal gets it right in making its articles available.

The ACM should realize that if they wish to be taken seriously, then they have to broaden their vision and truly serve the profession – this is how they can expand their membership.

Older readers will recognize that the title comes from Dijkstra’s famous letter published in the CACM in 1968 “Goto statement considered harmful”. You can buy this classic of CS literature for $15 from the ACM Digital Library. Fortunately, there are enough people who are willing to ignore ACM copyright rules – its available here for free.



Filed under CS education, Reading

Reading list for techies

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



Filed under Reading