{"id":39,"date":"2008-01-20T18:19:33","date_gmt":"2008-01-20T18:19:33","guid":{"rendered":"http:\/\/www.bluej.org\/mrt\/?p=39"},"modified":"2020-05-15T15:46:26","modified_gmt":"2020-05-15T15:46:26","slug":"teaching-my-daughter-to-code","status":"publish","type":"post","link":"https:\/\/blogs.kcl.ac.uk\/proged\/2008\/01\/20\/teaching-my-daughter-to-code\/","title":{"rendered":"Teaching My Daughter To Code"},"content":{"rendered":"<p><strong><em>First party of a journey of writing a Doctor Who video game in Java with my 9-year-old daughter.<\/em><\/strong><\/p>\n<p><em><span style=\"color: #888888\">Update: <a href=\"https:\/\/blogs.kcl.ac.uk\/proged\/2008\/01\/23\/teaching-my-daughter-to-code-part-ii\/\">Part II<\/a>, <a href=\"https:\/\/blogs.kcl.ac.uk\/proged\/2008\/02\/01\/teaching-my-daughter-to-code-part-iii\/\">Part III<\/a> and <a href=\"https:\/\/blogs.kcl.ac.uk\/proged\/2008\/02\/08\/teaching-my-daughter-to-code-part-iv\/\">Part IV <\/a>of this story are available now.<\/span><\/em><\/p>\n<p><em>(Note: This post is more than 10 years old. Some of the Greenfoot code shown can be written more easily in newer versions of Greenfoot, using newer API methods.)<\/em><\/p>\n<p><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/250px-Doctorwhotitles20071.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-734\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/250px-Doctorwhotitles20071.jpg\" alt=\"\" width=\"250\" height=\"141\" \/><\/a><\/p>\n<p>Yesterday, my daughter Sophie asked me to show her how to write a computer game. She is nine. (Well, only a few weeks away from being ten &#8211; at this age, a year still matters.) She has never written any code before. Now, there&#8217;s a challenge, if I ever saw one.<\/p>\n<p>I am a computer scientist, and one of our projects is <a href=\"http:\/\/www.greenfoot.org\/\">Greenfoot<\/a> &#8211; a programming environment designed to teach kids (and older students) to code with Java. So far, that has all been part of my research work. Research into programming education, tool design, etc. I have used Greenfoot with kids (mostly about 15 years old), but more often I do presentations and workshops for teachers.<\/p>\n<p>I have often wondered how low in age you could take Greenfoot. It&#8217;s Java, after all, not Logo. 15-year-olds clearly works. But 10 year olds? We don&#8217;t know.<\/p>\n<p>So I told Sophie that we&#8217;d start making a game tomorrow. That was yesterday. So today was the day. Afterwards, I thought it might be interesting to try to record the process we&#8217;re going through &#8212; see what happens.<\/p>\n<p>So here is my (hopefully continuing) diary of coding with my daughter&#8230; (Our results, live demo and source code, are at the bottom.)<\/p>\n<p><!--more--><br \/>\nOver the last few days, Sophie had been playing <a href=\"http:\/\/www.actionsoft.com\/midnightmansion.html\">Midnight Mansion<\/a>, a platform\/side scroller game. Here&#8217;s a <a href=\"http:\/\/www.actionsoft.com\/images\/mm\/screens\/02.jpg\">screenshot<\/a>. This is the kind of thing she had in mind when she, in the evening over dinner, asked me whether we could make a game. So I suggested that first she would need an idea for a setting for the game.<\/p>\n<p><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/images2.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-735\" style=\"margin-left: 6px;margin-right: 6px\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/images2.jpeg\" alt=\"\" width=\"143\" height=\"107\" \/><\/a>Now, Sophie is a big fan of <a href=\"http:\/\/en.wikipedia.org\/wiki\/Doctor_Who\">Dr Who<\/a>, a long running (and when I say &#8220;long-running&#8221;, I really mean long-running: the series started 45 years ago!) sci-fi series of the BBC in the UK. If you don&#8217;t know it &#8211; don&#8217;t worry. Suffice to say: The hero is &#8220;The Doctor&#8221;, who travels through space and time and has various adventures. I&#8217;ll might get back to the details later, if we ever get around to making something happen in this game.<br \/>\nSo, Sophie decided she wants to make a Doctor Who game. Now, here&#8217;s a very important point. If you ever want to teach your own kid (or any kid) to code, this is really crucial: find something they really want to do. Let them decide the story, choose something they like. They take ownership, and the roles are set. It is not you telling them to do something, it is them who want to do something, and you&#8217;re just helping them along. If you manage to get them into the situation where they have an idea, and they really want to do it, you&#8217;re half way there.<\/p>\n<p>This morning when I got up and sat at breakfast (I&#8217;m always the last to get up on weekends in our house, so everyone else was finished already), Sophie was there bugging me to get started. So after breakfast, that&#8217;s what we did.<\/p>\n<p>We took a bit more than an hour. (I hadn&#8217;t thought of writing this down beforehand, so I didn&#8217;t really check the time. It might have been a bit longer, but less than 90 minutes.)<\/p>\n<p>First, we started up <a href=\"http:\/\/www.greenfoot.org\/\">Greenfoot<\/a>. Since I had it already installed, that was easy. We started by creating a new scenario named &#8220;DrWho&#8221;. This was our initial screen:<\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/empty-window1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-736 aligncenter\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/empty-window1.png\" alt=\"\" width=\"678\" height=\"442\" srcset=\"https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/empty-window1.png 678w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/empty-window1-300x196.png 300w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/empty-window1-460x300.png 460w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><\/p>\n<p>Then I told Sophie that she has to decide where this game takes place. She said &#8220;on Mars&#8221;, so we made a subclass of the built-in &#8220;World&#8221; class, called &#8220;Mars&#8221;, and hit <em>Compile<\/em>. Here&#8217;s what we saw:<\/p>\n<p><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/window11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-737\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/window11.png\" alt=\"\" width=\"678\" height=\"442\" srcset=\"https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/window11.png 678w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/window11-300x196.png 300w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/window11-460x300.png 460w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><br \/>\nSophie commented that the world does not look good, because it&#8217;s all white, and too small. I told her how to look at the <em>Mars<\/em> source code, and here is what we saw:<\/p>\n<p><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/edit11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-738\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/edit11.png\" alt=\"\" width=\"641\" height=\"431\" srcset=\"https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/edit11.png 641w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/edit11-300x202.png 300w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/edit11-446x300.png 446w\" sizes=\"auto, (max-width: 641px) 100vw, 641px\" \/><\/a><br \/>\nWe talked a bit about the idea that the world is a grid of cells (with a bit of scribbling on paper), and that we can specify the number and size of the cells. We ended up changing the parameters that specify the world to:<\/p>\n<p style=\"text-indent: 20pt\"><span style=\"font-family: monospace\"><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/menu1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-739\" style=\"margin-left: 12px;margin-right: 12px\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/menu1.png\" alt=\"\" width=\"239\" height=\"250\" \/><\/a>super(750, 450, 1);<\/span><\/p>\n<p>That made the world nice and big, but still white. So next, it was back to the popup menu of class <em>Mars<\/em>, to choose the <em>Set Image&#8230; <\/em>function.<\/p>\n<p>When you choose this function in Greenfoot, a dialogue pops up showing you a library of prepared images.<\/p>\n<p>Sophie quickly found the category &#8220;Backgrounds&#8221;, and went through them. She decided on a background image named &#8220;space1.png&#8221;. After selecting this image and compiling again, this is what our scenario now looked like (the fact that it&#8217;s called &#8220;Mars&#8221; but actually shows space, did not seem to matter at all):<\/p>\n<p><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/window2-11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-740\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/window2-11.png\" alt=\"\" width=\"703\" height=\"461\" srcset=\"https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/window2-11.png 703w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/window2-11-300x197.png 300w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/window2-11-457x300.png 457w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\" \/><\/a><br \/>\nOkay, we were happy with the spacy background, so the real action could begin: Creating the Doctor.<\/p>\n<p>First we googled for an image of the Doctor (there are <a href=\"http:\/\/images.google.com\/images?client=safari&amp;rls=en-us&amp;q=%22Doctor+Who%22&amp;ie=UTF-8&amp;oe=UTF-8&amp;um=1&amp;sa=N&amp;tab=wi\">many<\/a>!) We chose this one:<\/p>\n<p><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/dr_who_tennant_narrowweb__300x43001.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-741\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/dr_who_tennant_narrowweb__300x43001.jpg\" alt=\"\" width=\"300\" height=\"430\" srcset=\"https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/dr_who_tennant_narrowweb__300x43001.jpg 300w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/dr_who_tennant_narrowweb__300x43001-209x300.jpg 209w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/tool-11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-742 alignright\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/tool-11.png\" alt=\"\" width=\"150\" height=\"143\" \/><\/a>Since this is for personal use, with no commercial intention, or even intention of distribution, I decided that this falls under &#8220;fair use&#8221; clauses, and we copied the image.<\/p>\n<p>Next came a session in Photoshop. Sophie had used Photoshop before (with only a very few edit tools, but at least it wasn&#8217;t all new). I enlarged the image a bit and showed her how to use the &#8216;Polygonal Lasso Tool&#8217; to cut out the background. She was sitting doing this very patiently, with a look of concentration on her face, and got it mostly done. Once or twice I had to help her out when she did something accidentally and didn&#8217;t know what she had done. You can really get lost in Photoshop if you don&#8217;t know it well, so a simpler image editing program would be good. But she got it done without many problems.<\/p>\n<p>When she was ready, I showed her how to scale the image down, and this is what she ended up with:<\/p>\n<p><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/dr1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-743\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/dr1.png\" alt=\"\" width=\"80\" height=\"131\" \/><\/a><br \/>\nOkay, ready to go back to Greenfoot. I told Sophie that she could create the Doctor by creating a subclass of the <em>Actor<\/em> class, which she then did without problems. Now, in Greenfoot, when you create a class, you can assign it an image. We named the class Doctor, chose our Doctor image, and we&#8217;re ready to go. After compiling, we can then immediately create a Doctor object &#8211; here is what it now looked like:<\/p>\n<p><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/window3-11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-744\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/window3-11.png\" alt=\"\" width=\"654\" height=\"461\" srcset=\"https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/window3-11.png 654w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/window3-11-300x211.png 300w, https:\/\/blogs.kcl.ac.uk\/proged\/files\/2008\/01\/window3-11-426x300.png 426w\" sizes=\"auto, (max-width: 654px) 100vw, 654px\" \/><\/a><br \/>\nWow! First great success. The Doctor on our spacy background. Sophie was worried that the doctor has no legs, and that it might look funny of he runs around, but we decided to ignore this for now, and maybe come back to it later. We then tried clicking on &#8216;Act&#8217; and &#8216;Run&#8217;, and Sophie observed that nothing happened.<\/p>\n<p>Time to start writing code!<\/p>\n<p>Now, I decided to give Sophie a fairly simple API to start with. So I had her take a short break, and I quickly wrote a class called &#8220;Mover&#8221; with the following source code (this is really something you could prepare in advance if you are a better organised person than I am&#8230;):<\/p>\n<pre>import greenfoot.*;  \/\/ (World, Actor, GreenfootImage, and Greenfoot)\r\n\r\n\/**\r\n * An actor superclass that provides movement in four directions.\r\n *\/\r\n<span style=\"color: #82121c\">public<\/span> <span style=\"color: #c71c2b\">class<\/span> Mover <span style=\"color: #c71c2b\">extends<\/span> Actor\r\n{\r\n    <span style=\"color: #82121c\">private<\/span> <span style=\"color: #82121c\">static<\/span> <span style=\"color: #82121c\">final<\/span> <span style=\"color: #c71c2b\">int<\/span> speed = 4;\r\n\r\n    <span style=\"color: #82121c\">public<\/span> <span style=\"color: #c71c2b\">void<\/span> moveRight()\r\n    {\r\n        setLocation ( getX() + speed, getY() );\r\n    }\r\n\r\n    <span style=\"color: #82121c\">public<\/span> <span style=\"color: #c71c2b\">void<\/span> moveLeft()\r\n    {\r\n        setLocation ( getX() - speed, getY() );\r\n    }\r\n\r\n    <span style=\"color: #82121c\">public<\/span> <span style=\"color: #c71c2b\">void<\/span> moveUp()\r\n    {\r\n        setLocation ( getX(), getY() - speed );\r\n    }\r\n\r\n    <span style=\"color: #82121c\">public<\/span> <span style=\"color: #c71c2b\">void<\/span> moveDown()\r\n    {\r\n        setLocation ( getX(), getY() + speed );\r\n    }\r\n}<\/pre>\n<p style=\"text-align: left\"><a href=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/menu21.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-745\" src=\"http:\/\/blogs.kcl.ac.uk\/proged\/wp-content\/blogs.dir\/192\/files\/2008\/01\/menu21.png\" alt=\"\" width=\"169\" height=\"142\" \/><\/a>The intention, as you can see, is to provide four methods: <em>moveRight<\/em>, moveLeft, <em>moveUp<\/em> and moveDown, which provide a little simpler abstraction than the standard Greenfoot API with its built-in <em>setLocation<\/em> and <em>getX<\/em>\/<em>getY<\/em> methods. I made Sophie&#8217;s <em>Doctor<\/em> class a subclass of this one, and told her that I had made her Doctor a &#8220;Mover&#8221;, which means that we could now tell him to move. Ready for Sophie to take over the keyboard again and continue.<\/p>\n<p>Clicking <em>Act<\/em> or <em>Run<\/em> still does not do anything, so we open the editor for the <em>Doctor<\/em> class, and see this method:<\/p>\n<pre>    <span style=\"color: #82121c\">public<\/span> <span style=\"color: #c71c2b\">void<\/span> act()\r\n    {\r\n        <span style=\"color: #919191\">\/\/ Add your action code here.<\/span>\r\n    }<\/pre>\n<p>Now, we change this to:<\/p>\n<pre>    <span style=\"color: #82131c\">public<\/span> <span style=\"color: #c81d2b\">void<\/span> act()\r\n    {\r\n        moveRight();\r\n    }<\/pre>\n<p>To do this, I tell Sophie the method name, and also that instructions always have the parentheses and the semicolon at the end. Sophie compiles, creates another Doctor object, hits<em> Run<\/em> and HURRAY! The doctor moves!<\/p>\n<p>We also try moveLeft instead of moveRight. She quickly gets the idea that we can now make him do things. She then says: &#8220;But I only want him to move when I press this key. We need to write something like &#8216;If the key is pressed: move!'&#8221; Wow. I couldn&#8217;t have scripted this better. She not only prompts me for the next step, she even almost uses Java terminology!<\/p>\n<p>So next, I told her about the if-statement, and also about Greenfoot&#8217;s key checking. We write the following code in the act method:<\/p>\n<pre>    <span style=\"color: #82121c\">public<\/span> <span style=\"color: #c71c2b\">void<\/span> act()\r\n    {\r\n        <span style=\"color: #c71c2b\">if<\/span> (Greenfoot.isKeyDown(<span style=\"color: #236523\">\"left\"<\/span>) )\r\n        {\r\n            moveLeft();\r\n        }\r\n    }<\/pre>\n<p>Now, she couldn&#8217;t have written this on her own yet, since she doesn&#8217;t know what the built-in API methods are, or how to look them up, or what the syntax is. But she quite easily understand the idea and the concept.<\/p>\n<p>The good Doctor, of course, moves only one way now. I just mention that she could make him go the other way with another if-statement. She then actually manages to do this using copy, paste and edit:<\/p>\n<pre>    <span style=\"color: #82121c\">public<\/span> <span style=\"color: #c71c2b\">void<\/span> act()\r\n    {\r\n        <span style=\"color: #c71c2b\">if<\/span> (Greenfoot.isKeyDown(<span style=\"color: #236523\">\"left\"<\/span>) )\r\n        {\r\n            moveLeft();\r\n        }\r\n        <span style=\"color: #c71c2b\">if<\/span> (Greenfoot.isKeyDown(<span style=\"color: #236523\">\"right\"<\/span>) )\r\n        {\r\n            moveRight();\r\n        }\r\n    }<\/pre>\n<p>That really gets her excited. She also manages to repeat this again for up and down. At this point, she gets her first syntax error (&#8220;; expected&#8221;). After pointing out the error message to her, she actually manages to fix it. Lucky that we got one of the less cryptic messages to start with! The error messages in Java will surely be one of the great problems we will run into quite quickly.<\/p>\n<p>The next thing we observe is that the Doctor moves backwards when he moves right. I suggest that we make him flip around. Sophie agrees.<\/p>\n<p>So back to Photoshop it is. Flipping the image horizontally to face right is easy, and she saves it as &#8220;dr-right.png&#8221;. I ask Sophie where in our code we should put the instruction to use the right-facing image, and she works that out correctly. I then tell her what the method name is and talk her through typing the method call and parameter. We get this:<\/p>\n<pre>    <span style=\"color: #82121c\">public<\/span> <span style=\"color: #c71c2b\">void<\/span> act()\r\n    {\r\n        <span style=\"color: #82121c\">if<\/span> (Greenfoot.isKeyDown(<span style=\"color: #236523\">\"left\"<\/span>) )\r\n        {\r\n            moveLeft();\r\n        }\r\n        <span style=\"color: #82121c\">if<\/span> (Greenfoot.isKeyDown(<span style=\"color: #236523\">\"right\"<\/span>) )\r\n        {\r\n            setImage(\"dr-right.png\");\r\n            moveRight();\r\n        }\r\n        <span style=\"color: #82121c\">if<\/span> (Greenfoot.isKeyDown(<span style=\"color: #236523\">\"up\"<\/span>) )\r\n        {\r\n            moveUp();\r\n        }\r\n        <span style=\"color: #82121c\">if<\/span> (Greenfoot.isKeyDown(<span style=\"color: #236523\">\"down\"<\/span>) )\r\n        {\r\n            moveDown();\r\n        }\r\n    }<\/pre>\n<p>That&#8217;s pretty good. But when we try it out, she sees very quickly that the Doctor now turns right, but does not turn back left again. This time, she can actually fix this herself by copying the setImage line, pasting it at the right place, and fixing the image name. I&#8217;m happy!<\/p>\n<p>That&#8217;s it. We decide to call it a day for today. A live version of what we wrote is <a href=\"http:\/\/www.greenfoot.org\/live\/DrWho\/DrWho.html\">on the web here &#8211; have a look<\/a>.<\/p>\n<p>The Greenfoot project we wrote (with full source code) <a href=\"http:\/\/www.greenfoot.org\/scenarios\/files\/DrWho.zip\">is here<\/a>. Feel free to take it, and use it for anything you like.<\/p>\n<p>So, in summary: we have managed to get some animated graphics on screen pretty easily. We spent half the time making images, and then some time writing some code. We used a &#8220;jump-in-the-deep-end&#8221; approach: Most of the code we wrote by me telling Sophie what to write, but she pretty quickly picked up some of the concepts, and she was able to generalise and apply some things she observed.<\/p>\n<p>This is how I plan to continue working with her: from the concrete to the abstract. First, we do things (even if I have to tell her how), and after some time we can hopefully discuss the underlying principles and more formal rules.<\/p>\n<p>But first: let&#8217;s try to have some fun and do something!<\/p>\n<p>I hope that I have time to continue this report over the next few weeks or months, when we hopefully make this game do a little more.<\/p>\n<p>Here is the summary for today:<\/p>\n<p>Session #1<br \/>\nTime: approx 80 min<br \/>\nResult (live on the Greenfoot site): <a href=\"https:\/\/www.greenfoot.org\/scenarios\/25293\">DrWho<\/a><br \/>\n(Source code can be downloaded from the link above.)<span style=\"text-decoration: underline\"><br \/>\n<\/span><\/p>\n<p>Next: <a href=\"https:\/\/blogs.kcl.ac.uk\/proged\/2008\/01\/23\/teaching-my-daughter-to-code-part-ii\/\">Dr Who, Part II: Invasion of the Daleks<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>First party of a journey of writing a Doctor Who video game in Java with my 9-year-old daughter. Update: Part II, Part III and Part IV of this story are available now. (Note: This post is more than 10 years &hellip; <a href=\"https:\/\/blogs.kcl.ac.uk\/proged\/2008\/01\/20\/teaching-my-daughter-to-code\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":179,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,5,8,13],"tags":[34,44,53,107],"class_list":["post-39","post","type-post","status-publish","format-standard","hentry","category-greenfoot-software-tools","category-java","category-programming","category-teaching","tag-coding","tag-dr-who","tag-greenfoot-software-tools","tag-teaching"],"_links":{"self":[{"href":"https:\/\/blogs.kcl.ac.uk\/proged\/wp-json\/wp\/v2\/posts\/39","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.kcl.ac.uk\/proged\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.kcl.ac.uk\/proged\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.kcl.ac.uk\/proged\/wp-json\/wp\/v2\/users\/179"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.kcl.ac.uk\/proged\/wp-json\/wp\/v2\/comments?post=39"}],"version-history":[{"count":12,"href":"https:\/\/blogs.kcl.ac.uk\/proged\/wp-json\/wp\/v2\/posts\/39\/revisions"}],"predecessor-version":[{"id":983,"href":"https:\/\/blogs.kcl.ac.uk\/proged\/wp-json\/wp\/v2\/posts\/39\/revisions\/983"}],"wp:attachment":[{"href":"https:\/\/blogs.kcl.ac.uk\/proged\/wp-json\/wp\/v2\/media?parent=39"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.kcl.ac.uk\/proged\/wp-json\/wp\/v2\/categories?post=39"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.kcl.ac.uk\/proged\/wp-json\/wp\/v2\/tags?post=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}