The afterschool “Infinite Loop Coding Club” has been running for about two weeks now. I thought I would take some time to write a blogpost about what has been happening for parents.
I hope that your child has been enjoying the coding club. Programming is an interactive activity on a computer and should be a lot more intellectually healthy than passive screen time.
Since learning to code in the primary school is such a new thing, most adults (including myself) are much in the dark about this mysterious thing. In my case, I feel like I’m only a few steps ahead of the children. They certainly keep me on my toes! I’m kept super busy during the entire session, “trouble-shooting” from child to child. 🙂
I feel that it’s important that parents be learning along with us, if the learning is going to have some longevity. A lot of concepts in computer science for primary school can be reinforced in every day speech, but we adults have to know what the concepts are. So, I thought I would introduce the vocabulary to you and explain the concepts behind the vocabulary. Hopefully, you’ll feel a connection with their learning and be able to keep on encouraging them in their learning, way past their days in this coding club.
Computational Thinking— The challenge of coding is essentially problem-solving. We’re presented with a problem and our job is to decompose the problem into smaller steps. A big part of Computational Thinking is thinking how to decompose problems. As humans, we might see the solution and want to go straight to the solution. The computer might not able to go straight to the solution and will need two or more sets of instructions, when we might only need one. That’s the challenge for us to see where the computer might need several instructions to get to the same goal.
Cookie Illustration— I am trying to find parallels in my life in order to explain these computer science concepts. For the concept of decomposition, I’ve come up with a parallel of learning to bake cookies. Let’s say you give me a cookie and tell me that I need to recreate that cookie. I would have a pretty decent shot at doing it. The reason is because I’ve baked various types of cookies all my life. They all follow the same sort of methodology and after baking for many years, I have internalized the basic conceptual framework to make a cookie. The basic methodology goes like this:
- Creaming the fat with the sugar
- Adding eggs and liquid flavouring to the creamed mixture
- Mixing the flour in a separate bowl with a leavening agent and any dry spices
- Adding the dry mixture to the creamed mixture and mixing.
- Adding any novelty items: chocolate chips, nuts, etc. etc.
- Dropping the dough by the spoonful onto a baking sheet
- Baking the cookies
Because I have internalized and understood this basic framework for baking a cookie, it’s quite likely that if you give me a strange cookie that I will be able to decompose it into its separate parts in order to create a recipe for it.
Now, if you handed me a Christmas Plum Pudding, I wouldn’t have the slightest clue where to start to recreate the recipe. That’s because I’ve made few puddings in my life and what I’ve made, I’ve forgotten.
So it is with Coding. The more experience one has with Coding, the easier it will be to see something and to decompose it into smaller sets of instructions. So, this is the crux of what we are trying to learn together. We’re trying to give ourselves all sorts of experience coding little instructions. Hopefully, with time, we’ll internalize the patterns and know intuitively when to insert these smaller sets of instructions into a big project.
The Decomposition of the problems is the big challenge now, for the students.
Besides the concept of Decomposition, there are other concepts that we will be working through:
- Code (like a secret language for computers)
- Counting (There’s lots of practice for skip-counting for younger students, practicing multiplication tables for older students)
- Left and Right
- Cause and Effect
- Sequencing (putting the instructions in the correct order)
- Repeat Loops (repeating a set of instructions instead of writing it a separate time)
- Testing and Re-testing, Tenacity
To this list, I’m adding:
- Point of View (What is our right might be the object’s left…)
- Distance measured in pixels. This comes with experience as we try different numbers and see the effect on our program
- Angles. I don’t think I used angles too much, apart from my time in math class but I’m using them now!
- Absolute Directions: left, right, up, down. It’s the precursor to looking at the co-ordinate x, y plane
- Isolation: isolating to test (Isolate a small part of the code to test it before inserting it into the big picture is way easier than trying to trouble-shoot a huge program)
- Clean Slate: Sometimes it’s time to just wipe the slate clean and start with a blank page. When should we do this? When should we persevere with what have?
As the weeks go on, I’ll explain these concepts in further blogposts and hopefully be able to provide examples from the students’ work. For this first blogpost update, we’ll just stick to the concept of decomposition and see how it gels with you. I’ll be introducing the word decomposition to students in the next session or two, now that they’ve had some time experiencing it.
Show and Tell
Here are some examples of programs made by the students (in random order). I won’t reveal names of the programmer. There are 12 students and one of the examples below belongs to your child 🙂
- Getting Fancy with Squares
- Zombie Maze
- Teeny Tiny Spiral
- Building Ladders
- Farmer’s Field
- Green Glasses
- Nested Squares
- Square with Repeat Loop
- Fancy Ladders
I hope everyone is enjoying themselves! In the next week, we’ll move onto Scratch Programming from MIT, where your student can now apply their Coding skills to create something for themselves (a game, animation, holiday card, piece of music). Scratch Programming uses the same principles of snapping together jigsaw pieces to write code.
Before I sign off, if you have any other illustrations of “decomposition” in our offline lives or comments about anything, please share in the comments below.
Shameless Plug for my Paper Li that curates articles about Coding for Elementary School: Infinitely Loopy Coding Teacher Times