Spiraling cycle of design in Scratch (#peel21st April 2016 blog hop)

This blog hop topic of ‘design’ could not have come at a better time. Students and I are in the midst of designing a game called ‘Peela’ or ‘The Yellow Bug’ game in Scratch (click to try it). This project serves as an example, challenge and provocation for students. There are so many decisions that go into designing a fun game: the user interface, the goal(s) of the game, how does the game require player skill, difficulty-based levels, balancing success and failure in user attempts to seek a high score, sense of fun and excitement, appealing graphics, sounds, music, rewards, and so on!

scratchchall

I think game design is an outstanding opportunity for students to engage in and be engaged by a spiraling cycle of design / critical-creative thinking process. I fully subscribe to the ‘Kindergarten learning approach’ espoused by Mitch Resnick (concisely outlined in his 2007 paper).

design_graphic

To me, game design affords students the opportunity to engage in a goal-directed project that is fun but hard, invites feedback and collaboration, involves continuous problem solving, and embraces a highly creative process. The learning is rewarding and brimming over with the development of quality knowledge building and skill development. Scratch is an ideal programming environment because it has been designed from the start to support a spiraling design thinking process while remaining very accessible and functional to young children.

This post is one of many in the April 2016 #peel21st blog hop. Check out the other posts:

What does global citizenship mean to you?

Recently, the Ontario Ministry of Education released “21st Century Competencies: Foundation Document for Discussion.” I think that the outlined skills on page 56 in the 6th box called ‘global citizenship’ are excellent:

global
I also really like the way the Asia Society discusses global competence.  Essentially, their central idea is that knowledge and skills that are explored and learned need to be explored and learned from a variety of cultural perspectives in order for students to be globally literate. I am not entirely certain that the 6th box pictured above really captures that idea. (An excellent reference document called Educating for Global Competence is available on the Asia Society web site.)

That is, in order to gain a more balanced, inclusive global perspective, developmentally appropriate strategies should be employed to help students to weigh perspectives, to understand and communicate to different cultural audiences, to confidently take actions to improve people and the environment, and to remain a lifelong learner who can continuously adapt and empathize with an always changing and evolving global society.

I’ve just finished reading an excellent book, called Four-Dimensional Education, that embraces this view and also proposes a workable, four-part framework for curriculum redesign. If you are ready for an in-depth examination, check it out!

4dimed - Copy

This post is part of the #peel21st March blog hop! Please check out the other great blog posts in this hop:

Five useful tools to support music education

Here are five of my favourite apps/online tools that can be used to create, share, or listen to music. In the list below, click on the name of the tool to visit the web site and find out more about what it can do and how to download it.

Explain Everything (iOS & Android)

This versatile, open-ended app has no limit to the way it can be used in educational settings.  It has all of the features of a slideshow app, a screencasting app, and a whiteboard app.  For music, it could be used to record sounds of instruments and/or voice, ear train, annotate performances, create graphic scores, etc.

Example use: http://www.constructivisttoolkit.com/home/explain-everything-ear-training

 

GarageBand (iOS) 

This Apple app succeeds at making the creation of music accessible to people who may have little musical training, or even none at all. The app can be used in different modes and can support various levels of competence in musical composition. In the video below, the actual GarageBand tutorial starts at about the 4:00 mark.

 

Noteflight (online tool)

This free, online tool for writing standard musical notation is one of the easiest to use. Users can create scrores and have the ability to produce publication quality scores. Or, students can have fun freely exploring their music ideas; it’s easy to experiment with notes, rests, clefs, signatures, mordents, tempos, and so on. The tool has a built in playback mode so that users can listen to how their composition sounds.

 

MadPad (iOS)

This app lets you “remix your life.” That is, you can make recordings of various sounds you make or hear to create a custom percussive pad. You can create rhythms and beats from the sounds of your life. Users can also record specific performances and export the video to the camera roll.

 

NAXOS Music Library (online resource) 

If you are a PDSB student or teacher, you can access this resource at school quite easily by clicking on this link: http://peel.naxosmusiclibrary.com/ If you are at home, you can access this resource for free by using this link: http://naxosmusiclibrary.com/ and then entering the correct username and password. The login information is available at your school.  This resource contains over 1.7 million music tracks in every musical genre!

 

#peel21st Blog Hop

This post was part of a blog hop organized for #peel21st in December, 2015.  Please check out the other blogs in this hop by clicking on one of the links below:

Memorable learning moment (#peel21st Nov 2015 blog hop)

A grade six teacher and I had co-planned a series of sessions with her students around coding with Scratch. In one of the later sessions, I was working with a boy who was frustrated with the game he was making and told me he wanted to start over again.  In age appropriate words, I reassured him that programming involved working in a continuous state of problem solving. In fact, fixing coding errors in programming has a special word: debugging.

Scratch "Game challenge"

An example maze game in Scratch.

I pointed out that it appeared to me that his code was progressing quite well. He accepted my offer to help him. I modeled the problem solving process of isolating chunks of code that might be causing the error. Akin to breaking a complex problem into more manageable parts, this strategy helped him fix his code because he was able to test his code bit by bit rather than all at once. Because he could now pinpoint where each problem was, it became far easier to see what the problem was.

At the time, I felt he was operating with a fixed mindset, at least initially. Without doing the actual work of solving his problems for him, my goal was to talk out loud, using growth mindset language, and model some strategies that might work.

There were three bugs in his code and he fixed each one by isolating the problem and stepping through his instructions one by one. I wasn’t surprised that he became very enthusiastic and confident about his program. What did surprise me, though, was how effective it was to simply alter my language so that it consistently reflected growth mindset thinking.

whatotsaygrowth

Source: http://www.edweek.org/ew/articles/2015/09/23/carol-dweck-revisits-the-growth-mindset.html 

Check out these other blog posts in our first #peel21st blog hop of 2015-2016:

 

Kids and coding: What might Seymour Papert say?

I am very pleased that there is a growing sense in the education world of the connection between coding and cognition and learning. There is a mountain of research examining the various beneficial cognitive effects of learning computer programming. Great! But, I believe Seymour Papert would say that students learning computer programming is only part of the vision for higher quality learning today.

In his 1980 book, Mindstorms: Children, Computers, and Powerful Ideas, he does not say that coding or programming per se is the answer to higher quality thinking and learning.  But he does outline an environment, called a microworld, as the place where powerful ideas and strategic thinking can be developed. I see his microworld learning environment as the marriage of three key ideas (more detail here):

  • the concept of ‘objects to think with’
  • the discipline of computer programming
  • the theory of genetic epistemology

Papert believed that learning about concepts within a microworld learning environment would result in much higher quality learning, that is, a deeper understanding of concepts would result, more so than traditional learning environments. All microworlds must contain a ‘object to think with’ that serves as a focal point of thinking. Decades ago, Papert designed a robot, called a Turtle, that students could relate to both physically and emotionally. Students wanted to teach the Turtle new words in the microworld, such as SQUARE or CIRCLE, and, in so doing, the Turtle could move in more and more complex ways.

Usually, students ‘played Turtle‘ first by moving their bodies in the way they wanted the Turtle to move. Then, they tried to cause the Turtle to move in the same way that their bodies moved. As they broke down the steps in their own physical movements, this knowledge was captured and translated into code (in a programming language called LOGO) which was typed into the computer that controlled the Turtle. Initially, the Turtle did not move they way they wanted.  They altered their code and the Turtle started to move more and more in the desired way. This cyclic process of continuous improvements in the code resulted in continuous improvements in the Turtle’s movements.  Eventually, their initial movement goal was realized.

In this example, the Turtle is the physical object to think with, programming with LOGO functions as the cognitive tool, and the whole rationale for the activity is based in Piaget’s theory of how new knowledge is created in the mind (which he called genetic epistemology). In this case, the knowledge being built is knowledge about geometry. In a microworld, there is always a meaningful context for learning.

Another aspect that must be pointed out is that Papert is clearly making the case that as children are constructing their programs, cognitive structures are being constructed in their minds. This kind of approach to teaching & learning is called constructionism. (For more about Papert’s contributions to education, take a look at this excellent TEDx talk by Gary Stager.)

My worry is that the educational world will fixate on purely coding and programming. Papert’s ideas are neither inaccessible nor out-of-date; they are worth learning about; they can be a powerful influence on the way we teach and the way we think about how children learn. There are already modern versions of the Turtle, such as LEGO Mindstorms, and modern versions of the geometry microworld, such as Scratch that students and teachers can successfully use in schools. One of my primary goals in educational technology is to promote the notion that if you want powerful, high quality learning, then technology must always be used in the service of learning or making or creating or designing. Coding for coding’s sake does have cognitive benefits but those benefits can be multiplied if coding tasks are contextualized, within a purposeful educational design, and within an effective learning environment.

spiral

The SAMR model was not created to classify apps

SAMR-thingThe SAMR model was not invented as a way to classify apps.  This poster continues to be circulated widely among educators over the past few years. Unfortunately, it also continues to perpetuate a misunderstanding of the SAMR model.

I use this poster and others regularly in professional learning workshops as a provocation. Discussion about the possible merits of the poster and its accuracy are very instructional. However, in the end, the poster is misleading.

The SAMR model is one possible way to think about how technology is used within a given instructional design. There are ample resources, videos and presentations online about the SAMR model and how to use it, not the least of which are those of its creator, Ruben R. Puentedura, on his blog.

However, this graphic seems to suggest that the apps pictured can only be used at certain levels of the SAMR model.  Nothing could be further from the truth. Also, there is no indication of an original task.  You cannot classify the way an app (or any technology) is used within the SAMR model without a context and none of the apps pictured are contextualized in any way.

In fact, this graphic is one person’s arbitrary estimation of what app might be applicable at some given SAMR tier within some given context. Any one of these apps could be used at any level.  It’s not which app that’s important; it’s how an app is used.

For example, I have seen the Educreations app used in a large number of different contexts and at all four levels of the SAMR model. It all depends on the original task and how the app was integrated within the instructional design. I would even go so far as to assert that each and every one of these apps could be used at any of the SAMR model tiers.

10 Good Things

Thanks to a challenge from Tina and Jay, two of my #peel21st colleagues, I wrote a list of ten good things about my professional practice right now. As Jay noted, it’s always tempting to be critical but it always helps to consciously reflect on the good things that are happening.

So, here is my list of ten good things going on right now for me professionally.

  1. Professional relationship with teachers – nothing really exciting happens unless a trusting, positive relationship is in place. I am so fortunate to work regularly with so many educators who are as excited about their own learning as they are about their students’ learning.
  2. The students in our school system, as Neil Postman has said, “are the living messages we send to a time we will not see.” I am grateful to be reminded every day that they are the reason to take our job seriously and always remember that we are shaping the future with every interaction we have with each student.
  3. As far as I can tell, Twitter is continuing to be the perfect tool for connecting educators. They love it because it they can join and participate in conversations quickly and because of the way it works, they can take just a few minutes out of a busy day to catch up on some tweets or invest a few hours to participate in chats and share ideas.
  4. Similar to Jay and Tina, I do love blogging and wish I could write more than I do. Even as I type this, I am hyper aware of the five draft posts that sit in my blog waiting more attention. I do need to try harder not to be so perfectionist before I hit the publish button.
  5. My team of ITRTs never fail to support, inspire and inform each other. I am grateful every day that I am part of this team. We all love the role we play and I sometimes wonder if it’s because we are constantly challenged to learn new things and look at circumstances from the perspective of others so that we can support them better…
  6. Mobile technology has the potential to really make a difference for students. I am grateful for how this technology is flooding into every aspect of our lives and becoming the norm. It brings new challenges, I know that all too well; but, I think, it has the capability to personalize learning and shift more control into the hands of learners. The trick is working hard to make that happen. That’s why I love my job and why I am so lucky to be involved in edtech at this particular point in time.
  7. Participating and presenting at conferences, such as ECOO/BringIT and CONNECT, are also highlights each year because it can mean new connections with educators, face to face conversations/lunch with educators already in my network, and learning new things about pedagogy and technology that I can take away and share with the teachers I support.
  8. I am grateful to Seymour Papert for being a constant inspiration to find really exciting, engaging and effective ways to use technology in a way that impacts learning at the deepest levels. It’s amazing to read his decades-old books and articles and to realize that they represent a powerful vision that has yet to be realized in education. But, I think recently, we are making real progress.
  9. Tim Hortons plays a significant part in my professional development by providing refreshment every day and ‘roll up the rim’ fun every February. I do think we need a Tims location attached to every Ontario school facility. They are already in most hospitals. There’s the precedent. How about it, Minister Sandals?
  10. I am grateful for ‘tomorrow’ because it always represents a new beginning, another chance to connect and work and play and learn together with my colleagues and their students. As corny as that sounds, it’s true. And, at least for me, thinking in that way always makes it easier when one has a discouraging day. Tomorrow always holds as much potential as one can imagine.

I’m sending out a challenge to my other ITRT colleagues (Dave, Ed, Samir, Graham, & Tracy) to write their #10goodthings post!

Learning in the 21st century: What does it mean to you?

Every day I read or hear about a new tool, app, web site, kit, toy, or device that is reported to have a significant impact on student learning. Actually… none do. The way they are used… might.

So-called “21st century skills” (such as collaboration, communication, creativity, critical thinking) have been arbitrarily chosen… and they existed long before the new century. These skills, and many others, have always been important in education.

However, the ever growing potential to use powerful technologies to facilitate thinking and share learning is empowering, invaluable, irresistible. So, to me, learning in the “21st century” means that students are learning how to effectively use technology to better think, create, analyze, learn, and share.

Of course there are many people far more eloquent than I:


Thanks for reading this post! It was part of a #peel21st blog hop that transpired on November 18, 2014.  Please take a look at the other posts in this hop.  Each author had to respond to the question “Learning in the 21st Century – What does it mean to you?” in about 100 words.

Susan Campo
Jim Cash
Shivonne Lewis-Young
Greg Pearson
Phil Young
James Nunes
Donald Campbell
Ken Dewar
Graham Whisen
Heather Lye
Lynn Filliter
Debbie Axiak
Alicia Quennell
Jonathan So
Jim Blackwood
Jason Richea
Tina Zita
Sean Coroza

Introduction to ScratchJr

[Note: Updated, April 22, 2015]

What is ScratchJr?

ScratchJr is a tablet app that young children can use to create simple programs such as stories, games and animations.  The iOS app was released in July 2014 and was created by MIT and Tufts University. In April 2015, the Android app was released.

Despite the fact that MIT’s Scratch (http://scratch.mit.edu) is probably the most accessible programming environment for children, you might be looking for an even simpler coding learning environment, perhaps for very young children.  ScratchJr was created specifically for them.

Both environments allow users to move and connect coding blocks to control the actions of characters (called sprites) within a rectangular window (called a stage). Blocks are organized into different colour-coded categories; for example, one group of blocks control movement, another controls sprite size, and still others control when, and how many times, an event occurs. ScratchJr projects can be shared between iOS devices using AirDrop or between iOS and/or Android devices via email.

Is ScratchJr the iPad version of Scratch?

No, ScratchJr is not the iPad version of Scratch.  They are actually quite different when you examine the programming potential of each. ScratchJr would be more aptly characterized as “ScratchLite” or “SimpleScratch.” I have seen Scratch used by all ages of children in school, from K to 12, and very successfully.  Programs in Scratch can be incredibly simple or incredibly complex.  ScratchJr is only capable of fairly simple programs, and primarily narrative animations. However, ScratchJr works on mobile devices whereas Scratch does not. That’s great news for many classroom teachers and students alike.

What can students learn with ScratchJr?

The most important educational value of any programming environment is that it allows for the student to make their abstract thought processes visible on the screen. Once the thoughts are made concrete, they can be easily manipulated and controlled by the student in a more tangible way. And, because they are displayed visually on a screen, the teacher can also see what and how a student is thinking. Scratch and ScratchJr were designed so that this visualization is very clear; the code blocks appear as coloured boxes that snap together so that programs can be built (rather than using typed in commands, functions and statements).  The blocks are visual and can be moved around and placed with the mouse or finger.

What are some project ideas that ScratchJr can support?

Below are some example learning activities that I have designed with classroom teachers that I support. The students were all in primary grades (K-3) and usually worked in partners using one iPad. In Kindergarten classes, ‘reading buddies’ were rebranded as ‘tech buddies’ or, better, ‘learning buddies’ and helped only as much as the Ks needed it:

  • Create a coding challenge to a friend but also integrate math curriculum expectations (see videos below)
  • Organize procedural thinking into a concrete creation, such as a narrative (see video below)
  • Create a game in which the user has to touch a fast moving character in order to move to the next level
  • Use the built in x-y coordinate grid to create/test position pattern rules and transformational geometry concepts
  • Create a realistic or funny animation, such as a character bouncing a ball and throwing it into a basket
  • Use the voice record tool to create a word wall that reads the word out loud when touched by the user

Each of the above ideas has several connections to the Ontario Language Arts or Mathematics curriculum.  ScratchJr is an excellent iPad app because it is open ended, supports creativity, and has an intuitive user interface.  Plus it is free.

The ScratchJr web site offers many useful resources for teachers to learn more about how this app can be used effectively by students:

Curriculum Examples – Mathematics Expectations

Here are two examples of a learning task that included a social coding challenge as well as integration of The Ontario Curriculum, Grades 1-8: Mathematics, 2005 expectations. In each task, students were asked to create a ScratchJr program on an iPad that ended with a coding challenge for their partner. The partner would take the iPad in the end and add the code needed to meet the challenge.  Then, the roles would reverse so that the first child was challenged. In each case, expectations from the Geometry and Spatial Sense strand of the curriculum were used.

Grade One

Grade Two

Curriculum Example – Language Arts  Expectations

Here is an example narrative created by a young child using the ScratchJr app.

Please comment and share

If you have used ScratchJr with students, please share your experiences in the comments section below or leave a link to your blog or web site.

This post was one of nine made during the #peel21st September, 2014 blog hop.  Make sure you check out the other eight posts:

Coding in the service of learning

In a recent blog post by @MatthewOldridge, he questions the ‘whys’ of learning to code. And rightly so, I think. If you are at all following educational trends, you are probably aware that people are seriously discussing the merits of coding/programming in terms of a new literacy. For example, you have probably seen all or part of this video:

On the day I posted this, the video has nearly twelve million views. Unfortunately, I think the video’s message veers off course at times—it often sounds more like a sales pitch than an impassioned plea for educational reform.  But this is not the first time this topic has been discussed.  MindstormsProbably the most significant initial examination of the interplay between programming and learning was presented by Seymour Papert in his book Mindstorms: Computers, Children and Powerful Ideas. I think this book is a doorway, at least, it was for me. Before reading it, I thought one way about how technology can influence learning.  After reading it, I began thinking in a new way. Even though it was published in 1980, I think its message is still powerful today. (Papert’s construct, the microworld, was also the topic of my thesis.)

Critique of the video

So, on one hand, the video’s message is absolutely correct.  Learning to program can be rewarding and lead to a job, or, at least, a skill with which you can earn money… much like being a lifeguard can earn you money.  For me, it was a great summer job when I was in university.  And it can be a great career, too.  But it’s not for everybody. I definitely support the notion that all children take swimming lessons and learn to swim.  But, not all children who learn to swim will become lifeguards.  I would definitely support the notion that all children explore coding (in the service of learning). But, not all children who learn to code will become professional programmers.  Nor should they. This is where the notion in the video, and the resulting ‘coding bandwagon’ in education, are a little out of whack. Everyone does not need to learn to code to a high degree (i.e., programming).  You can be technologically literate but not know how to write a computer program.  I know many people who know how to use a variety of digital devices, and understand how they interact, they know how the web works, how email works, how to buy and print movie tickets online, how to take pictures or record a video on their device, how to tweet, how to leave a comment on a blog… You are probably one of the millions of people who know how to do all of these things and that makes you literate in today’s digital society. I rarely see ‘coding’ or ‘programming’ listed in frameworks of modern educational objectives or in so-called ‘21st century learning’ frameworks (e.g., here, here, & here).

My experience with coding

I grew up in the late 70s, during the dawn of personal computers.  The early computers were text-based, digital marvels that did absolutely nothing until you programmed them to do something.  I remember going into stores and playing around on them and trying out little programs to see how (or if) they would work. They were quite simple:

quote4

Rather inane but fun to play around with. Anyway, I learned how to code by talking and learning from people I met in the stores who were also interested in programming languages. This became a sort of social network, but F2F… After two years of formal computer programming courses in grade 11 and 12, I discovered that I had developed a ‘real’ skill. At the time, I decided to myself that it was the first real skill that my work in school provided me with (forgetting about reading, writing, algebra, and the hundreds of other skills I learned in school). Nevertheless, I took no small satisfaction in the knowledge that any process I could work out with a paper and pencil I could translate into a computer program that did exactly the same thing. One of the later benefits of this skill was that I was contracted one summer to write a carpet tufting simulation program so that samples of carpet tufting designs could be created on the computer screen as a preview before being made by the machine. The money I earned from writing that program paid all of my university costs for a year.

An example of codified thought

I think coding and programming tasks in schools certainly have value so long as they are a means to an end. Programming projects are especially useful because they seek to solve a problem or provide an application that automates or simplifies a task. Programming is the concrete explication of abstract ideas and processes. I think that most programmers are very familiar with this concept. Ideas and processes, that begin as a purely cognitive conception, become concrete and real when translated into a computer programming language.  Once codified, they can be applied by anyone using the software.

Years ago, while writing a datebook program (similar in functionality to a calendar app that stores events), I needed a function early on to determine if a given year was a leap year or not.  Working it out on a piece of paper, I could describe the process like this:quote1

I knew exactly what to do mathematically and ‘procedurally’ to find out if a given year needed Feb 29 or not. The next step was to translate this process into code that the computer could understand.  In programming parlance, I had to define a new function in my program in which I could submit any year I wanted to, and the function would reply with a 1 (yes) or a 0 (no) regarding the existence of Feb 29 that year.  Here is the function I wrote:quote2

(The ‘mod’ part in this code stands for modulo which means:  apply a division operation on two integers and then only retain the remainder portion.  If the modulo equals zero, it means the dividend divides evenly by the divisor.)  The middle three lines beginning with the word ‘if’ are the codified versions (in Borland Turbo Basic) of the three English sentences describing my process.  The other bits of the code tell my program that I am defining a new function and gives it a name (fnLeap%) so that I can use I wherever I want to in my program. In Java, this might look like this (although my Java is rusty; correct me if I am wrong):

quote3

And in Scratch it might look like this:

scratch-leap

What about a real classroom example?

Regarding Matthew’s question of the ‘why’ of coding – what follows is an example of students who use coding to learn and gain a deeper understanding of a concept. In the example below, I wanted to use the conceptual change model to challenge my grade 6 students’ understanding of polygons. My students had played with Scratch long enough that they had a good understanding of how to move Scratch the cat around on the stage using the Motion blocks.  They also knew how to use the Pen blocks so that Scratch drew a line as he moved on the stage. My students had become adept at both describing, in mathematical terms, the attributes of polygons, and at constructing polygons using a variety of pencil and paper tools.  However, I noticed anecdotally that a variety of minor misconceptions were apparent pertaining to angles, such as reflex angles, the relation between 360° and 0°, and relative angular measurements. My students were able to construct various polygons and angles specified in the Ontario math curriculum but, if challenged to transfer those skills and their understanding to a different domain, my guess was that some degree conceptual confusion would result.  So I decided to create a programming task using Scratch which utilized the conceptual change model. Learning objectives were as follows (taken directly from the mathematics curriculum):

  • classify and construct polygons and angles
  • construct polygons using a variety of tools, given angle and side measurements
  • measure and construct angles using a protractor, and classify them as acute, right, obtuse, straight angles, or reflex

First, using concept mapping software that the students already had experience using (SMART Ideas), students created a flowchart that outlined the steps for constructing an equilateral triangle using pencil, paper, ruler and protractor.  I wanted the flowchart to act as a learning artifact that students could use in a later reflection. Next, I told my students that they would be using Scratch to draw their triangle on the stage.  Before beginning the activity, they were asked to predict what, if any, changes would need to be made to their existing flowchart for drawing it on paper.  Students made a duplicate flowchart and then made modifications as required from their predictions. Students were challenged to create a program that results in Scratch the cat moving in such a way as to draw an equilateral triangle of any size on the stage. At this point, I paid very careful attention to students’ activities because it would be at this time they would potentially face cognitive conflicts.  For example, because Scratch the cat rotates relative to his current position (rather than relative to a line just drawn), the supplementary angle for 60° must be used (120°) in this case in order to tell Scratch how to draw an equilateral triangle.  Students worked with partners but each had to write their own code.  They discussed and helped each other, and I was also engaged in coaching and suggesting ideas as required. Here are two Scratch coding examples that result in an equilateral triangle:

Equilateral triangle code

Once the students successfully created the triangle, they examined their prediction flowcharts and directly compare it to the program they have just written that successfully moved Scratch the cat in the shape of an equilateral triangle. Students spent time discussing with their partners the differences between their predictions and the code that produced the triangle (the conceptual conflict) and together they had to work out exactly why they were different and what was going on in Scratch’s world as opposed to their pencil and paper world.  In so doing, the depth of their conceptual understanding of constructing polygons grew.  This whole process was repeated for other polygons such as squares, hexagons and octagons. I think that the greatest thing about computer programming in the service of learning is that both the student and the teacher can see thoughts on the screen. Not finished, perfectly formed, organized thoughts… but constantly changing, experimental, incremental thoughts that changed in the way they were arranged second by second… Programming provides a concrete way to discuss and share these thoughts.  In the example above, creating the program in Scratch acted an ‘object to think with’ (albeit a virtual one) for each student trying to accomplish a simple task: instructing Scratch to move in such a way so that he would draw an equilateral triangle.

Final thoughts – coding vs. programming vs. software development

I think that a distinction has not been properly drawn between coding and programming, or between programming and software development, in the current discussions of ‘all students need to learn to code.’ I hinted at a distinction in my post above but I want to make it more explicit now. There are many frameworks that attempt to define levels of computer programming competence; I still like Pea and Kurland’s from 1984 (starting on page 152, the levels are fully explained; the parenthetical explanations are my summaries of their descriptions):

  • Level I – Program User (adept at using someone else’s code for its intended purpose or modifying it for a new purpose)
  • Level II – Code generator (adept at writing original, short code pieces that accomplish a simple task)
  • Level III – Program generator (adept at writing interconnected code – a program – to accomplish a complex task; not necessarily user friendly)
  • Level IV – Software developer (adept at writing commercially valuable and usable code that is easy to use for large numbers of end users)

Without going into too much detail, my students (see the example above) who could use the Scratch environment were operating at Level II – they could write small snippets of code; single purpose mini-programs that accomplished one task. Yes, my students could code.  But I would not describe them as programmers.  And not anything close to software developers. Yet, at Level II, my students were writing code in the service of learning.  Code was not being written so that they could later become programmers or software developers. Code was being written so that they could see their own thought processes on the screen and be able to reach out and move them around and organize them in such a way that reflected their understanding of a concept.  Some students might enjoy this challenge so much that they will be motivated to develop their abilities further towards Levels III and IV.

Follow

Get every new post delivered to your Inbox.

Join 41 other followers

%d bloggers like this: