Infinite Loop Coding Club–Update 1

Angry Bird

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.

Stage 19-4A

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:

  1. Creaming the fat with the sugar
  2. Adding eggs and liquid flavouring to the creamed mixture
  3. Mixing the flour in a separate bowl with a leavening agent and any dry spices
  4. Adding the dry mixture to the creamed mixture and mixing.
  5. Adding any novelty items:  chocolate chips, nuts, etc. etc.
  6. Dropping the dough by the spoonful onto a baking sheet
  7. 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.

More Concepts

Besides the concept of Decomposition, there are other concepts that we will be working through:

  • Planning
  • 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

[References: Frances JuddDo the Building blocks of Computer Programming Begin in PreschoolSam PattersonCoding with Kindergarteners]

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.

Screen Shot 2014-06-02 at 8.05.03 PM

 

Screen Shot 2014-06-02 at 8.04.52 PM

 

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 🙂

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.

Thanks!

~Vivian

Shameless Plug for my Paper Li that curates articles about Coding for Elementary School: Infinitely Loopy Coding Teacher Times

[youtube]https://www.youtube.com/watch?v=SVUKe9ajakE[/youtube]

 

About Vivian

Vivian @ChezVivian is a Canadian-born Chinese, currently living in Switzerland. She has also lived in Hong Kong and Indonesia. She holds a M.S. (focus: Educational Technology Integration), B.Ed and a B.A. and graduate studies in Kodály and Orff music pedagogy. She is an elementary school classroom generalist, but has also taught as a music specialist, ESL/EAL and also in Learning Support. Most of her teaching career was in International Schools in Hong Kong. She is excited about the IBPYP and the possibilities of using technology to Inquire. Recently, she has been looking at the opportunities that computer programming gives to put #TECHXture back into the hands of children. In other words, technology need not be just about looking at screens. It can be about building things with our hands; and computer programming levels-up what children can do with the things they build---encouraging higher thinking skills. She is a Coetail Post-graduate Certificate grad ('13-'14), a former Coetail Coach and one of the co-founders of #CoetailChat. Her blog home chezvivian.coetail.com curates her assignments for Coetail and her M.S. graduate studies about Educational Technology integration and anything else educationally-related that she feels inspired to write about. Her twitter tagline sums it up: "Mom to 4, Mentor, Educator, Musician (in that order)".
This entry was posted in 20 Hours of Code, Coding, Course 5- Putting Pedagogy into Practice, Infinite Coding Club, Infinitely Loopy Coding Teacher Times Paper Li, Scratch and tagged , , , , . Bookmark the permalink.

2 Responses to Infinite Loop Coding Club–Update 1

  1. Wow! That sounds so exciting. I am going to check out your paper li. I have been trying to teach myself as much as I can about coding and learn how I can integrate it into my teaching. How old are your youngest children? How long do you spend together for afterschool? How did you decide which grades to invite?

  2. Vivian says:

    Hi Tabitha

    Thanks for stopping by. My students are between Years 4-Years 7 (8-12 years old). Ideally, I would go from Years 5-7 (ages 9-12). I extended the range a bit more downwards because I wanted more students. I started offering this club in the spring term and most students were not able to join because they were already committed to other clubs by that time.

    My club time is 1hour 15 minutes with 15 minutes for “talking or sharing”. I find that 1 hour is more than enough for students to be on the computers.

    I would say that the mainstream “Code.org” puzzles are good for grades 5-7. This fall, they are developing a differentiated program for the younger students: I believe there will be a program for K-grade 2 and grade 3-4.

    Scratch will also come out with a program for the younger students called Scratch Jr. I believe it will be for K-grade 2.

    Your class size might be more of a factor than the age of the students, though. The younger the students you have, the smaller the class size needs to be. My main role is going from student to student to “trouble-shoot”. The younger students need help quite a lot in the beginning. If you have a large class, I would opt for older students.

    Other options might be having the students work in pairs. Of course, there is always that one or two students that are extra “able” beyond their ages. They are a great asset as they can help the other students too.

    Check out this blogpost for how Coding integrates into the PYP curriculum: https://www.coetail.com/wayfaringpath/2014/04/25/an-inquiry-into-coding-in-the-pyp/

    I went through all the puzzles in the 20 Hour of Code to “teach myself” about Coding. Then, I did some online tutorials to learn Scratch via the Scratch website. I feel that I’ve only scratched (ha ha) the surface and that I’m only one step ahead of the children. We are truly learning together. Each time they ask a question, I have to learn how to do it too. If you look at this webarticle https://www.edutopia.org/seymour-papert-project-based-learning , Seymour Papert feels that the teacher should always be learning alongside the student. Otherwise, the students are limited by the teacher’s abilities. So, I guess I’m in the correct place 🙂

    Good luck and please feel free to ask about anything. I hope to continue blogging about the school coding club. We’ll break for the summer and start up again in the fall.

    Vivian