The enumeration of all courses selected per each projection is given
in tabular format in
appendices
,
and
,
respectively. The last two are ordered by number of course units selected.
Column labels in tables should be read as follows:
A brief (quantitative) analysis of these projections follows,
in the form of histograms.
Concerning the first projection, we have obtained the histogram of
Fig. 1which summarizes the tables of
appendix .
It can be observed that model-oriented specification (FM06) is by far
the most popular topic in the survey, followed by the teaching of
concurrency (FM13) and
logical foundations (FM02).
A third group of topics includes
model checking (cf. FM10),
support for executable specification (cf. FM14)
and formal semantics (FM12).
Comparatively less widespread is the teaching of
algebraic approaches to formal
specification (topics FM04 and FM05).
Last in the list is multi-paradigm specification (FM07),
a topic whose relevance in industrial case-studies and scientific meetings
(eg. FME
symposia) is not yet mirrored in the curricula.
Another question we have tried to answer is concerned with whether courses are focussed and go deep on particular subjects, or they tend to spread over many topics in a light-weight («breadth-first») manner. Without further inspection of cross-breedings among topic areas, we found out that 47 courses focus onto one topic area only, 36 courses spread over two topic areas and 21 courses spread over three areas. All other courses remaining are even less focussed.
Concerning the second projection,
we have identified 24 notations (or notation variants) and/or
(specification) languages,
which are listed in appendix
ranked by the number of courses which teach or address them
.
Altogether, we have obtained the histogram of
Fig. 2. The popularity of specification languages and methods
such as Z [15] and B [1] is consistent with the widespread
teaching of model-oriented specification unveiled by the previous projection.
The somewhat surprising rôle of functional programming languages
such as Haskell [7] and SML [5] is due to their use in animation (rapid prototyping)
or to the development of libraries written in
such languages which support teaching.
Concerning the third projection,
and despite the fact that 65 courses don't mention any support tools
in their website description,
we have identified 39 tools or (formal specification) libraries,
which are listed in appendix
ranked by the number of courses which mention them.
However, the analysis of the corresponding histogram
(Fig. 3) requires some
care, as it is not always obvious from websites which particular
tools are being imposed or recommended.
Very often,
tools are not even mentioned (in particular if they are open source software)
and are implicit from the context
.
Almost half of the tools offer support for model-oriented methods such as
B, Z or VDM [4].
The prominent rôle of model checking tools is to be remarked,
notably SPIN [6] and UPPAAL [8].