Category Archives: CS education

Why I am leaving the IET after 25 years

I am moving to a new blog but will link posts from here for a while. All posts from here have been imported to it.

My latest entry – IET discriminates against students from Scotland in its scholarship scheme

Leave a comment

Filed under CS education

Pi in the Sky?

The remarkable low-cost Raspberry Pi computer went on sale today, and has apparently sold out in two hours. The Raspberry Pi is a very cheap computing device that can be the basis for do-it-yourself systems and it has been suggested that it will revolutionise the teaching of computer science in schools. Instead of boring IT, students will experience the thrill of making something themselves and will, consequently, be inspired into further studies of computer science.

This is a great development, which I wholeheartedly support – computer science teaching in schools has left a great deal to be desired. And, for sure, it is possible that it will enthuse technically-oriented students to find out more about computer science and programming. It’ll be fun and I’m sure we’ll see lots of innovative and exciting development based on this device.

Now I really don’t want to rain on the Pi parade but, I find it hard to believe that this device will have much success in convincing the roughly 50% of school students who have, up till now, shown very little interest in any kind of computer science – girls.

As the father of two daughters, I have watched them develop in a technically literate household where they had access to computers and programming advice if they wanted it. But, their view and the view of all of their friends that I talked with was that programming was for geeks and nerds (I am not sure of the difference between these). While they were perfectly competent in using computers for various tasks, they  showed no interest whatsoever in programming as they simply did not see how it could be useful to them. The social image of programmers, of course, did not help – teenagers are very image conscious and being associated with an uncool group was something to be avoided.

If anything, the Raspberry Pi may make this situation worse, especially if it is taken over by teenage boys in a class who, shall we say, may not have the best social skills in the world.  Yes, it will re-introduce programming into the curriculum but that is only one problem that we have to face. The much more difficult challenge is to be able to demonstrate the relevance of programming to the whole population – not the technically-minded subset that will surely love their PIs. This won’t happen from bottom-up  cheap devices, but will need a top-down, application-oriented approach.

I was impressed by the efforts made in Georgia Tech to try and broaden the CS curriculum and demonstrate the relevance of programming to a wide spectrum of students. I don’t know how well these have succeeded in attracting more girls to computer science but it strikes me that this is the kind of initiative we need in schools to demonstrate the relevance of computer science to girls.

Doing this is hard – I certainly don’t have an answer to the problem of making CS female-friendly. But I do have concerns that the Raspberry Pi will simply reinforce the stereotype of computer science being a geeky subject that has nothing to offer to girls.

Leave a comment

Filed under CS education

The future of textbooks. Part 2: E-textbooks

The current notion of a textbook as a sequentially presented, body of knowledge has been around for more than 100 years.  It will continue for some time yet but I take it for granted that the benefits of having an electronic, internet-enabled book are simply so great that paper books will, in the next 10 years, be supplanted by electronic versions.

What will this mean for textbooks – obviously it will change the distribution channel and it will offer textbook authors new opportunities to provide supplementary material alongside the principal text. Mike Hendrickson in his blog post has suggested that publishers may wish to hire producers to support their operations with books evolving into multimedia productions.

Well, this might happen for multi-million selling blockbusters but won’t happen for textbooks.  As anyone who has tried it knows, the effort and skills involved in producing high-quality video are do great that textbook authors simply don’t have the background or ability to do this. It’s hard enough to produce good, meaningful diagrams (which is why many textbooks have few diagrams) let alone multi-media productions alongside the text.

I think that the key benefits of e-textbooks are in 4 areas:

  1. The book can become the focus of a community of readers. I think this is, by far, the most important benefit. Students using the book can see other students’ experiences, can answer each other’s questions and may be able to interact directly with the author. Authors can see what students find difficult and can provide extra material to help them.
  2. Book reconfiguration. I’ve produced various editions of my book over the years and ever time I make a major revision I change the structure. The truth is that, for most topics, there is no single logical sequence of presentation and that the organization of material is best left to the course instructor rather than the book author. E-textbooks, if designed and written properly, can be loosely integrated allowing them to easily reconfigured to suit the needs of a specific course.
  3. Incremental acquisition. Many courses taught in universities use part of a textbook in different years. But students have to buy the whole book even if only half of it is relevant to their course. An incremental purchasing model for e-books allows them to buy the chapters that they need, when they need them. They may be able to subscribe for updates so that these are pushed to their e-book reader as they are available. Such an approach makes it feasible for instructors to draw on a number of different books for their courses – it’s currently unrealistic to expect students to buy all of these.
  4. Integration with ‘free stuff’. Although I have criticized ‘free stuff’ in a previous post, there is good material out there, especially research papers on authors’ personal sites and repositories. E-textbooks can link seamlessly to this, allowing some topics in a course to be explored in depth. Of course, the problem here is that lots of the ‘free stuff’ is ephemeral and likely to disappear as web sites are reorganized. But authors can work around this by caching local copies, etc.

An often suggested ‘advantage’ that I haven’t mentioned is the notion of continuous updating where the textbook is revised incrementally and readers always have the ‘most recent’ version of a chapter. I’m unconvinced by continuous updating (except, of course, for error correction) for 2 reasons:

  • It makes it very hard to maintain links between different chapters of the book. References from one chapter to material in another are potentially unreliable and you may find that styles differ from one chapter to another.
  • Instructors cannot rely on the material in the book. Say you teach from one chapter but by the time of the class exams, the chapter has changed. How do you relate what you have taught to what’s in the book. Pragmatically, instructors reuse material such as tests and exam questions in different years and really don’t want to have to continually redesign these.

We still have a lot to learn about how to write and design e-textbooks – simply re-interpreting the XML will lead to very ugly and unreadable books. But authors will go through this learning experience and e-textbooks in science and engineering will become the norm in the next few years.

Part 1: Are textbooks obsolete

Part 2: E-textbooks

Part 3: Textbook publishing

Part 4: Author-led publishing


How these books might be published and the problems of publishing will be the topic of my next post on the future of textbooks.


Filed under CS education

The Future of Textbooks. Part 1: Are textbooks obsolete?

I’ve recently read an interesting article on the future of the book, written from a publisher’s perspective and watched an excellent video of Margaret Attwood talking about the future of publishing from an author’s perspective.

This stimulated me to think about the future of academic textbooks, specifically books for a student audience, which are used to support teaching.  This is quite a complex topic so I can’t cover it all in a single post – this is the first of a number of posts on this topic.

I’m a textbook author so, obviously, I’m not unbiased. However, I have thought carefully about the requirements for a textbook and, arguably, the fact that my book has been around for such a long time means that I can’t have got things completely wrong.

Some people argue that textbooks, in the sciences at least, are obsolete and that faculty and students can get all the information that they need from free sources on the Internet.

Well, if you think this, try the following test. Assume that you are teaching a course on software engineering and you’d like to include some material on software testing. Google ‘software testing’. There’s lots of superficial articles defining testing terms (e.g. Wikipedia) and information about testing tools but nothing that actually tells you how to design tests. Hardly any of the material includes examples or explanatory diagrams. Maybe if you spend some hours searching and skimming you’ll find more material. But, much better to turn to How to Break Software: A Practical Guide to Software Testing , a short book on the subject.

The material on the web tends to be superficial and, almost universally, lacks the illustrative examples that are so important when you are trying to explain things to students. The reason why this is the case, of course, is that examples and good explanatory diagrams are time consuming to produce. People who spend the time creating a coherent description of some topic rightly want some reward – perhaps financial but more often with textbooks, some tangible recognition of the work that they have done.

As well as finding ‘free stuff’, there is also the problem of integrating material from a diverse range of sources into a coherent course. More often than not, you will find that material from different sources has overlaps, contradictions and omissions and you will have to work (as a reader) to reconcile these. Alternatively, the course instructor will have to sort out the problems and, almost certainly, do more work than they would have done with a textbook.

So I believe that textbooks, as coherent accounts of some topic, are not obsolete and that students and instructors will continue to use and buy them. But, for sure, they will have to change – they are too expensive,  monolithic and do not take advantage of the multiple channels of communication that are now available. What these changes might be will be the topic of my next post.

Part 1: Are textbooks obsolete

Part 2: E-textbooks

Part 3: Textbook publishing

Part 4: Author-led publishing



Filed under CS education

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

Computer science education and the real world

Enrolments in computer science degrees (in the US and Western Europe) have fallen drastically over the past few years, although I believe there has now been an increase in applicants from the low point in 2008. Part of this was a reaction to the 2001 dot-com crash but I believe that another factor is that many if not most computer science degrees are increasingly irrelevant as far as real-world computing is concerned.

There are two major areas of real-world computing that, IMHO, don’t get enough attention in computer science degrees. One is embedded, real-time systems. We are surrounded by such systems – I counted 9 in my home office alone apart from the computers (router, scanner, printer, 3 phones, 1 ipod, 2 cameras) yet some CS degrees simply don’t cover them at all and the majority probably only offer a single optional module. The other area is my own interest of large-scale systems engineering. Current large-scale systems are not built from scratch using waterfall processes but are constructed by reusing software at different granularities from program libraries to entire systems.  Requirements are negotiated and issues such as throughput, dependability and security are critical. Most courses do include some software engineering – an essential starting point for considering large-scale systems engineering but then they stop. They don’t include courses on topics such as dependability and enterprise systems architectures.

Why have we got ourselves into this state where CS degrees are about programming rather than systems? The argument I hear from my colleagues is that programming is fundamental (true) and learning to program in Java (or perhaps a functional language) and to analyse programs for e.g. complexity is all you need. This, I think, simply is a weak justification of an untenable position – that systems are just scaled up programs.  We have arrived at this state because of two basic problems with our university system:

1. It’s very hard for people in universities to keep up with changes in the world. People who were appointed 20 years ago have spent their time scaling the academic career ladder and many of them have had little or no contact with industry since they were appointed. Essentially, they have no idea what real-world computing is like.

2. People’s career in universities depends on their research. As researchers are clever people, they have derived lots of ways to publish research and so support career development. The community itself assesses the value of the research and relevance to industry is rarely a factor in this assessment. In fact, its often harder to publish work done in industry, even in software engineering, because it doesn’t tick all the academic boxes of what constitutes a good paper. Therefore, people do ‘excellent’ research in irrelevant things. Often, they are committed teachers and the research informs their teaching – but they don’t want sordid reality to intrude and actually have to teach something useful.

Of course, both of the above reasons are  (slightly) exaggerated presentations of reality but the blunt reality is that the reason why universities don’t teach real-world computing is that many of the faculty just couldn’t do it.  There may be intellectual value in a programming-oriented CS degree (as there is in a degree in Classics or Philosophy) but I believe that we must also design our degrees so that students are better equipped to make a contribution to computing as it is, rather than computing as it was.


Filed under CS education

Open source teaching materials -time for a mandate

It has become increasingly common for sponsors of research (e.g. the EPSRC in the UK) to mandate that the publications from that research are ‘open access’ that is, available freely to anyone who wants them. Rightly so – public money has funded this work and it was ridiculous that this was locked away in expensive journals.

Yet public money also funds teaching but  if we look for teaching resources on the web we find that few institutions (in the UK at least) seem to have policies to make their course material available. Some (including, I am ashamed to say, my own department) have a policy of locking away material so that no-one outside the institution can see it.

Of course, individual lecturers and professors do (mine are at but that’s not good enough – all courses that are publicly funded should be mandated to make their teaching material available under a creative commons licence. That way, we can build on the best and develop a high-quality corpus of teaching material for our courses.  And we can show taxpayers what we do, that we care about teaching and that they can get access to the material if they wish.

If it’s good enough for MIT ( it should be good enough for the rest of us.


Filed under CS education