Yesterday was the 6th annual Computing At School (CAS) National Conference. The conference, which was attended by more that 300 delegates, provided an opportunity for teachers to find out about the new curriculum. It also gave teachers the chance to meet and learn from other experienced educators about how to introduce computer science in the classroom.
As well as attending a number of inspiring and thought provoking workshops, I was asked to deliver a workshop of my own. I can honestly say it felt an honour to be delivering a workshop along side the likes of Paul Curzon, Mark Dorling and Phil Gardner (to name but a few). It was also great to chat with other educators about how they plan to and, in some cases, how they are already using TouchDevelop to support the delivery of the new curriculum.
Unfortunately, due to reasons out of my control, not everyone was able to attend. This was a little disappointing, especially given the size of the computer labs. However, at the request of those who were unable to attend, below is attached a brief synopsis of the workshop along with resources used in the session. If you have any further questions about the resources in this session, or want to find out more about TouchDevelop, please don't hesitate to ask!
What is TouchDevelop?
TouchDevelop is an online app creation tool from Microsoft Research. Originally designed to develop Windows Phone 7 apps, the TouchDevelop Web App now allows you to develop Windows Store apps suitable for Windows 8 touch screen devices and runs on iPad, iPhone, Android, PC, Mac, Linux. There is also a dedicated TouchDevelop app on the Windows Phone 8.
Why use TouchDevelop?
No installation required
I started by introducing TouchDevelop and explaining the benefits of using TouchDevelop in the classroom. I then directed delegates to the TouchDevelop Web App and demonstrated how to get started.
I followed this with a simple (step-by-step) tutorial using the Turtle library in TouchDevelop. The turtle library is a great tool for introducing students to algorithms. It's also great for introducing iteration as well as discussing the benefits of optimising code.
Once everyone had got to grips with the turtle library, I challenged them to try out some of the tutorials (below).
Resources used in the session:
My first steps with turtle (step-by-step tutorial)
Dice app tutorial
Tap a mole tutorial
Flappy Bird tutorial
TouchDevelop Turing Test (Chat bot tutorial)
Lesson plan to support "chat bot tutorial"
Other useful resources
touchdevelop hour of code – official tutorials from the touchdevelop team.
Build your first app - free online course from Microsoft.
touchdevelop challenge hour of code – step-by-step tutorials created to support the UK hour of code.
touchdevelop Challenge - series of lessons and challenges to get students building games and apps with touchdevelop.
games4learning - Created by David Renton (Extended Lecturer in Games Development: Reid Kerr College, Scotland) A series of YouTube tutorials which introduce students to game design using touchdevelop.
Ray Chambers' touchdevelop Scheme of Work - A complete scheme of work for touchdevelop which sees students design and create an app from scratch.
With the Controlled Assessment out the way and everyone back safely from their Geography field trip, I decided to let my students relax a little (only a little mind!) and have a go at doing some programming using Python and Minecraft Pi Edition.
Suggested time: 50-100 mins
What you will need
For each student / group, you will need:
Note: This lesson assumes that students already have some experience of using the Pis and that they have already installed the Raspbian Operating System. To find out how, click here
I got students to load their Pis and gave them a copy of the minecraft pi installer files including instructions how to install. You can find the instructions here: http://pi.minecraft.net
After all of the students had installed Minecraft Pi edition onto each of their Pis, I gave them a little time to play around with minecraft and get to know the controls.
To launch Minecraft Pi Edition on the Pi:
Open an LX Terminal session:
then, type in the command:
cd mcpi to change to the Minecraft Pi Edition game directory
followed by: ./minecraft-pi
After about 20 minutes or so of playing around, I invited the students to the front of the class and demonstrated the “Hello Minecraft World” script in Minecraft Pi Edition (click here)
I then explained to class that they were going to do some programming in Minecraft using Python.
I started by giving each student a copy of the “Hello Minecraft World” python tutorial and asked them to attempt the first task. Those students who completed the task early were instructed to attempt the “Placing blocks” task.
Once the students had got to grips with the “Hello Minecraft World” tutorial, I then gave each student a copy of the “Python programming using minecraft pi” student booklet and instructed them to attempt each of the tasks.
To finish the lesson, I asked for a few volunteers to demonstrate some of their code. (Tip: Ensure that you allocate enough time at the end of the lesson for students to pack away the equipment!).
http://pi.minecraft.net - Installation instructions and download link for Minecraft Pi edition
http://www.piprogramming.org/main/?page_id=261 - An introduction to programming Minecraft Pi edition.
http://arghbox.wordpress.com/2014/04/25/minecraft-pi-recipe-cards - Python recipe cards for Minecraft Pi
http://arghbox.wordpress.com/2013/06/13/programming-minecraft-pi-with-python-early-draft - Programming minecraft pi with python (early draft)
http://arghbox.files.wordpress.com/2013/06/minecraftbook.pdf - Python programming / Using minecraft pi and codeacademy (Student booklet)
http://arghbox.files.wordpress.com/2013/06/teacheredition.pdf - Python programming / Using minecraft pi and codeacademy (Teacher instructions)
http://www.codecademy.com - Great start for learning Python
http://www.raspberrypi.org/learning/minecraft-pi/ - Getting started with programming the Minecraft world
This week the majority of my class were getting soaked on a Geography field so, with most of my class missing and with the 1st controlled assessment out of the way, I decided to have some fun with the Raspberry Pis and Minecraft Pi edition.
What is Minecraft Pi:
Minecraft: Pi Edition is a version of Minecraft that’s designed to work on the Raspberry Pi. The Pi edition has the added feature that you can program it using either Python or Java.
What you will need:
* This setup is designed for 4-8 students working in pairs (ideal for an after-school club). You may need to add more routers / Raspberry Pis depending on the size of your class. Note: If your want to do this with a whole class, look out for my blog post on networking the Raspberry Pi (coming soon!)
** This lesson assumes that students already have some experience of using the Raspberry Pi and that they have already installed the Raspbian Operating System. To find out how, click here
I got students to setup their Raspberry Pis and gave them a copy of the Minecraft Pi installer files (along with installation instructions). You can find the instructions here: http://pi.minecraft.net
Activity 1 (Installing & getting to know Minecraft Pi):
After all of the students had installed Minecraft Pi edition onto each of their Pis, I gave them a little time to play around with Minecraft and get to know the controls.
Activity 2 (Networking the Raspberry Pis):
After about 20 minutes or so of playing around, I invited the students to the front of the class and explained to them that they were going to network their Raspberry Pis.
I explained that every computer has a unique IP address and that this unique address enables it to communicate over a wide area such as the Internet. I explained that the IP address is made up of four numbers (ranging from 0 to 255) and separated by 3 dots. I then showed the following example on the board:
I explained that the IP address can be either entered in manually or can be configured automatically using a Dynamic Host Configuration Protocol (DHCP) Server. I explained that, because our router had a built-in DHCP server, the router would automatically assign a unique IP address to each of the Raspberry Pis once they are connected to the network. I then asked the class what they thought the benefit are of using a DHCP server – looking for answers such as “You don’t have to manually assign the IP address for every device on the network” and “The DHCP will ensure that every device has a unique IP address” etc.
Note: All modern routers should have a built-in DHCP server and this service will normally be turned on by default. The Raspberry Pi will automatically send out DHCP request as soon as it is connected to the network and therefore should be assigned an address automatically without any user intervention.
Extension: At this point, you could also discuss other significant network terms such as default gateway, subnet mask, broadcast, DNS, MAC address etc., however, as I will be looking at networks in more detail later on in the course, I felt that it was beyond the scope of this lesson.
Next, I gave each student a CAT 5 lead and asked them to connect one end to their Raspberry Pi and the other end to a spare port on the Router. Once the students had done this, I asked them to test if their device had successfully connected to the network by checking to see if it had a valid IP address.
To check that the Raspberry Pi has a valid IP address, open an LX Terminal session:
Then, type in the command: ip addr. You should see similar to the following output:
If everything has been setup correctly, your Raspberry Pi should have a valid IP address. In the screenshot above, the Raspberry Pi has been configured with the following IP address: 192.168.0.90
Next, I instructed the students to test the network further by pinging the router. You can obtain or manually change the routers IP address by logging into the router itself (See your routers instruction manual). Usually, by default, the IP address of the router will be 192.168.0.1
To ping the router:
Open an LX Terminal session then type in the command: ping followed by the IP address of your router. In our case, the students typed in ping 192.168.0.1 See below:
This image above shows a ping between a Raspberry Pi and the router which, in this case, has an IP address of 192.168.0.1 The –c 10 option sends 10 packets and the echo replies are shown above with the time taken.
Activity 3: (Multiplayer Minecraft Pi)
Finally, once all the students had successfully networked their Raspberry Pis, I asked one of my students to launch Minecraft Pi edition on their Raspberry Pi and asked him to “Start Game”. Once Minecraft had loaded, I then asked the rest of the class to also launch Minecraft on their Pis however, this time, to “Join Game”. We finished the lesson with a bit of Multiplayer Minecraft!
Hint: When the other students click on “Join Game”, they will need to select “Steve Pi” - Don’t ask me why :)
http://pi.minecraft.net - Installation instructions and download link for Minecraft Pi edition
http://www.ocr.org.uk/qualifications/by-subject/computing/raspberry-pi/ - OCR Raspberry Pi: Getting started tutorials
http://www.raspberrypi.org/help/quick-start-guide/ - Raspberry Pi quick-start guide
Microsoft Innovative Educator Expert / MIE Trainer
Minecraft Cert. Educator / Global Mentor
CAS Master Teacher
Raspberry Pi Cert. Educator