National University of Ireland, Maynooth
MAYNOOTH, CO. KILDARE, IRELAND.
DEPARTMENT OF COMPUTER SCIENCE,
TECHNICAL REPORT SERIES
Enhancing Skills Transfer through Problem-based
Learning
Jackie O’Kelly, Rosemary Monahan, J. Paul Gibson and Stephen Brown
NUIM-CS-TR-2005-13
http://www.cs.nuim.ie
Tel: +353 1 7083847
Fax: +353 1 7083848
Enhancing Skills Transfer through Problem-based Learning
Jackie O’Kelly, Rosemary Monahan, J. Paul Gibson
and Stephen Brown
Department of Computer Science, NUI, Maynooth
{jokelly, rosemary, pgibson, sbrown} @cs.nuim.ie
ABSTRACT
Problem-based Learning (PBL) has proved itself as a successful teaching and learning
environment in the medical field, and has slowly become the preferred teaching and
learning method in other disciplines. In this report we look at the learning theories
that have influenced PBL and investigate the use of PBL in computer science. We
extend the boundaries of PBL and software engineering education with a proposal
that fully integrates PBL into a computer science and software engineering degree
structure. The objective of this proposal is to produce graduates who can successfully
transfer their knowledge and skills into practical situations in new domains.
1. INTRODUCTION
Globalisation of both higher education and the work environment, in addition to the
increase in the mobility of students and workers poses an increasing challenge to
tertiary level education. These factors add a level of complexity to the gap that exists
between academia and industry, and between theory and practice. Determining and
developing the skills that students need in addition to their software engineering
discipline, to compete successfully in a global market is becoming a fundamental
requirement for educationalists. In Ireland, the Expert Group on Future Skills Need
(2005) have identified a shortage in the number of software engineers due to the
slowdown in the Information Technology (IT) sector and a fall in enrolments on
software engineering courses. It notes that the skill gap in this area is likely to widen.
It also notes that the sector utilises the skills of electronic and electrical engineers, and
in many cases, these engineers act as a substitute for software engineers. In this
report we present a problem based software engineering environment that integrates
all years of the undergraduate and graduate degree programmes in a real world work
group setting. The remainder of the report addresses the theoretical foundations
surrounding PBL, a description of what PBL is and its role in computer science in
addition to our implementation of PBL. In section 7 we put forward our proposed
framework and finally draw together our conclusions.
2
2. THEORETICAL FOUNDATIONS OF PROBLEM-BASED
LEARNING
Problem-based Learning is influenced by a number of educational theories, namely
Experiential Learning, Constructivism, Enquiry-based Learning and Discovery
Learning. The educational philosophy of John Dewey has been one of the major
influences in what was termed the ‘newer philosophy’. He believed in the unity of
theory and practice and stated that there is an “intimate and necessary relation
between the process of actual experience and education” (Dewey, 1967).
2.1 Experiential Learning
Kolb (1984) ties the intellectual origins of his work in Experiential Learning to that of
John Dewey, Kurt Lewin and Jean Piaget. He sees Experiential Learning as the
process that links education, work and personal development (Figure 1). The
emphasis on the process of learning as opposed to the behavioural outcomes
distinguishes experiential learning from the idealist approaches of traditional
education. Ideas are formed and re-formed through experience so that learning
becomes a continuous process grounded in experience.
Figure 1: Experiential Learning as the Process that
links Education, Work and Personal Development
2.2 Constructivism
Theoriests John Dewey, Lev Vygotsky, Jean Piaget, Jerome Bruner, Seymour Papert
and Mitchell Resnick are associated with the theory of constructivism.
Constructivists believe that all humans have the ability to construct knowledge in
their own minds through a process of discovery and problem-solving. The extent to
which this process can take place naturally, without structure and teaching is the
3
defining factor amongst the advocates of this learning theory (Forrester & Jantzie,
2005).
2.3 Enquiry-based Learning
Enquiry-based Learning is an approach to learning that involves a process of
exploring the natural or material world, and that leads to asking questions, making
discoveries, and rigorously testing those discoveries in the search for new
understanding. The enquiry process is driven by one’s own curiosity, wonder,
interest, or passion to understand an observation or solve a problem. This theory is
also influenced by the work of Dewey, who believed that children should learn from
direct experience and that their natural curiosity should be cultivated. Jean Piaget and
Jerome Bruner subsequently added the weight of cognitive research to Dewey’s
philosophical propositions.
2.4 Discovery Learning
Discovery Learning is the learning that comes through free activity in a rich
environment, only mildly structured by the teacher to facilitate learning (Hilgard &
Bower, 1975). The concept of discovery learning has appeared as a part of the
educational philosophy of Dewey. It also enjoys the support of learning theorists and
psychologists Piaget, Bruner, and Papert. Bruner was influential in defining
Discovery Learning. "Emphasis on discovery in learning has precisely the effect on
the learner of leading him to be a constructionist, to organize what he is encountering
in a manner not only designed to discover regularity and relatedness, but also to
avoid the kind of information drift that fails to keep account of the uses to which
information might have to be put" (Bruner, 1962). Discovery learning is based on the
assumption that education is a process, not a set of facts.
3. TRANSFER OF LEARNING
Transfer of learning occurs when a person’s learning in one situation influences their
learning and performance in other situations. The question for educationalist is “in
what way and to what extent will acquisition of skills, knowledge, understanding,
behaviours and attitudes in one subject or learning situation influence performance
or learning in other subjects and situations?” (Bigge & Shermis, 1999). Educational
psychologist Charles Judd recognised two possible levels of learning – rote
memorisation with little, if any, meaning (in which he placed little value) and
generalised knowledge with many intellectual associations (in which he placed a high
premium). He stated: “when new skills are cultivated by an individual, the muscles
are brought into coordinated action through elaborately organised patterns
developed in the nervous system” and “Generalisations which epitomise great
numbers of experiences are the highest products of racial and individual intellectual
effort” (Bigge & Shermis, 1999).
Employers are increasingly looking for workers that not only have multi-disciplinary
skills but also have the ability to apply their skills in an industrial environment. The
benefits of skills such as communication, team-work, planning, problem solving,
critical thinking and negotiation are not realised unless the students are able to
transfer these to an industrial setting. This also applies to the basic skills in Computer
Science and Software Engineering. The Expert Group on Future Skills Needs (2004)
4
identified a major problem in graduates qualifying without any fundamental
understanding of their discipline, and – as a consequence – an inability to apply what
they had learned in University to real-world problems.
4. WHAT IS PROBLEM-BASED LEARNING?
The fundamental principle supporting the concept of PBL is that the problem is the
driving force that initiates the learning. This way of learning encourages a deeper
understanding of the material rather than superficial coverage; which supports the
views on learning outlined by Judd in section 3 above. While there is no universal
view or definition of what constitutes PBL we present practitioners’ definitions of
PBL covering three decades. PBL was defined by Barrows & Tamblyn (1980) as “the
learning which results from the process of working towards the understanding of, or
resolution of, a problem. The problem is encountered first in the learning process”.
Woods (1994) defined it as “an approach to learning that uses a problem to drive the
learning rather than a lecture with subject matter which is taught.” Torp & Sage
(2002) define it as “Focused, experiential learning (minds-on, hands-on) organised
around the investigation and resolution of messy, real-world problems.” While
models of PBL vary considerably there are a set of common characteristics:
ß
ß
ß
ß
ß
ß
ß
The problem acts as the catalyst for learning.
Learning is student centred.
Learning occurs in a small group setting.
The lecturer/tutor acts as a facilitator or guide to the learning process.
Prior knowledge is activated
New knowledge is acquired.
Students take responsibility for their own learning.
PBL was pioneered at Case Western Reserve University in the early 1950s (Boud &
Feletti, 1998), and in the 1960s by Howard Barrows at McMaster University. The
learning approach adopted by McMaster was used as a model for other PBL
programs, and is still used as a benchmark for PBL.
A comprehensive literature review of PBL in the medical discipline was conducted by
Albanese & Mitchell (1993) and found that in comparison to conventional instruction,
“PBL is more nurturing and enjoyable; PBL graduates perform as well, and
sometimes better, on clinical examinations and faculty evaluations. Faculty tend to
enjoy teaching using PBL.” Another study undertaken by Vernon & Blake (1993)
also in the field of medicine found that “PBL was significantly superior with respect
to students’ program evaluation, faculty attitudes, student mood, class attendance,
academic process variables and measures of humanism.” Kaufman (2000) asserts
that “PBL has been one of the most successful innovations in medical education and
has established its credibility.”
5. PROBLEM-BASED LEARNING IN COMPUTER SCIENCE
Computer Science as a discipline has been and continues to be regularly challenged,
primarily due to the rapid evolution of the field. The dynamics involved with the
continuous improvement in technology puts additional pressure on educational
5
institutions to adopt explicit strategies for responding to change. Ellis et al. (1998)
argue that the computing discipline lends itself to Problem-based Learning and
matches these characteristics in the following ways:
ß
ß
ß
ß
ß
Computing, is for the most part problem driven;
Life-long learning is a necessity due to the rapidly and continually
changing nature of the industry;
Practitioners must constantly update their skills and competencies in
order to keep abreast of new technology;
The project groups is the predominant mode of operation within the
industry; and
Computing crosses discipline boundaries.
The Computing Curriculum (2001), developed by the ACM, states that “Computer
science education, must seek to prepare students for lifelong learning that will enable
them to move beyond today’s technology to meet the challenges of the future.” Pike
& Barber (2003) argue that the core competencies that PBL instills are particularly
relevant for computer science graduates. However, a study into the use of Problembased Learning in the teaching of computing within higher education found that PBL
is not widely used (Beaumont et al., 2004). In a number of cases where PBL is used it
is in a single module, motivated by the enthusiasm of individual tutors. In only one
instance was PBL implemented in half of the curriculum. The module in which PBL
is most often applied is the programming module (Greening et al., 1997, Fekete &
Greening, 1998, Barg et al., 2000, Duke et al., 2000, Adams et al., 2001, Pollock &
Jochen, 2001, Beaumont & Fox, 2003, Stevenson, 2003). Kay & Kummerfeld (1998)
combine the learning of programming and HCI while Davis et al. (2004) combine it
with computer graphics in a large-scale problem. According to Oriogun &
Georgiadou (2000) software engineering education is fundamentally a problem-based
activity, and they propose a Problem-based Learning grid to facilitate this learning
whereas Uden (2003) proposes a problem-based task knowledge structure method to
teach students how to conduct their final year projects. Lambrix & Kamkar (1998)
use PBL to integrate computer science as part of engineering education and
Hämäläinen (2004) developed a purely theoretical problem-based ‘theoretical
foundations of computer science’ course.
There appears to be no argument that students require fundamental skills in order to
function effectively in a PBL environment, as identified by (Greening, 1998, Fekete
& Greening, 1998). Preliminary findings by McCracken & Waters (1999) indicate
that students tend to rely excessively on existing knowledge and they focus almost
solely on product-related issues versus process-related ones and that they need
explicit training in group dynamics. Beaumont & Frank (2003) argue that skills,
attitudes and behaviours take time to develop and that a single semester-long PBL
module is unlikely to make a significant difference. Kinnunen & Malmi (2004)
describe the characteristics of efficient and inefficient PBL groups. They found that
efficient working groups are those where members participate in group meetings and
make themselves responsible, come prepared, maintain an open and relaxed
atmosphere and encourage each other. Inefficient working groups are those where:
there is little participation or attendance, which in turn reduces motivation; or a
number of members are free riders who let others do the work; or other members have
very strong opinions and there is no understanding or consensus on how to work.
6
Both Ellis et al. (1998) and Greening (1998) identify that considerable scaffolding is
required in order to make the transition from the traditional pedagogical model to a
PBL model.
6. PROBLEM-BASED LEARNING AT NUI, MAYNOOTH
The approach to the implementation of PBL into the computer science curriculum at
the National University of Ireland Maynooth (NUIM) has been bottom-up; with
individual lecturers interested in PBL introducing it into their own module(s).
Currently PBL is our method of instruction in specific modules in first, second and
third year of the undergraduate degree as well as specific modules in a post-graduate
taught Masters programme. However, its implementation has been conducted in a
disjoint fashion with no continuity throughout the degree structure.
6.1 PBL in First Year
The programming module is taught over two 12-week semesters, with 6 contact hours
per week. In order to try to overcome the inherent difficulty first year students have
with programming the module lecturer introduced a PBL workshop into the module,
changed the approach used during lecture time and changed the relative ordering of
lecture, lab and workshop. The overall objectives of the changes were to:
ß
ß
ß
ß
Develop the students' problem solving skills,
Develop the students' critical thinking skills,
Encourage alternate approaches to problem solving through group
work, and
Encourage deep learning approaches.
At the beginning of the year every student in the class was assigned to a ‘formal
group’ by the lecturer. The group sizes ranged from five to seven on average. Each
group was allocated a space to work in, a facilitator, a PBL journal and scaffolding
resources. The PBL journal updated weekly by the groups contained a master record
of their collaborative work during the year. Each ‘formal group’ worked as a team for
an entire semester. In the first week of term these students undertook an induction
program, specifically designed to introduce them to the concept of teamwork.
The students were presented with a problem in the workshop first. The following
restrictions were imposed in the workshops:
ß
ß
The students were not allowed to use computers, and
They were not allowed to write a Java program as the solution to the
problem.
As a group they were required to develop an algorithm, that is, ‘a step-by-step set of
instructions to solve the problem’.
The alternate approach to lecture time is informed by the work of Deek & Kimmel
(1993), Woods (1996) and Waite et al. (2003). A problem is presented at the
beginning of class; the students are placed in ‘informal groupings’ and asked to
generate possible ideas to solve the problem with the lecturer facilitating the group
7
process. The lecturer then collaborates with the students to solve the problem
algorithmically with ideas generated from different groups of students. Once a
solution to the problem is drafted, the lecturer then steps through the solution with the
students, any difficulties are identified and rectified by the class and the step-through
process begins again until such time as a viable solution is reached. At this point the
translation of the algorithm to code occurs. During this process any programming
concepts that students do not know are flagged. At least one of the lecture time slots
each week is given to the theory and concepts behind the learning outcomes of the
PBL workshops in addition to the flagged programming concepts identified in the
lectures (O’Kelly, 2005).
The scheduled lab time involves the students implementing solutions to programming
problems. As the term progresses these problems come directly from the PBL
workshop. Demonstrators are available to assist the students during this time.
However we noted less reliance on the demonstrators and more interaction between
the students themselves in solving these problems in the labs.
6.2 PBL in Second Year
The module is taught over a period of 12 weeks. Every week there are two 1-hour
lectures. Also, every week – except the first and last – there is a single 2-hour
laboratory practical session. Students receive immediate feedback on their
performance in the laboratory (they are given a mark out of 10 before they leave the
laboratory).
Every week there is a laboratory PBL session where students work as individuals or
in teams (students select their own team members) in order to solve a problem (using
a computer programme). In general, the following lecture is used to review what the
students were supposed to have learnt from the problem; and this follows a more
traditional style. The lecture after that follows the interactive model, and attempts to
re-use the skills that are acquired in solving the previous problem in preparing for the
next problem. The lecturer creates ‘informal groups’; with some of the groups
solving the problem while others observe the problem solving process. However, this
approach typically forces the lecturer to follow a week-long cycle of reviewing the
previous week’s work in order to develop a new problem that best addresses the needs
of the class for the next week: what the students learn, from a particular problem, does
not always correspond to what the lecturer thinks they would, or should, learn. Some
problems are ineffective: the students appear to learn nothing from them and as there
is an interdependency between problems, ineffective problems often have to be reengineered and presented to the students for a second (or sometimes third) time.
Often, 1 hour of standard lecturing is not enough time to cover the material required
by the module curriculum and the students are concerned that they do not have a
standard set of lecture notes from which to revise the material (O’Kelly & Gibson,
2005).
6.3 PBL in Third Year
The course module is spread over a 12-week period and consists of 4 hours per week
contact time with mentors and 4 hours per week independent work. Students are
assigned to formal groups at the beginning of the module based on the weak-strong
selection technique. The average group size is 4, which allows for a total of 384 manhours to complete the project. The project is the first large problem the students
8
encounter and typically tends to include databases, web authoring, software
engineering, networking, operating systems and programming. The breadth of the
problem means that a complete solution is very difficulty to achieve within the
allowed time without adopting a rigorous software engineering approach and good
project management. The weekly lecture contact time is concentrated in a single halfday session. This gives the students a relatively long period of time to work together
and provides them with an opportunity to meet the clients (tutors) under controlled
conditions. Attendance is compulsory for the first hour, after which the students are
free to choose a location that best suits their team. At the end of the project four
deliverable components are required and assessed: the product itself, the final
presentation, individual student journals and feedback forms (conducted every two
weeks) to assess individual and teamwork skills (Delaney & Mitchell, 2002, Mitchell
& Delaney, 2004).
6.4 PBL in MSc in Computer Science (Software Engineering) Programme
The module called ‘Testing and Benchmarking Strategies’ takes place over a 2-week
period: one week of lectures and workshops followed by one week of assessed
practical work. Students form groups of 3 to 4 for the first week, but then do their
marked practical work independently. The first week is a mixture of lectures, groupwork, workshops, and reading. The reading material is given for the evenings, and
provides the background knowledge that the students need for the various problems
presented. The lectures are used to provide guidance, for example in new tools, or to
review the reading material. In some cases new material is also introduced through
lectures. The group work is where the majority of the learning takes place; each
student team works out how to apply testing principles and techniques to particular
testing problems. In the workshops these solutions are presented by the groups, and
then discussed by the class. Differences in their approaches are discussed. Given the
more mature nature of the students, a 'hands-off' approach is taken to mentoring the
groups, with typically just the lecturer or a single assistant working their way round
the groups to make sure that they are working effectively, and perhaps (normally via
questions) to redirect or refocus a group's activity.
7. A PROPOSED FRAMEWORK
In this section we describe our proposal for a new framework that will add
cohesiveness and continuity to PBL within the degree programme. Our proposed
framework pushes the boundaries of PBL to a model where PBL is used in a real
world problem that spans a software engineer’s education.
Our framework presents a problem-based software engineering stream that will
span all years of a Software Engineer’s education through to Masters level. The
student will work in an environment that mirrors real world software development
where project teams will be divided into sub-teams, each with a particular task. In
addition, members of the team will be of varied skill providing an apprenticeship
model where students can learn from those that have more experience than those who
are new to the task.
We model our framework on an undergraduate degree and a Masters level degree
currently offered at NUIM: the BSc Computer Science and Software Engineering and
9
the MSc (Software Engineering). During the four-year undergraduate degree program
a student will participate in many software development projects, normally one per
academic year. Students should update their software engineering portfolio on the
completion of each strand of the framework. The result is a portfolio that details their
experience of every phase of the software development cycle. Degree level students
will focus on requirements analysis, software design, software implementation,
software testing, and software maintenance. Students at Masters level will focus on
the project management aspects of the project. This portfolio should prove invaluable
when assessing a software engineer’s skills and their knowledge of the software
development process.
We present, in table 1, four parallel streams that provide a framework for Problembased Software Engineering.
A Framework for Problem-based Software Engineering
Problem-based
Learning
Apprenticeship
Model
Student
Portfolio
Software
Development
(Expanded below in
Table 2)
Table 1. Parallel Streams in Problem-based Software Engineering
It is not appropriate, particularly in the early stages of a student’s education, to assign
a complete phase of the software development to one student cohort. Hence, our
framework divides the design, implementation and testing phases into manageable
strands that the students will learn through. Table 2 describes what should be
achieved at each phase of the project.
Software development phases are allocated to students based on the students
experience and their learning requirements. To assist in this allocation the framework
associates prerequisites, learning outcomes and available resources with each
project phase:
•
Prerequisites refer to the experience/ability that a student should have before
commencing a software development phase. These prerequisites ensure that a
student will have the required background so that they learn to their full
potential on each phase of the project.
•
The learning outcomes correspond to the knowledge that the student will
achieve through the Problem-based Learning approach to each phase of the
project. On achieving these outcomes the student should thoroughly
understand each phase of software development.
•
Every project phase will have resources available to assist the student in their
Problem-based Learning. Such resources are normally allocated by the project
10
manager and will include courses, tutorials, software tools and techniques. As
this software engineering stream will be available as part of a wider education
program some of these available resources will be courses that are run in
parallel with a student participating in a software development phase.
Software Development Phases
Project Management
Outputs
Management Report
Project Milestone Reports & Presentations.
Requirements Analysis
Requirement Analysis Document
Software Design
Design Strand 1: High Level Design
System Design Documents e.g.
Architectural, Subsystems and GUI designs
Software Implementation
Design Strand 2: Low Level Design
Detailed Design Documents e.g.
Component, Class, Method designs
Coding Strand 1: Basic Programming
Code (Basic method implementations) with
corresponding documentation
Coding Strand 2:
Advanced Programming
Software Product (Complete Code with
corresponding documentation)
Testing Strand 1: Test Case Generation
Test Suite Documents
Software Testing
Software Maintenance
Testing Strand 2: Test Log
Updated Test Log
Revised System with Version Control
Documentation and Updates
Table 2. Software Development Phase Outputs
The framework details are presented below, in tables 3 to 7, with suggested
allocations of software development phases to suitable student cohorts.
11
7.1 Problem Based Framework for a Software Engineering Programme.
7.1.1 Undergraduate Programme:
Students entering an undergraduate degree program will have little or no knowledge
of the software development process. During their initial year of the course they will
learn about basic programming skills, the importance of a structured approach to
problem solving as well as the importance of software design and testing documents.
Available resources include courses on programming principles, design and test
document comprehension, as well as the project manager who will have knowledge
about the overall project in which the student is involved. Table 3 describes the
Problem-based Learning stream for software engineering in year 1 of an
undergraduate degree program:
Student
Cohort
Computer
Science /
Software
Engineering
Undergraduate
Software
Phase
Phase
Prerequisites
Coding
Ability to take
Strand 1:
instruction
Basic
Programming
Level:
Year 1/
Freshman
Year
Testing
Strand 2:
Test Log
Ability to take
instruction
Learning
Outcomes
Basic
Programming
Skills
Language Syntax
Correctness
Documentation
Structured
approach
Reading and
understanding
design
documentation
Resources
Available
Design
Document
Comprehension
Reading and
understanding test
documentation
How to update
test logs
Test Document
Comprehension
Programming
Principles
Project
Manager
Project
Manager
Table 3. Software Engineering Stream: Undergraduate Year 1
On progression into the second year of the program the student will learn more indepth programming skills, focusing on the correct and efficient implementation of
software designs. As part of the apprenticeship model, the student will allocate some
of the basic programming tasks, e.g. simple method implementations, to students who
are allocated Coding Strand 1. These students will teach basic programming skills to
the more junior programmers, while learning through their implementation of design
documents provided by more senior undergraduate students. The advanced
programming strand and its allocation is presented in Table 4 as follows:
12
Student
Cohort
Computer
Science /
Software
Engineering
Undergraduate
Level:
Year 2/
Sophomore
Year
Software
Phase
Coding
Strand 2:
Advanced
Programming
Phase
Learning
Resources
Prerequisites
Outcomes
Available
Reading and Implementation Design Document
understanding of design
Comprehension
design
documents.
documents.
Programming
Coding Skills Principles
Strong
(Correctness,
grounding in Syntax,
||1 Communication
Programming Efficiency,
Skills
Principles.
Documentation
Structured
|| Software Testing
approach,
Ability to break Project Manager
a task into
relevant
subtasks)
Algorithms and
Data structures
Table 4. Software Engineering Stream: Undergraduate Year 2
Having learned how to interpret and implement design documents, students should
learn how to generate their own design documents. The first step towards this process
is generating a requirements analysis document. As communication skills are a vital
component of this process a course on communication skills should be provided in
year 2 (indicated by || in the available resources listing). Resources available should
include instruction on techniques such as use cases, context diagrams, requirement
traceability matrices and screen prototypes; while learning outcomes should include
coverage, completeness, conciseness and clarity of the system requirements as well as
both critical and analytical thinking.
The second step is the generation of system test cases. These test cases will be used to
test the software implementation with respect to its design. Issues such as
benchmarking, software complexity, software metrics, system portability and
efficiency should be included in the test cases. A course in software testing should be
presented to the students in year two to prepare them for the test case generation
phase.
Both requirements analysis and test case generation phases are presented below in
Table 5:
1
Indicates a module on this topic that the student takes in parallel to the project phase
/ strand that they are currently working on.
13
Student
Software
Cohort
Phase
Computer
Requirements
Science /
Analysis
Software
Engineering
Undergraduate
Phase
Prerequisites
Communication
Skills
Writing /
Reporting skills
Level:
Year 3 / Junior
Year
Testing Strand Read and
1: Test Case understand
Generation
Requirements
Analysis and the
design
documents
Learning
Resources
Outcomes
Available
Analysis of
Project
what the
Manager
software should
do.
Requirements
Analysis
Tools and
Requirements
Techniques
Analysis
Document
Collaborative
Generation
requirements
analysis
sessions
What, Why,
How of testing
|| Design
Concepts
Project
Manager
Identification
Testing
and creation of Strategies and
test cases
Tools
Documentation
and reporting
test cases and
test log
mechanisms.
Table 5. Software Engineering Stream: Undergraduate Year 3
When students reach their final year they should be extremely familiar with design
documents and how to implement them. They should be ready to learn how to
generate a complete, concise and clear design document. Under our framework all
design documentation is allocated to fourth year undergraduate students as follows, in
table 6.
We note that due to a dependency between phases that some phases will be scheduled
earlier in the year than others; requirements analysis and design documentation will
require completion during the early part of the year while system implementation and
testing will be completed during the later part of the year.
14
Student
Cohort
Computer
Science /
Software
Engineering
Undergraduate
Software
Phase
Design Strand
1: High Level
Design
Phase
Prerequisites
Have
completed a
requirements
analysis
document.
Level:
Year 4/ Senior
Year
Design Strand
2: Low Level
Design
Have
completed a
requirements
analysis
document
Learning
Outcomes
How to make
design
decisions at
architectural,
system and
interface
levels.
Resources
Available
Software
Engineering
Tools and
Techniques
How to make
design
decisions at
coding levels
(software
components,
classes,
methods...)
Software
Engineering
Tools and
Techniques
Project
Manager
Project
Manager
Table 6. Software Engineering Stream: Undergraduate Year 4
7.1.2 Postgraduate Programme:
Postgraduate Masters students have a primary degree in computer science, software
engineering or a related discipline. Hence, it is most likely that they will have
experience of many phases of software development but no experience of project
management. The skills that these students will learn through their project
management phase include the management of the project, people, time, finances and
other resources. Other skills such as reporting, communication, presentation,
delegation, negotiation, motivation, facilitation, and performance review will also be
essential learning outcomes. The MSc in Computer Science (Software Engineering) at
NUIM is one year in duration where the students will undertake the management of a
large software project that is designed, implemented and tested by undergraduate
students from the computer science and software engineering degree program. Details
are as follows, in table 7:
15
Student
Cohort
Computer
Science /
Software
Engineering
Graduate
Software
Phase
Project
Management
Level:
MSc
Phase
Prerequisites
Experience of
at least one
phase and an
understanding
of all phases of
the software
development
process
Learning
Outcomes
Management
skills
Resources
Available
Course
Facilitator
Identify
software
development
Phase
Boundaries and
phase overlaps
Experts in
relevant
domains
(Academic
Staff,
Industrial
Partners,
Clients ...)
Table 7. Software Engineering Stream: Graduate MSc
As the above framework illustrates, each project team will span all years of an
undergraduate degree programme as well as a Masters level programme. This team
structure will strengthen the apprenticeship model where students will learn from their
peers. This model is further strengthened through mixing students of different abilities
on the requirements and design, implementation and testing teams. It is hoped to
extend this apprenticeship model so that students are rewarded by progressing to more
interesting problems. This will help to maintain student motivation and enthusiasm as
well as mirroring the real world industrial experience.
The only software development phase that has not been allocated to a student cohort
within this framework is software maintenance. Software maintenance tasks will be
allocated by the project manager depending on their impact on the overall design,
implementation and testing phases of the system software. Each team, which is
allocated a task associated with system maintenance, will be expected to generate a
revised system with version control documentation and updates.
As a student may participate in five years worth of project work, their completed
portfolio may span five large software projects and all phases of software
development.
8. Conclusions
In this report we have identified a skills shortage in the software engineering industry
in addition to a deficit in the skills required by software engineering students to
compete in a global economy. We presented Problem-based Learning as a candidate
approach to address these problems and provide the theoretical foundation to support
this approach. We extend the boundaries of PBL and software engineering with our
proposed framework that provides a challenging real-world environment where
students can prosper. Our proposal encourages active and lifelong learning and
provides a real world experience through the use of work groups that integrates
students from all years of an undergraduate and graduate software engineering degree
16
programme. The work group environment, project management, the apprenticeship
model and the student portfolio will develop and enhance the technical and ‘soft’
skills that are required for software engineers to work effectively today.
17
REFERENCES
Adams, M., Clarke S., and Thomas R., (2001), Developing Graduate Capabilities
Through PBL, Third Asia Pacific Conference on Problem Based Learning, December
2001, Rockhampton, Queensland.
Albanese, M.A., and Mitchell, S., (1993) Problem-based Learning: A Review of
Literature on Its Outcome and Implementation Issues. Academic Medicine, Volume
68, Number 1, January.
Barg, M., Fekete, A., Greening, T., Hollands, O., Kay, J., Kingston, J.H. and
Crawford, K., (2000), Problem-Based Learning for Foundation Computer Science
Courses, Computer Science Education, Vol. 10, No. 2, pp. 109-128.
Barrows H.S., and Tamblyn R.M. (1980) Problem-Based Learning: An Approach to
Medical Education. Springer Publishing Company, New York, ISBN 0826128408
p.1.
Beaumont, C., and Fox, C., (2003), Learning Programming: Enhancing Quality
Through Problem-Based Learning. 4th Annual LSTN-ICS Conference, NUI, Galway.
Beaumont, C., and Frank, B., (2003), Enhancing Employability through Problembased Learning, Delivering Employability Conference, UCLAN 9th April, 2003.
Beaumont, C., Sackville, A., and Cheng, C.S., (2004), Identifying Good Practice in
the use of PBL to teach computing, ITALICS 3 (1), LTSN-ICS.
Bigge, M., and Shermis, S., (1999) Learning Theories for Teachers, Sixth Edition,
Addison Wesley Longman, Inc., ISBN 0-321-02343-9.
Boud, D.,and Feletti, G., (1998) The Challenge of Problem-Based Learning, 2nd
Edition, Kogan Page, London, ISBN 0-74942-560-1.
Bruner, J.S. (1962). On knowing: Essays for the left hand. Harvard University Press,
Cambridge, Mass, ISBN 0-6746-3525-6.
Computing Curricula 2001, Computer Science volume, Final Report, December 15,
2001, The Joint Task Force on Computing Curricula IEEE Computer Society,
Association for Computing Machinery.
Davis, T., Geist, R., Matzko, S., and Westall, J., (2004) τεχνη : A First Step,
SIGCSE 2004, Norfolk, Virginia, USA.
Deek, F.P., and Kimmel, H., (1993), Changing the Students’ Role from Passive
Listeners to Active Participants. Frontiers in Education Conference, pp. 321-325.
Delaney, D., and Mitchell, G., (2002), PBL Applied to Software Engineering Group
Projects, ICTE 2002, International Conference on Information and Communication
Technologies in Education.
18
Dewey, J., (1967), Experience and Education, Kappa Delta Pi, 1938, Collier Books,
New York.
Duke, R., Salzman, E., Burmeister, J., Poon, J. and Murray, L., (2000), Teaching
Programming to Beginners – choosing the language is just the first step. ACE 2000,
12/00, Melbourne, Australia.
Ellis, A., Carswell, L., Bernat, A., Deveaux, D., Frison, P., Meisalo, V., Meyer J.,
Nulden, U., Rugelj, J., and Tarhio, J., (1998), Resources, Tools, and Techniques for
Problem Based Learning in Computing, Report of the ITiCSE’98 Working Group on
Problem Based Learning.
Expert Group on Future Skills Needs, (2004) Forfás submission to the Your Education
System Review. Available online at
http://www.forfas.ie/publications/_list/skills.html
Expert Group on Future Skills Needs, (2005) National Skills Bulletin 2005. Available
online at http://www.skillsireland.ie/press/reports/index.html
Fekete, A. and Greening T., (1998), Conveying Technical Content in a Curriculum
Using Problem Based Learning, ACSE’98, Brisbane, QLD, Australia.
Forrester, D., Jantzie, N., Learning Theories, accessed on-line August 17th, 2005 at
http://www.acs.ucalgary.ca/gary.ca/~gnjantz /learning_theories.htm
Greening, T., Kay, J., Kingston, J., (1997) Results of a PBL Trail in First-Year
Computer Science. ACSE’97, Melbourne, Australia.
Greening, T. (1998). Scaffolding for Success in Problem-Based Learning. Med Educ
Online [serial online] 1998;3,4. Available from http://www.Med-Ed-Online.org
Hämäläinen, W., (2004), Statistical analysis of problem-based learning in theory of
computation, Proceedings of the Fourth Finnish/Baltic Sea Conference on Computer
Science Education, October 1-3, 2004, Koli, Finland.
Hilgard, E., Bower G., (1975) Theories of Learning, Fourth Edition, Prentice-Hall
Inc., Englewood Cliffs, New Jersey, ISBN 0-13-914457-9.
Kaufman D., (2000) Problem-based learning - time to step back? Medical Education,
Vol 34, Issue 7: 509-511.
Kay, J., and Kummerfeld, B., (1998), A Problem-based Interface Design and
Programming Course (1998), SIGCSE 98, Atlanta, GA, USA.
Kinnunen, P., and Malmi, L., (2004), Do Students Work Efficiently in a Group? –
Problem-Based Learning Groups in Basic Programming Course, Proceedings of the
Fourth Finnish/Baltic Sea Conference on Computer Science Education, October 1-3,
2004, Koli, Finland.
19
Kolb, D., (1984) Experiential Learning, Prentice-Hall Inc, Englewood Cliffs, New
Jersey, ISBN 0-13-295261-0.
Lambrix, P., and Kamkar, M., (1998), Computer Science as an Integrated Part of
Engineering Education, ITiCSE ’98, Dublin, Ireland.
McCracken, M., and Waters, R., (1999), WHY? When an Otherwise Successful
Intervention Fails, ITiCSE ’99 6/99 Cracow, Poland.
Mitchell, G., and Delaney, D., (2004), An Assessment Strategy to Determine Learning
Outcomes in a Software Engineering Problem-based Learning Course, International
Journal Engineering Education, Vol. 20, No. 3, pp. 494-502, Tempus Publications,
Great Britain.
O’Kelly, J., (2005), Designing a Hybrid PBL Course: A Case Study of First Year
Computer Science in NUI, Maynooth in Handbook of Enquiry and Problem-based
Learning: Irish case Studies and International Perspectives, pp. 43–53. CELT, NUI
Galway, ISBN-13 978-0-9551698-0-9
O’Kelly, J., and Gibson, J.P., (2005) PBL: Year One Analysis—Interpretation and
Validation, PBL International Conference 2005, PBL In Context – Bridging work and
Education, Lahti, Finland.
Oriogun, P.K., and Georgiadou, E., (2000), Towards Ensuring the Development of
Capabilities Through the Use of the Problem Based Learning Grid. 8th Annual
Conference on the Teaching of Computing, Edinburgh.
Pike, A., and Barber, D., (2003) A Preliminary Investigation of the Role of Problem
Based Learning (PBL), ITB Journal, Issue Number 8, December 2003.
Pollock, L., and Jochen, M., (2001), Making Parallel Programming Accessible to
Inexperienced Programmers through Cooperative Learning. SIGCSE 2001, 2/01,
Charlotte, NC, USA.
Stevenson, S., Problem Solving Principles and Free-Writing Techniques in a
Computer Science Class (2003) ACMSE’03, 41st ACM Southeast Regional
Conference, Savannah, Georgia, March 2003.
Torp, L., and Sage, S., (2002) Problems as Possibilities: Problem-Based Learning for
K–16 Education, 2nd Edition, Association for Supervision and Curriculum
Development (ASCD), Alexandria, VA, USA, ISBN 0-87120-574-2.
Uden, L., (2003), Problem-Based Task Knowledge Structures in Projects, 4th Annual
LTSN-ICS Conference, NUI, Galway.
Vernon D., and Blake R., (1993) Does Problem-based Learning Work? A MetaAnalysis of Evaluative Research. Academic Medicine, Volume 68, Number 7, July.
Waite, M.W., Jackson M.H., and Diwan, A.,(2003), The Conversational Classroom,
SIGCSE 2003, February 19-23, Reno, Nevada, USA.
20
Woods, D. R., (1996) Problem-based Learning: how to gain the most from PBL.
Waterdown, Ontario, ISBN 0-9698725-0-X.
21