A Toolkit for Pedagogical Innovation in Software Engineering

I was asked to share some of the pedagogical innovations from two books I recommended once during a talk: Pedagogical Patterns and Training from the Back of the Room. In this post I will focus on Pedagogical Patterns, and leave Training from the Back of the Room for my next post. I will provide an overview of the book and share the insights that I have put in practice. I hope you will be tempted to read them and apply some of these ideas.

Pedagogical Patterns, Advice for Educators, is a collection edited by Joe Bergin with the help of a board of editors, including Jutta Eckstein and Helen Sharp, and the result of the collaborative work of many authors. The book is applicable beyond software engineering, but most of the examples deal with computer software issues. One of the things that resonated with me the most while reading this book is the loving warmth that the writer/teacher’s voice conveys for the work of teaching, love of both students and the experience of teaching itself.
The book is organised as a pattern catalog, following the Alexandrian format, and also grouped according to their main theme (active learning, feedback, experiential learning, different perspectives). Here are some of the patterns that have impacted me the most:

* Abstraction Gravity — Fron High to Low: Introduce concepts that require understanding on two levels of abstraction at the higher level of abstraction and then at the lower level. We apply this pattern in several forms in our first programming course at UNTREF. First, we apply it in the context of Meyer’s Inverted Curriculum, so that we focus first on understanding and using objects, and then we move on to implementing them. Also, we go from a very abstract use of Java objects using a dynamic interpreter to a more static compiled environment as the course progresses. Some of the issues in this approach are making sure that the link between the two abstraction levels is clear, and that more than one example is described.

* Active Student: Keep students active and engaged in and outside the classroom to make it more likely that they will learn. This means shifting some activities from listening and reading to speaking, writing, solving problems and interacting. The Different Approaches related pattern promotes organising activities with varied focus among different sensory modalities: visual, auditory and kinesthesia, that cater to different types of people. We find that active students are more likely to participate during the course, and that is why we make sure that during the first and second classes students are actively engaged physically and mentally (we go out of the classroom, separate in “tribes” throughout the classroom, and solve minor puzzles).

* Early Warning: Provide early feedback on students falling behind or not having a clear understanding of issues that might impact them when future activities need to build on previous knowledge. After the first few weeks of our programming course, we start working on exercises. We apply this pattern by explicitly marking the expected rhythm of progress on the exercises by publicly stating which exercise workbook corresponds to that week. For this to actually have impact, we make visible how many students have solved a given amount of exercises on the current workbook. In order to do this. we ask students to raise their hand when we say out loud the number of exercises from the current workbook they have solved up to that point. We count hands for 0, 1, 2, etc. up to the number of exercises in that workbook. This not only marks which one is the current workbook that they should be working on, but provides gentle peer pressure on students when they see each other’s progress. We have measured noticeable improvement in the amount of exercises performed on the current guide as the course progresses.

The core tenets I see behind these patterns are a caring look on students and an effort to keep then connected to the learning experience. These are only a few examples of the patterns you will find in the book and how you can apply them.

I would love to hear your comments on your own experiences and how these ideas resonate with you.

Some notes from SECM Workshop @ ICSE 2017

These are my notes from the workshop. It started with a talk by my colleague and friend Diego Fontdevila: Tales from an Agile Journey: Designing Curricula from Millennials in Industry and Academia. While Diego was talking,  Nayla Portas took care of graphics facilitation, great work!

The rest of the morning was dedicated to present all the submitted papers and the afternoon was for debating following a fishbowl-like dynamic.

During the afternoon some students join the session to participate in the debate. I am not sure about the exact number of participants but I think we were around 15, including people from Argentina, Brazil, USA, Sweden, Uruguay, Chile, Rusia, Spain, Italy and China.

After the workshop some of the participants went to a near restaurant to share the dinner. It was the earliest dinner I had in my whole life,  I was eating meat at the 7 pm!

I want to thank Hakan and Cécile for organising this workshop. It was a really valuable activity, it was great to see people from so different contexts sharing their experiences.

Flipped Classroom versus Online Learning

Flipped classroom was a hot topic during the SECM workshop. It started with a paper by Nicolas Paez on A Flipped Classroom Experience Teaching Software Engineering, and continued with many exciting discussions throughout the day.

In parallel to the workshop, Hakan and I presented a paper at ICSE’17 on Flipping a Graduate-Level Software Engineering Foundations Course based on our experience co-designing and co-teaching the course over several semesters. In this blog, I would like to distill some of the tips from the paper, so others have the opportunity to discuss related experiences.

But before we start, let me share my suprise when I noticed that our ICSE paper on flipped classroom was part of a session called “Online learning”.  Online learning?

Yes, true, in flipped classroom students have to watch videos “online” before coming to class. But the parallel with online education stops here. In fact, flipped classroom is the antithesis of online learning, in the sense that most of the learning happens within the classroom, where students come physically to perform in-class activities under the guidance of a faculty​.

Most of the value of flipped classroom comes from immediate feedback that students receive when trying to solve a problem right in front of a faculty. Immediate feedback enables​ rapid and effective​ learning. It is specially important in fields like software engineering, where nothing is black or white, everything has nuances, and there are exceptions to pretty much every rule. In such a context, forget about having “robots” answering students’ questions online! And who wants to wait 24 hours for a human being to get back to a question posted online? The most effective way (that I know of) of​ creating​ short feedback loop​s​​ and generating rapid and effective learning​ ​i​s ​with​ face-to-face interaction​s​ between students and faculty.​ This is what flipped classrooms are all about!

SECM 2017 took place in Buenos Aires, Argentina

The first workshop on Software Engineering Curricula for Millennials (SECM) was collocated with ICSE 2017 in Buenos Aires, Argentina. The full-day event took place on May 27 at the Pontificia Universidad Católica Argentina (UCA) with Diego Fontdevila as the featured keynote speaker. Cécile and I would like to thank you for sharing your insights with everyone and making this first gathering a success! The collective experience and knowledge of the group were truly impressive. I have posted snapshots from the workshop on the web site (thanks for sending your photos to me). Also many thanks to PC members for reviewing the submissions and Nico Paez for helping with the local logistics.

Find the list of papers and workshop agenda on the SECM web site. You’ll also find a list of attendees and position slides from participants.

Here is a summary of the day by Nico Paez.

Our twitter tag was: #secm2017

This beautiful artwork was created on the fly by Nayla Portas during Diego Fontdevila’s keynote. Great job!

How shall we proceed next based on the action items collected at the end of the workshop? Some concrete suggestions were:

  • Establish a communication channel – done (Google group SE-EDU )
  • Refactor the workshop web site to get it ready for the next event and create a community web site for doing whatever we need to do in the interim – done (SECM 2017 is now served at subdomain secm2017.se-edu.org, and the domain se-edu.org points to this web site)
  • Invite others who might be interested in joining to grow the community (need suggestions)
  • Address a few of the high-priority topics that we did not get a chance to discuss at the workshop, perhaps via blogposts on this web site (more on this below)
  • Change the name of the workshop series before it becomes legacy to something everybody likes and is a bit less pedantic (e.g., SE Education for Millennials)
  • Create a draft agenda for next event (done thanks to Cécile, see this link)
  • Form a committee and submit a proposal to ICSE 2018 (ASAP)

Here is a list of high-priority topics identified at the workshop that could be addressed by attendees via blogposts on this web site:

  • Inverted curriculum (Nico P.)
  • Scaling up flipped classroom
  • Assessment and grading
  • Team formation
  •  Teaching collaboration skills
  • Maintaining student attention, motivation
  • Replicating courses
  • Active learning (Hakan, observations from a recent CMU Eberly Center workshop)
  • Teaching skills / Book reviews (Diego, Nico P.,  perhaps a summary of classroom-tested strategies from the books mentioned at the workshop, including Teaching from the Back of the Room and Pedagogical Patterns)
  • Teaching as Research (TAR, basically running classroom studies to measure effectiveness of teaching strategies, Hakan)
  • Teaching ethics and sustainability in SE (Davide, Claudia)
  • Sustainable/holistic learning (Juraj, based on his Yoga & Human Development experience. Here is the movie he has shared with us in an email)

Suggestions for other topics are always welcome!

Finally, here is a number of millennium traits validated by students who attended the workshop, assembled from her workshop notes by Cécile:

  • Tech-savvy
  • Want personalized experiences
  • Lack team focus
  • Do not like toy examples
  • Need challenging goals
  • Favor practice over theory
  • Active learner
  • Easily bored
  • (Ineffective) Multi-taskers
  • Want immediate feedback
  • Super scared of failure (their goal is not to learn from failure 🙂
  • Curious
  • Discovery driven
  • Socially aware
  • Visually focused (maybe?)

These traits come from circumstances (internet, social media, etc.) versus personal characteristics.