You’ve Been Doing Computing More Than 1 Hour Per Week
Who actually has time to teach this?
Let me put it this way.
What made your lesson observation “outstanding”? What could have tipped that “good” into outstanding? What skills (aside from maths and say…a spreadsheet) were the kids using at the bake sale they held? What about the problem-solving skills student technicians use, who help with assemblies, plays and productions? (How did you work out it was the cable that was unplugged?)
Or those communication and role-modelling skills the e-safety ambassadors use in your school? Did they have to refine their presentation?
What about the unwritten curriculum you teach when you hold that cool robotics or Lego Wedo Club you teach at lunch or after school, when you’re free from curricular restraints, monitoring and you and your students are free to explore, create and have fun?
You’ve been doing real-world computing.
Digital Technology: It’s All Around Us
When we shop, order food, press the button to cross the street, play sports, get ready for work, pay bills, watch the commentators analyse the footie or debate about putting a camera inside the football, etc, society is permeated with technology. “There’s an app for that!” The advent of SMART phones, the ever-improving Wi-Fi network (near world-wide) and the ever-increasing internet of things in recent years has only accelerated this pace. (I must admit I’m very curious to see what happens to our devices when AI merges with Android, Windows or IOS. I hope it’s not a Skynet situation!) In fact, we are now more likely to find technology and internet in even the remotest place on earth.
Programming: It’s all around us.
Algorithms, functions, variables, selection, conditionals, scripts, procedures, coding, programming, debugging, problem-solving, process, to call, loops, execute, etc. Not just in the gadgets we use, but in everyday life, in our daily activities, in the real world. If we “unplug” these terms, we can understand this better.
An algorithm is a precise set of instructions to solve a problem or achieve a specific objective, for example baking a cake, brushing your teeth, washing the car, writing a story and recording your favourite TV show. If you’re sloppy, mess up or record the wrong show chances are your instructions need improving. In this case, the computer programme has a few bugs and doesn’t achieve it’s intended objective.
A conditional is a statement that a programme checks to check if it is true or false. If the weather is sunny, then I will go to the beach. If the ball touches my leg (in Dodgeball), then I’m out, etc Think of how many unwritten conditionals (rules, expectations, do’s/don’ts, you have in your classroom. There’s actually quite a lot and more than the few classroom rules displayed on the door. If your classroom runs smoothly, then you’re very organised and this gives an efficient impression to the visitor. Now, imagine how many conditionals are needed to make a computer programme look really smart and clever.
A function is a piece of code you can call over and over again. It’s an action performed by an object. There are two parts: “The Call” & “The Declaration”. The chorus in piece of music is “called” over and over with just one word: chorus; the chorus is a function. “Get ready for school” is an overarching function composed of smaller ones: get dressed, make the bed, eat breakfast, etc. How smoothly does your classroom run and how efficient is it, especially when visitors or the head walks in? Think about your classroom monitors (if you have older students). Who’s in charge of the book corner? Who’s the register monitor? Book monitor? Etc. What are the specific jobs and the outcomes the student is expected to do? The teacher is the overarching programme and the monitors are the functions.
Programming a really good and efficient game takes a lot of planning. To “give the impression” that the game/sprite can do all these things by itself, will take some good programming with functions, conditionals and making code efficient.
It’s the real-world classroom.
As Steve Jobs once said “Everybody in this country should learn to program a computer…because it teaches you how to think.” It was what I was inherently teaching all along, but couldn’t see the forest for the trees or should I say “While True: Plan, mark, teach–eat, sleep, repeat!”
When I first started teaching, I had the basic classroom rules, a few conditionals and not many functions/monitors. As I progressed in my career, I evaluated my experiences, gradually refining and defining my classroom to have less rules, but more functions, giving students responsibilities and ownership for an aspect of the classroom. As a result, I achieved a more efficient and effective classroom which made my job a bit easier. (I’ve simplified this metaphor—and of course there’s so many more dynamics to teaching and classroom management I’ve not included).
But my point is this: the more I delved into programming, researched computational thinking, looked for unplugged examples and refined my pseudo-code understanding, the more I began to understand my own thinking and how I was thinking. This was especially true when it came to teaching programming and wanting the best possible outcomes for the students.
That is one point when I realised Computing wasn’t just about teaching a set of curriculum objectives. It was much more than that. Something that many of us are already doing. It was the holistic approach. The real-world approach. You’ve been teaching more than one hour of Computing per week. Way to go! Kudos.
#RealWorldComputing (#RWC) is a holistic approach to doing Computing in real preparation for life.