Learning Design by Making Games (in Scratch)

constructionism-in-pracDuring the summer of 2016, I read this book (left) edited by Yasmin Kafai and Mitch Resnick. I was inspired by Chapter 4 (called Learning Design by Making Games). In it, she described a study in which a group of 4th grade students spent one hour per day (over a six-month period) writing, designing and programming a computer game (using LogoWriter) for younger students to help them learn about fractions. One of the main conclusions of her study was that the students demonstrated a wide variety of approaches (top-down, bottom-up, and a mix of the two) to the complex task of game design. She also found that students learned things not only through the design task itself but also about design thinking as a concept.

Even though this study was about 25 years old, I knew the idea would still work with a modern class using MIT’s Scratch environment. I also knew it would be an empowering, design/computational-thinking project that would have strong connections to the mathematics curriculum content and processes. I was excited to see what current junior students could learn about design and computational thinking, and mathematics, from this kind of project. In early October 2016, I found a teacher and a Grade 4/5 class who would take part. Starting in January 2017, we partnered with a Grade 2 class in the school (whose students became the target audience for the older students’ computer games).

It was initially planned as a year-long, project-based learning task. It would also turn into an inquiry about design thinking. We did not provide students with a pre-made roadmap for design thinking. Instead, we chose the constructionist route; students were invited to build their own concepts of a design process throughout the project and, especially, at the conclusion of the project through several consolidation and reflection activities.

It wasn’t feasible for the students to work on their project daily as in the original study. It turned into one weekly, 80-minute session. The whole process spanned a 9-month period at the school and unfolded in five phases:

Phase 1: Preparation (October – December 2016)

Students in the grade 4/5 class developed basic competency programming in Scratch using creative learning and the MIT research-based approach utilizing “projects, passions, peers, and play.” Our objective was for students to take the time they needed to build enough fluency in Scratch programming so they would be ready for the design challenge of the fraction game.

The following video was recording in December, 2016, during Phase 1. This student was in the initial stages of designing his own Scratch version of the slither.io game:

Concepts such as variables and the Cartesian coordinate system are not part of the Grade 4 or 5 curriculum; however, most of the students gained a working knowledge of these concepts because they were essential mathematics needed to make the games and projects they wanted to create during Phase 1 (note: students had complete freedom to follow their passions and to choose their own projects in Phase 1).

Phase 2: Project goal & Empathy (January 2017)

Students learned the project goal (“design and write a computer game, using Scratch, that makes learning about fractions fun and easy for primary students.”). The students quickly realized that they lacked knowledge about the Grade 2 students. A 90-minute session was organized for the following week in which they proceeded to conduct interviews with students in the Grade 2 class. The Grade 4/5 class made observations of the Grade 2 students and their thinking about: 1. their current understanding of fraction concepts, and 2. what makes a computer game fun for them. After the 90-minute session, the Grade 4/5 students debriefs and compiled a master document of observations, ideas, impressions, ideas and further questions.

This is page one of the master document created during the debrief session (after the initial meeting time with the grade 2 students):

debrief

Phase 3: Cyclical Design Process (January – May 2017)

Students worked on their educational computer game product once per week for an 80-minute session. Each student has access to either a Chromebook, laptop or desktop computer. Once per month, the Grade 2 students visited and provided feedback on the developing games. In the image below, the older student is asking her younger grade 2 partner questions about what he thinks of the game:

file_008

Grade 4/5 students blogged about the feedback from the younger students and on their own plans for their game. I interviewed the older students about both computational and design thinking concepts. Regular sharing and discussion sessions took place between students, face to face, and in online environments (Google Classroom site, blogging site).

Phase 4: Launch (June 2017)

Students prepared for a special “Launch Day” for their computer game product with the Grade 2s. This looked very much like the monthly feedback sessions but the excitement level was at maximum.

This video is one of many recorded on Launch Day in which Grade 2 students played the final version of the fraction games.

After Launch Day, students collected final feedback from Grade 2 students regarding their games, how well goals were met, and how well feedback provided in earlier sessions was implemented into the game designs.  This Scratch studio still contains working copies of each of the fraction games.

Phase 5: Consolidation & Reflection (June 2017)

After Launch Day, students were involved in two collaborative consolidation activities and one major reflection activity regarding the “design process” as it applied to making computer games and as it applied/applies to future contexts in which they might see a need to apply design thinking to solve a problem.

Below is a photo taken during the second collaborative consolidation activity in which a collective design-thinking process flow was being developed by the whole class based on their cumulative experience over the design process, January to June:

Screen Shot 2017-10-21 at 11.34.45 AM.png

Below is a sample of four reflections written by Grade 4/5 students (using their blogging site) during the final reflection activity. They were asked to respond to this question: “How could you use the design process that we created together [during the collaborative consolidation activity] to help you design something else in the future?”

“I could use the design process that we created to design something else in the future because designing games are very similar to designing other things. I would first think of an idea for what I am designing and then I would carry out the plan that I thought of. After I have a rough idea of what I am going to be doing, I would start designing. Once I have a first copy of my design, I would either go to other people for feedback or make it better myself depending on the situation. Then I would use the feedback to make my design better and come out with the final product.”

“I can use this design process for celebrations, designing football plays, or rearranging basically anything! This design process is a lot like many other things in life. Think, get feedback, do, fix, get feedback, do, fix, and repeat. Doing scratch is basically a life lesson. It teaches you to look over, and keep fixing. The activities I mentioned at the beginning of this paragraph, are examples the follow the same format of do, fix, repeat. That is how the scratch design process is like designing many other in real life activities.”

“I could use the process to make a city. it could be real or made from blocks. I could experiment with the blocks, sketch a rough idea and think of what It will look like. I will see who is in the city and make and build buildings and houses to suit them. I will ask the people who live in the city about how they want it to look and where they want it to be. I will plan and sketch out the city and fix any problems I may have such as one building too close to the other. I will make my city better and expand it. I will test it and go through each building and ask the people a final time about how it looks. then my city will be officially open!”

“The reflection process that we created can be used in many ways other than just scratch. For example, designing a custom chair. First you experiment with creating the chair. Then you ask the person that wanted you to make a chair how they want it to be made. Then you can imagine the way it would look. After that, you enter the design loop. You create, then ask for feedback, and then you reflect. Finally, you make your last improvements and ask what they think about the chair. If they like it, you were successful! Good Job. But this comes to show how the design process can be used in many different ways. Many other things that you can use the design process on are designing parties, bedrooms, houses, buildings, your new coffee recipe, your frying pan, your table, your couch, your cupboard, your computer, your balloon, your book, your floor, your building blocks, and even a plastic bag! This comes to show how many things you can use this process on.”

A critical thinking paradox

Okay… indulge me! Try this experiment:

  • Activity #1  – Think of a topic in which you have a strong interest, and broad, expert knowledge/skill. Then, search the web and find three really good sources of information for that topic.
  • Activity #2 – Think of a topic in which you have no interest, no knowledge and no skill (in my own case, I might choose ‘the history of rug making’ or ‘how to successfully run a large law firm’). Then, search the web and find three really good sources of information for that topic.

If you are anything like I am, or like the many students who tried this experiment, you felt quite confident in your choices for Activity #1 but then felt rather lost making choices during Activity #2.

I am also reminded of the times when I happen to listen to morning talk radio or read op-ed pieces. When the topics are education or learning related, I am almost uncontrollably critical, evaluative, questioning and reflective. For most other topics, however, I might easily find myself convinced of the author’s viewpoint because it sounds reasonable or well-informed. The truth is I really don’t have an accurate understanding of the full context or background behind many issues.

And it is not as simplistic as this in practice; I could pretty quickly plot my level of expertise in any topic on a continuum, ranging from ignorant to expert. My contention is that the more you know about a topic, the easier it is to ‘think critically’ about information related to that topic.

I have always felt regular pangs of sympathy when I have worked with students and tried to facilitate their efforts to evaluate information they find online. They usually faced this paradox: A student doesn’t know about ‘something.’ Student looks up information about ‘something’ online. Student finds endless information about ‘something.’ Student has great difficulty knowing if the found information is ‘good’ information or not. Frustrated, student uses the first few Google search hits for ‘something’ as their sources of information. Does this sound familiar?

So, the Catch-22 is that the more one knows about a topic, the better one can think critically about that topic, and the better one can evaluate the value of new information related to that topic. However, the opposite is also true and that’s a wicked problem.

So, in response, I have endeavored in the past to provide students with ‘strategies’ for evaluating information they found online. Here is an old screenshot of one such set of strategies that I first assembled around 2002:

infocrit

Early example of a ‘critical thinking’ strategy list

You probably see a lot of problems with using this kind of an approach. After using this with my junior and intermediate students for a few years, I did see some good things that came from it but, primarily, it had poor results. The good thing was that the students were learning about some characteristics of information and knowledge such as currency and bias. But the bad thing was that this list made the act of critical thinking even more daunting for my students. How do they know if someone is an expert or not? How can they really be sure if the information is up to date? Or, how does one really figure out purpose or bias when students have neither context nor background knowledge?

So, I still don’t really have an answer but I continue to learn and try new ideas and approaches with students. So far, I have learner that:

  • Learning to ‘do’ critical thinking, and learning about epistemological concepts, cannot happen in a few lessons or even in a unit. It is an ongoing, every day, all the time conversation. It’s a skill with many facets and dimensions like social skills or collaboration skills.
  • The more you know about something, the more you can make connections to other knowledge, and the better you can be critical about new information that comes your way.
  • Leading students through a series of engaging exercises and discussions about epistemology works better than trying to teach a set of ‘critical thinking considerations’ as displayed above. Fun exercises (such as ‘why no one knows REALLY knows how many moons Jupiter or Saturn has right now’ or ‘spot the fake web site’) can spark ongoing discussion about these ideas.
  • Adults tend to have an easier time being critical about new information because they have lived longer than children, have more experience, made more mistakes, have more knowledge, and so on. Many adults have general background knowledge about a wide variety of topics that at least gives them something to think with when being critical about new information (even they are not experts in the topic).
  • Thinking critically about information is ESSENTIAL for children to practice every day. One of my generation’s KEY skills was FINDING useful information. With today’s young learners, one of the KEY skills is thinking CRITICALLY about the information they (easily) find.

Other related things I think about:

  • What if the ‘expertise’ a person has involves information that might be widely considered spurious (e.g., government conspiracies, alien abductions, moon-landing hoax).
  • What constitutes truth when it comes to ‘news’ online? How can students navigate what is referred to as ‘fake news?’ Is the term ‘fake news’ just a trendy term meaning ‘biased news?’

I’m looking forward to learning your critical thoughts and ideas about this post! 🙂

Modern Literacies

I received an email from a teacher colleague last week and it contained a single sentence–a question: “I wonder if you might give me your definition of modern literacies?”

I was intrigued, not only by the question but also by the reason behind asking it (which she explained in a later email).  In any case, I did have some ideas about this but I never really worked it all out and wrote it all down. After writing back to her, I started to look up other people’s ideas and definitions and found a wide range of explanations. I find the topic of literacy and media, old and new, fascinating.

So here is what I wrote back. (Please comment at the end of this post to discuss. I would love to hear your ideas and thoughts on this.)


When I think of a child who is developing literacy, I think of him/her as developing competencies in both consuming and creating information in different media. By competency, I mean that students are making meaningful connections to their current knowledge and thinking critically about information they are consuming. Likewise, by competency, I also mean that students are communicating clearly when relating their ideas (expression) and effectively considering the needs (and characteristics of) the target audience(s) for the information they are creating.

I think the word literacy could be used to describe competency at different levels. For example, one could say any of these three things:

  1. How well do you use social media to share and learn? (How literate are you with digital media?)
  2. How well do you use Twitter to communicate? (How literate are you with Twitter?)
  3. How well do you use hashtags on Twitter? (How literate in hashtags are you?)

Regarding the idea of modern literacies, I think literacies involving media that are newer (e.g., YouTube, Twitter, Instagram, wikis, blogs, texting, email, etc.) one could discuss the development of literacy in each of these media and each could be considered a modern media, each with a corresponding literacy. There is certainly a fair amount of overlap of competency in each of these but I think there are also medium-specific competencies that are unique.

Additionally, I think the term modern literacies should be considered a relative term–what exactly it means would depend on the period of time or generation you are talking about. TV media would have been a modern literacy in the 1950s and 60s. When I reflect on the importance of media-specific literacies, I often think about a very well known (and well studied) debate that took place between Nixon and Kennedy in 1960. It was the first televised debate in the US. You can watch it below.

When watching the video, you can see how relaxed and healthy Kennedy looked, but Nixon looked thin and often very uncomfortable. There’s a good article from TIME called “How the Nixon-Kennedy Debate Changed the World.” This debate is an excellent illustration about how a medium conveys far more information than the raw information contained in the spoken words. People who heard the debate on the radio felt Nixon won. Those who watched it on TV thought Kennedy won. By 1960, 88% of households had TVs. Kennedy ended up winning the US election as we all know.

 

Show me the math!

Where is the math in coding? As much as I think that the connections between coding and mathematics are obvious, I think that there is a process involved in noticing and noting when mathematical concepts are demonstrated–some are clearly in use in students’ code and are easy to notice; other concepts are also in use but are more difficult to identify. I have always liked to think that code is thought made concrete. One of the greatest benefits of students learning through coding is that their thoughts become concrete, visual, manipulatable, discussable, viewable, and so on. This single affordance of code written by students makes seeing the math and the thinking possible!

Assessment for / as learning

Being in a teacher role and finding the mathematical and computational thinking in a student’s code in the midst of a group of busy students is not a simple process. I think it’s a skill, but one that can be learned and practiced.

Moreover, being in a learner (student) role in the classroom and finding the mathematical and computational thinking in one’s own code is also a skill and one that is worth practicing, as well.

When the teacher identifies mathematical concepts at work in a student’s code, and takes the time to notice it and have a conversation about those concepts, that’s assessment for learning. When the student identifies mathematical concepts at work in their own code, and takes the time to notice them and have a conversation about them, that’s assessment as learning. Each of these strategies should drive further learning, exploration, tinkering, and reflection. Both of these kinds of assessment need to be active all the time and structures need to be put in place to support them. Quality assessment for/as learning do not happen by accident.

Finding the mathematics at work in student programs

Even to a beginning Scratch user (student or teacher), I think the following example from a project created by a grade 5 student called Marie (not her real name) is clear and compelling.

After a few sessions of playing with Scratch and learning how it works on a basic level, there was a student sharing session where she learned that Scratch can draw things with a pen. The class was challenged to draw two-dimensional figures using Scratch. She wanted Scratch to draw a triangle (that week, the class was also in the midst of constructing various triangles on paper with protractor, pencil and ruler). This is the first attempt by the student:

Screen Shot 2017-09-06 at 9.32.28 PM

There is a good amount of mathematical thinking to notice and note here. Even though no triangle was drawn, the code clearly demonstrates that Marie:

  • knows that the sum of the three angles of any triangle is 180°
  • knows that an equilateral triangle has three sides of equal length and three equal angles, each 60°
  • is trying to transfer the steps in her paper and pencil drawing strategy to the Scratch environment

Why didn’t it work? This did not need to be asked; Marie said this aloud to herself. But then, her mouse started to click the green flag over and over, faster and faster.  Her screen looked something like this when that happened:

tri-hex

“Oh look! A hexagon!” Some students around her looked over to see what was going on. Marie then proceeded to change her code. Very quickly, it looked like this:

Screen Shot 2017-09-06 at 9.45.39 PM

She had meant to draw an equilateral triangle but she managed to draw a regular hexagon instead. After a fair amount of excitement and sharing, I reminded her about what a student had shared during the one of the previous sessions about the repeat block.

Screen Shot 2017-09-06 at 9.53.02 PM

Whatever the repeat block has in its mouth will repeat the number of times indicated. The result:

Screen Shot 2017-09-06 at 9.54.31 PM

Repeat blocks and looping logic in code can be applied to various concepts. This example shows a geometry and spatial sense idea where specific regularity and repetition of line lengths and angles result in different figures. Let’s get back to the triangle. Marie was simply asked by her teacher after the discovery of the hexagon: Now, what’s going on with the triangle? Marie changed the 6 to a 3 in the repeat block:

Screen Shot 2017-09-06 at 10.25.19 PM

So Marie and I had a conversation about her work. I asked: “Where are the three 60 degree turns. They have to be there because I see them in the code. What is going on?”** (see note below) This was enough of a prompt and an encouragement. Nothing was wrong with her thinking. But she realized pretty quickly that there was a difference between her drawing an equilateral triangle on paper and getting Scratch to draw one. Through some more conversation, she narrowed it down to something like: I am doing something extra when I draw it on paper that I left out in my code. Something was missing.

I came back to her about ten minutes later and saw that she made some revisions to her code and she had a protractor in her hand. She showed me something interesting. “I found the three 60 degree turns” she said. And there they were:

Screen Shot 2017-09-06 at 10.38.51 PM

She explained that Scratch turns 60 degrees clockwise starting from whatever direction he was facing. Looking at the protractor, she could clearly see now that he needed to turn 120 degrees after drawing the lines each time. She changed the 60 to 120 in her blue turn block:

Screen Shot 2017-09-06 at 10.42.36 PM

The great part of using Scratch as a tool through which students can learn concepts is that there is both a meaningful, logical experience in which a product was created as well as a safe, social component where other students or a teacher can have a conversation about the thinking and figuring out as it is happening.

“I’m going to write my blog post now,” Marie said. She knew that was always part of the process and a reflective blog post was a requirement not only for consolidation but also for later reflection during a future time when this experience could be used, transferred, incorporated, remixed, and so forth.

At the end of all this, I think I said something like: “Great! Can’t wait to read it. And I can’t wait to see what you do with the hexagon you made before!” Looking back at observations from the week before, not a single student in the class had accidentally created a hexagon when drawing a triangle using paper, pencil and a protractor. And I would be surprised if Marie did not know now, simply through hard play, that each interior angle of a regular hexagon is 120°. 

This post was about Marie’s geometry project on Scratch as well as a few observations I made and conversations we had. But there was a whole class of other students exploring geometry through Scratch. Check out what Karanvir was doing with a right triangle:

Screen Shot 2017-09-07 at 6.58.56 AM


** “Where are the three 60 degree turns. They have to be there because I see them in the code. What is going on?” — I am always learning how to best converse and talk to students during their thinking and figuring out. My biggest goal is to not do the thinking for them, and more: how to spark, encourage and pose good questions that provoke or prompt thinking in different directions. There would be a long list of ways to respond to Marie at this point. In my opinion, one of the worst would have been something like: “Oh look – I think you need to put 120 instead of 60 in for your turns. Try that and see if you get a triangle.” This could easily be seen as helping the student be successful. I get that. But the point of the whole exercise is that the student learns that a tool like Scratch can help them to think, experiment, play, share and discuss.

 

5 realizations that defined me as a teacher

Thanks to Jonathan So for the provocation:

In my own mind, I prefer to think of my list as realizations that defined me as a teacher.

Teaching grade one made me (professionally speaking)

I have spent a total of six years of my career teaching grade one or a one/two combined class. My very first year of teaching was a one/two combination. I knew nothing. I learned many things in my BEd degree (for example, I had an exceptional P/J mathematics instructor!) but my training did not address how to teach children to read. And I certainly did not learn how to do it in my very first year of teaching. I had no choice but to allow the wide range of my students’ competencies and confidences drive my own professional learning with respect to what I had to do to support each one of them in their journey towards literacy. It also clearly demonstrated that I had to learn with and from other teachers and make a commitment to continuous professional learning. These values and commitments continue to shape my learning.

My children changed my teaching for the better

I can honestly say that I did not have a real understanding of the impact of school and teachers in a child’s day-to-day life until I had children of my own (two daughters). I am guessing that most teachers with children would say the same thing. My knowledge before children of my own was completely one-sided, teacher sided. This is not to say that a teacher without children will/can never know; there are ways to learn. But, having children, and living the parent role and being a witness to children attending school, informed my approach to teaching at a very basic level. Among other things, I think it underscored strongly the importance of empathy, listening, relationships, and student passions/voice.

Who is in control of the learning?

I admit it. In my early career, I feared losing control of my class. Not only in the behaviour sense but also in the learning sense (and, of course, now I know they are both completely connected). I planned all the learning my students would do in advance of the day making pretty much all the decisions about how concepts are best taught (and learned by students). Of course, that worked for a small group of my students but many had “problems” that needed more time, remediation, reteaching. Those students were having difficulty learning. Actually, no… they were having difficulty with my assumptions about how to best learn it! This was a hard realization to let take hold of me. But it did. I was creating problems that should never have existed. Now my mindset is a clear one of learning reconnaissance, iteration, feedback, and true informative assessment—what do students know, how does each child learn, what is exciting to each one, where are they coming from, how does each child proceed, how do I do things that respects how children learn, how do I interact and support learning in a culturally responsive way, how can I model growth and co-learn, how can we make things and talk about things with each other, how do I put them in the driver’s seat of their learning and their lives? It’s a long list of questions instead of a long list of assumptions. That’s the key. The reason my blog is called makelearn.org is a result of this realization. And Seymour Papert puts it nicely (see the quote at the very top). Then, when I read Bo Adams’s post a few years ago, I instantly loved his notion of one “C” to rule them all.

Project-based learning & constructionism

If the previous realization was the “what/who” than this realization is the “how” or the verb that causes the action of learning. How do we get there? Projects! Passions! Play! Peers! Making things. Reflection and discussion. Iteration. Growth mindset. Design. And so on. I still remember the very first PBL-based activity session with my students. It was unnerving and exciting but I knew it was the right way to go. Voice and choice were honoured. It was very inconvenient initially as I did the heavy lifting of connecting the curriculum to the student’s learning (so that I could write report cards). In time, we did that together – we looked at the curriculum together and figured out a learning direction together. We made the map together. We learned about how we would know if we knew. The responsibility was shared and expectations were high. But the students were in the driver’s seat. Sometimes I was a bit like a driving instructor, sometimes I was a curious (and very interested) passenger.

Curriculum – segregated vs. integrated

This realization is a result of the PBL and constructionist activities of my students. The current curriculum is designed and communicated specifically for the convenience of teachers (and reporting), not students. It is segregated. Everything to be learned is clearly pulled apart, domained, listed, ranked, organized, and so on. In the process, though, a lot of the meaning and purpose is pulled out, too. In my early career, I felt responsible for reintegrated the curriculum and trying to find ways to inject meaning and authenticity into my students’ activities. However, again, those were my decisions and my plans that were set in advance and it pretty much ignored student interests. No student voice. No real choice. The curriculum still IS segregated into different domains. But everyone knows that the real world and real interests don’t work that way. Real learning is authentic, meaningful, significant and, I think, should be project-based and connected at the centre to student interests and social justice. This is not new. Cross-curricular and multidisciplinary approaches are common. But official curriculum documents usually silo domains of knowledge. Wouldn’t it be interesting if a curriculum was written to be convenient for students and learning rather than for teachers and instruction?

Star Wars and the micro:bit

“I wanted to make it play the theme from Star Wars.”

So began a Grade 5 student’s response this week when I asked her what she was working on with her micro:bit program. It was her very first session with it but she, and the rest of class, did have several other experiences in recent months making things with Scratch.

I recorded a video in which she runs her program for me; you can hear the theme.

She then went on to explain that she had recently learned how to play the theme from Star Wars on the recorder. She knew the fingering, the notes, and the length of the notes. Now, she decided to make the micro:bit play it. She showed me how she used the ‘play tone’ blocks to make the notes and set the length.

Here is the bit of code she made that plays the notes:

star wars microbit

Three things made a strong impression on me as she told me more about her project:

  1. She came up with her own exciting idea to do something on the micro:bit and was given the encouragement and support to try it. She was passionate about the idea.
  2. She transferred her knowledge of playing the recorder to coding the micro:bit to do the same thing. This reminded me of Papert’s notion of syntonic learning in Mindstorms (although not exactly the same).
  3. She transferred her knowledge of making & coding in the Scratch environment to the process of making & coding in the makecode environment she was using.

And, there was a fourth thing that made an impression—the variety of projects by the other students in the class. By genuinely inviting students to pursue their own exciting ideas and passions for an initial project on the micro:bit, they were highly driven to see it come to life. In the span of about 45 minutes, and in the very first session, students made digital dice, a magic 8-ball, and music or message events tied to buttons. They were already talking about things they were going to work on at home.

If you have not yet read it, I highly recommend reading this article called A Different Approach to Coding written by Mitch Resnick and David Siegel. The 4P approach outlined in the article (and summarized below) is a tried and tested set of guiding principles that results in a higher level of engagement, motivation, exploration, and far more meaningful knowledge & skills being developed over time (I recently wrote about the kinds of knowledge and skills I would expect of effective coding to learn experiences).

4ps

“Coding to Learn” Outcomes

computer-child-program

Does the computer program the child or does the child program the computer? —Seymour Papert

[Updated July 2017]

I want to share my set of “coding to learn” outcomes. These are the things that I am looking for in children who are coding in educational contexts. These are the targets in my mind. To me, these represent the powerful learning potential in coding to learn.

“Coding to Learn” Outcomes

Students are:

  • learning to express their creativity using coding and technology
  • learning to solve a variety of problems encountered in their projects
  • demonstrating a growth mindset (rather than a fixed mindset)
  • speaking mathematically to the computer/device through their coding
  • making exciting, personal ideas come to life through coding (this serves as the prime motivator for students to learn, play and push their coding skills further every day)
  • creating meaningful software applications rather than isolated chunks of code
  • actively learning from, and sharing with, others (face to face & online)
  • learning to visualize a process that accomplishes a task in their project
  • learning, practicing and refining the design process
  • reflecting on their thinking and learning in order to transfer to new challenges
  • excited about learning and exploring coding and technologies on their ‘own time’

But where is the curriculum in all this? That’s probably a great topic for a different post but I do strongly believe that, for example, the ‘math curriculum’ could be completely integrated within a year long series of programming projects by students. I firmly believe that, within a constructionist philosophy, all crucial mathematical concepts could be built via effective coding experiences.

Over time, my approach to introducing coding, and the way my student use coding to learn, has changed. I hope it has improved. The way I measure my success is how strongly I observe the above “Coding to Learn Outcomes” in my students.

Below I have tried to describe, in a concise way, the progression in the way my past students have learned to code and learned through coding. At the beginning of my teaching career in the early 90s, I admit that I saw computer programming as a skill and as a separate subject. When we explored programming in my grade 5 classroom, that is how I approached it and how students saw it. Over time, I’ve made many changes to my philosophy and my practice in order to get to the potential outlined in my “coding to learn” outcomes.

Most outcomes are NOT evident or VERY WEAK

  • Coding is approached like a separate curricular subject
  • Coding is not understood as a literacy
  • Taught as discrete lessons, teacher driven, skills based
  • Focus is “learning to code”
  • No integration with other learning, school activities, or students’ interests
  • Coding tools chosen by teacher are designed for programming, not learning through code
  • Teacher role is instructor and coordinates learning through series of lessons
  • Students learn to code within a linear instructional design
  • Assessment is based on coding quizzes and tests
  • Sharing or remixing code is seen as cheating

Outcomes that are in evidence are WEAK

  • Focus is still “learning to code”
  • Mostly skills-based approach, series of lessons or assignments
  • Coding not understood as a literacy or creative tool
  • Lesson-based but some time for exploration, some choice
  • Coding is a short unit, not integrated into other learning
  • Some effort to make learning to code more meaningful beyond just a skill
  • Use of coding tools with some effort to connect code to more meaningful things
  • Teacher role is instructor but encourages some student-chosen explorations
  • Some deliberate attempts to connect learning from coding
  • Assessment based on quizzes, test, and projects

Most outcomes are in evidence and STRONG

  • Focus is “coding to learn” rather than “learning to code” but both occur
  • Coding is understood as a literacy through which ideas can be expressed
  • Attempts are made to integrate coding activities into other learning and school endeavors but not to high degree (full potential is not realized)
  • Student-centered approach, student voice and interests are valued
  • Regular sharing of ideas and code is encouraged between students
  • Choices for students, coding challenges, longer term projects
  • Students are encouraged to solve problems together
  • Teacher role is coach, modelling growth mindset
  • Teacher reflects on expected outcomes vs. observed outcomes
  • Assessment based on teacher observation and student projects
  • Regular, deliberate attempts to connect learning and coding; learning through coding has authenticity to students
  • Regular, deliberate attempts for student to reflect on coding, thinking, etc.

Most outcomes are STRONGLY in evidence and ROBUST

  • Focus is “coding to learn” rather than “learning to code” but both occur
  • Coding is integrated into other learning and school endeavors
  • Coding is understood as a literacy through which ideas can be expressed
  • Students engage in long term projects / inquiries of learning through coding
  • Projects and programs arise from student interests and passions, teacher’s role is to help connect to curriculum expectations; student interest came first
  • Regular sharing of ideas with peers and online discussion
  • exploration and playing with ideas and code is actively encouraged and shared with peers
  • Teacher role is coach, modeling growth mindset
  • Teacher is co-thinker, co-coder, co-learner
  • Teacher reflects on expected outcomes vs. observed outcomes
  • Assessment based on teacher observations, conversations, interviews, student products, student surveys, and student reflections
  • Regular structures in place to connect learning and coding (using coding literacy in other aspects of school activities, meaningful, authentic use is primary goal)
  • Regular structures in place for student to reflect on what they are learning through coding experiences

Scratch is the right place for coding

Coding in education is once again gaining more and more popularity in education. There are now too many coding tools, online and device-based, to keep up with. There are so many choices now for students, teachers, or for anyone looking at using coding in education. Choice is great but it creates a new challenge for teachers – which tool(s) is best for my students?

But coding in education is special. It’s not just learning about loops, variables, objects and if…then statements. Coding to learn in education has a long history. But computer science and computer programming also has a long history. Often, they are getting mixed up and, I think, there is time and effort being wasted as a result.

Here are the terms again with an explanation as I see it:

  • Coding to learn (constructionism)- the focus is on being creative, designing things, and learning concepts through the act of computer programming. Projects are coded in a social environment, ideas, problems, solutions are shared and discussed.  The nitty gritty of the programming code itself is important, too, but not the primary focus.
  • Learning to code (computer programming) – is a discipline and skill in which a human is creative and designing things, and puts together codes and symbols, in a logical, organized way, to instruct an electronic device what to do with input or data. The efficiency and structure of the code is paramount as is the program’s capability to complete the computing task(s).

Neither is better or worse than the other. And both overlap and are interrelated. The question I want to raise is: which one is the primary focus when students are coding?

Students are learning things through the act of programming when they code to learn. Students who are learning to code are learning to be adept at programming (e.g., good efficiency, algorithms, structure, design, readability, annotations, etc). I think BOTH will happen despite the focus, but I think educators need to think about focus all the time and understand why their students are spending time coding. I wrote about this a bit before in this post.

If the focus is coding to learn, then I think there are other considerations that must be made besides the focus. For example, is the tool students are using in sync with the focus? This is where I am seeing some time wasted. There are lots of educational coding tools available but there are few coding to learn environments. Lots of blockly or Scratch-like block code tools are great for providing options but often they are missing essential components that make the tool better as a learning and thinking tool. (Likewise, there are software development environments that are specifically designed to facilitate rapid application development and provide the essential tools a programmer needs.)

I freely admit that I am a Scratch chauvinist.  I think that the Scratch environment, which continues to be free and has been online for many years, is the best place for students to be coding to learn. Why? Because it has built-in features that support tinkering, creativity, sharing, discussion, remixing, experimentation, exploration. It was designed from the beginning to allow for:

Screen Shot 2017-05-27 at 7.32.49 PM

Scratch script featuring coloured code bricks

tinkering and playing – the coloured code bricks are inviting to children,  like LEGO they snap them together and try them out and see what happens. Bricks are groups according to their purpose, for example, blue bricks are for sprite movement or location, orange bricks for variable functions.

Screen Shot 2017-05-27 at 7.39.37 PM

Scratch Project with user uploaded images

personalization – children can make their projects more interesting and meaningful by using their own images and sounds if they wish. Image files and sound files can be uploaded. Audio can also be recorded within Scratch if a microphone is available. Images can be edited within Scratch.

Screen Shot 2017-05-27 at 7.35.14 PM

Scratch – Remix Tree

collaboration – Scratchers are not alone; they form a community of makers, tinkerers, artists, game designers, and so on. Projects can be shared and remixed by anyone in the community. Discussion boards are connected to each project and to every studio.

In addition to these design principles, Scratch was developed to have a low floor, high ceiling and wide walls. This excerpt from Scratch: Programming for All explains these ideas:Screen Shot 2017-05-27 at 7.28.34 PM

Finally, one of simplest, but most important, features of Scratch is that it is a cloud-based tool. Users can create and save their work in within Scratch environment. And, because it is a cloud tool, students can access and work on their projects from any computer simply by logging into their account. This facilitates quick and easy access; that means that long-term, project-based learning is supported. Research I have read, and my own work with students over the years, has shown that “one-off” or isolated experiences with coding has almost no impact on student thinking and problem-solving and it is not meaningful to students. I have witnessed students working on long-term projects in Scratch—they care deeply about what they are doing, they think about it between sessions, and they are continuously engaged in this balanced interplay between creativity (getting exciting ideas about what they want to do) and problem-solving (making the ideas come to life in Scratch).

Dear Apple, Google & Microsoft

Dear Apple, Google & Microsoft:

I am a teacher and I like it when technology empowers my students, gives them voice, and helps them to create, design, share, and discuss. Your tools are great and they are used in education to do all of these things. Thank you. Sometimes the tools are free and sometimes they have to be paid for. Fair enough. It’s business. And the competition between you will keep the tools sharp, useful and relatively cheap. I hope.

I’ve even checked out and tried out many of your certification programs that you offer for your tools. I have certifications from all of you but I decided early on not list them; I didn’t want to be, or appear to be, aligned or biased towards any specific tool or company. Students and learning are my focus. Nevertheless, I am tempted to list them, sometimes, when I look at other educators’ social media profiles with strings of certification letters. It shows that they have met a certain standard and now, other people know it, too.

Don’t get me wrong. I am extremely pleased with the availability of your various high quality tools, both hardware and software, for my students to use. And I don’t for one minute think less of any teacher who achieves and/or lists certifications from Apple, Google and Microsoft in their profile. As I just said, I have a bunch of certifications, too. My concerns don’t rest with my colleagues at all. My concerns rest with three specific issues I have:

  1. a feeling of ‘being used’ as part of advertising
  2. losing sight of what really matters
  3. that one company’s technology has everything you need

I know ‘being used’ might sound a little harsh… and it is probably hypocritical, as well, since I have certifications from all of you. But I am getting more and more suspicious of these certifications. Are they really helping teachers to learn more about how technology can be used to empower students and transfer agency to them? I read the rationales in your ads about your certification programs and I wonder. The ads say things like: “You’ve spent the time growing your skills, now get certified to be recognized for the work you’ve done” (1) or “As an Educator you can build skills on iPad and Mac that directly apply to activities with your students, earn recognition for the new things you learn, and be rewarded for the great work you do every day” (2) or “The Microsoft Certified Educator (MCE) certification validates that educators have the global educator technology literacy competencies needed to provide a rich, custom learning experience for students” (3).

Recognition. Validation.

But in every certification process I have participated in, I’ve never been asked to critically compare similar tools from different companies in terms of their efficacy with students. I’ve never been asked how I could combine tools from different companies to best meet the needs of students. I’ve never been asked to explore in-depth how a tool, combination of tools, could help students think, learn, and share. (Interestingly, there was one certification process where I did do all of these things quite regularly—but that was in university.) So, I cannot help but feel that these certifications (and the constant encouragement to share them) are more about business competition and advertising and less about empowering modern learners.

What is most important in education is learning. What helps kids to learn better? What barriers are in the way of learning? What empowers kids? To me, these are the essential questions and these are the things I find that I have to constantly keep reminding myself of. As cool as Google Expeditions are, for example, one must ask how specifically it will help kids learn better? I’m not saying that it will or it won’t… My point is that one must take care not to lose sight of what really matters. I admit it; I am guilty of it all the time… and, all the time, I have to work hard to center my thinking on learning, and then surround myself with these essential questions: What helps kids to learn better? What barriers are in the way of learning? What empowers kids?

 

Coding, Thinking, Reflection & Transfer

Screen Shot 2017-04-23 at 8.44.38 PMI am always asking and thinking about three questions regarding the use of computer programming as a tool for (co)learning, (co)thinking, (co)designing, and self-expression in schools. Within educational contexts, my questions are:

  • What is the promise of coding to learn?
  • What is the promise of learning to code?
  • How can the promise of each be be realized?

This post is in no way an in-depth look at each of these questions; in fact, exploring these questions amounts to a significant chunk of my on-going professional learning in a career-long journey that started with this thesis.

But, recently, I’ve been thinking far more intently about the role of reflection applied to the development of coding projects by students and how reflection might enhance learning and transfer of learning. I have made observations of students coding; I have interviewed students in the midst of designing and realizing their projects; and I’ve reflected on my own experiences with computer programming over the years.

I’ve noticed that after solving problems that arise in coding projects, children often forget, or don’t attend to, the details of their thinking process when looking back at the program. While it is true that the result of their thinking process is captured in the product they created, how can we (and they) gain insights into the process?

What I have also observed, and felt as a programmer, is that the kind of reflection I am talking about is not helpful at the time of solving the problem. Keeping notes about how and what I am thinking when I am solving a problem would interfere with thinking itself! Any extra descriptive information I might want to capture in the middle of coding is usually highly practical (for example, I might want to make some notes about how a list of variables is being used in a function or I might want to write a note to myself in the future when I start to work another part of the program).

But one of the promises of learning through coding is the development of creative problem solving competency that can be transferred and applied to new contexts. That is, it is not enough that new knowledge and skills are learned… one needs also to learn how to apply the new knowledge and skills in the future. This is a paraphrasing of Papert’s Principle: Some of the most crucial steps in mental growth are based not simply on acquiring new skills, but on acquiring new administrative ways to use what one already knows. 

So, this is the focus of my question. How do we as educators help, support, encourage, facilitate, ensure that learners are acquiring new administrative ways to use what they already know? I am thinking reflection could be a powerful strategy–placing value and taking the time to really think about what was learned or figured out… thinking about how problems were solved, what mistakes were made and what success were had?

In my role as an educator and facilitator, I’d been reading these reflections and having conversations with students and looking to highlight any of the following:

  • creative process
  • design process
  • self-expression
  • collaboration
  • problem solving, testing, debugging
  • generalizing strategies & concepts
  • algorithms
  • efficiency
  • programming repertoire
  • code portfolios & remixing
  • learning transfer

What if an appropriate reflection is attached to the product, either in contextual notes within the code itself and/or by creating a parallel product such as a blog post in which reflective thoughts are captured? The criteria behind “appropriate” I think is the most important part of this and this would vary depending on quite a number of factors. I am currently facilitating a lot of 9-10 year olds working on long-term coding projects in Scratch. So, perhaps some reflective questions might be:

  • Tell the story of your project. Why did do it? How did the ideas for parts of your project change after you started?
  • How would describe the design process you used in your project? Imagine you are telling a friend about it who is interested in working on a similar project.
  • Tell the story of how you solved problems that came up in your project? Try to name the problem and describe why it was a problem. What was the process you went through to go about solving it?
  • What new ideas, questions or goals have come about as a result?
  • Create a timeline, description, process steps, of the creation of your project from start to finish?

I continue to think about the role of reflection and how to incorporate reflection with these students in way that is actually useful to them. I’ve been rereading a number of resources about reflection in learning within this new context. Here are some I have been looking at; if you have some great resources or you have ideas, comments or responses to what I am thinking about in this post, please comment below.

Some learning transfer and learning reflection resources I’m looking at: