The morning of September 5, 2022 could have been a regular Monday morning. Except for the fact that the Bechtel building in the Maroun Semaan Faculty of Engineering and Architecture (MSFEA) was overtaken by ducks - small yellow rubber ducks to be exact. A hundred ducks inundated the hallways and filled the air with their squeaking. Students tried to make sense of what was happening, but to no avail. What is this? A duck invasion?
To understand how this event came to be, we must go back in time, to the summer of 2022.
Dr. Ibrahim Issa, assistant professor of electrical and computer engineering, took the initiative and approached MSFEA's Interdisciplinary Design Practice Program (IDPP) through the Teaching Innovation Support Program to explore new experiential tools and teaching methods for his EECE 330 “Data Structures and Algorithms" course, offered in Fall 2022.
Dr. Issa wanted to reimagine his course experience, and transform it into a more engaging and fun journey by exposing students to experiential learning tools and helping them proactively engage with the course material.
As a professor who is constantly looking at ways to improve his classroom experience, he also wanted to help students draw the link between the material they learn and its impact on their professional life. Dr. Issa provided IDPP with invaluable insight resulting from his observations in the classroom and the feedback he has received from students during past offerings of the course.
One main concern was that students underappreciated the importance of writing simple working code (from “scratch"), and thus underestimate the effort required to do so. Relatedly, Dr. Issa wanted to improve the students' ability to debug a code, i.e., locating and fixing the error in a code. He had noticed that, when faced with a bug, students often approach the problem in a non-systematic and ad-hoc way, which leads to a code with even more errors!
While brainstorming, a potential solution to teach students how to get rid of those pesky bugs came up. Dr. Issa remembered a fun concept used in programming called 'Rubber Duck Debugging'. Essentially, it is a process whereby programmers explain their code step-by-step without skipping over details so that even a rubber duck can 'understand' it.
This helps programmers identify any existing problem that they might have missed otherwise. There it is, the lightbulb moment; Why not take this concept literally?
On a Monday morning, Dr. Issa arrived at his class with a big bag of 100 small rubber ducks. Confusion was evident; students were bamboozled. Dr. Issa proceeded to give each student a rubber duck, and explained the 'rubber duck debugging concept'. During that week's course lab, students started explaining codes to their ducks while working on assignments. They fully engaged with the experience, while also having fun. People in hallways could hear the squeaking ducks, peeking in to see a whole classroom full of students talking to rubber ducks.