Welcome
Welcome to my SE Education page. Like a lot of my pages, it's still
under
construction, so please excuse any oddities that you may observe!
The eventual intention (for when I reach that mythical state of
having
more time spare!) is to include some details of general resources
relating
to SE education. For the moment, though, it mainly contains details of
my papers on the subject, plus three comments on the subject of
more general resources relating to SE education.
Firstly, the most comprehensive (and hence probably most valuable)
resource is the
collected material from the Conferences on SE Education & Training,
or CSEE&T. These first started in 1987, initially under the
acronym CSEE - the Training bit was added in 1997 - and have run almost
every year since (to be precise, every year except 1993). During
the first years the conference was basically run by SEI (the Software Engineering Institute at Carnegie-Mellon University),
but it has gradually grown into a separate entity, although SEI still
provide some sponsorship for it. The web site for the conference
can be accessed by following this link, and this
site includes links to the proceedings of nearly all of the conferences.
Secondly, I have occasionally been asked for my views on the
relative merits of the various single-volume texts on SE. My
response is simple: SE is such a large field that it can not be
covered in one text book, and I think that authors who try to do so
therefore run the risk of giving readers a view of the discipline that
is just far too restricted. Yes, I know that the better ones
provide suggestions in every chapter for further reading, but I still
think that the basic premise is wrong. So, I wouldn't want to
recommend any of them - sorry!
Thirdly, Tom Hilburn
at Embry-Riddle Aeronautical University,
who has been actively involved in the SE education research community
for a long time, has assembled quite a comprehensive list of other
resources on his SE education page. As a practical example of
reuse, I am not going to try to duplicate it: follow this link to
access it.
Overview of Papers
As I see it, there are three key issues in SE education:
- what to teach;
- why teach it; and
- how to teach it.
These three issues are so closely interlinked, though, that trying to
classify papers rigidly under these headings didn't really work.
Originally, therefore, I had taken the
boringly conventional approach of just listing the papers in
chronological
order, with a few notes for each to indicate how it relates to these
three
issues, if that's not obvious from the title. For most of these
papers abstracts are available, and for some (where
the original version might be hard to get at, and I don't have to worry
about copyright restrictions) the full text is available as well,
usually
as an Adobe Acrobat pdf file.
More recently, a wise colleague remarked to me at a conference that the
list was sufficiently long that he would appreciate some guidance as to
which papers he should look at first. At the time I gave him the
obvious answer - start with the most recent (ie the end of the list)
and work back - but I
realised that some more in the way of classification would be a good
idea. So, I have picked out some more detailed themes, and tried
to assign the papers to them.
In doing this, I realised that the themes do actually more-or-less
split into two groups, one mainly concerned with the "what" and "why"
questions above, and the other with the "how" question, so that's how
they are organised here.
Themes in What to Teach in SE and Why
The Philosophy of SE Education
This theme includes particularly the roles of various kinds of issues
in SE education. The first of these, reflecting some of my other
research interests, was the question of how mathematics (and associated
formalisms) relate (or should relate) to SE education, and this is
covered in [4] and [7]. Peter Henderson cited
the latter in a column in ACM's SE Notes (30.1,
January 2005, p 8 - but you may well need a subscription to the ACM
digital library to access the full text from this page), and made some
kind comments about it ("Highly
recommended reading since the important points ring true today - they
have been echoed in the CCSE Volume, ..." and he goes on to list
other places).
The next question
(chronologically) was that of how professional issues should relate to
SE, since it is important to avoid the "professional issues ghetto"
effect, and this issue is covered in [8].
Then, after our undergraduate SE programme had been running for ten
years, I wrote a paper [12] that described its
evolution over the period, and a discussion of how the underlying
philosophy of the
programme had evolved was an important part of that paper, even though
much of it was concerned with more practical issues. (Indeed, the
discussion of these issues was thorough enough that one
referee was kind enough to write of this paper that it "is a 'must read' for any one seriously
considering the development of an undergraduate degree in SE").
A more general philosophical issue is the relationship between
knowledge and skills (where I use the term "skills" in the high-level
sense of "how someone can apply their knowledge", rather than in the
limited sense of being able to drive particular software tools).
It seems to me that this is actually an increasingly important issue,
because SE is essentially a practical discipline (and, for that matter,
so too is most
of the rest of computing), and this emphasis on practicality means that
skills in
this sense are at least as important as the knowledge that is being
applied. Indeed, I have come increasingly to the view that, both
for planning the delivery of an individual module and for plannig a
complete curriculum, the skills that students should be developing -
and particularly skills at doing realistic tasks - are probably the
most important aspect, meaning that the knowledge which the students
have to acquire is determined primarily by what they will need to be
able to apply when using those skills.
The first paper where I dealt explicitly with the
importance of skills was [13], but that was a
fairly general discussion of the issue of how knowledge and skills are
related. On the other hand, the concepts
from it
have then underpinned a number of the other papers discussed below,
and in particular those related to the issue of progression in the
curriculum, such as [17], [18],
[19], [21], [25]
and [31].
Curriculum Structures for SE
The early papers on this theme were concerned specifically with the
structure
of the SE curriculum, but more recently I have been trying to
generalise this work to the
whole of informatics. (Aside: I use the terms "informatics"
and
"computing" interchangeably, but of the two I usually prefer
"informatics", at least within Europe;
readers who prefer the term computing can safely perform the relevant
string substitution without losing anything.).
My first thoughts on this subject, concerned with the roles of
products, processes and people, were covered in [6],
and these are still relevant, although they have been developed further
since, notably in [10] (which to some extent is
also reflected in [12]) and more recently in [24], which covers the application of this structure
to the whole of informatics. Other aspects have emerged along the
way. One of these is the role of recurring concepts, which is
discussed in [14] and also in [22].
Another is the roles of the disciplines that are related to SE, but
that are not part of its core, where a key issue is precisely how these
do
relate to the core of the SE curriculum, and this is covered in [15] and [16]. Perhaps
the most important of these aspects is the role of modelling within SE,
which I am increasingly coming to regard as an absolutely fundamental
issue: it is
mainly covered in [19], [20]
and [22], but because it relates to the role of
formalisms (as mentioned above) it also underpins much of the
discussion in [31].
Progression in the Curriculum
This is partly related to the issue of curriculum structures, since
they need to support appropriate progressive development of knowledge
and skills, but it also includes the issue of what standards students
can be expected to
reach at different stages. This latter issue actually came first,
and was covered initially in [17], which is
concerned just with graduates at bachelors level; the ideas are
then extended to cover master's level graduates as well in [18].
The more general issue of progression is
then based round a structure of three phases, namely programming,
software development and software engineering, where these are defined
primarily in terms of the kinds of skills that are being practised in
each of these three activities. This structure was
introduced initially in [22], and is also
referred to in [21] (which was written later but
published first) and in [23]. A key feature
of this structure, and the associated need for progressive development
of skills, is that it is inteded to be applied to different topics
within SE, and so far this has been done for
two core topics: one is software design, which is analysed in [25], and the other is the use of formal methods,
which is analysed in [31].
Curriculum Structures for Informatics
As indicated above, a more recent concern has been to try to extend
these SE concepts to cover the whole field of informatics.
The first of these extensions, of the
three-dimensional model of products, processes and people, has already
been mentioned above [24].
The second of these extensions that I have looked at is concerned with
the role of application domains [27].
This is a concept that is beginning to be recognised as increasingly
important for SE curricula, and this paper both analyses this concept
and argues that it is also
highly relevant to wider curricula in informatics.
The most recent of
these extensions has been to extend the concept of three phases in the
development of SE (as described above) to the more general issue of the
role of SE within the wider informatics curriculum. This has led
to the recognition that current informatics curricula actually put too
much emphasis on programming, and that to counter-balance this one
needs to widen the view of what constitutes the core of the curriculum
from programming to the second of these three phases, viz software
development [30]. Of course, this then
raises the issue of what the role of programming actually is, and that
is analysed in [31]. What then emerged from this
is that within informatics a distinction can be identified between what,
by analogy with the equivalent distinction in mathematics, can be called
pure and applied informatics, and this distinction is analysed in
[33].
Themes in How to Teach SE
Tools and their use
This was where I started in SE education (although in those days I
didn't particularly think of it as SE): so [1]
is concerned with helping in the teaching of assembly language
programming, [2]
with an early use of
microprocessors in teaching and [3] with a tool for
supporting programming exercises. Since then I have not done
anything specific on this topic, although the availability of suitable
tools is still
an important issue, particularly in the context of teaching formal
methods. There are some comments on this (but no significant
analysis) in [23], and a bit more discussion in [28].
Case Studies
From tools I moved on to the issue of the approaches that could be
taken to practical work in SE (whether supported by tools or not), and
in particular to the issue of using case studies. [5]
describes some of the earliest approaches that I developed, relating to
concurrent systems, and [9]
and [11]
look more generally at the role of
systems analysis techniques, where case studies are often used.
For larger topics case studies tend to merge into projects
(particularly when used early in the curriculum - capstone projects are
a different matter, but so much has been written about them by others
that I have avoided the topic of how such projects can be run), and
this approach to using case-study type projects at earlier stages in
the curriculum is the topic of [21] and
of [26].
Another aspect of approaches to practical work that I have looked at
more recently has been the issue of how students who are working on it
find the information that they need to solve the problems that they
encounter during it. Initial results for this are described in [29], and more work has been done on it, but not yet
published, since I had found more significant issues to examine.
Delivery of Particular Topics
This theme explicitly excludes the issue of case studies and tools,
since they are dealt with separately above, even though some of the
papers dealing with these issues are obviously relevant to this theme
too. Thus, there are two other particular topics that I have
covered, and
which need to be
listed here. One of these is data structures and algorithms [16].
The other is formal methods, and particularly the problems involved in
introducing students to them: specifically Z [23]
and the use of extreme
X-machine models [28], and the experiences
reported in these papers have underpinned the work on developing skills
at applying formal methods [32].
The Papers
A list of the paper titles follows, with links to the sections of
this
page that describe them.
MicroSim as a Teaching Aid
Written jointly with Graham Brookes;
published in the Journal of MicroComputer Applications 6 (1983), pages
113-121.
A Multi-User Microprocessor System Used for
Teaching
Written jointly with Graham Brookes and Gordon Manson;
published in the Journal of MicroComputer Applications, volume
7
(1984), pages 73-79.
HANDIN: a System for Helping with the Teaching
of
Programming
Written jointly with Jim McGregor;
published in Software - Practice and Experience, volume 15
(1985), pages 611-622.
Mathematics in the Software Engineering
Curriculum
Originally published as pages 58-60 of the proceedings of the Second
Workshop on the Teaching of Software Engineering, which was held in
Sheffield (1991).
I had also organised this workshop, and so edited the proceedings,
which appeared as Department of Computer Science Research Report
CS-91-14
(1991). There are a few paper copies of this still available, and so I
could supply one, if anybody should want to email me to ask for it.
An abstract is available.
The full text is available (in pdf format).
Practical Case Studies in Teaching Concurrency
Originally published as pages 48-53 of the proceedings of the IMPACT
TEMPUS
JEP and Hungarian Transputer Users Group Workshop on Parallel
Processing
in Education, which was held in Miskolc (Hungary) in 1993.
An abstract is available.
The full text is available (in pdf format),
and includes some of the diagrams which were not in the original
version,
but were used in presenting it at the workshop.
A Framework for Developing the Software
Engineering
Curriculum
Originally published as pages 111 - 118 of the proceedings of ISEE-94,
the ACM/IEEE sponsored International Workshop on Software
Engineering
Education (which was held in conjunction with ICSE 16), Sorrento
(Italy)
in 1994.
An abstract is available.
The full text is available (in pdf format).
Software Engineering Education: Where's the
Appliance
of Science
Originally published as pages 385 - 392 of Software Engineering in
Higher
Education (which was edited by G. King, C.A. Brebbia, M. Ross &
G. Staples, and was the proceedings of the conference of the same
name).
This was published by Computational Mechanics Publications, Southampton
& Boston (1994).
An abstract is available.
The full text is available (in pdf format).
Curriculum Support for Professionalism
Published as pages 285 - 295 of The Responsible Software Engineer:
Selected
Readings in IT Professionalism (which was edited by C. Myers, T.
Hall
& D. Pitt, and was the proceedings of a conference called Professional
Awareness in Software Engineering, that was held at the Royal
Society
in 1996).
The book is published by Springer Verlag, London (1997).
An abstract is available, and so is an extended
abstract.
The Role of Systems Analysis Techniques in
Teaching
Software Engineering
This was submitted to IWSEE-96, the ACM/IEEE International Workshop on
Software Engineering Education (which was held in conjunction with ICSE
18), Berlin, Germany (1996). However, it wasn't selected for
presentation,
and so isn't included in the proceedings of that workshop.
It was written to a fairly specific brief, set by the workshop
organisers,
but some of the material in it explored ideas that were then worked out
in a different context in the paper Teaching
Systems
Analysis Methodologies to Software Engineering Students: Experience
with
a Structured Methodology which is documented below.
An abstract is available.
The full text is available (in pdf format).
A Multi-Dimensional Model of the Software
Engineering
Curriculum
Published as pages 44 - 55 of the Proceedings of the 11th SEI sponsored
Conference on Software Engineering Education and Training, Atlanta,
USA.
These are published by the IEEE Computer Society Press (1998).
An abstract is available, and this page
also
describes how online versions of the full text can be accessed.
Teaching Systems Analysis Methodologies to
Software
Engineering Students: Experience with a Structured Methodology
Published as pages 102 - 113 of the Proceedings of the 11th SEI
sponsored
Conference
on Software Engineering Education and Training, Atlanta, USA.
These are published by the IEEE Computer Society Press (1998).
An abstract is available, and this page
also
describes how online versions of the full text can be accessed.
The First Decade of an Undergraduate Degree
Programme
in Software Engineering
Published in Annals of Software Engineering, volume 6
(1998),
pages 61 - 90.
An abstract is available.
Knowing versus Doing: Academic and
Vocational
Education for Informatics in the UK
As far as I am aware, this has not been published. It was an
invited
paper, which was given at the International Symposium on Computer
Employment
and Education that was held in Amiens (France) in 1998. It
was
intended that the formal proceedings would be published by the IEEE
Computer
Society Press, but I have never been advised that this actually
happened,
and I have not found any reference to these proceedings in the
relevant
digital archives.
An abstract is available.
The full text is available (in pdf format).
Structuring the Recurring Concepts in the Software
Engineering Curriculum
Published in the e-journal FASE (Forum for Advancing Software
Engineeering
Education), volume 9 (February 1999).
Articles in FASE don't usually have abstracts, and so there isn't
one
available for this paper.
The full text of the
issue containing the article is available (in txt format).
Structuring the Disciplines Related to
Software Engineering:
A General Model
Published as pages 231 - 239 of the Proceedings of the 14th Conference
on Software Engineering Education and Training, Charlotte, North
Carolina,
USA.
These are published by the IEEE Computer Society Press (2001).
An abstract is available, and this page
also
describes how online versions of the full text can be accessed.
Teaching Data Structures and Algorithms in a
Software
Engineering Degree: Some Experience with Java
Published as pages 247 - 257 of the Proceedings of the 14th Conference
on Software Engineering Education and Training, Charlotte, North
Carolina,
USA.
These are published by the IEEE Computer Society Press (2001).
An abstract is available, and this page
also
describes how online versions of the full text can be accessed.
Towards a Graduate Output Standard for
Software
Engineering
To be published in the proceedings of the International Summit on
Software
Engineering Professionalism, which was co-located with the International
Conference on Software Engineering (ICSE) 2002, Orlando, Florida,
USA.
These will be edited by the organisers of the summit (Barrie Thompson
& Helen Edwards), and published by Sunderland University Press
(2002).
An abstract is available.
The full text is available (in pdf
format).
The OHP slides used for presenting it
are available (in pdf format, size 471kB).
What Should Graduating Software
Engineers Be
Able To Do?
Published as pages 88 - 98 of the Proceedings of the 16th Conference
on Software Engineering Education and Training, Madrid, Spain.
These are published by the IEEE Computer Society Press (2003).
An abstract is available, and
this
page also describes how online versions of the full text can be
accessed.
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 309kB).
Modelling: A Neglected Feature in the
Software
Engineering Curriculum
Published as pages 206 - 215 of the Proceedings of the 16th Conference
on Software Engineering Education and Training, Madrid, Spain.
These are published by the IEEE Computer Society Press (2003).
An abstract is available, and this
page
also describes how online versions of the full text can be accessed.
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 310kB).
A Proposal for A SEEK Knowledge Area on
Software Modelling
Produced as a working document during the course of the 16th Conference
on Software Engineering Education and Training, Madrid, Spain, and
submitted to the Steering Committee for the development of the
Software Engineering Volume within the Computing Curricula 2001
project. This paper has not been published elsewhere.
An abstract is available.
The full text is available (in
pdf format).
The Crossover Project as an Introduction to
Software Engineering
Published as pages 12 - 17 of the Proceedings of the 17th Conference
on Software Engineering Education and Training, Norfolk, Virginia,
USA.
These are published by the IEEE Computer Society Press (2004).
An abstract is available, and this
page
also describes how online versions of the full text can be accessed.
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 472kB).
The Role of Modelling in the
Software
Engineering Curriculum
An extended version of the paper "Modelling:
A Neglected Feature in the
Software
Engineering Curriculum", selected after presentation at
CSEE&T03 in Madrid for inclusion in a special issue of the Journal
of Systems and Software.
Published in the Journal of Systems and Software, volume 75,
(February 2005), pages 41 - 53.
An abstract is available, and this
page
also describes how online versions of the full text can be accessed.
Translating Diagrams: A New Approach
to Introducing Formal Methods
Published as pages 121 - 128 of the Proceedings of the 18th Conference
on Software Engineering Education and Training, Ottawa, Canada.
These are published by the IEEE Computer Society Press (2005).
An abstract is available, and this
page
also describes how online versions of the full text can be accessed.
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 312kB).
A Systems Model for the Field of
Informatics
Originally presented at the Informatics Education Europe conference,
Montpelier, France (9th & 10th November 2006), and then after the
conference selected for inclusion in a special issue of Italics,
the journal of the UK's Higher Education Academy Subject Centre for
Information and Computer Sciences.
Published in Italics, volume 6.3,
(July 2007), pages 47 - 64.
An extended
abstract is available on the conference
website, as is the PowerPoint
presentation (in PowerPoint Show format) that was used when giving
the paper at the conference.
The full
text is available from the Italics website.
Stages in Teaching Software Design
Published as pages 141 - 148 of the Proceedings of the 20th Conference
on Software Engineering Education and Training, Dublin, Ireland.
These are published by the IEEE Computer Society Press (2007).
An abstract is available, and this
page
also describes how online versions of the full text can be accessed.
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 284kB).
Introducing Team Projects
Early in the Curriculum
This was a session that I ran at the Academy for Software Engineering
Education and Training, which was held as part of the programme for
the 20th Conference on Software Engineering Education and Training,
Dublin, Ireland. Unfortunately, however, there was no reference to
the Academy in the conference proceedings, even though the other
presenter was Mary Shaw, and so there is no citable publication for
this session.
I produced quite a lot of material for this session, and
this page provides access to this
material.
The Role of Application Domains in
Informatics Curricula
Published as pages 166 - 175 of the Proceedings of the 2nd Informatics
Education Europe conference, Thessaloniki, Greece (29th &
30th November 2007).
An abstract is available.
The full
text is available (in
pdf format, size 57kB).
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 173kB).
A Semi-Formal Approach to Introducing Formal
Methods
Published as pages 126 - 140 of the Proceedings of the 3rd South-East European Workshop on Formal
Methods, Thessaloniki, Greece, November 2007.
An abstract is available.
The full
text is available (in
pdf format, size 468kB).
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 150kB).
Where Do Students Look for Information?
Published as pages 207 - 214 of the Proceedings of the 21st Conference
on Software Engineering Education and Training, Charleston, S.
Carolina, USA.
These are published by the IEEE Computer Society Press (2008).
An abstract is available, and this
page
also describes how online versions of the full text can be accessed.
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 155kB).
Software Development as the Core of
Informatics
Published as pages 155 - 169 of the Proceedings of the 3rd Informatics Education Europe
conference, Venice, Italy (4th & 5th December 2008).
An abstract is available.
The full
text is available (in
pdf format, size 114kB).
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 179kB).
The Role of
Programming in Informatics Curricula
Published as pages 3 - 10 of the Proceedings of the 4th Informatics Education Europe
conference, Freiburg, Germany (5th & 6th November 2009).
An abstract is available.
The full
text is available (in
pdf format, size 114kB).
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 179kB).
Stages in Teaching Formal Methods
Published as pages 17 - 24 of the Proceedings of the 23rd Conference
on Software Engineering Education and Training, Pittsburgh,
Pennsylvania, USA.
These are published by the IEEE Computer Society Press (2010).
An abstract is available, and this
page
also describes how online versions of the full text can be accessed.
The slide handout from PowerPoint
used for presenting it is available (in pdf format, size 159kB).
Pure Versus Applied
Informatics
Published in the Proceedings of the Eqanie Conference
on Learning Outcomes, Vienna, Austria. These proceedings are
only accessible via the web, and so there are no page numbers for
the paper.
An abstract is available, and this
page also describes how the online versions of both the full text
and the slides used in presenting the paper can be accessed.
Academy for SE Education &
Training 2011
I acted as chair for the Academy for Software Engineering
Education and Training, which was held as part of the programme for
the 24th Conference on Software Engineering Education and Training,
Honolulu, Hawaii, USA. In this role, I was therefore responsible for
organising the programme for the Academy. Unfortunately, however,
there was no reference to the Academy in the conference proceedings,
and so I do not have any citable publications for it.
Details of the programme that I organised can be found by following
this link.
This page created by A.
J.
Cowling, and last updated on 22 March 2012