What is the place of Papert’s “microworld” of Logo in this era of programming, coding and making?

mindstorms bookOk, let’s spare the suspense here. Yes, I think Logo has a place as a valuable programming language with primary and even intermediate learners today. Papert’s Mindstorms book has had a tremendous influence on my thinking and I must admit to being profoundly impressed since it was written and researched in 1980(!) In this book, Papert explores the potential of “world building” through a computer language that he and his team created called Logo aimed at “world-builders” AKA all learners and explorers.  The digital turtle serves as a learning tool manipulated and programmed by students using specific rules in the Logo environment. As learners manipulate the turtle in creative ways, they are in the act of constructing a world of their own. As a Computer Science teacher in 2015, I wonder what is the place of Logo on teaching and learning in this era of creating, coding, making and of course programming?

In specific, I have been revisiting Papert and his team’s “microworld” of Logo with primary learners using Microworlds Junior. I must admit that the majority of my attention and Computer Science lessons with primary and junior students have been focused on Scratch and Blockly through the code.org site. However, Microworlds Junior especially has been an excellent gateway tool for programming, drawing and digital tinkering for learners in Grade One to Three. When evaluating their projects, I asked our creator to consider the perspective someone “playing” their file using three questions. Is it clear what to do? Is it fun? Can I replay? These questions provided tools for self and peer evaluation and potential next steps although they are certainly not the only criteria for success. In below pictures and videos, students had the choice to create an animation, story or game on a topic of their choice.

This slideshow requires JavaScript.

More sample videos using the new Microsoft Sway software.  https://sway.com/s/BGlbiBqM0x8cASfZ/embed 

Here are a few strategies that I hope are inspired by Papert’s research and demonstrate good pedagogy for encouraging creativity, design thinking and help prepare primary learners for more advanced programming skills.

1. Demonstrations are very powerful: Get the turtle moving (forward 10+repeat) on screen and ask simply what should the turtle do next, what would happen if two turtles collided? Answers from students included “turn, dance, turn into a ballerina, explode(!), says “I’m cool” etc.) I found it fascinating to try help make their ideas, no, matter how crazy, work. Finding a way to incorporate their creative ideas using the rules of the MicroWorlds Jr. (pendown, multple pages, if then commands etc.) become an amazing challenge for them (and me as an instructor!)

My hope is that this model of experimentation which encourage learners in our class to adopt a similar approach…

2. Avoid teaching a recipe. “Now we going to get the turtle to draw a square” Instead of show them turtle art websites designed by others and ask them which one they like best (or invite them to re-mix the the program or others or create their own design)

3. Celebrate their achievements: I use my SMARTboard to showcase their progress, constantly video recorded their programs using a camera, iPad, Surface and smartphone (I kept running out of space quicker than I could say “upload to GDrive, Dropbox, OneDrive etc.”)   OR create sites like this one Turtle Art site.

4. Encourage failure as an opportunity – F.A.I.L. is simply the First Attempt In Learning or put another way “We are only working with current best idea.” which I attribute to Heidi Siwak from the #bit14 conference last year.

5. Allow collaboration. I let them help and teach each other so the class is a busy and active one.

What cannot happen is that Logo (or other programming tools) should be used to explore traditional teacher-led pedagogy. If Logo is taught as “content” then I think is loses it potential as an amazing “playground” or “sandbox” for digital play, program creation and innovation.


For further reading on the ideas of Seymour Papert, Logo and Programming…

Check out Jim Cash’s excellent post (backed up by much academic research too!) critically examining the work of Papert in the context of the recent increased interest in the coding and making movement.

and the work of Peter Skillen as a fun and experienced advocate of Logo and the work of Papert.


Here are a few sample teaching slides I assembled for classes.

This slideshow requires JavaScript.


Here is the link to MicroWorlds Junior site.

Finally let’s end with…

Gary Stager’s excellent TED Talk on Seymour Papert” Inventor of Everything!

Advertisements

Our Hour of Code ’14 and Computer Science Week

The Hour of Code is a great way to encourage computational thinking and Computer Science for learners of all ages. This year’s Hour of Code was only possible thanks to a great team of colleagues and students who made it so much fun (and busy!) On the week of December 8th to the 12th, we implemented a school-wide initiative with students participating from three divisions K-5, Grade 6-8 along with our Grade 9-12 programmers taking the lead. Our goals were to encourage students to use computer technology as a creative programmable tool and prepare them for the programmable times that we live in today and tomorrow. (I like this Wired article by: Bill Wasik!) Needless to say, this was a popular event as almost all primary and junior students, when given encouragement and support, love using technology and for some this opened up new possibilities of learning, expression, creativity and sharing on devices familiar to them.

Some of our events and highlights included:

1. Our Hour of Code led by our Grade 11 and 12 programming students who partnered with our Grade 3 coders to explore apps such as Scratch, Lightbot and the code.org tutorials. Having Scratch 1.4 as a backup proved invaluable when connectivity was slow or unavailable to the code.org site. (This happened as our Hour was the first Monday of Comp. Sci. week at 9:00am!)

2. All our K- 8 students completed their Hour of Code on a variety of programming and coding applications during ICT classes. Students from SK and up explored Lightbot, Scratch (Why write a holiday card when you can create a holiday code?), and the multitude of programming activities at code.org. Outside of classes, students were lined up the door to get a seat at our lab computers to complete our coding activities. (Enough to bring a tear to this Computer teacher’s eye…although no time for that, too busy helping and encouraging 😉

2. Competition  – After much discussion prompted by exploring the videos on the need for Computer Science in the K-12 curriculum, students were encouraged to create a program using Scratch. Some excellent ideas…Link
scratc2

3. We met and partnered with a local Computer Scientist, entrepreneur and CEO who supported our efforts and told us the journey of her career in Computer Science and some of her successes, challenges and adaptations to the always changing (and always exciting) field.

4. We also presented at Assembly including the famous Loop Dance and a popular visit from Sphero (so much buzz, I think I might have sold a few and or had the Sphero added to student’s lists for Santa…:)
loop1

5. Most importantly, our programmers from Grade 3 and up went beyond One Hour of Code and were keen to continue their programming journey through the code.org site especially when they could login and save their progress using their school Google accounts.

By my very, very rough estimate, I would say approximately over 10,000 lines of code were written over the week. Here is a link to my simple Scratch program and presentation at assembly!
scratch1

Probably, my favourite takeaway from this event was that we encouraged all, including our teachers that students can create and curate computer programs (like visual-based code like Scratch or text-based code) to demonstrate their learning and understanding in any topic. Learn to program or program to learns(?)…how about both!

Dec. 9th-13th Computer Science Week – Resources for The Hour of Code and beyond

Each day this week, we have been coding with our Junior and Senior students to celebrate Computer Science week and the Hour of Code. Each day I have been tweeting some thoughts, ideas and resources on this topic. —- >

Here are some resources I have found useful to explore and share programming and coding with students.

Why learn Computer Science?

 Kodable’s 5 reasons to teach kids to code  
5 reasons to code
Here is a very cool resume programmed in the style in Super Mario World by Robbie Leonardi
cool programming resume
Google celebrates Comp. Sci. week with a Google Doodle on Grace Hopper
unnamgrace hopper

The ScratchEd has produced an activity to celebrate this week. Who wants to send a Holiday card this season when you can send a holiday code instead?!

HOC studios
Here is the link.

Finally, here is a link to my programming page with ideas for using Scratch in the classroom,  some articles and resources for coding on tablets and/or computers. I also outline 4 key concepts for introducing programming through tools like Scratch. Having a great Comp. Sci. week so far. My highlight this week was on Monday when a very quiet and very new Grade 5 student who burst into my class during his playground keen to show his progress in Scratch despite ONLY a 10 minute introduction the prior morning before he had to leave for his basketball game. It was a teaching moment I won’t forget!

Happy Coding!

~Anthony

Countdown to #ecco13

Busy times at the beginning of the school year (new classes in a new division+new responsibilities+coaching+AQ courses (not to mention 2 little kids and a very supportive family) = busy times! However, looking forward to attending #ecoo13 seeing some familiar faces and sharing my experiences with programming Scratch. Here is my link to my conference page on Lanyrd. Here is a link to my Scratch resource page. Visit again for upcoming posts on our iPad implementation, Google Apps for Education implementation, QR codes craziness our and First Lego League experiences too!

Here is my slidedeck on Scratch.

~Anthony

Programming to think on the Internet of Things

My daughter and I exploring retro games at the Game On exhibit at the Ontario Science Centre.
s c64
Walking around the exhibit, I started thinking about the impact of programming on my life. Consider that we now have a well established “internet of information” where the majority of programming takes place on a specialized device (computer) and are beginning to experience an additional phase of programming on an increasing number of connected everyday devices (through wifi, Bluetooth etc.) AKA the internet of things. Who is going to have the expertise (and time) to connect and program all these new devices in the coming days?!

My first programming memory starts with my Commodore 64 back in the day (ok I’ll own up, early ’80’s). Many an hour (or four+) was spent tinkering and playing with the keyboard, basic OS and removable media of that day (cassette tapes and then floppy disks). This machine helped me learn to program in Basic, Logo and of course play (and manage) many applications and of course many, many games with friends. It was often SO slow that complete games of hockey, baseball, meals or general socializing could take place (while waiting for games like Jumpman, Grand Prix or California Games (among many other good and not so good games) to actually load! In retrospect, I think perhaps more time was spent talking about, finding, saving and sharing than actually playing them…but the chase is sometimes the best part. However, this slow unreliable but well-loved computer taught me much about programming and computer operations like keyboarding and even web browsing through a basic modem (remember the BBS anyone). In this stage, programming was confined to speciality devices like computers and its interest was confined to us geeky kids. (Although, I’ll bet that all the best tech-savvy individuals you know from Generation X group probably have a some history with an Apple III, C-64, VIC-20 or even Amiga etc. but I digress.  (For fun here is a list of the 100 most popular C-64 games.)

My next programming memory takes place in Cambridge in the United Kingdom sometime in 1998. My then savvy girlfriend, now my beloved wife told me that the engineering department was working with AT&T to create a programmable fridge. The fridge would record the contents inside through the barcode  and presumably send the results to someone’s computer. Sounded cool but this was still outside the daily experience of the everyday (especially us on an starving student budget). Although it was early days I would characterize this as a key moment in the “internet of things” as an everyday object (fridge) becomes “smart” enough to connect with another speciality device (computer).

However, the world of mobile devices is where connected devices become quite handy and a ready technology for the everyday. With an increasing amount of devices on the network our smartphones become our “remote control” for the home and potentially the world. In this new phase of programming, the “smart” fridge has increasing functionality, presumably as an app for our phones, making a list so we can check it twice, before we receive a message geo located and timed when near the local grocery store. We can control objects through specific settings and have those objects are set up to predict our needs. (i.e. think scheduled recordings on a PVR but for every object.) This article from Wired’s June 2013 issue called “Welcome to the Programmable World” by Bill Wasik probably best describes up the benefits and challenges in this new phase of programming.

In this new world of “smart” objects, programming skills like designing, debugging and re-mixing are going to become increasing mainstream. In October at ECCO 2013, I have been asked to present about my work with a visual programming language called Scratch in my technology classes. My junior students love Scratch as it is a digital extension of playing, tinkering and creating. I look forward to sharing my experiences, successes and resources with programming. (Here is a link to my Scratch resource page.) The UK education system has already adopted programming as a key revision of their ICT curriculum in 2014. The United States also has a strong movement to champion programming represented at code.org. So I feel in good company support the need for programming in the already busy elementary curriculum.

I look forward to chatting about my Adventures with Scratch in the classroom and especially the increasing interaction between digital and physical objects. (My Makey Makey kit is in the mail and I look forward to exploring this intersection of the digital and physical in the new school year.

Here is a link to my presentation at ECCO 2013. I look forward to sharing, discussing and evaluating new and exciting pedagogy with technology.
ARC BIT_LG_schpxy

Here is a cool info graphic on the Internet of Things with a link back to the original source.Internet of things

Why “Flipteaching” complements Scratch programming

ScratchCat-Large

What is Scratch?

Scratch is a free, visual and kid-friendly programming language where anyone can create fun projects and computer programs. Students snap blocks together (think Lego) to move and/or modify objects, sprites and backgrounds. Pressing the flag runs the program and the fun (or de-bugging) begins!

Why are you using Scratch in your class?

My first experience with Scratch was at the 2008 ECOO conference in Richmond Hill where I heard MIT Professor and pioneer of Lego Mindstorms, Mitch Resnick demonstrate his new Scratch software in a keynote presentation. (His TED talk is below.) I had been teaching programming in my Grade Four and Five Technology classes with other tools but instantly liked the user-friendly Scratch interface. It seemed perfect for beginners but also included more advanced programming ideas like loops and broadcasting. What made Scratch even more interesting to me was the vibrant database of projects shared by authors, ready to be “re-mixed” and “re-imagined” around the globe. I felt that students of any ability could explore Scratch projects, acknowledge their source and remix them. I strategized that their experiences in class would be an excellent “jumping off” point for future programming and tinkering. (This has proved to be true but not surprising with this generation of 21st century learners and tinkers!)

How did a “flipped” approach benefit your students?

This unit was perfect for “flipping” because all the students had different levels of experience in programming. Students were asked to prepare for class by watching videos on my YouTube playlist or our LMS (Blackboard) and then be prepared to create in lessons. Some were content to copy a program from a “recipe” handout with little modifications. Others opted to “re-mix” the program of others while some were keen to create and innovate on the own. I personally felt that ALL these approaches had merit and therefore, decided quickly that I would keep “whole class teaching moments” to minimum (I’m sure the kids didn’t mind that much!) Beyond the usual class management and directing students to all the resources available them, (see below) most classes were dedicated to students working on a personal or collaborative projects.

What resources did you provide for students?
Video Tutorials from the Scratch website – quick projects to help students get started
My YouTube playlist – a collection of instructional videos from easy to more advanced (and fun! Pac-Man anyone?) Student’s contributed with ideas and suggestions for the playlist so I could “whitelist” for use at school. (We use YouTube Edu.) Students often partnered up with one student playing, rewinding and pausing the YouTube clip while the other copied the programming technique in Scratch.
A collection of Programming “recipes” were offered as printouts
Various displays and posters
scratchdisplay1 scratch2

How did you assess their learning?

Assessment FOR learning – Some excellent screencasts and short tasks were used after a few classes to inform future lessons and planning. (sample) Designed by Colin Meltzer
Assessment AS learning – Handout for students provided near the end of the unit to reflect and share their best project.
Assessment OF learning – Ten question quiz using Senteo clickers to test for basic fluency.

Next steps and questions for further study

How will an update to the web-based Scratch 2.0 affect lessons and projects?
Should students present and share their programs to audience beyond peers? younger students?
Are there any new resources, recipes and approaches I can use with this unit?
How can I expand Scratch and other programming opportunities in Grade 5 and 6?

Video resources for further research

What is Scratch?

Mitch Resnik’s TED talk – Let’s teach kids to code

Other resources and helpful articles
Scratch website
ScratchEd – sign up is worth it for learning resources, how-to guides and connecting with other educators and professionals
Wes Fryer’s Blog post – Introducing 4th and 5th Graders to Scratch Software Possibilities
Erin Klein’s Blog post – Computer Coding for Kids!
Michael’s Badger Blog post – Scratch Beginner’s Guide – used a few of the questions for assessment ideas

Overall, this programming unit is a popular one with the Grade 4 students in my ICT classes as it is fun, challenging, collaborative, creative, student-centered and perfect for a flip-teach approach as students have unique interests and levels of programming experiences. I look forward to learning new ideas and programs from others but most especially the students.