|
|||||
Chapter 8:
Program Implementation and
Assessment
8.1
Curriculum
Resources and
Infrastructure
Once a
curriculum is established, the success of
an educational program critically
depends on
three
specific elements, namely
the faculty, the student
body, and the
infrastructure.
Furthermore,
it is also very important to have
industry involvement from
the outset and in a
continuous
fashion.
8.1.1
Faculty
A high
quality faculty and staff is
perhaps the single most
critical element in the
success of a
program.
There must be sufficient
faculty to teach the program's
courses and support
the
educational
activities needed to deliver a
curriculum and reach the program's
objectives; the
teaching and
administrative load must
allow time for faculty to
engage in scholarly and
professional
activities. This is critical
given the dynamic nature of
computing and software
engineering.
A software
engineering program needs
faculty who possess both
advanced education in
computing
with a focus on software, and
sufficient experience in software
engineering practice.
However,
because of the relative
youth of software engineering,
recruiting faculty possessing
the
attributes
of traditional faculty (academic
credentials, effective teaching
capabilities, and
research
potential) plus software
engineering professional experience is a
particularly
challenging
problem [Glass 2003]. As an
example, it is only recently, in
the U.S., that
PhD
programs in
Software Engineering have
been established [ISRI 2003].
Software engineering
faculty
should be encouraged and supported in
their efforts to become and
remain current in
industrial
software engineering practice
through applied research, industry
internships,
consulting,
etc.
8.1.2
Students
Another
critical factor in the
success of a program is the
quality of its student body.
There should
be admission
standards that help assure
that students are properly
prepared for the
program.
Procedures
and processes are needed
that track and document the
progress of students
through
the
program to ensure that graduates of
the program meet the program
objectives and desired
outcomes.
Appropriate metrics, consistent
with the institutional
mission and program
objectives,
must
exist to guide students
toward completion of the
program in a reasonable period of
time,
and to
measure the success of the
graduates in meeting the
program objectives.
Interaction
with students about
curriculum development and delivery
provides valuable
information
for assessing and analyzing a
curriculum. Involvement of students in
professional
organizations
and activities extends and enhances
their education.
8.1.3
Infrastructure
The
program must provide
adequate infrastructure and technical
support. These include
well-
SE2004
Volume 8/23/2004
71
equipped
laboratories and classrooms, adequate
study areas, and technically
competent
laboratory
staff to provide adequate
technical support. In order
for student project teams to
be
effective,
adequate facilities are also
needed to carry out team
activities such as team
meetings,
inspections
and walkthroughs, customer reviews,
assessment and reports on team progress,
etc.
There
should also be sufficient reference and
documentation material, and a library
with
sufficient
holdings in software engineering
literature and across related
computing disciplines.
Maintaining
laboratories and a modern suite of
applicable software tools can be a
daunting task
because of
the dynamic, accelerating,
pace of advances in software and
hardware technology.
However, as
pointed out earlier in this
document, it is essential that "students
gain experience
using
appropriate and up-to-date
tools."
An academic
program in software engineering
must have sufficient
leadership and staff to
provide
for proper program
administration. This should
include adequate levels of
student
advising,
support services, and interaction with
relevant constituencies such as
employers and
alumni.
The advisory function of the
faculty must be recognized by
the institution and must
be
given
appropriate administrative
support.
There
must be sufficient financial
resources to support the
recruitment, development and
retention of
adequate faculty and staff,
the maintenance of an appropriate
infrastructure, and all
necessary
program activities.
8.1.4
Industry
Participation
An
additional critical element in
the success of a software
engineering program is
the
involvement
and active participation of industry.
Industrial advisory boards and
industry-
academic
partnerships help maintain
curriculum relevance and currency.
Such relations can
support a
variety of activities including
programmatic advice from an
industry perspective,
student and
faculty industrial internships,
integration of industry projects
into the curriculum,
industry
guest lectures, and visiting faculty
positions from
industry.
8.2
Assessment
and Accreditation Issues
In order to
maintain a quality curriculum, a
software engineering program
should be assessed on
a regular
basis. Many feel assessment
is best accomplished in conjunction
with a recognized
accreditation
organization. Curriculum guidance and
accreditation standards and criteria
are
provided by
a number of accreditation organizations
across a variety of nations and
regions
[ABET
2000, BCS 2001,CEAB 2002,
ECSA 2000, King 1997, IEI
2000, ISA 1999,
JABEE
2003]. In
other countries, assessment is a
carried out by the
government under a standard
predefined
curriculum model or set of
curriculum standards and guidelines. In
1998, a joint
IEEE/ACM
task force drafted accreditation
criteria for software
engineering [Barnes
1998],
which
included guidance and requirements in
the following areas:
faculty, curriculum,
laboratory
and
computing resources, students,
institutional support and assessment of
program
effectiveness.
In terms of curriculum, it stipulates
that the bachelor's program
in software
engineering
must include approximately
equal segments in software
engineering, in computer
science
and engineering, in
appropriate supporting
areas,
and in advanced
materials.
Accreditation
typically includes periodic
external review of programs,
which assures that
SE2004
Volume 8/23/2004
72
programs
meet a minimum set of criteria and
adhere to an accreditation organization's
standards.
A popular
approach to assessment and accreditation is an
"outcomes based approach"
for which
educational
objectives and/or student
outcomes are established first;
then the curriculum,
an
administrative
organization, and the infrastructure
needed to meet the objectives and
outcomes is
put
into place.
The
assessment should evaluate
the program objectives and
desired outcomes, the
curriculum
content and
delivery, and serve as the primary
feedback mechanism for
continuous
improvement.
In addition
to this document and the
previous cited accreditation
organizations, there are
many
sources
for assisting a program in forming and
assessing its objectives and
outcomes [Bagert
1999,
Lethbridge 2000, Meyer 2001,
Naveda 1997, Parnas 1999,
Saiedian 2002;
IWCSEA].
8.3
SE in
Other Computing-Related
Disciplines
Software
engineering does not, of course,
exist all by itself. It has
strong association to other
areas of
science and technology especially those
related to computing. At one end we have
the
work of
scientists, and at the other end we
have technology and technical
specialists. Towards
the
center of the spectrum is design, a
distinctive feature of engineering
programs.
Within
this context, computer
scientists are primarily
focused on seeking new knowledge as
for
example in
the form of new algorithms
and data structures, new
database information
retrieval
methods,
discovery of advanced graphics and
human-computer interaction organizing
principles,
optimized
operating systems and networks, and
modern programming languages and tools
that
can be used
to better the job of a
software engineer (and
computer engineer for that
matter).
It is of
note that the CCCS
volume has a chapter devoted
to the "Changes in the
Computer
Science
Discipline," and there are a
variety of views about CS as a
discipline, and it is worth
mentioning
that there is a need to
distinguish computer science, as it
exists today, from what
it
may
become in the near future, as a
discipline that studies the
theoretical underpinnings and
limitations
of computing. David Parnas [Parnas
99] speaks to this issue in
the statement "... an
engineer
cannot be sure that a product is
fit-for-use
unless those
limitations are known and
have
been
taken into consideration."
Such limitations include
technological limitations (hardware
and
programming
and design tools available) as well as
the fundamental limitations
(computability
and
complexity theory, and in particular
information theory including
noise, data
corrections,
etc.).
Information
technology and other more
applied and specialized programs,
such as network and
system
administration, and all engineering
technology programs, fit at
the opposite side of
the
spectrum
from CS. Software
engineering and computer engineering
fall in the center of
the
spectrum
with their focus on
engineering design. The central
role that engineering design
plays
in software
engineering is discussed elsewhere in
this document. The software
engineer's focus
should be on
an understanding on how to use
the theory to solve
practical problems.
Because of
the pervasive nature of
software the scope for
the types of problems in
software
engineering
may be significantly wider
than that of other branches of
engineering. Within a
specific
domain of
application, the
designer relies on specific education and
experience to
SE2004
Volume 8/23/2004
73
evaluate
many possible solutions. They
have to determine which standard parts
can be used and
which parts
have to be developed from
scratch. To make the necessary decisions,
the designer
must
have a fundamental knowledge of
specialty subjects. While
domains span the
entire
spectrum of
industry, government, and society,
there is a shorter list of
concrete specialty
application
areas such as scientific
information systems including
bioinformatics,
astrinformatics,
ecoinformtaics, and the like,
microsystems, aeronautics and
astronautics, etc.
SE2004
Volume 8/23/2004
74
Table of Contents:
|
|||||