Innovative teaching in CS from Dr. Heeren: snowflakes and algorithms

Much research has been conducted to prove the effectiveness of visual learning, showing that 65 per cent of us are visual learners. Additionally, retaining subject matter in an educational environment is much improved when the visual representations are actually appealing to look at.

So how does one do that exactly, in the field of computer science? Algorithms, at least in their visual written form are not exactly, well... objects of beauty

So how can we gain and hold the attention of computer science students within these restrictions?

Indeed, UBC Computer Science Professor of Teaching Cinda Heeren asked herself this question. Further, she desires to teach her students how to be innovative with their approach to learning. Okay, but how does one teach the concept of innovation?

In a department that highly values educational leadership, Dr. Heeren and her colleagues are empowered to develop and create unique ways of teaching:  Professor Heeren teaches innovation with snowflakes!

Special Snowflakes:  a riff on innovation

Snowflakes 3

“As we all know, every snowflake is unique,” says Professor Heeren. “And there is a direct metaphor here for student innovation and how they should think about it. In my lecture, I share my story of a personal journey to illustrate learning something new and technical by being innovative.”

Cinda goes on to explain her obsession with visiting national parks. She learned that the Parks Board has an Artists in Residence program where you can visit for a month to capture images of the park. Not being an artist, but a computer scientist, Professor Heeren began to think about how she could combine her love of nature and beautiful things with computer science. One particular adaptation she became interested in is the graphical depiction and alteration of the same photographic image, taking it through different seasons.

“For winter, I wanted snowflakes to fall downward from the top of the image, eventually revealing a winter scene, with piles of snow. And I wanted it random, because no two snowflakes are the same. Yet I had no idea how to accomplish this.”

In the presentation she created, Cinda goes on to explain to her students how with any new thing or innovation, you start with research. “You figure out what’s already been done and what resources are available in the space.” Cinda discovered different software tools, but they didn’t seem to generate something random enough. She also learned someone else had already done this. However, she still wanted to do this herself. “I didn’t look too closely at other past results because I wanted to be unbiased and do this for myself.”

The more she researched, the more convinced she became certain this was a worthwhile project. “Actually trying to model snowflakes properly is no easy task!” Cinda said. "Every snowflake is different. And it’s shocking to me that a set of physical principles can result in these amazingly different things. But as my research revealed, the physical processes are all based on hexagons. At the molecular level, water molecules connect together in hexagons.” This discovery provided Cinda with a solution.

Cinda recounts how her first attempt looked weird and very far from a snowflake. But nevertheless, she was happy because it actually looked like something. It was a starting point! In her lecture to students, she is emphatic about not being disappointed at failure, and how this is a metaphor for innovation.

The process involved many iterations to generate random hexagons and create branches of the snowflake, but eventually Cinda was getting closer to her goal.

Early iteration
An early iteration

“Of course there were bugs along the way, like errors I had made in my code. But interestingly enough, I thought the bugs had still created something quite beautiful.” In the end, after more adaptations and fixes, Professor Heeren did arrive at a solution that creates randomly generated uniquely beautiful snowflakes.

Even failure can be beautiful

She explains that even with the bugs and 'wrong turns,' the so-called failure can actually teach you something and produce a better result, inspiring you in a direction you would never have otherwise gone.

“This illustration of my journey in creating snowflakes is a direct metaphor for bugs and algorithms themselves. That uniqueness and innovative problem-solving is what I am trying to teach in my CPSC 221 Data Structures course. I’ve also given the lecture to freshmen, for my 320 course, at a hackathon, and even to high school students.” Just like the snowflakes and algorithms Dr. Heeren creates, even her presentations are unique to each audience. “I tweak the technical content accordingly,” she says.

What she has managed to masterfully do is adapt her presentation to suit the audience, and still impart the basic principles, but with a varied level of detail and complexity. All the while, Cinda manages to entertain and delight.

snowflakes 1
Beautiful, unique results

“Computer Science has the specific charge of affecting technology and creating the technology of the future,” Cinda says. “I feel that means it’s even more important for our community of computer scientists to be extra innovative, extra resilient, extra sensitive to new opportunities, and extra creative in our way of thinking about problems.”

You could say Professor Heeren is not just teaching students computer science, she’s also teaching them how to be their own special snowflake.