Ieeeargencon2020 - 136-Teaching Software Engineering An Active Learning Approach

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Teaching software engineering: an active learning

experience
Sergio Villagra Guido De Benedetti Tomás Bruno
Computing Department Computing Department Computing Department
School of Engineering, University of School of Engineering, University of School of Engineering, University of
Buenos Aires Buenos Aires Buenos Aires
Buenos Aires, Argentina Buenos Aires, Argentina Buenos Aires, Argentina
guvillagr@fi.uba.ar gdebenedetti@fi.uba.ar tomas.bruno.o@gmail.com

Leonardo Fernández Nicolás Outeda


Computing Department Computing Department
School of Engineering, University of School of Engineering, University of
Buenos Aires Buenos Aires
Buenos Aires, Argentina Buenos Aires, Argentina
leofernandez777@gmail.com nmouteda@gmail.com

Abstract—Teaching has changed; students, too. Software and Software Configuration Management KA are now
engineering is always evolving. In this paper, the authors present formally presented in the first programming courses. In the old
their experience teaching an introductory course to software curriculum, those topics were covered in advanced, more
engineering applying active learning, flipped classroom, focused SE courses.
gamification, and WAC (Writing Across the Curriculum) at the
University of Buenos Aires' School of Engineering. The old Requirements Engineering and Software Design
courses were replaced by two new courses -namely Methods
Keywords— Software engineering, education, active learning, and Models in Software Engineering I and II, respectively- in
flipped classroom, gamification, writing across the curriculum which all SE KA are covered, but with varying intensity. In
the first one, the focus is on discovering, specifying, and
I. INTRODUCTION modeling requirements, prototyping, and user experience
Since 1979, the University of Buenos Aires' School of design, software design, and coding. In the second course, the
Engineering offers a four-and-a-half-year program in systems focus is less on requirements and more on architecture design,
analysis which, despite its name, is oriented to software testing, deployment, software evolution, and process
engineering (SE) [1]. discipline.
The curriculum, which was updated in 1986, included In late 2014, we were appointed by the Computing
courses on calculus, algebra, computer design fundamentals, Department as instructors of Methods and Models in Software
programming, requirements analysis, software design, Engineering I. We delivered it for the first time in the first
database design, operations research, project management, semester of 2015. Previously, we had been teaching a software
economics, and software engineering management. economics course for almost ten years, applying successfully
an approach based on a blend of strategies: active learning,
In early 2008 it was clear that this curriculum, which flipped classroom, writing across the curriculum, and project-
worked pretty well for several years, needed a change. Faculty based teamwork. We decided to apply the same approach to
and graduates recognized that contents had to be updated, and the new course. At the time of writing this article, we have
also the strategy in which topics were presented to students. taught the course nine times and more than 270 students have
Like other similar programs, SE knowledge areas (KA) [2] attended.
were presented in a sequential, siloed way: first, several
programming courses; second, a requirements analysis In this paper, we describe our experience teaching the
course; later, design and software management courses. This course with this approach, the results we obtained, and our
approach created at least two problems: first, students didn't reflections about it.
get a general idea of how different SE disciplines and practices
work together until late in the program; second, coordination II. RELATED WORKS
of contents between instructor teams are complex and, Van Vliet [3] identifies several traps to avoid in the design
usually, topics inevitably overlap. and delivery of an introductory course to SE. Schilling and
Sebern [4] describe an experience applying active learning in
The Curriculum Advisory Committee, integrated by
a SE course. Páez [5] describes the adoption of a flipped-
representatives of faculty, graduates, and students, whose
classroom approach in an introductory course to SE. Ivanova,
main responsibility is keeping the program updated, started
Kozov and Zlatarov [6] describe an experience applying
the design of a new curriculum, which was implemented in
gamification in several SE related courses.
2014, after several years of work and talks between parties to
reach a consensus. III. TEACHING APPROACH
Besides refreshing content and creating new mandatory As mentioned before, our course covers several SE KA
and elective courses, the new program presents SE KA more related topics, including a general introduction to systems
iteratively and incrementally. For instance, Software Testing theory and software engineering, requirements engineering,

978-1-7281-5957-7 / 20 / $ 31.00 © 2020 IEEE


user experience and software architecture (see Fig.1). It also As we describe in the next section, our lectures are video-
introduces students to more complex topics, like peopleware, recorded and kept as short as possible, which leaves us time
software methods, software processes and software for more engaging, hands-on activities in the classroom, like
engineering management, which are reviewed in detail in the debates about well-known cases in the industry (for example,
next course. Around 50% of the course time is allocated to the Ariane V software failure [8]), games (like the Spec
requirements, 20% percent to software architecture and Writing Game [9] or our adaptation of the Paper Tower
design, and the remaining 30% to the other topics. Competition [10]), domain modeling sessions, user story and
prototyping workshops, product demos and competitions
using online tools like Kahoot! [11]. And instead of the
standard mid-term and final written exams, we apply a
nonconventional evaluation approach in which students are
assessed according to: a) their participation in project-based
teamwork; b) how they individually solve quizzes, perform
modeling and specification activities, and write small essays;
c) how many points they get in the gamification scheme we
propose, in which they can get points for participation in
hands-on activities in the classroom, on-time delivery of
homework, etc; and, finally d) assessment by the instructors
of several items, like teamwork, participation in class,
academic integrity, contribution to classroom climate, etc.
This approach, in addition to giving us more frequent
feedback and a better perspective of performance than a
written exam, also allows us to keep students engaged
throughout the whole semester.
B. Flipped Classroom
Fig. 1. Course Topics As mentioned in the previous section, there are no classical
lectures in our course. This is another of our pillars, called
Besides presenting some classic concepts and introducing flipped classroom [12], a learning approach in which
the works of very well-known authors, we emphasize the idea classroom activities are organized around practical cases and
that software is best developed incrementally and iteratively, group discussions instead of lectures, which are video
using agile methods and practices. Students have the recorded to be watched by the students at home, before going
opportunity to develop a software product applying this to class. Currently, we have a total of 14 recorded lectures, for
approach, under our management supervision. a total of about six hours. To engage students, videos are kept
short (not always successfully) and edited with Edpuzzle [13],
The course lasts for sixteen weeks. Classes take place a software tool that allows us to include interactive quizzes in
twice a week and last for about three hours. There are no selected sections of the lecture and also track if they really
lectures and the activities in the classroom are generally watch it.
practice-oriented: workshops, modeling sessions, interviews,
team meetings, peer reviews, and the like. Besides, students C. Writing Across the Curriculum
are expected to spend about six hours a week on activities Besides video-recorded lectures and hands-on activities,
outside the classroom, like reading, solving quizzes and students have to acquire knowledge through reading. And
working in teams. there is a lot to read in an introductory course like this one.
As noted by Páez [5], keeping students engaged is a Writing Across the Curriculum, or WAC, [14] is a
challenge in these modern days. Paying attention is difficult teaching movement that wants to encourage students to write
when smartphones are at hand. A classic thirty- or forty- to understand, no matter the educational level or professional
minutes long slide presentation is out of the discussion. As we discipline. Writing an essay or a small piece of text
mentioned earlier, we have found that a blend of different summarizing a book or an article has a profound influence on
techniques and strategies can make a difference. We apply a the cognitive process. Students don't just read what they are
teaching approach based on what we call four pillars: active asked for: they have to look for the main ideas and identify the
learning, flipped classroom, writing across the curriculum and potential connections with other authors; in summary, they
project teamwork. In the following sections, we will describe have to truly understand.
it in detail and how we put it into practice.
By applying this approach, we pursue two goals: first,
A. Active Learning allow students to communicate in writing, a critical skill for
Active learning [7] is a general approach, actually every professional which we feel is not very well covered in
transversal to all the teaching activities we perform. The idea the curriculum; and second, to encourage students to read
behind this is to change the usual behavior of the students in some of the software engineering classics they should know.
the classroom, in which lecturers speak and students listen To complete their written assignments, which include short
passively, taking notes. Active learning wants students to essays and quizzes, students have to read papers by Frederick
become active subjects of the teaching/learning process Brooks [15], Barry Boehm [16], Martin Fowler [17], David
employing different tools and techniques. Parnas [18] and excerpts of books by Craig Larman [19], Karl
Weigers [20] and Mike Cohn [21].
We put this approach into practice by applying several
strategies. First of all, there are no lectures and, also, no tests.
D. Project-based teamwork course. Students can take this application as the basis for
Finally, our fourth pillar is project-based teamwork, which developing their own software, cloning the repository.
in our case involves the conceptualization, design and E. A controlled, near real-life experience
development of a small software application with minimum
features to be usable (MVP, or minimum viable product). The Students face various challenges when coming to our
goal of this endeavor is to give students a full lifecycle course. Their previous experience is limited to developing
software development experience in which they can apply in small programs, in small groups, and with clear, written
practice the methods and techniques described in the lectures requirements. Suddenly, they have to develop a software
and in the readings. To be as close to real-life as possible, there product in which several groups are involved, requirements
is no description of the problem to solve; instead, there is a have to be discovered and new methods and techniques have
simple document describing the general situation of the to be applied.
fictitious organization requiring the product. Requirements As Van Vliet [3] points out, this could be too much for
have to be progressively discovered by interviewing potential students if it is not properly managed. That's the reason why
users, played by some of the instructors. There are a script and we have instructors covering more senior roles. The program
a baseline definition of requirements for the internal manager not only guides students but also gets actively
consumption of the teaching staff. Students apply an agile involved in the planning and the direction of the program. The
software development process, loosely based on Scrum, with product owner, on the other hand, guides teams in the
a previous product discovery stage inspired by the Design requirements discovery and analysis activities, unifying the
Thinking approach, like the one proposed by Hehn, divergent views and opinions of the different users involved,
Uebernickel, and Méndez Fernández [22]. helping them to create the product backlog and keep it updated
To run the project in the most orderly way possible, throughout the entire development lifecycle. In this way,
students can have almost real-life experience in a controlled
students are organized in squads and tribes, in a way very
loosely inspired by how Spotify works [23]. Each squad, and managed environment.
composed of between 3 to 5 members, is in charge of one F. Continuous Improvement
subsystem or module of the product; three squads form a tribe, We have delivered this course nine times since 2015 and
which is in charge of the entire product. Squads work together more than 270 students have taken it by the time of writing.
as a tribe to discover the requirements, establish the product We always look for improvements and as a result of students'
vision, and create an initial product backlog. Then, each squad feedback and lessons learned, we have progressively made
design, develop, test and integrate its own subsystem. changes to our approach. New readings, lectures and practical
As this course is more focused on technical knowledge activities have been included and others have been replaced.
areas, the management function is covered by the teaching New productivity tools have been introduced. We have tried
staff. One of the instructors covers the program manager role, different strategies and tactics for the development project.
who guides students and organizes project activities, allowing Being part-time instructors and with several decades of
students to concentrate more on technical issues and not on collective experience in the software industry, we also make a
management-related aspects. There is also a product owner big effort to show students how things work in real-life
role, covered by another instructor, whose mission is to help projects and organizations.
teams establish the vision and the product backlog. We have also made several changes to how we manage
With the help of the product owner and the program administrative work. Thanks to tools like Google Classroom,
manager, students organize the work using a release plan, a which we use to assign and grade students activities, Google
product backlog and an iteration backlog. Under their Forms, which we use to create quizzes, Google Drive, in
supervision, teams conduct user interviews, impact mapping which we publish the course material, and Slack, which we
sessions, requirements workshops, team meetings, use to communicate with our students instead of email, our
prototyping sessions, user story mapping sessions and product lives are a little easier.
demos. They also organize and plan design, programming,
testing and integration activities. After each iteration, they run
a retrospective, identifying lessons learned and possible IV. RESULTS
improvements to the entire development process.
At the end of each semester, we survey students to get
An important issue for students is the decision of which quantitative results and run a retrospective to get more
languages, tools and frameworks should be used to develop qualitative feedback. In the last five years, 230 students have
the product. We don't have any preferences, but we try to participated. Results show a high degree of acceptance of the
guide them to make the best choice possible according to their course, with an average rating of 4.01 on a scale from 1 (Bad)
previous knowledge and the complexity of the task. In recent to 5 (Excellent), and of the teaching approach, which has an
years, they have mostly chosen React JS to develop the average of 4.17 on the same scale. A total of 78% of
frontend; Spring Boot to develop the microservice-based respondents found the course excellent or very good (Fig.2)
backend; Cardboard for user story mapping; Balsamiq for user and 80% rated the teaching approach as excellent or very good
interface prototyping; Github for code management; (Fig.3).
Cucumber for automated testing; Jira for user stories, product
backlog, and task management; and Heroku for deploying
software in the Cloud.
Recently, we have developed a simple web application as
an example of how to use some of these tools and how to apply
in practice the software architecture concepts discussed in the
Not surprisingly, we found a high correlation between the
rating that students give to the course and their satisfaction
with the teaching approach, as Table I shows.
A similar trend was identified when we compared other
dimensions. Those who evaluated the course as very good or
excellent, also found very good or excellent the instructors'
knowledge and attitude (77%), the video-recorded lectures
(69%), homework (65%), and project-based teamwork (55%).
Retrospectives provide some anecdotal evidence about
additional aspects of the course, which we always consider
while identifying improvement opportunities. The comments
have always been very positive, praising the general approach,
contents, and instructors' commitment and attitude towards
Fig. 2. Students' evaluation of the course students. There is also a place for some criticism. For instance,
one of our first students judged that the activities performed in
the classroom were recreational. Another felt too much
pressure from instructors to keep homework up to date.
Occasionally, a few students (about 7%) have complained
about specific situations, like delays in instructors' feedback,
some boring activities, an unbalanced workload, and finishing
some classes later than expected. In the first semester of 2020,
one of the two tribes suggested having some texts in Spanish
and producing even shorter lecture videos.

TABLE I. COURSE EVALUATION VERSUS TEACHING APPROACH

Course Evaluation
Bad Regular Good Very Good Excellent
Fig. 3. Students' evaluation of the teaching approach
Bad 1% 2% 0% 0% 0%
Teaching Approach

Additionally, we also ask students to rate, on the same 1 to Regular 1% 1% 1% 1% 0%


5 scale, other dimensions of the course, like recorded lectures,
individual exercises and quizzes, project team-work, and Good 0% 0% 3% 7% 2%
workload. The results look also good (Fig. 4). Very
0% 0% 5% 19% 7%
Good
Excellent 0% 0% 4% 19% 25%

We also have some evidence of problems in the social


dimension. In almost all the semesters, at least one of the
teams delivers low-quality artifacts and shows poor
performance. We have found that the social tension inside the
team and the lack of commitment of members are the major
reasons. We also suppose that the 3.72 score in the project
dimension could be the result of these internal tensions, at
least partially. Of course, when we detect any team with this
type of issue, we immediately help to get the project back on
track as soon as possible.
A. Continuous evaluation
Ongoing assessment of students is a complex task if you
are not well organized or if the group is too big. As mentioned
before, it is very important to have in place the right set of
productivity tools to optimize instructor activities like
Fig. 4. Students' evaluation of other aspects of the course communicating with students, creating quizzes, and assigning
and grading homework. Also, to keep students engaged and to
Workload has an average of 3.71, with a total of 13% of give feedback on a one-on-one basis, we have found that one
respondents indicating it was excessive or fairly excessive, for instructor per every five students is an excellent ratio. More
24% it was good, and 63% thought it was adequate or more students per instructor made feedback less frequent and delay
than adequate. Project-based teamwork was rated 3.72, with the learning loop.
only 1% of students declaring that it didn't help the course
objectives. Quizzes, essays and other individual homework B. COVID-19 Pandemic
were rated 4.03, with only one student declaring that they were A few weeks before the beginning of the first semester of
really bad and 16 students (7%) stating that they were not very 2020, the OMS declared the COVID-19 pandemic. University
appropriate. authorities suspended face-to-face classes and a contingency
plan was quickly activated to prepare faculty, staff and
technical infrastructure to be ready to deliver the courses to educate new generations of software engineering
online. Finally, the semester started in late April, four weeks professionals.
later than originally planned.
ACKNOWLEDGMENTS
Fortunately, this situation wasn't a big challenge for us due
to how our course is organized. All the material and videos are We would like to thank Nicolás Páez, instructor of
published on the web, and our administrative platform is Methods and Models in Software Engineering II, who insisted
online too. It was just a matter of moving to Zoom the we write down our experience teaching this course.
activities we usually perform in the classroom. The transition
felt natural for us and the students; moreover, we think that
some of the activities notably improved because of being now REFERENCES
online. Sharing models, user stories, prototypes, code and
demos on the web was much better than trying to do it in the [1] Daffra, Ítalo. Historia de la Industria Informática Argentina. C√°mara
classroom, where a reliable wifi connection is not always de Empresas de Software y Servicios Informáticos-CESSI, 2014.
available and the projection of the laptop screen is usually on [2] Bourque, Pierre, and Richard E. Fairley. Guide to the software
a small surface, difficult to see. Students always looked engineering body of knowledge (SWEBOK (R)): Version 3.0. IEEE
engaged and paid attention. Computer Society Press, 2014.
[3] Van Vliet, H. "Reflections on software engineering education." IEEE
V. CONCLUSIONS AND FUTURE WORKS Software 23.3 (2006): 55-61.
[4] Schilling Jr, Walter W., and Mark J. Sebern. "Teaching software
We are very satisfied with the results we have consistently engineering: An active learning approach." The ASEE Computers in
got in all these years. Of course, there is always room for Education (CoED) Journal 4.1 (2013): 13.
improvement. As in software development, there are new [5] Paez, Nicolás Martín. "A flipped classroom experience teaching
iterations in which you could try things differently. We still software engineering." 2017 IEEE/ACM 1st International Workshop
have to improve some of the videos of the classes, decide if on Software Engineering Curricula for Millennials (SECM). IEEE,
we need to put less focus on some topics and more on others, 2017.
complete the application example with more features and [6] Ivanova, Galina, Vasil Kozov, and P. Zlatarov. "Gamification in
Software Engineering Education." 2019 42nd International
additional artifacts, evolve some of the exercises and decide if Convention on Information and Communication Technology,
we should provide students with a more prescriptive Electronics and Microelectronics (MIPRO). IEEE, 2019.
development, testing and management toolset. [7] Bonwell, Charles C., and James A. Eison. Active Learning: Creating
Excitement in the Classroom. 1991 ASHE-ERIC Higher Education
The COVID-19 pandemic has had a huge impact on Reports. ERIC Clearinghouse on Higher Education, The George
academic activities around the world. Fortunately, our course Washington University, One Dupont Circle, Suite 630, Washington,
was ready to be delivered totally or partially on the web, and DC 20036-1183, 1991.
we did it successfully. Moreover, our initial evaluation is that [8] Dowson, Mark. "The Ariane 5 software failure." ACM SIGSOFT
some team activities, like modeling, prototyping, artifacts Software Engineering Notes 22.2 (1997): 84.
reviews, etc. have gone much better online than in the [9] Bozzuto, B., 2010. Spec Writing Game - Solutionsiq. [online]
classroom. While it is difficult to determine, by the time of SolutionsIQ. Available at:
<https://web.archive.org/web/20170705152317/http://www.solutionsi
writing, which is going to happen to education after the q.com/spec-writing-game/> [Accessed 4 September 2020].
COVID-19 pandemic, we are sure that we will try to
[10] Wangenheim, C., 2009. Activities For Teaching Project Management.
influence, as much as we can, that our course be delivered as [online] Inf.ufsc.br. Available at:
a mix of online and onsite activities, limiting the physical <http://www.inf.ufsc.br/~c.wangenheim/subpaginas/old/ProjectMana
presence of students and instructors only when face to face is gementTeaching.html> [Accessed 4 September 2020].
irreplaceable. This is another change that we would like to [11] Kahoot.com. 2020. [online] Available at: <https://kahoot.com/>
drive. [Accessed 4 September 2020].
[12] Tucker, Bill. "The flipped classroom." Education next 12.1 (2012):
Besides these ideas, we realize that we are helping to close 82-83.
the gap between academia and industry, and we would like to [13] Edpuzzle. 2020. [online] Available at <https://edpuzzle.com/>
keep that trend. We perfectly understand that these two worlds [Accessed 31 August 2020]
are not the same and universities are not the place where future [14] Carlino, Paula. Escribir, leer, y aprender en la universidad. Una
workers are instructed in the specific tools and methodologies introducción a la alfabetización académica. Fondo de cultura
that organizations require. Anyway, some balance is needed. económica, 2005.
We feel that today we are providing students with knowledge [15] Brooks Jr, Frederick P. "No Silver Bullet: Essence and Accidents of
Software Engineering. Computer." IEEE Computer Society,
and abilities that they can readily apply to real-life situations, Washington, DC 10 (1987).
under the supervision of more senior professionals. The
[16] Boehm, Barry W. "A spiral model of software development and
situation twenty years ago was completely different. Now, enhancement." Computer 21.5 (1988): 61-72.
after finishing our course, the students have some near real- [17] Fowler, M., 2005. The New Methodology. [online] martinfowler.com.
life experience in requirements discovery and analysis Available at:
methods, user stories, software architecture design, test <https://martinfowler.com/articles/newMethodology.html> [Accessed
automation and iterative development. They also have used 4 September 2020].
some of the most popular and public-domain development, [18] Parnas, David L. "On the criteria to be used in decomposing systems
testing and deployment toolchains. All these items, along with into modules." Pioneers and Their Contributions to Software
Engineering. Springer, Berlin, Heidelberg, 1972. 479-498.
a solid theoretical foundation, contribute to preparing them to
[19] Larman, Craig. Applying UML and patterns: an introduction to
be ready to work in a fast-paced, knowledge-intensive object-oriented analysis and design and iterative development.
industry, so important for a developing country like the one in Pearson Education India, 2012.
which we live [24]. That is our ongoing commitment: helping [20] Weigers, Karl E. "Software requirements, 2nd." Redmond, Wash.:
Microsoft Press, xii (2003).
[21] Cohn, Mike. User stories applied: For agile software development. [23] Barska, Emilia. 2017. Spotify Engineering Model with Squads,
Addison-Wesley Professional, 2004. Tribes, Chapters and Guilds. [online] <https://www.growly.io/spotify-
[22] Hehn, Jennifer, Falk Uebernickel, and Daniel Mendez Fernandez. engineering-model-with-squads-tribes-chapters-and-guilds/>
"DT4RE: design thinking for requirements engineering: a tutorial on [Accessed 3 September 2020].
human-centered and structured requirements elicitation." 2018 IEEE [24] Ammachchi, N., 2013. Argentina's software industry is on the rise.
26th International Requirements Engineering Conference (RE). IEEE, [online] Available at: <https://nearshoreamericas.com/argentinas-
2018. software-industry-is-on-the-rise/> [Accessed 4 September 2020].
.

You might also like