Q X Innovation
  • Home
  • Contact

Programming for kids, part 2: Scratch

28/5/2013

 
Picture
At the website scratch.mit.edu, you can learn about the programming language Scratch, view millions of projects that have been created with this language and create your own projects online.





Picture
A project consists of "sprites" (in the project at the right, a soccer ball and a tennis ball) that move on a "background" (in this case a photo of the moon surface, one the many photos to choose from).

Each sprite has a "program" that determines its  actions, e.g. "move 10 steps". The program is build using drag and drop in a visual editor. Each change in the program influences the running program immediately.

Picture
The program (or script) of the soccer ball starts when the user clicks the green flag (button on the webpage as shown above). The two next statements ("go to" and "turn") are executed once. The statements inside the "forever" block are executed untill the program ends (in the case of Scratch: until the user clicks the red button).
The statements inside the "forever" block determine how the soccer ball moves on the screen. The ball does two things: (1) it moves 10 steps and (2) when it hits a wall (edge), it bounces. And it is doing this forever.
The program also contains some behavior for the case that the soccer ball and the tennis  ball hit each other. The soccer ball does a special move and turn its direction. Also it sends a message to the tennis ball. The program of the tennis ball has a special subprogram (not shown here) to react on this message: the tennis ball says "ough" and changes its color.

The video below shows the animation as created by this project. It is a simple animation (the Scratch website shows thousands and thousands of much better ones), but it gives an impression of what we are talking about.

As the purpose of the Scratch projects is to show an animation (visual and sound), most programming statements in the Scratch language are focussed on that. However, the language contains of course also basic programming statements like repeat, if-then-else.

By using Scratch, kids learn the following programming aspects:
  1. A program has a start (in this case, the program starts by pressing the green flag)
  2. A program consists of a sequence of statements
  3. A programming language has many different statements, like repeat, if-then-else, compare, IO-statements
  4. IO-statements can show results (e.g. move a sprite 10 steps forward) to the user
  5. IO-statements can use input from the user (e.g. move a sprite to the cursor)
  6. A program can consist of several simultaneous running subprograms (each sprite has its own program running)
  7. Subprograms can interact (send message to other sprite, wait for message from other sprite)
  8. A program can use variables
The many projects on the website show how inventive kids can be with good tools like this.


Programming for kids, part 1

24/5/2013

 
Kennisnet (a Dutch website on IT in education), has an article (in Dutch) on the topic "Students must learn programming as new 21st Century Skill".  The article links to an overview (in English) of tools that can be used to accomplish this goal. I browsed through this list, learned about Scratch, and then started to think on this topic. How would I (with 30+ years of programming experience)  introduce programming to (young) children?

First, the lessons should be based on some principles:
  1. it must be fun: of course,
  2. it must be elementary: most students don't have to become high-skilled programmers, they must be able to understand some basic principles of computers, internet and programming,
  3. it must be agille: you should be able to show results soon and often.
  4. it must be interactive: you should have direct result from your work. You type something, press a button, and you see the results (either right or wrong) immediately.
  5. it must give visible results that you can show easily to whoever wants to see it (like parents, grandparents, brother, sister, friends). E.g. the results could be webbased.
  6. preferably, you can use the same set of tools to explain different topics.

The curriculum could be like:
  1. Use Scratch to produce interactive multimedia content. The Scratch environment is easy to use, the kids can use their creativity, the program gives immediate results. The programming language shows elementary principles of programming. Results are visible via the Scratch website.  Read more in the post "Programming for kids, part 2: Scratch".
  2. Use weebly.com (or similar) to create webpages, using drag and drop. The kids uses own text and photos the build content. Pages are build using drag and drop, but can also contain HTML. Learn HTML with the HTML tutorials on w3schools.com. Read more in the post "Programming for kids, part 3: webpages".
  3. Make interactive webpages by adding javascript, the programming language used on webpages. Start with simple interactive pages, where javascript is used to enable buttons and to manipulate content. Learn javascript with the javascript tutorials on w3schools.com. Read more in the post "Programming for kids, part 4: javascript".
  4. Explore more capabilities of the javascript language. E.g. use "Object-orientation through Closures" as described here. This introduces an important programming concept (Object oriented) in an easy way. Read more in the post "Programming for kids, part 5: more javascript".
  5. Create a simple interactive game (like tic-tac-toe) using javascript on a webpage. Publish this game on the own weebly website.  
  6. Modify the game in such a way, that the boardsize fits a mobile phone. Use some tool to transform the game into a "web app", based on the available HTML, CSS and javascript. Deploy this web app on a mobile phone. 
  7. Introduce hardware: connect an Arduino kit to the computer. Use breakoutjs.com to create javascript programs that use the Arduino inputs (sensors, buttons, etc) and Arduino outputs (LED, servo motor, etc). Possibly combined to elements on a webpage. See "Programming for kids, part 6: Arduino" and "Programming for kids, part 7: Arduino and javascript"
  8. Introduce server-side javascript: install a server on your own PC (using VMWare Player), install node.js on it using a virtual machine, add socket.io to it, and run your own chat server. Read more about it in the post Programming for kids, part 8: server-side javascript.
  9. Do a software project: based on the requirements for the 5-in-a-row game (inspired by the chat server), build the software in several increments, small steps that extend the program until it is ready (or good enough). Read more about it in the post Programming for kids, part 9: a software project.
  10. Extend the 5-in-a-row game with a database. So far, the server did not store data permanently. The chat server only echoes the content to all clients, and the 5-in-a-row server only stores the moves in the game while the game is ongoing. A database can be used to store information (like the number of moves per game) permanently. 
  11. A summary of what these articles have covered can be found in the post Programming for kids, part 10: summary. This post also mentions some advanced topics (with references) that are outside the scope of this introduction in programming.

So far for the initial thoughts. Later more on the different topics.
Updated 3-7-2013: Added items 8, 9 and 10, 11.

NrGrudge

25/2/2013

 
Foto
Is it a sudoku? Is it Wordfeud?
No, it's .... NrGrudge!
Coming soon to an App Store near you.

Games People Play

19/2/2013

 
In a previous post, it was mentioned that only 1.5% of the players had a score in one or more of the leader-boards. Since the release of MultiBingo 1.3, this has changed somehow. Some observations.

Up to MultiBingo 1.2, the presented digits were chosen random. So, it was possible that a player had to wait a long time for the needed digit(s) to end a game. In MultiBingo 1.3, this is changed: for the level "Novice", all presented digits can be used somewhere on the card. Apparently, this change made that far more players completed a game, and so got mentioned in a leader-board. A small step in coding, but a big step in user experience.

From the first version of the game, several levels exists (with different numbers of smileys on the card at the start) and two modes exists (game ends at "bingo" or game ends at "full card"). The leader-boards show, that the option "full card" is hardly used. At the "Novice" level, the leader-board for "bingo" has 10x as much players as the leader-board for "full card". The leader-boards also show, that most players play at the easiest level ("Novice"). The number of players in the leader-boards "Novice", "Expert" and "Master" are about 10:3:1. 

Adding languages

5/2/2013

 
The default language on the internet is English, and so is the default language in the App Store. Because MultiBingo, CalcGame and Math & Memory are about math (so language independant), it is OK to start with english texts only.

However, it could be that people download an app easier when the text in the App Store is in their native language. So, with the new versions of MultiBingo and CalcGame, the text in the App Store is also in Dutch.  Let's see if this will show in the statistics.

Advertisements as usage indicator 

29/1/2013

 
Picture
In MultiBingo 1.2, leaderboards have been added. Both as additional feature (for the players) and as method to measure usage (for me, as developer). Last week, the number of players in the overall leaderboard was 6, today it is 9. 

Another addition in MultiBingo 1.2 was the introduction of advertisements. Both as additional income (for me, as developer) and as method to measure usage (also for me, as developer). 

The number of times the game is played, must be a multiple of the statistics as shown in the graph, because
  • advertisements are limited to certain countries. So, not all usage of the app is shown in the advertisement statistics.
  • advertisements are only shown in MultiBingo 1.2, whereas most players still use version 1.1.
  • players that play offline, don't get advertisements.

Downloads and leaderboards

21/1/2013

 
The number of downloads and the number of updates are some measures for the popularity  of an app. But  only when an app is used, you can call it really successful. Maybe leaderboards, as supported by the iOS Game Center, can give insights in the usage.

On 16/01/2013, MultiBingo 1.2 has been released. As of now, 439 persons have this new version: 355 updates (in 4 days) and 84 downloads. This new version uses leaderboards to rank the results of the players: one leaderboard for each variant in the game, and 1 overall leaderboard where all players show up. At this moment, the leaderboards show only 6 players (out of the potentially 439). Why is that? Could it be that:

  • Only 1.5% of the players use Game Center: This seems very low, also compared to NrQueste where about 30% of the (potential) players use Game Center
  • Players play only off-line: so, results are generated in the game, but not reported to the Game Center
  • Players don't play the game to the end: results are generated at the end the game. Do (almost all) players quit the game before having Bingo or a full card?
  • Players don't play the game at all:  Why download and not play the game?
  • Some technical problem prevents reporting: what could that be?

Comments from players and app developers are welcome.


Downloads and upgrades

14/1/2013

 
Picture
The previous post shows the different patterns for the downloads of MultiBingo vs. CalcGame and Math & Match. 

Also the upgrades show a different pattern. For MultiBingo the percentage of the upgrades (the red line in the diagram) grows in 7 weeks to about 70%. For CalcGame and Math & Match, the percentages after 7 weeks are 21% and 40%.   

When 70% of the MultiBingo downloaders  upgrade, at least 70% of these  downloaders have the app still installed. And probably they use it (sometimes), otherwise why bother to upgrade? For CalcGame and Math & Match, the numbers are less promising.

Some more apps statistics

10/1/2013

 
Picture
Picture
The previous post shows statistics for MultiBingo. The diagrams above show downloads for CalcGame and Math & Match. Also for these apps, the results of the XMAS sale are clearly visible, however not as spectacular as for MultiBingo. 

It is interesting to see, that the downloads follow different patterns. For CalcGame and Match & Match a peak at introduction, followed by an immediate (and permanent) fall in downloads. For MultiBingo the peak at introduction is lower, the fall is less steep, there is a change in the downward trend and the downloads reach a more or less stable level. 

MultiBingo downloads after XMAS sale

8/1/2013

 
Picture
During the first week after the XMAS sale, there has been an increase in downloads of MultiBingo. 

The diagram shows the number of downloads per week, where week 1 is the introduction of the app. The XMAS sale (during week 21 and 22 in the lifetime of the app) is clearly visible. 

It is interesting to see that the downloads in week 23 are even higher than the downloads during week 1.

<<Previous
Forward>>

    Author

    Jos den Hartog
    @josdenhartog

    View my profile on LinkedIn

    Archives

    July 2013
    June 2013
    May 2013
    February 2013
    January 2013
    December 2012

Powered by Create your own unique website with customizable templates.