Wednesday, September 24, 2014

Coding for Kindergartners

Now that my students have had some great experiences with Scratch through debugging, creating debug-its and games, I thought it was time for them to have some authentic experiences connected to what computer programmers may do in the 'real-world.'  I immediately thought of how in any design field, be it architecture or software, the designer must create with the client's needs in mind.  These are the constraints, so to speak.  In other words, a house in the Philippines will have different features than a house in Seattle, Washington even though similar tools may be used to build and design both homes.  The same thing with programming.  The finished product will be very different, depending on the what the client or use wants and needs.  I had my students design something for a kindergarten teacher in my district.  She requested that they create an animation of a popular children's book in time for Halloween (note: real-world = timeframes and real deadlines!).  They used Scratch and drew their own costumes and animated the story with the text.  This experience inspired them and motivated them on a completely different level than a class task normally would.
Animated story created for kindergarten class

After creating the animation, we then called not only their class, but also a class of first and second graders to share the creation with them via telepresence.  This kind of experience really brought in a sense of purpose so my students' creating that was full of impact.  

Monday, September 15, 2014

Google CS-First

I was searching for resources to teach computer science just over a month ago and came across this site - Google CSFirst.  Not really knowing what it was, I went ahead and registered my school and an advocate, volunteer and guru...all at the same time.  All I know is that I will do anything to inspire my students to grow and learn in all areas, but in particular, those with a STEM focus.  It turns out that Google CSFirst, with its club framework as a way to introduce 4th -8th grade students to coding and computer science, is a fantastic way to do just this.

I then go ahead and order a loaner set of headphones along with the peripheral materials offered on the site.  Within a week or two, my materials arrived and I was so impressed!  The support that Google CSFirst has provided along the way to implementation has been tremendous. There were student passports, sticker-badges, detailed scripted directions, certificates of completion and even post-it notes.  Every detail was thought out and planned for which made it really easy to implement with my students.

The teacher dashboard comes with an agenda timer to keep the sessions on track and to remind me as the teacher host about the pacing.  One of my favorite parts about the program is the showcase time where projects get shown to the class and we all celebrate learning together.

The club format is an ideal way to introduce students of all walks of life to coding through engaging themes such as "Game Design," "Sound and Music," and "Storytelling."  In a safe and fun environment, yet at the same time full of challenging and engaging activities, students are truly learning by doing.  In my mind, there is no better way for them to be introduced to, and more importantly, catch the 'coding bug.'

Tuesday, September 9, 2014

Scratching away

This school year has brought new and interesting experiences.  I have been piloting new initiatives such as Google CS-First and ASU's STEAM Machines Club, both made possible due to generous support and a grant.  More on the STEAM Machines Club later.

As a recent assignment, I asked my middle school students to work on a debug-it challenge:
Scratch Debug-it


___/3_ I have completed at least 3 Scratch Debug-its from 'Scratch,' ‘Superwhy’ and/or ‘Mak’s Debuggers’ studios.

___/1__  I have created one debug-it challenge.

____/1_  At least one other student has solved my debug-it.

_____  I have posted my debug-it challenge to ‘Mak’s Debuggers.’

____/10_ I have completed a reflection on my Scratch debugging experience that includes:
-what was challenging about debugging
-what was interesting about debugging
-lessons you learned about debugging
-how debugging relates to coding

-any additional ideas or inspiration

What made this experience interesting was that I am now doing this after a year into our district's coding initiative that really spread after the 'Hour of Code.'  As a result, I have a wide range of levels in my classes all the way from experienced Scratchers (Scratch Ninjas) to beginners.  The most interesting observation I have is that debug-its have valuable lessons for all students, regardless of background in Scratch.  

In the words of Scratch expert:

"The hardest part about debugging the codes was finding the right functions to solve each problem. The most interesting part of debugging was figuring out what functions were required to solve each problem.  While debugging, I learned that there are multiple ways to solve each problem, and some problems may be way harder than others. Debugging relates to coding because code is what is debugged. Without code, you can not debugged anything because after all, there would be nothing to code. The project has inspired me to create a big project because now, i know how to fix any problems I come across."

And, in the words of a Scratch novice:

"The challenging thing about scratch debug it, is that when you think you're finished fixing something, you have to go back and check and then you realise that you're really not finished. The reason is because it was truly more complicated than you though, and you must make it work, finishing the debug after you make more edits.

An interesting thing that I learned in scratch debugging, is that it is not as simple as it looks, and it really involves a lot of work to complete, and repeating and duplicating codes. Also you can make things more creative by debugging than they were to start.

I learned a couple of things about debugging. The first thing that i learned is that, when it comes to debugging no matter how frustrated or angry you are if you don’t give up, you can still successfully finish the debug. The second and final thing, even though it is relative to the first one is if you mess up the whole thing, challenge yourself and see if you can make things work out in the end.

Debugging relates to coding, in one way, which i that, just like in coding you still drag and drop commands to make actions happen. Your also still coding in a way because you're using code to fix a coded error.

Yes I have one extra idea that I would like to share, which is that if scratch had more word coding, and less drag and drop coding, then I feel that things would be bigger, more productive, and quicker."