Hour of Code: Student Reflections

As the hour of code continues, I am continually blown away by the accomplishments and enthusiasm of my students (and my 10 year old daughter!).  I teach video game design and development and provide a quest based learning environment using 3dgamelab.  When students complete their quests, they submit the quest, often with a reflection on the activity.  Following are a number of reflections that I pulled out to share.  I will say that the overwhelming thing I am hearing is something to the tune of, "I thought programming would be hard, but...".  If that doesn't sum up the value of the Computer Science Education Week hour of code initiative, I don't know what does.  I am beyond thrilled that so many students across the world are engaging in activities this week to demystify computer programming.  I truly believe this is a game changer in terms of people's attitudes and perspective on computer science.  I'm sure the interest will sustain in many, but regardless, it is raising awareness and understanding in such a HUGE number of students (and teachers).

Before I share the reflections, I want to note that my 10 year old was practically begging us to purchase the full version of the lightbot app after participating in the lightbot hour of code activities which were free.  At $2.99 I think we'll invest :)





Reflections from students:

"I learned a lot about computer programming in this quest.  I thought that computer programming was difficult and complicated all the time, but it can be easy if you really try to comprehend it."

"I learned that the 4 steps of computational thinking are decomposition, pattern location, abstraction, and algorithms.  I had some challenges when a new block was put in like the "repeat until" and "if path" boxes." ~female, grade 8

"I learned how to use the repeat block which I had trouble with at first.  I think it's really cool but challenging to program." ~ male, grade 8


"I am getting to learn more complex programming that actually makes you think through all the steps, compared to before where you just guessed and checked.  I did have trouble choosing some of the blocks and figuring out the number of degrees to use in a couple of places."

"I liked this challenge because it taught me how to make functions and use them." ~male, grade 8



"I felt it was really cool that you could repeat actions.  It is really cool how computer programming works because it's not like how regular life works." ~male, grade 8


"I felt that this quest was easier than the others.  I like this one because the new blocks, the "while" block and the "if" block were really helpful.  I did not have any particular challenges completing this quest." ~female, grade 8


"This was where it got a bit challenging, but eventually through trial and error I figured out the problem and completed the quest." ~male, grade 8


"I really enjoyed this quest.  It was a fun new experience for me creating drawings compared to what I normally do, programming robots.  It was straight forward and showed one of the essential lessons of programming - no matter what you do with programming trial and error is key."

"In the second part of code, the Artist level was a little harder than the first.  I learned more though about algorithms and how computers work and make tasks easier.  A few particular challenges I had were drawing a circle and drawing a snowflake shape on level 18. Overall, it was enjoyable." ~ female, grade 8

"I learned about repeating.  Computer programming seems to work by taking the problem, coming up with a solution, breaking the solution into simpler parts, and finding the best, fastest, and easiest way to accomplish all of these." ~male, grade 8


I could go on and on, but I think you get the idea.  I think it's an incredible initiative and am so pleased to see so many kids exposed to coding.  Hopefully, the day will be sooner, rather than later, that coding is taught throughout the grades.

Please share your experiences.  I find it inspiring to hear what others are doing and how students are responding!



Code-a-rific! Embracing the Hour of Code Challenge.



Hanukkah has passed.  Now we are anxiously awaiting Christmas and Kwanzaa, but hold the presses!  It's Computer Science Education Week!!!  Feels a little like Christmas to me.  The highlight of the December 9 - 15 festivities is the Hour of Code Challenge.  Students across the world are committing to code for an hour this week.  From my experience, it seems like the hour of code is turning into the many hours of coding.  Regardless, everyone who participates is getting an opportunity to be exposed to coding and essentially demystifying Computer Programming.  This is a wonderful opportunity as hearing the words coding or programming can be very intimidating.  The activities offered this week are surely proving otherwise.

There are a number of heavy hitters involved in helping promote the event including, Mark Zuckerberg (Facebook), Elena Silenok (Clothia.com), Bill Gates (Microsoft), Gabe Newell (Valve), Will.I.Am (The Black Eyed Pees),  Chris Bosh (Miami Heat), Sheryl Sandberg (Facebook), Barack Obama, and many others.  These influential folks have been kind enough to help create instructional videos, public service announcements, etc. to help promote the event.



The point of entry to participate is quite simple.  Organizations like Code.org have set up turn-key opportunities to guide students through hours of coding including online and offline activities.  You can sign up as an individual student or as a teacher.  Teachers can provide students with the course code so that it is easy to manage their progress through the activities.  Students earn a certificate from many organizations based on completing an hours worth of coding activities.  The code.org activities use activities created in blockly, a programming environment developed by google that is based on Scratch.

Tynker, also based on Scratch is offering a variety of activities for students in grades 1 through 8.  Tynker also allows teachers to set up a class with a class code for students to join.  Again, this helps greatly with managing student progress.

Lightbot is a puzzle game that teaches programming and procedural thinking.  They are offering activities for the week that come with a certificate of completion as well.  My 10 year old was up pretty late last night 'playing' lightbot and learning coding without knowing it!  Lightbot has an app available at the iOS app store as well as the google play store.  This is definitely a great option for students in elementary school.

One of my favorites is Codecademy, which really does focus on true coding (opposed to the drag and drop block approach) but in a very systematic fashion that makes following and learning to program easy.  Codecademy offers tracks in JavaScript, PHP, Python, Ruby, and other programming languages.  You could create a full semester course (or more) using the Codecademy environment.

There are certainly other companies and organizations offering their approach.  Please visit the Computer Science Education Week site for more ideas and lesson plans.

While I'm at it, here's a pearltree I put together a while back to highlight coding resources for grades K - 12.

Code.org and the associated sponsors are even offering prizes for students who earn the 27 available trophies.  So far, two of my students at William Annin Middle School have reached this goal.  Prizes include a choice of software titles (Sim City 4, Portal 2, Fifa 13), $10 gift cards (iTunes, Skype), 10gb dropbox storage, etc.  One school in each of the 50 states will receive a classroom set of computers for having every student participate.  All teachers who have a class participate will receive 10gb additional drop box storage and several lucky schools will receive a guest skype session from one of the industry 'titans'.

Well, what are you waiting for?  Join in the celebration.  and Happy Computer Science Education Week!

Code on!!!





Iterative grading with Quest Based Learning

Those of you who know me, may know that Iteration is my favorite word (Right, Lisa?).  I teach Video Game Design and Development and the iterative design process is crucial to the learning.  Students design their games, begin to develop them, recruit feedback from their peers, incorporate that feedback, and so the cycle goes until a game is ready for prime time.  I believe so strongly in the iterative process as it truly teaches students that they should continue to work on something until they are happy with the results.  Likewise, recruiting feedback allows students to understand how others perceive their game.  It is very easy for the designer to think something is intuitive while the player may have no idea what they are supposed to do.

So, in the spirit of iteration and quest based learning, I have become very fond of the notion of grading as an iterative process.  In education, we are too quick to collect an assignment or administer a test and then move on regardless of what learning took place.  A student might fail the test or assignment and expected to move on regardless of the acquisition of skills or an opportunity to truly learn the content.  When this occurs, we are not valuing the learning, but rather the pace of instruction.  Failure is not seen as a learning opportunity, but rather a reflection of self worth. My new mantra 'iterative grading' aims to encourage growth, determination, persistence, and pride in student work.

I have been using 3dgamelab with my 8th grade Game Design and Development students.  The entire course takes place in 3dgamelab. Students complete quests and based on successful completion, they receive experience points and move on to other quests.  The 'main questline' follows the primary activities in my course and 'side quests' provide students with opportunities to extend their learning by exploring other tools and topics related to the course.  When a student submits a quest I receive notification that the quest is awaiting approval.  I evaluate the quest and either accept it, resulting in awarding the student with the designated experience points or return the quest in order for the student to incorporate feedback in the next iteration.  This is not meant to imply failure, but rather to help me provide guidance to the student so they can continue to engage in the activity until it is worthy of receiving full credit.  I explain this process to the students and they are showing that they understand by resubmitting their quests until they are successful.  I am even beginning to receive quests where a student indicates that they know the game is not finished, but they would like feedback so they could make the game better.  This level of awareness and appreciation of guidance is really wonderful. Whether a quest is accepted or returned, students receive ongoing feedback through the process.  



I am excited by the authentic evaluation opportunity this provides.  In the real world, we expect people to complete something worthy of submission. The same should apply in school.  I hope you adopt a similar approach.  I believe many teachers do.  When I think of this approach, I often think of the writing process, which is by nature iterative.  Students brainstorm, write, peer edit, edit their work, receive intermittent feedback from the instructor, etc.  It is rare that a student is asked to submit a research paper without some degree of iteration.  Clearly, this idea exists in other areas as well.  Perhaps it should be prevalent in all areas.
In summary, my goal is to embrace the learning and the process and not perpetuate the 'hand in your work...game over' approach to grading.

Your feedback is welcome.

Thanks for reading!


Game Design and Coding Pearltree

Feel free to visit any of my pearls or pluck the ones you want (or the whole thing for that matter!) Game Design and Coding and Why learn to code? in mr_isaacs (mr_isaacs)

Share anything on Android by downloading Pearltrees

From Logo to Scratch: Daisy the Dinosaur and Hopscotch

Daisy the Dinosaur and Hopscotch certainly finds their roots in Logo and Scratch.  The programming environment provides a scratch-like approach to connecting blocks to teach coding.  Currently, they are both available exclusively on the iPad.  I imagine they will reach more devices in time, but I especially like the fact that they provide an opportunity to teach coding on the iPad.

Daisy the Dinosaur is especially great for younger students.  In my opinion, his app could be used to introduce students in grades K-2 to programming concepts.  The interface is beautiful and very easy to understand.  In fact, I give the developers a lot of credit for keeping it simple as to not overwhelm young students with too many choices.  Check out the video as the gentleman with the lovely British accent does a wonderful job walking you through using the app.



Hopscotch is created by the same people that created Daisy the Dinosaur and brings the concepts to the next level.  Hopscotch seems to be appropriate for students in grades 3 - 8.  Once again, there's no question that the developers drew from Logo and Scratch.  I was very excited to relive my Logo days of drawing fun designs by programming my iPad by connecting scratch-like blocks.  The graphic interface is fun and generally speaking, Hopscotch is very easy to use.  It is quite robust compared to Daisy the Dino (as it should be) and provides greater opportunities for students to learn coding on a deeper level.  



Who better to demonstrate a tool than a 9 year old? Nice work, Thomas!
http://youtu.be/MY-iplINut4

Hopscotch and Daisy the Dinosaur are FREE!  Download them and please share your impressions with us here!


From Logo to Scratch: Where it all began...Logo

Oh, how I love Seymour Papert and constructionist learning.  There's no doubt (at least in my mind) that we learn by doing and creating.  This idea is at the heart of Papert's work and dates back to his work with Piaget in the late 1950's and early 1960's.  I'm a fan of Piaget's constructivist theory as well and think that the two theories coexist when it comes to learning in the 21st century.

In the mid 1960s Seymour Papert, a mathematician who had been working with Piaget in Geneva, came to the United States where he co-founded the MIT Artificial Intelligence Laboratory with Marvin Minsky. Papert worked with the team from Bolt, Beranek and Newman, led by Wallace Feurzeig, that created the first version of Logo in 1967. (from the Logo Foundation website)
You can read more about the history of logo on the website as it is quite fascinating and is largely responsible for the push toward teaching coding in school.  Have you ever used Logo?  I have very fond memories of teaching our 6th graders to code with MSW Logo. For those of you who are unfamiliar, Logo is famous for the 'turtle' that you program to essentially draw on the screen.  It gets more complicated as you can incorporate programming constructs like user loops, input, variables, conditional statements, etc. Essentially, you are coding the turtle with commands like fd 100 (to move forward 100 units), right or rt 30 (to turn 30 degrees to the right), etc.  You can create subroutines in order to call upon code snippets within your program. as well.  Great language if you haven't tried it!

In the example above (from 14sia - Robotics), you can see a loop was created to tell the turtle to move forward 100 units and turn right 60 degrees, resulting in this lovely hexagon.
The culminating project that we had our students complete was to build a house using Logo.  They were required to create subroutines for certain parts of the house and ultimately write a program that ran all of the subroutines resulting in their house (oftentimes complete with landscaping, a car in the driveway, a playset out back, etc.).  I highly recommend the use of Logo to introduce young students (grades 2 - 7) to coding.  

Logo was the start and there were many spinoffs of turtle logo, but the concept continued to evolve further as you will see as I explore a variety of tools rooted in Logo.

For now, however, here are a number of versions of Logo for your exploration.





Why Teach Kids to Code?

I'm presenting a session titled, "Create. Learn. Play. Game Design and Coding in the Classroom "at the Games in Education conference.   I teach Video Game Design and Development at William Annin Middle School in Basking Ridge, NJ.  When I tell people what I teach, they immediately respond by saying, "You must be teaching in a charter school."  Well, not so.  I teach in a public middle school.  This might sound progressive, but it really should not.  I believe that all schools should offer Game Design and Coding opportunities throughout the grades.  My goal is to develop a scalable curriculum and provide resources that span grades, primarily K-12 at this point.

Why?  Good Question.

According to Mitch Resnick, director of the Lifelong Kindergarten group at MIT Media Lab expresses the idea that

"coding isn't just for computer whizzes - it's for everyone."  In his Ted Talk (below),  he provides a demo "outlining the benefits of teaching the benefits of teaching kids to code, so they can do more than just "read" new technologies - but also create them." (Resnick, 2012)

http://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code.html




The EdSurge Teaching Kids to Code Guide states,
"We are teaching them to code, however, not so much as an end in itself but because our world has morphed: so many of the things we once did with elements such as fire and iron, or tools such as pencil and paper, we can now wrought in code. We are teaching coding to help our kids craft their future. "

One of the tools that I use with my students is Gamestar Mechanic produced by e-line media.  The research done around Gamestar Mechanic reveals the following important ideas that teaching game design contributes to learning:

Designing games builds:
  • Systems Thinking,
  • 21st Century Skills,
  • Creative Problem Solving,
  • Art and Aesthetics,
  • Writing and Storytelling,
  • and creates a motivation for STEM learning.

In my classes, I use a number of tools and plan to explore more tools in depth in order to realize my goal of developing ideas for teaching coding throughout the grades.  In the next number of blog posts, I will highlight a number of the tools available.

Do you teach coding to your students?  What benefits do you see?  Do you believe we are barking up the wrong tree when we speak of the importance of teaching kids to code?  If so, please chime in.