When a new area of a discipline emerges, university teachers are faced with the problem of when (and if) this should be introduced into their courses. They have to ask two questions: firstly, is this something that is attracting a lot of publicity but which will have little long-term impact and secondly, what are the essential elements of this topic, which should be part of an enduring course. Cloud computing is no exception here although I think that it is fair to say that the first question has already been answered. Cloud computing is not going to go away and we certainly do have a responsibility to include this in our courses. We have already seen a number of cloud computing courses being offered and even some Master's degrees. Lee Gillam's course at Surrey University was one of the earliest and he has written some reflections on this course 1 . His course is a general introductory course in cloud computing that starts by introducing the notions of software, platform and infrastructure as a service. It covers relevant cloud protocols such as SOAP and REST and discusses the mapreduce computational model and its instantiation in Hadoop. The course makes comparisons with grid and peer to peer computing and discusses service-level agreements, cloud economics and security. In this article, I want to avoid simply listing what I think should be included in a cloud computing course. Rather, I want to look at the topic of teaching cloud computing from a more abstract perspective and discuss the issues and problems of teaching this subject. In line with the theme of this issue, I will look at this from a software engineering rather than a business or information systems perspective -teaching cloud computing in these areas would be rather different from what I discuss here.
Sommerville REF discusses the importance of teaching cloud computing as a part of software engineering courses.