Icing on the Abstraction Layer Cake

I’ve been thinking lately about why there seems to be such a huge range of aptitudes for learning computer science among my students. It’s been an observation that I’ve been really stuck on for a few reasons. I’ve been teaching for about 5 years at this point and out of all the lessons I’ve learned and values I’ve cultivated as an educator, the most important that I’ve come away with is that all students are capable of learning. It’s a belief that is foundational to how I construct classroom routines and policies and how I develop curriculum. I’ve read plenty of research about determinants of intelligence and how traditional schooling systems promote and exacerbate gaps in access to education. From this I’ve come to believe that someone’s ability to learn isn’t some genetically predetermined trait, but a dynamic state that is influenced by a complex web of social and psychological factors. Given the right environment, all students can learn.

So… we warp into my CS classroom and I’m staring at a program in which a student has given every parameter and variable, all with different intended types of data, the same exact name. After 6 months of introductory JavaScript– variables, conditionals, loops, lists, traversals etc.– they just can’t pin down why it doesn’t work. Aside from the assistance I give in debugging this problem, I have to grapple with the question of why my student is in this situation in the first place? And why are other students coasting through this curriculum? We’ve all been sharing in the same learning environment, experiencing the same curriculum. So, where are these differences coming from?

Now attempts to hypothesize around these questions will take us into an inevitable rabbit hole of ideas and research that could take a lifetime to navigate, understand, and apply. We could go back in time… what are the differences in middle school coursework? What is their household environment like? What stories have they been told about “technology” and “coding”? What parts of their cultural background and identity influence their perception about their role in these stories?

As impactful as it would be for me to be able to answer these questions for each one of my students and provide a curated curriculum and classroom for each one of them, that solution clearly leans idealistic rather then realistic (and I do consider myself an idealist). When it comes to solutions on the realistic side of the spectrum I am inspired by one of the fundamental concepts in computer science… abstraction. Out of this massive cake of software comprised of layer upon layer of abstraction, there is most-definitely something for everyone. Brace yourself for another dumb analogy.

When I frame the problem in these terms, it becomes much easier for me to identify where my students are struggling. Most students interact with software at the absolute highest layers of abstraction. On a daily basis, they drag their fingers through the icing on the cake, enjoying tiktok after tiktok of magically curated content that happens to be just what they were looking to see. They fall asleep, wakeup, get ready for school, and find themselves in my classroom where we’ve ripped the cake open and I’m trying to serve up slices of a much less sweet layer of the cake. And they end up missing the fact that these two different experiences are all a part of the same software cake.

Now, on the other end of the spectrum, there are some students that want to get a cross section of the entire cake, all the way down to it’s lowest layers. They wonder how a segment of code is translated into electrical impulses that command the CPU to execute operations and how pieces of data generated in their programs can stored in memory. The slice of the cake they would like to sample may be very different from that of their peers.

Now out of all of this musing and rambling, I’m not necessarily emerging with a practical solution, but perhaps a better understanding of my role. I’m hosting a super awesome computer science party and we’re serving up a software cake. As a teacher who knows that all my students can enjoy this party and leave absolutely stuffed with cake, it is my job to serve each person the slice that is right for them. For some it might be a more abstract layer of the cake and for others it might be less so, but if I can do that, we might end up with some learners who take their experience at this party and are inspired to bake a new layer to add to this cake. That would be pretty cool.

Print Friendly, PDF & Email

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *