of several (possibly unexpected) factors (e.g.,
technical advances, client behaviours or
expectations).
• Software development involves several
intermediate steps and continuous choices
between multiple, viable alternatives: even with
careful planning, not all events that can occur
can be anticipated at the start of a project.
Difficult decisions must be made, tradeoffs
considered and conflicts handled.
• Software development may exhibit dramatic
effects with non-obvious causes: while software
development has several cause-and-effect
relationships (e.g., it is more cost-effective to
identify flaws in the earlier phases of
development than to identify them in the later
phases), there are other situations that may arise
in which the cause is not so apparent. For
example, Brook’s Law states that adding people
to a project that is already late typically makes
that project later.
• Software engineering involves multiple
stakeholders: clients and non-development
personnel in an organization all make decisions
that impact development.
• Software engineering often has multiple,
conflicting goals: software development
includes tradeoffs between such things as
quality versus cost, timeliness versus
thoroughness, or reliability versus performance.
Two further issues arise with teaching software
development that we are interested in taking into
consideration in any learning environment we
develop are:
• Communication: software engineers must be
able to communicate, both verbally and in
writing, with staff internal to the project (project
manager, team leaders, analysts, designers,
developers, testers, quality assurance) as well as
with external stakeholders.
• Pedagogical praxis: Shaffer (2004a) proposes a
theory of ‘pedagogical praxis’, which links
learning and doing within an extended
framework of communities of practice (Lave,
1991; Lave & Wenger, 1991). Pedagogical
praxis is based on the concept that different
professions (for example, lawyers, doctors,
software engineers) have different
epistemologies (epistemic frames) – different
ways of knowing, of deciding what is worth
knowing and of adding to the collective body of
knowledge and understanding. For a particular
community, the epistemic frames define
“knowing where to begin looking and asking
questions, knowing what constitutes appropriate
evidence to consider or information to assess,
knowing how to go about gathering that
evidence, and knowing when to draw a
conclusion and/or move on to a different issue”
(Shaffer, 2004b, pp. 4). Implementation of
pedagogical praxis requires a faithful recreation
of the professional community, one that is
“thickly authentic”; that is, one where (a)
learning is personally meaningful for the
learner, (b) learning relates to the real-world
outside the classroom, (c) learning provides an
opportunity to think in the modes of a particular
profession and (d) learning where the means of
assessment reflect the learning process (Shaffer
and Resnick, 1999). Connolly and Begg (2006)
have suggested that the term thickly authentic
be extended to incorporate: (e) learning using
the tools and practices of the modern-day
professional.
According to Schön (
1983, 1987) the following are
some of the key problems in teaching an abstract
subject of this nature:
• It is learnable but not didactically or
discursively teachable: it can be learned only in
and through practical operations.
• It is a holistic skill and parts cannot be learned
in isolation but by experiencing it in action.
• It depends upon the ability to recognize
desirable and undesirable qualities of the
discovered world. However, this recognition is
not something that can be described to learners,
instead it must be learned by doing.
• It is a creative process in which a designer
comes to see and do things in new ways.
Therefore, no prior description of it can take the
place of learning by doing.
Students often have considerable difficulty
comprehending implementation-independent issues
and analyzing problems where there is no single,
simple, well-known, or correct solution (Connolly
and Begg, 2006). They have difficulty handling
ambiguity and vagueness and they can also display
an inability to translate tutorial examples to other
domains with analogous scenarios, betraying a lack
of transferable analytical and problem-solving skills
(Connolly & Stansfield, in press). Kriz (2003)
highlights the point that the majority of students are
not competent enough to put their knowledge into
practice and they are unable to cope successfully
with the everyday tasks associated with the practice
of their chosen field. These problems can lead to
WEBIST 2007 - International Conference on Web Information Systems and Technologies
290