Conference PaperPDF Available

A story-centered, learn-by-doing approach to software engineering education

Authors:

Abstract

Carnegie Mellon's West Coast Campus offers an MS in Software Engineering, with technical and development management tracks, targeted at working software professionals in Silicon Valley. We believe the program to be unique in that it is entirely team-based and project-centered. Students learn by doing as they are coached just in time by faculty in the context of authentic projects, and they are evaluated based on what they produce. Student satisfaction is high: 92% believe that the program has given them a competitive advantage with respect to their professional peers, and their promotion and salary histories bear out this belief.
A Story-Centered, Learn-by-Doing Approach to Software
Engineering Education
Ray Bareiss
Carnegie Mellon West
Building 23
NASA Ames Research Park
Moffett Field, CA 94035
011-650-335-2801
ray.bareiss@west.cmu.edu
Martin Griss
Carnegie Mellon West
Building 23
NASA Ames Research Park
Moffett Field, CA 94035
011-650-335-2805
martin.griss@west.cmu.edu
ABSTRACT
Carnegie Mellon’s West Coast Campus offers an MS in Software
Engineering, with technical and development management tracks,
targeted at working software professionals in Silicon Valley. We
believe the program to be unique in that it is entirely team-based
and project-centered. Students learn by doing as they are coached
just in time by faculty in the context of authentic projects, and
they are evaluated based on what they produce. Student
satisfaction is high: 92% believe that the program has given them
a competitive advantage with respect to their professional peers,
and their promotion and salary histories bear out this belief.
Categories and Subject Descriptors
K.3.2 [Computer and Information Science Education]:
Software Engineering, Active Learning, Pedagogy
General Terms
Human Factors
Keywords
Software Engineering Education, Active Learning, Learning by
Doing, Story-Centered Curricula
1. INTRODUCTION
Students typically enroll in a professional master’s program to
gain practical knowledge and skills which enhance their career
prospects. The overarching goal of Carnegie Mellon West’s
professional master’s programs is to provide a transformative
educational experience to our students, one that effects a
fundamental change in the way that students behave as software
professionals, not just in the Carnegie Mellon West educational
context, but more importantly in their work contexts as well:
- During the course of our program, students are equipped with
a broad range of knowledge and skills directly relevant to
their professional practice, and they gain facility at applying
these skills to real-world problems
- Students' decision-making processes significantly improve,
and they learn principled decision-making frameworks and
how to instantiate such frameworks logically
- Students learn to express their ideas clearly and persuasively,
and they become able to negotiate effectively and with
authority
- Students become adept at working effectively in teams,
perhaps the key skill in software development of any scale
- Students become effective self-directed learners, which is
essential in a field in which some put the typical half-life of
knowledge at approximately two years.
Juxtaposing this overarching goal with Cognitive Science
research on how people think and learn (see, e.g., the citations in
Appendix 1) suggests the properties of an educational approach:
- The approach should center on active problem solving to
promote the acquisition of usable knowledge rather than a
collection of memorized facts
- The approach should situate learning in a realistic context,
highly similar to the environment in which students are
expected to apply the knowledge, thus promoting transfer
- Instruction should be “just in time,” when the problem solving
situation provides a context for processing new information
and storing it mentally in a useful form
- The context for learning should be a simulation of the real-
world to ensure that targeted knowledge and skills are
required for successful problem solving and to enable the
appropriate ordering of their acquisition
- Knowledge and skills should be taught holistically, as they
will be applied, rather than separated into academic silos
- The learning experience must equip students with the
fundamental skill of self-directed learning.
- A key part of effective learning should occur when direct
mentoring is delivered by experts in the context of authentic
problem-related interaction
In response, we have adopted a pedagogy based heavily on team-
oriented projects, simulations, just-in-time tutorials, and industrial
practicums. Our curriculum design and course delivery methods
rely heavily on experience gained from CMU’s successful studio-
based experience with the MSE, several analyses of emerging
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that
copies bear this notice and the full citation on the first page. To copy
otherwise, or republish, to post on servers or to redistribute to lists,
requires prior specific permission and/or a fee.
SIGCSE ‘08, March 12-15, 20048, Portland, OR, USA.
Copyright 2008 ACM X-XXXXX-XX-X/XX/X …$5.00.
core requirements to train professional software engineers [1], and
a growing body of cognitive science knowledge of how adults
learn effectively. We have heavily modified the CMU Pittsburgh
delivery model and increased the focus on agile methods,
entrepreneurship, and team-oriented soft skills to better match the
style of fast paced software engineering as practiced in Silicon
Valley. We have instantiated this educational approach to offer a
professional .Masters program in Software Engineering with
tracks in Technical Software Engineering and Development
Management, as well as a sister program in Software
Management targeted at senior professionals.
The MS program is a two-year, part-time program featuring
flexible delivery to accommodate the working professional’s busy
schedule. Thirty to forty percent of the students are remote; most
of these are employees of aerospace companies. Local students
are drawn in small numbers from a large range of Silicon Valley
companies, including IBM, HP, Oracle, Google, Sun, BEA, and
others. To encourage a strong sense of community, all students,
whether remote or local, are required to come to campus for a
three-day orientation, a mid-program event, and for graduation.
We believe this program to be unique. While other US and
European schools offer software engineering education, none
adopt as intense a learn-by doing approach with the goal of
producing a transformative experience for practicing software
professionals..
2. THE SOFTWARE ENGINEERING
PROGRAM
The Software Engineering Program prepares experienced
developers for leadership roles in development groups and
beyond. Students will apply methodologies pioneered at Carnegie
Mellon’s highly regarded School of Computer Science and the
Software Engineering Institute toward the practical demands of
team-based software development. Our learn-by-doing curriculum
equips them to balance agility and discipline in software
development, to manage risk, and to deliver on commitments.
It is designed for software developers seeking to advance to a
senior software engineer, architect, or project manager role. In
this program, students work through all the aspects of the
software development lifecycle, apply systematic software
engineering methodologies, and deliver on commitments.
The program’s two tracks share a common core of software
engineering concepts, methods, and practices. The actual courses
taken depend on the track and the available electives for that
track. The Technical track enables graduates to effectively
architect, design, develop, and deploy complex software systems.
The Development Management track enables graduates to
manage projects, processes, and people, whether in-house or
outsourced. Students learn the technical, business, and leadership
skills required to successfully manage software projects
throughout their complete lifecycle.
Successful applicants to both tracks are required to have a
minimum of two years of work experience, a computer science or
related degree, and some team-based software experience.
2.1 Overview of Instruction at Carnegie
Mellon West
The curriculum comprises six semesters worth of project-based
courses. Working both in teams and individually, students act as
employees of a fictional company hired to architect, design, and
implement or manage multiple releases of a complex application
on an aggressive schedule. Within this framework, and with
support from faculty members, students confront realistic
technical and business problems, including conflicting
requirements, limited resources, and challenges of team
leadership. This Story-Centered Curriculum fosters initiative,
collaboration, leadership, and repeatable success.
In this style of course, faculty provide several kinds of
educational support:
Supervising Faculty Member. The supervising faculty
member has a number of responsibilities. He or she
delivers most of the just-in time instruction and is the
primary grader of written student work products and
presentations. He will run one or more “plenary”
sessions for all students to kick-off new segments of the
project, to discuss recent student deliverables, and to
facilitate reading discussions. He or she coordinates
delivery among the other faculty and guest speakers to
ensure that all are on the same page with respect to the
scenario being presented to the students. The
supervising faculty member typically also hosts a
weekly faculty discussion meeting to agree on current
emphasis and to resolve course, team, and individual
student issues.
Roleplaying Faculty Members. Depending on the
nature of the simulated scenario, one or more additional
faculty members provide in-role guidance, data, and
informal information as grist for the students’ work.
Typically, such a faculty member will meet with
student teams individually or in plenary sessions several
times during the course – for example, as a VP of
Marketing to provide the voice of the customer and to
review such deliverables as usage scenarios, user
interface mockups, and early prototypes. In some
courses, additional smaller roles, such as CEO, might
appear at few points to articulate company strategy and
to critique final student presentations. Having several
distinct roleplayers allows students to encounter and
deal with divergent opinions and, thus, to sharpen their
analysis and negotiation skills. These faculty members
also provide appropriate contextualized instruction and
suggest additional reading materials.
Team Coaches. Most of the courses emphasize
effective team work and high-quality team deliverables.
Team coaches assist teams in developing an effective
team process, help resolve team issues, mentor students
to use relevant materials and approaches effectively,
and review early drafts of student deliverables.
Coaching faculty, whose extensive industrial experience
makes them much more than teaching assistants,
typically meet with teams twice each week and have
frequent email and telephone follow-ups with
individuals as well as the team as a whole. While they
do not have primary grading responsibility, the coaches’
closeness to the teams enables them to provide accurate
input into the grading process regarding individual
performance. At the end of the semester, coaches also
host a team reflection session to solidify what was
learned, discuss team process, and critique the course
itself.
Subject Matter Experts. These faculty members or
visitors are available as “consultants” to provide just in
time tutorial instruction, answer questions about
technologies and methods students might choose to
explore in depth. In many courses, we encourage
students to choose areas they would like to go into in
greater depth, and when appropriate, we seek out and
make available experts, either other faculty members or
experienced colleagues in the community.
2.2 Teaming
Most student work is done in teams. Teamwork is fundamental to
the program for several reasons, most notably:
Virtually all real-world software projects are of a scope
that requires significant teamwork
Teamwork enables students to have the experience of
completing a realistic project and producing a full range
of authentic work products
Students are highly motivated by being members of a
high-performing team working on an intense project.
Students also do some individual work to ensure that each is
learning and contributing, to broaden their knowledge and to aid
in student assessment.
Teams are formed according to a number of criteria:
Pre-existing knowledge and skills of each team
member, gleaned from pre-admission interviews of each
student and a self-assessment questionnaire;
Balance, so that each member has some relative
strengths and weaknesses, providing the potential for
peer teaching;
Geographic location is also considered. Faculty
judgment determines if particular students are put on all
local, all remote, or hybrid teams.
Work schedule and style preferences are also
considered.
Teams are expected to self-organize to achieve the tasks that they
are assigned. They are generally encouraged to adopt the roles of
the Team Software Process [2], modifying them as appropriate.
In particular, teams are encouraged to add a “learning manager”
who coordinates team learning activities such producing an
explicit learning plan in addition to the work plan for each task,
dividing responsibility for optional learning materials, and
facilitating the team’s discussions of readings and other learning
resources.
The team’s coach assists the team in assigning roles, defining its
own processes, and executing those processes effectively with
appropriate monitoring. Such coaching tends to be Socratic;
however, more direct interventions may be necessary in response
specific team or interpersonal problems. The coach provides
feedback on team processes and, in some courses, on draft
deliverables.
2.3 Curricular Materials
Curricular materials are provided on a program website. Note
however, that this is not eLearning, per se; the materials are
supplementary to interaction with faculty. Typically, each course
is divided into several tasks, each lasting 1-4 weeks and yielding
authentic deliverables for evaluation. The website provides teams
with significant performance support for their tasks. In most
courses, each task is assigned via a simulated email from a
“company executive,” and follow-up emails convey additional
scenario materials providing grist for a team’s analyses. A plan of
attack provides a skeletal work plan to assist the students in
planning their work. Tips and traps provide expert heuristic
advice on aspects of the task, especially pointing out subtle
pitfalls which students should avoid. Readings and other learning
resources are indexed to aspects of the task to direct students to
material directly relevant to their contextualized learning needs
and to establish the relevance of all such material in practice.
Finally, a pre-submission checklist encourages students to self-
check all deliverables against faculty-determined grading criteria
before final submission.
2.4 Student Assessment
Although students work in teams, individual grades are assigned
at the end of each course. This can be challenging for faculty
members, but several mechanisms are employed to ensure that
weaker students do not “hide in teams” and that stronger students
receive credit for their higher performance.
Team Grades. The team’s grades for the various
deliverables are a starting point for assigning final
grades, and the team grade typically contributes about
80% of each student’s grade. (Note that an individual’s
grade can, thus, vary up to two letter grades from the
team’s grade; however, a range of one letter grade plus
or minus is typical.)
Individual Work. Components of team deliverables are
often attributable to individuals. Students are also
required to produce individual work at regular intervals
(for example, technology and methodology briefings);
furthermore, faculty may require individual work on an
ad hoc basis, when it seems necessary to assess a
particular student’s performance.
Peer Review. Student teams are also required to
complete a peer review at the conclusion of each
course. Each student uses a structured instrument to
assess the strengths and weaknesses of each team
member, including him- or herself. Students are not
penalized for accurately assessing personal weaknesses;
instead, these become targeted areas for self-
improvement.
Coach’s Input. Finally the coach, who has spent many
hours working with the team over the course of the
course, provides input. The supervising faculty member
and coach look for a confluence of indicators when
adjusting an individual’s grade relative to the team’s
grade.
At the end of the course, students complete an anonymous course
and instructor evaluation, which provides feedback to improve the
course.
2.5 Example: The Foundations of Software
Engineering
To better understand our pedagogical approach, consider the
Foundations of Software Engineering course taken by students in
both the Technical and Development Management Tracks. The
overall learning objective of Foundations is to establish a baseline
of principled software development skills and to prepare the
student for the remainder of the program. The student comes to
recognize individual strengths and weaknesses and establish
targets for improvement during the rest of the program. The
student also becomes familiar with our learn-by-doing pedagogy
and our philosophy of effective team-based work, as well as a
selection of more advanced elements from computer science and
software process. Students are held accountable for meeting
specifications and completing work as promised.
Foundations begins with an orientation, which has more of the
tone of a new employee orientation to our simulated company
context, rather than a traditional academic course introduction.
That said, however, significant emphasis is placed on how
students will learn, specific learning objectives, working with
faculty, working effectively in teams, et cetera. The students, who
have been formed into teams of three to four, are working in this
simulation for ND System Solutions, a small company which is
developing a tool for software project definition, effort estimation
using historical data, and effort tracking. Prior to when the
students “joined the company,” development of version one of the
tool was outsourced offshore (it really was), and the company was
not pleased with the resulting code or documentation; therefore
the student team has been brought onboard to develop a much
improved second release. Thus the students’ task is realistically
challenging in that they have to quickly understand and build on a
suboptimal base of code and documentation and to make strategic
decisions what to rework and what to leave alone.
The supervising faculty member plays the role of Vice President
of Engineering. Through interaction with this “VP,” students learn
to develop a range of standard requirements documents, a
software development approach, appropriate project metrics and
reporting mechanisms, design documentation, a test plan, and a
code release. A strong emphasis in this interaction is on balancing
agility and discipline appropriately to achieve the goals of the
project.
Student involvement in the project begins with a series of team
meetings with a faculty member playing the role of Vice
President of Marketing and Sales, serving as the voice of the
customer in this case. Students interact with the “VP” to elicit and
document functional requirements (with increasing formality as
the interaction progresses) and to agree on the design of a user
interface for the improved tool. Through this process, the students
receive situated instruction on the use of personas and scenarios
to drive the requirements process, the formalization of functional
requirements via use case modeling to produce a user
requirements document, and basic considerations of software
usability.
Each student team has a team coach who is an expert practitioner.
The coach has working sessions with the team, typically twice per
week, and helps the team to define its team and learning
processes, to plan its work, and to accomplish its goals
effectively. The coach’s role is not to serve as a de facto manager,
telling the team what to do, but rather to help the team to decide
its own direction and to move forward effectively; in many
situations, this is operationalized as Socratic questioning as the
team considers decisions [3]. As the team does its work, the coach
reviews initial drafts of key work products and, in collaboration
with the role-playing faculty, works to ensure that the team stays
generally on track. The coach also has the responsibility to
identify and address or escalate team-related issues and to provide
input into the grading process, in particular in the area of
individual contributions to team work.
Throughout the semester, students also attend a number of
faculty-led practice sessions that address general skills deficits we
have frequently seen, such as writing and presentation skills, use
of the Unified Modeling Language, use of a Java IDE, version
control, and automated testing. Such sessions combine small
amounts of faculty discussion with extensive hands-on practice by
the students.
The semester ends with a high-stakes formal presentation of the
system to the VP of Marketing, a project retrospective to discuss
lessons learned with the VP of Engineering, and a team reflection
session with the coach. There are no formal tests during the
course; students are graded on the work they produce, taking into
account both team and individual accomplishments.
In the remainder of the program, students study such things as
requirements, architecture, design, and construction in greater
depth in the context of developing a greatly enhanced third
release of a Web 2.0 project. The program culminates in a one-
semester practicum project in which students, supported by
faculty, transfer their knowledge and skills to a real-world, client-
sponsored project.
3. OUTCOMES
Through our teaching methods, coaching, and feedback, we strive
to provide students with the following:
Relevance. During the course of our program, students
are equipped with a broad range of knowledge and
skills directly relevant to their professional practice.
Principled Decision-Making. Students' decision-
making processes significantly improve, and they learn
principled decision-making frameworks and how to
instantiate such frameworks logically.
Teamwork. Students become adept at working
effectively in teams, perhaps the key skill in software
development of any scale.
Self-Directed Learning. This is essential in a field in
which some put the typical half-life of knowledge at
approximately two years. Our program requires students
to learn new things continuously in the course of
solving problems.
Depth and Application, Rather than Breadth. Through
a combination of team-oriented projects, industry
practicums, and individual student learning objectives,
different students will cover different topics in more or
less depth, focusing on those areas they most need or
want to gain mastery in.
In December 2006 we conducted a survey of all Carnegie Mellon
West alumni since 2002:
92% believe that their Carnegie Mellon West education
has given them a competitive advantage relative to their
professional peers
78% have seen salary increases greater than 5%, and 45%
(of all students) have seen salary increases greater than
20%
65% were promoted during the program or after
graduating.
Interestingly, when asked in the survey what they valued most about
the program, students tended to emphasize soft skills, such as
teamwork and effective communication, much more than technical
skills. Facility in such skills is highly desired by employers (and is
often sorely lacking in graduates of traditional programs at all
levels).
Comparison to
4. APPENDIX 1: FOUNDATIONAL
THEORY AND RESEARCH
The Carnegie Mellon West MS programs are Story-Centered
Curricula (SCCs) [4]. In addition to this work, other researchers
have addressed the creation of authentic, contextualized learning
experiences, see, e.g., [5,6,7,8]. Two lines of research stand out as
particularly relevant: One, Cognitive Apprenticeship [5],
suggests that problem solving skills can be taught in the context
of scaffolded problem solving by observation of modeling by
expert practitioners and by reflection on student experiences. The
second, Anchored Instruction [6], defines the characteristics of a
problem solving context that supports the acquisition of
transferable skills.
In the specific area of professional education, Story-Centered
Curricula are often compared to Problem-Based Learning [8] in
that PBL replaces conventional curricula, e.g., in medicine, with
team-based, student-directed learning in the context of authentic
cases. Note, however, that Story-Centered Curricula differ from
“classic” problem-based learning, in that:
students work within a single coherent framework for the
duration of the curriculum thus minimizing the need for
repeated “incidental” learning of case materials
the progression of tasks builds organically on earlier tasks (in
contrast to PBL in which a series of cases is organized
primarily by difficulty)
the student is expected to act (e.g., to implement a solution)
and sees the outcome of his or her actions (in contrast to
classic PBL in which the foci are diagnosis and perhaps
treatment planning, but the student does not get to actually
implement the treatment and see the result)
SCCs are designed to make the supporting resources --
reference materials such as books, articles, videos, access to
experts -- that the student is most likely to need readily
available with clear pointers, instead of requiring him or her
to interrupt problem solving, perhaps for an extended period,
to search for them. (PBL has a very strong emphasis on
developing self-directed learning/research strategies; while
SCCs emphasize this too, the primary emphasis is on
successful task performance.)
5. ACKNOWLEDGMENTS
Our thanks to Lynn Carter, Todd Sedano, and the rest of the
Carnegie Mellon West Software Engineering faculty, past and
present, for their energy and innovation that have made this
program a success.
6. REFERENCES
[1] Shaw, M. (editor). Software Engineering for the 21st
Century: A basis for rethinking the curriculum. Technical
Report CMU-ISRI-05-108, Carnegie Mellon University,
Institute for Software Research International, Pittsburgh, PA,
2005.
[2] Humphrey, W. Introduction to the Team Software Process.
Addison-Wesley, Reading, MA, 1999.
[3] Hmelo-Silver, C. E. and Barrows, H. S. Goals and Strategies
of a Problem-Based Learning Facilitator. Interdisciplinary
Journal of Problem-Based Learning 1, 1 (Spring 2006), 21-
39.
[4] Schank, R. C. Making Minds Less Well Education than Our
Own. Lawrence Erlbaum Associates, Mahwah, NJ, 2004.
[5] Brown, J. S., Collins, A., and Duguid, P. Situated Cognition
and the Culture of Learning. Educational Researcher
(January-February, 1989), 32 - 42.
[6] Cognition and Technology Group at Vanderbilt. The Jasper
series: A generative approach to mathematical thinking. In
K. Sheingold, L. G. Roberts, and S. M. Malcolm (Eds.), This
Year in Science Series 1991: Technology for Teaching and
Learning (pp. 108-140). Washington, DC: American
Association for the Advancement of Science, 1992.
[7] Lave, J., & Wenger, E. Situated learning: Legitimate
peripheral participation. Cambridge University Press, New
York, NY, 1991.
[8] Bransford, J. D., Brown, A. L., and Cocking, R. R. (Eds.).
How People Learn: Brain, Mind, Experience, and School.
National Academy Press, Washington, DC, 2000.
[9] Barrows, H. S. The Essentials of Problem-Based Learning.
Journal of Dental Education, 1998.
... En concreto se utilizará el método Scenario Centered Curriculum (Popkewitz, 1977;Schank, 2002) como estrategia de aprendizaje activo. Esta metodología se ha utilizado previamente con éxito, destacando por su impacto o cercanía al grupo de trabajo de la Carnegie Mellon (Koopman, et al., 2005;Bareiss & Griss, 2008) o en la Universitat Oberta La Salle (Higueras, 2014). ...
... Uno basado en el aprendizaje cognitivo (Terenzini, Pascarella & Blimling, 1996) y otro centrado en el método Socrático Interrogativo (Hintikka, 1993). El papel del profesor, que en SCC pasa a ser un mero mentor, en el primer método su trabajo se centra en mostrar modelos de trabajo similares a la problemática a resolver, apoyar a los alumnos reduciendo progresivamente dicho soporte y no deja de guiarlos en todo momento para generar una actitud de constante reflexión sobre el aprendizaje realizado y cómo este se puede llevar a otros contextos (Bareiss & Griss, 2008). En el caso del método socrático, el procedimiento de enseñanza se basa en la pregunta constante, de forma que se mantiene una conversación constante entre profesor y alumnos a base que estos respondan y saquen conclusiones de las preguntas de partida que el tutor realiza. ...
Article
Full-text available
This article presents the results and the degree of student satisfaction obtained in the usability testing of the Scenario Centered Curriculum (SCC) method, with a specific focus on the technological profile of each group of students. The method was incorporated into a Digital Marketing course which was taught in three Vocation Training Schools in Spain, Italy and France. The schools involved, together with seven other members, form part of a consortium created to promote the development of the Learning4Work Project (L4W), as part of the Erasmus+ program of the European Community. The aim of this project is to verify whether the active learning metidos applied to Vocational Training environments improve student motivation and performance and bring about significant improvement in the workplace. The preliminary results obtained indicate a need to adapt the contents to the specific professional area of each school in order to improve the results, as it appears that without a contextualization phase, students do not fully appreciate the potential advantages of the method.
... Contextualisation plays a major role in modern didactics as well as in computer science education. For this reason, several contextualised approaches have also been developed and implemented in computer science education, such as projects based on anchored instruction [2] or cognitive apprenticeship [15] [31]. So far, there seems to be a lack of comprehensive teaching concepts in which contextualisation is anchored systematically. ...
... We established a set of criteria in an inductive way by analysing basic documents and descriptions of CSiC and LFCS. Afterwards, we selected which criteria would be necessary for the prospective model: To embed the model into a theoretical basis, it is important to examine the respective competency models (3) and the theoretical principles of both approaches (2). Another central aspect is the contextualisation itself (5), which means how to find contexts and transfer them into teaching units. ...
Conference Paper
Full-text available
Vocational and general computer science education in Germany use different teaching approaches in some areas to educate their students. Despite all differences of the school types and their goals of education , there are concepts and ideas which have separately developed, but cover similar pedagogical, basic concepts. The concept of " Learning Field-orientated Computer Science Education " (LFCS – " Lernfeld-konzept ") in vocational computer science education and " Computer Science in Context " (CSiC – " Informatik im Kontext ") in secondary education are such related concepts, as both follow the idea of teaching computer science in an activity-orientated and multidimensional way by developing suitable contexts and learning situations. In this paper we first explore the different aspects of both concepts. Afterwards we compare the similarities and differences of the concepts of " Learning Field-orientated Computer Science Education " and " Computer Science in Context ". As result of this comparison, we derive requirements for a general model of these situated and activity-orientated teaching concepts in computer science education.
... It uses real scenarios as a teaching tool in delivering a particular subject. CM encourages student-centred learning whereby students themselves discover the knowledge within the subject through self-preparation and group discussion (Bareiss & Griss, 2008). Typically, the cases will be more relevant and engaging if they are based on real events, experiences and situations (Jianmin & Jian, 2010). ...
Article
Full-text available
The Case Method (CM) has long been used effectively in Social Science education. Its potential use in Applied Science such as Software Engineering (SE) however has yet to be further explored. SE is an engineering discipline that concerns the principles, methods and tools used throughout the software development lifecycle. In CM, subjects are presented to students by means of real cases whereby students themselves either individually or in group discussions work through the problems and issues presented in the cases. The CM approach is deemed necessary for SE education in order to expose students to real scenarios that challenge them to develop the appropriate skills to deal with practical problems. As a largely theoretical subject, SE students could understand more about the practical application of SE concepts and ideas via such active learning activities. This paper presents a survey conducted on two sets of students who were exposed to CM in learning SE. Besides confirming the acceptance of CM among SE students, the surveys aimed to discover the contributing factors and elements that influence the efficacy of the method. The participants consisted of 64 undergraduates that comprised local full-time and executive students. The survey was performed in two semesters through group interviews. Data from the survey were analysed qualitatively using content analysis. The results showed that there are four factors that are important to teaching SE using CM, namely Environment, Case, Instructor, and Student. Each of these factors has certain criteria and characteristics that suggest how CM can be successfully used in teaching and learning SE. These findings can be used by SE educators to more effectively plan the use of CM as one possible teaching method in SE.
... The cases capture real scenarios in order to get real experience and situations that happen in the real world, which are more relevant and engaging (Jianmin & Jian, 2010). In addition, CM also promotes student-centered learning where students discover the knowledge of the subject themselves through self preparation and group discussion (Bareiss & Griss, 2008). CM has been an effective pedagogy tool in Social Science education such as Law and Business. ...
Article
Full-text available
Case Method (CM) is a teaching technique that uses real cases as a tool for delivering a particular subject. Software Engineering (SE) is a discipline that concerns the principles, methods and tools for developing and improving software. SE education therefore tends to be too theoretical. To impose realism where the students can be exposed to real scenarios and learn to apply those theories through discovery, CM is seen as necessary for SE education. This paper presents a survey conducted to a set of students who employed CM in learning SE. The objective of the survey was to assess the degree of acceptance among SE students on the usage of CM. The participants were Undergraduates and Masters that comprise local, international and matured students. The data were analysed quantitatively using descriptive statistics and qualitatively through content analysis. The results indicate that CM can be useful for SE education. The participants accepted CM because it improves the understanding of subject matter, enhances interpersonal skills and provides meaningful learning experience. Nonetheless, CM is seen as effective only when certain conditions are met. The results can be used by SE educators to enhance teaching and learning in future. (C) 2013 The Authors. Published by Elsevier Ltd.
... [20] reports on project based learning and how scaffolding may be used within the project management body of knowledge, while [21] focuses on a global software development project where extended teams of students distributed across two to three countries experienced the roles of developers, auditors and testers. Carnegie Mellon's West Coast Campus offers a Software Engineering course [22] which in many aspects seems to be the closest fit to the course lectured at Narvik University College. ...
Article
Full-text available
This paper reports on an experimental approach on teaching Software Engineering (SE) and the results recorded during two years at Narvik University College. The course described in this paper uses experimental pedagogy and problem-based learning to give the students experience in close to real-life work environment, demonstrating social and problem complexity of Requirements Engineering (RE) and Software Development (SD). The course uses social simulations rather than software simulations, making the students learn through interactions with real people and confronted with the complexity of social relationships.
... The transition from common, procedural problem--solving approaches to effectively deriving recursive relationships and proving them by mathematical induction is a difficult one for most students of computer science. [6] Furthermore, people tend to better retain and master concepts that they take through a process of discovery and verification to a complete solution-preferably via working implementations [7]. The examples in this article serve as suitable pedagogical aids in strengthening the mastery of key ways of thinking in the minds of developing computer scientists. ...
Conference Paper
Full-text available
One of the primary aims of a college education is to foster students' ability to think critically and analytically. [1] How does this apply to students of computer science? Many computer science students struggle to master the elemental techniques of recursion, inferring qualitative patterns from data, and mathematical induction over countably infinite sets. In this paper we illustrate all of the above while developing pedagogically rich solutions to a common example used in typical CS curricula: enumerating the rational numbers. We go deeper than typical curricula to help students think like computer scientists.
Chapter
It is common knowledge among researchers in the field that teaching formal methods can prove a challenging task. This paper reports on the approach adopted for a Master’s Degree course at Politecnico di Milano, Italy, as an attempt to reverse this trend by introducing collaborative learning activities. Students put concepts learned during theoretical lectures into practice through a hands-on group assignment. Each group develops the formal model of a Cyber-Physical System through the Uppaal tool, starting from a set of requirements provided by the instructor. After delivering the assignment, we invite students to fill an evaluation survey whose results suggest a very high satisfaction level towards the hybrid theoretical-practical approach of the course.
Conference Paper
Full-text available
Providing effective support and feedback to students is critical to ensure engagement and retention within Computer Science courses. Individual student learning experiences and challenges vary from student to student, and effective intervention is further hampered in a large scale context. In addition, there are a plethora of possible interventions for any given learning challenge, and it is difficult for an educator to establish which intervention is the most effective or quickest to implement. To this, we report on the outcomes of a systematic literature review focused on interventions in Computer Science classrooms. To provide an understanding of the types of interventions possible in a Computer Science course, we propose a taxonomy of intervention types with low mutual information and classify the 129 selected papers based on it. We identify the most effective interventions as presented in their respective studies and discuss gaps in the study of several intervention types. We then present an overview of two of the most popular types of interventions in the published literature: those focused on introducing technical cooperations within courses, and those focused on changing the way the course content is presented to students. To understand how interventions have evolved over time, we present the evolution of sub-classes of interventions over the years.
Conference Paper
A key challenge for computer science educators worldwide is providing effective feedback and support to students, to ensure they are engaged with the course. This includes online feedback on discussion forums as well as feedback on programming assignments. Due to the significant problems of scale that need to be addressed, effective lecturer intervention is difficult, and at the same time the effect of intervention in online discussion forums is challenging to measure accurately. The same problem occurs when marking programming assignments, where detailed, in-depth feedback is often replaced with output from failed testcases, which the students sometimes proceed to address without giving thought to the quality of their overall solutions. The working group will (1) identify and survey existing literature on quantifying lecturer intervention in online discussion forums and on assignment feedback, (2) identify existing datasets that could be used to study intervention in depth, (3) identify key data characteristics and associated tools that can be used to effectively process the data, and (4) identify and outline key recommendations for effective lecturer intervention. The outcome of this working group will be a report but the working group will also bring together researchers focused on understanding effective lecturer intervention, thus contributing to the growth of the community.
Article
Full-text available
This paper describes an analysis of facilitation of a student-centered problem-based learning group. The focus of this analysis was to understand the goals and strategies of an expert facilitator in support of collaborative learning. This was accomplished through interaction analysis using video data and stimulated recall to examine two PBL group meetings. In this paper, we examine how specific strategies were used to support the PBL goals of helping students construct causal explanations, reason effectively, and become self-directed learners while maintaining a student-centered learning process. Being able to articulate these strategies is an important step in helping others learn the art of PBL facilitation.
Book
In the author's words: "This book is an honest attempt to understand what it means to be educated in today's world." His argument is this: No matter how important science and technology seem to industry or government or indeed to the daily life of people, as a society we believe that those educated in literature, history, and other humanities are in some way better informed, more knowing, and somehow more worthy of the descriptor "well educated." This 19th-century conception of the educated mind weighs heavily on our notions on how we educate our young. When we focus on intellectual and scholarly issues in high school as opposed to issues, such as communications, basic psychology, or child raising, we are continuing to rely on outdated notions of the educated mind that come from elitist notions of who is to be educated and what that means. To accommodate the realities of today's world it is necessary to change these elitist notions. We need to rethink what it means to be educated and begin to focus on a new conception of the very idea of education. Students need to learn how to think, not how to accomplish tasks, such as passing standardized tests and reciting rote facts. In this engaging book, Roger C. Schank sets forth the premises of his argument, cites its foundations in the Great Books themselves, and illustrates it with examples from an experimental curriculum that has been used in graduate schools and with K-12 students. Making Minds Less Well Educated Than Our Own is essential reading for scholars and students in the learning sciences, instructional design, curriculum theory and planning, educational policy, school reform, philosophy of education, higher education, and anyone interested in what it means to be educated in today's world. © 2004 by Lawrence Erlbaum Associates, Inc. All rights reserved.
Article
Many teaching practices implicitly assume that conceptual knowledge can be abstracted from the situations in which it is learned and used. This article argues that this assumption inevitably limits the effectiveness of such practices. Drawing on recent research into cognition as it is manifest in everyday activity, the authors argue that knowledge is situated, being in part a product of the activity, context, and culture in which it is developed and used. They discuss how this view of knowledge affects our understanding of learning, and they note that conventional schooling too often ignores the influence of school culture on what is learned in school. As an alternative to conventional practices, they propose cognitive apprenticeship (Collins, Brown, & Newman, in press), which honors the situated nature of knowledge. They examine two examples of mathematics instruction that exhibit certain key features of this approach to teaching.
Article
Incluye índice Incluye bibliografía Obra que detalla métodos para guiar la formación de equipos de desarrollo de software, motivar su trabajo, y aumentar su productividad.
Software Engineering for the 21st Century: A basis for rethinking the curriculum
  • M Shaw
Shaw, M. (editor). Software Engineering for the 21st Century: A basis for rethinking the curriculum. Technical Report CMU-ISRI-05-108, Carnegie Mellon University, Institute for Software Research International, Pittsburgh, PA, 2005.