Sunday, 10 April 2016

Programming with Scratch


I introduced the concept of programming to my second year Digital Media through Scratch. Having researched the different possible mediums that I could have used to introduce programming, Scratch is the preferred software for most at present. I felt that Scratch has a very easy to use interface, is very easy to access in school and at home with the online version, work can be easily stored on the scratch servers, it introduces a little graphic design and it give a nice visual introduction to logic when programming.


See project

To introduce Scratch to the class group I developed some simple class exercises which we work through. The first of those exercises was a simple joking telling game in which two sprites would have a conversation. This exercise gave a good introduction to the concept of logic and timing in programming.

The second exercise was a game called "Stop the Butterflys" (see example over) which introduced some of the different possible movement methods of sprites where a space shuttle had to be controlled with keyboard keys and the butterflys moved randomly down the screen. The aim of the game was to shoot the butterflys before they hit the space ship. This exercise took up a lot more time than I could have anticipated as there were numerous issues. The largest issues was the incorrect programming of the game. Therefore I had to revaluate my approach to the learning. The design and developments of games requires one other major element - testing and debugging. The analysis of the code and being able to identify what the function of element is requires much deeper learning. Therefore a large quantity of time had to be invested into this.

At the end of this exercise students were tasked with the development of their own game "To design an interactive game which shall have a minimum of moving 3 sprites, a background of choice and a score for the game." Each student designed, developed and tested their game before submitting through google classroom. Below are some example of games submitted.





Student in general enjoyed and participated very well when using Scratch. Some student displayed a great interest and aptitude at programming and worked to a much higher level than asked. This was encouraged and direction given to those who wished to do this. All student submitted a scratch game within the allocated time which was very encouraging. Most student had difficultly debugging their games and this caused the largest frustration for the class as a whole.

Overall I found the lessons a real learning experience for me because there were times I was being taught by some students. The real value I feel from using scratch is not the games themselves but the logic around them. The testing and debugging, being able to analyse the code and locate issues. This was at times, the most frustrating too.

3 comments:

  1. Hi Liam,

    The Scratch games look great. Students really feel a sense of accomplishment when they have designed and developed their very own games - it demystifies the world of game development to some extent.

    I completely agree debugging is without doubt the trickiest and most time-consuming part but is also a very very important part of the learning process. It is at this point students are pushed to persevere and not give up with a 'mine doesn't work' excuse! It can work well to give credit to students who excel and nominate them as Scratch mentors. Students who are challenged to complete their projects can ask for help from a Scratch Mentor but at some cost (perhaps they transfer credit points to the mentor or must reciprocate the act of kindness in someway etc. ) .

    Thanks again,

    Aedamar

    ReplyDelete
  2. I will definitely take a similar course of action for my coding class. Although I am not sure how many of my students are ready for that jump as yet

    ReplyDelete
  3. I will definitely take a similar course of action for my coding class. Although I am not sure how many of my students are ready for that jump as yet

    ReplyDelete