I came into this module a bag of mixed emotions – learning design terrified me for some reason… I kept thinking to myself, “oh jeez, I’m terrible at planning ahead,” and wasn’t ready for the pain train, expressly created for my downfall, that was waiting on the other end of station. Despite how badly I was shaking in my boots, I decided to board the train and some interesting revelations came about. These are those revelations…
I don’t suck at planning.
I just suck at writing things down. I love to think, but I can’t find it in me to remember to write these thoughts down. Endlessly I will be in my head trying to approach a problem, or a task, creatively – but for some reason, I don’t take a few moments to jot down these moments of constructive thought. Now you might be wondering, what does this have to do with you thinking you suck at planning? Well, in this week’s module when we were covering constructive alignment and backward design I found myself feeling this is just one of the ways I naturally approach system design/analysis in general – be it about an educational framework or not.
It makes plain sense to care about harmony between the end goal, measurements of this goal, and the ways you work towards this goal – in the context of education it would be known as the intended learning outcomes, assessments, and learning activities. They must work together for the outcome to be reached. Naturally, when you outline yourself a goal, to make sure you hit that goal, you come up with a way to measure your progress. Taking it one step further, you would devise a plan based on hitting those markers of success… in essence, you would find yourself doing backwards design and innately create this desired harmony.
All of this to say – I don’t suck at planning, I just suck at writing things down… but at least that is a much easier thing to fix.
We are building robots.
Throughout this past week, I found myself in a few lengthy conversations with interviewers and professors where we discussed the ability and competency of the average computer science student looking for internship opportunities as a developer of some sort. It seems that many of my peers weren’t learning how to apply the concepts we had been interacting with in our degree – but most of them did become extremely adept at regurgitating them.
When you start a CSC degree usually you do so by learning the basic fundamental concepts surrounding programming through learning a programming language – at some point though, you abstract away from using any programming language in particular and just talk about the tools that most of these languages offer in a high-level way. With this abstract way of viewing programming design, you open yourself up to learning about famous algorithms and data structures that are vital frameworks for solving extremely complex problems. The idea is that you can then take these frameworks and find problems in the real world that would fit into these frameworks. You would apply these frameworks. In reality, it seems that we have just made robots that can spit out these frameworks but never truly apply them.
Why? I think it has to do with a poorly designed learning system that has been created by the pressures of the industry’s accepted interviewing practices as well as how assessment of this knowledge is measured at the school level. Students are incentivized to learn these algorithms and data structures in a sanitized cookie-cutter environment (such as LeetCode) as that is the environment they will be asked to demonstrate these skills in an interview, and in school students are tested for their memorization of these algorithms/data structures rather than being asked to/instructed to try and apply these concepts to a real problem.
The solution? We need change from within the industry, and from school as well.
In school, we need a restructuring of the learning design surrounding this topic. We need to rethink what the learning outcomes of this topic are, how we can assess them, and how we can teach students with those assessments in mind – put plainly, we need to care about students abstracting these topics rather than just repeating them. We need to care about students actively interacting with this topic to the point that they also are engaged in solving real-world problems (one of Merrill’s Five Principles of Instruction).
On the industry side of things, we should probably step away from only caring about this one small topic that students learn in university. A developer’s job is not about spitting out algorithms and data structures from memory – it’s about being a dynamic problem solver who can cobble together information from multiple different sources to reach an amicable solution to the problem – perhaps working on problems that mimic the work environment in an interview would lead to incentivizing applicants to train to become better at the job they are interviewing for.
Andrea was right.
Before I started reading this week’s module, I took a look at Andrea Torre’s blog post on it – she mentioned how evident scaffolding was in elementary school and she was not wrong.
Take math for example – when we learned how to count, add things, and subtract things we were initially given physical objects to interact with. We were able to create meaning towards concepts through physical interactions. As time went on, we began to use images of these objects… we would be shown 5 apples and then be asked to cross out 3 apples. Eventually, it leads to abstract thinking about these concepts through a story… Jill has 20 apples and Bob has 10 oranges, Bob gives 5 oranges for every apple Jill offers him, how many apples can Bob get, and how many apples will Jill have left over? And then at some point, you find yourself in university doing integration and differentiation without the need for this scaffolding that helped connect the real world around you with this abstract concept of numbers.
I never really put much thought into how I was taught mathematical concepts, but it is evident looking back at it that ‘scaffolding’ played a monumental role.
A Sample Lesson Designs
To add some context, I thought about how I would go about teaching a short lab on the binary counting system. I found it particularly difficult to really nail down specific learning activities – honestly I think my currently chosen learning activities are lackluster and require more thought and refinement.
I also made another sample lesson plan and it was made with the idea of trying to revisit the lesson design plan surrounding data structures and algorithms. I complained earlier in this post about how the current learning design wasn’t so great, so I thought maybe I should try to fix it myself! I did so by trying to think about how students should be taught BFS/DFS algorithms… truth be told my end plan didn’t differ much from how it is currently done in school. Looks like I can just spot the problem with the current learning design plan without offering a decent solution at this moment.
H5P Content Creation
I wanted to make a multiple choice widget that people reading this blog could interact with, so I decided on making it about something I discussed earlier.
I tried to make all the answers sound correct enough if read haphazardly in order to get everyone re-reading the questions again, and to think back to earlier with a little bit more effort.
Further I wanted to create a matching game, something I would imagine children would use that are learning colours!
Can you guess where the images of the fruits came from? It has something to do with the module last week! I also took the opportunity to shout out channel Orange by Frank Ocean but using the album cover as the colour option in this game. Credits have been given to each image used under Rights of Use in the H5P tool.
Closing Question
Earlier I ranted about computer science education and its failings with learning design – can you give an example how the learning design of a course has failed you?
Hi Markus, I really relate to what you said about planning and writing things down! Backward design feels like that perfect strategy we all need but sometimes miss. Your point about how we’re basically trained to be robots in some CS courses, just repeating stuff without actually applying it, really makes sense. Your blog was a great read, and it’s got me rethinking how we can design lessons to actually learn and apply concepts in a real way.