By using this site, you are accepting "session" cookies, as set out in the site's Privacy Policy
Resources for learning about computing and programming . . .
See below for links to download ZIP files with a complete package of each day's handouts and resources. The handouts also include links to sites to download other software.
MyEasyPages™ - www.myeasypages.co.uk Use MyEasyPages™ to create a simple web page . . . . . . and show friends and family can see what you've produced
Arithmetic of Computers - www.arithmeticofcomputers.co.uk A structured guide to some of the basic maths of number systems and computers
Found something useful that isn't mentioned here? . . . Any ideas? Thoughts? Comments? Suggestions?
Then email me with details at Info@CodingIsFun.co.uk
CodingIsFun™ is FREE for non-commercial use, but . . . . . . COSTS time, effort and money to develop and maintain!
DONATIONS towards the cost of this and associated work, would therefore be much appreciated.
Thank You!
Not got a PayPal account? No problem! Just pay through PayPal with your credit or debit card.
Examples of suggested suitable donations (for personal / non-commercial / non-profit use) are:
PLEASE NOTE : The standard terms and conditions for use of this site are forpersonal / non-commercial / non-profit use ONLY. If you would like to use this site or any of the materials on it for anycommercial or profit-making activity, PLEASE CONTACT ME at Info@CodingIsFun.co.uk.
Back to main Resources page
Scratch, produced by MIT (Massachusetts Institute of Technology) is a FREE graphical environment for learning about programming.
Designed to be simple and fun to use, it is nevertheless very powerful and incorporates most of the key concepts involved in programming.
Version 1.4 is available for Windows, Mac and Ubuntu Linux environments.
Version 2 runs directly on the web site, using Flash (so despite being web based, will NOT run on many popular mobile / tablet devices) with a very short built-in tutorial introduction.
This session is based on Version 1.4 and includes video tutorials and an illustration of how to implement the Sprite Sorter task (from the Instructions session) in Scratch.
The instructions in the main handout are based on how software and resources were set up on the network I was using. You may well have to make minor changes to the handout to reflect your network setup. In particular: * I had a program group set up in Start / Programs to provide links to relevant software, web sites and folders; * I had a folder set up containing all relevant documents, videos and links; * That included the video tutorials - as the originals are hosted on YouTube and the school's web filtering blocked YouTube access; * And the Haunted House background image that I'd located elsewhere on the web as it was not obviously on the Scratch web site. * Scratch was installed ready for use on computers - this can be on a network location rather than on every individual computer - see the Scratch network installation link below; * And the Sprite Sorter sample project.
Start with a brief introduction to what Scratch is and then straight into the video tutorials. These are simply watch and copy. Make sure pupils know how to pause / rewind / replay videos so that they can go through bit by bit, several times if necessary . . . and know how to flip between Scratch and the Video Tutorial without closing them down. As well as learning about Scratch, this is a good exercise in accurate observation and exact copying of instructions.
Check that you have a media player installed that is capable of playing the MP4 video files reliably, My personal favourite (because it is the most reliable I've found at playing a wide variety of formats - and it's FREE) is VLC Media Player.
Also check that audio output works as it is used in the tutorials - headphones might help too!
Make sure pupils know where to save their Scratch projects. See the Scratch network installation link for instructions on how to modify the Scratch INI file to specify a default location for saving projects
And don't forget to tell pupils that they can access this from home as well - though may need an adult to assist with the download / installation of the Scratch software.
First steps in creating a very simple project.
Even here accuracy matters - there is a big difference between the Change Effect By and Set Effect To blocks.
Discuss concepts of variables and values (link back to the Code Academy session) - the color effect variable is being set to a new value. These concepts can be emphasised and reiterated throughout the tutorials.
Encourage pupils to move on to the next tutorial fairly quickly when they finish each one rather than spending too long playing with their creation, though having fun exploring different possibilities is valuable.
Make sure pupils start each tutorial with a new, clean project and don't keep trying to adapt the previous one - but do encourage them to save the previous one first so that they can come back to it if they wish.
This is slightly more complex and introduces a simple loop.
It is also an opportunity to link coding / mouse position with co-ordinates (XY, Cartesian, along the corridor / up the stairs or however else they are presented to pupils in Maths lessons). Note that X / Y values are relative to the centre of the stage - so concepts of the origin and negative numbers / negative co-ordinate values can also be discussed.
For the Color effect the values are an opportunity to start talking about how colours work - red / green / blue values, hue / saturation / brightness (luminance), colour wheels / cubes - and how the effect is changing the hue value. The Edit Colors colour picker in Windows Paint (or similar in many applications) may help.
This introduces sound and, with it, the concept of timing - when things happen and for how long.
Movement continues the link to co-ordinates and positive / negative values.
A few new things here . . .
First, being able to attach features to different objects in a project - in this case, the background is attached to the Stage, whereas scripts / costumes / sounds are attached to the sprite.
Second, a sprite can have multiple costumes. Note that this is entirely different from having several sprites - you need to attach additional costumes to the one sprite, not add extra sprites.
Third, you can have several scripts running simultaneously - in this case, the sound loop and the costume changes run in separate scripts, so the timings are independent and costume changes don't have to be linked to the timing of the music.
Varying the speed of costume changes is a useful exercise in getting a feel for time, as the timings are specified in seconds.
Pupils may also notice that beyond a certain point reducing the delays to speed up the costume changes no longer has an effect. Quite how fast the dancer can move may depend on the hardware, but noting that there is a limit illustrates the point that any programmer should be aware of the capabilities of the computers on which their code will run.
This is more complex as it uses two sprites and has scripts attached to both and to the stage, which need to be coordinated.
Note that the background image wasn't included with Scratch (as far as I could see on the version I downloaded) - so I've included it as a resource below.
Pupils can continue the story the tutorial starts in any way they like, including adding in extra sprites and sound effects. Experiment too with movement and how to coordinate it with the story.
This is a more complex project with multiple sprites that implements the sorting task from the Instructions session.
Scratch on the Raspberry Pi
A lot of this is about timing and coordination, with scripts attached to the stage and to each sprite.
Note the use of custom variables attached to each object (stage and sprites) to handle calculation of positions. By abstracting the dimensions into variables (rather than hard coding them into scripts), this project should work on practically any sized screen. Some variables (e.g. those determining speed / timing) are parameters that can be varied - again, abstracting these into one place rather than hard coding values into scripts allows for easier changes.
And note the use of broadcast and receipt of messages to allow the main (stage) script to control the separate sprites.
How easy would it be to alter the project to increase the number of letters being sorted?
Coding is Fun - Resources - 4 - Scratch.docx
Please do NOT play these videos direct from this web site - in order to avoid excessive load on the web server, save them to your computer / network and play them from there.
Scratch Video Tutorial 1 - Rainbow Fish
Scratch Video Tutorial 2 - Whirling Butterfly
Scratch Video Tutorial 3 - Beat It
Scratch Video Tutorial 4 - Dancing Queen
Scratch Video Tutorial 5 - Haunted Scratch
Haunted House background for video tutorial 5
Example Scratch Project - Sprite Sorter
Scratch web site : Version 1.4 - download and install Web site for downloadable version of Scratch - with downloads, tutorials, projects, forum, support and much more Scratch web site : Version 1.4 - download and install - scratch.mit.edu/scratch_1.4
Scratch web site : Version 2 - web based using Flash Main web site for Scratch - with projects, forum, support and much more Scratch web site : Version 2 - web based using Flash - scratch.mit.edu
Scratch network installation Notes on Scratch network installation and customisation Scratch network installation - info.scratch.mit.edu/Network_Installation
VLC Media Player VLC download and support VLC Media Player - www.videolan.org
This is a general list of possible additional resources that may be useful (in addition to those in the main Resources pages).
But please note that I have not tried using all of these so you'll need to put in a bit of groundwork yourself.
If you have any helpful comments on any of them or any others that might be added, please contact me at Info@CodingIsFun.co.uk.
Visual Studio is the name for Microsoft’s suite of Integrated Development Environments. 2012 is the latest version. Follow the Learn More link for downloads of versions for developing for Windows Desktop, Windows 8, Windows Phone and Web Sites. Express is the (slightly) stripped down free edition. Microsoft Visual Studio 2012 Express
The previous version, Visual Studio 2010 is also still available. Follow the See Download Details link for versions including the C# is the programming language. Other lnguages are available such as Visual Basic. Express is the (slightly) stripped down free edition. Microsoft Visual Studio 2010 Express
You might also be interested in Visual Studio 2010 for Windows Phone. With this you can develop XNA and Silverlight Apps for Windows phones (Silverlight also runs on PCs as well as Windows Phone 7). Microsoft Visual Studio 2010 Express
Somewhere in all this if you want to work with databases you may want to install some edition of SQL Server.
And you’ll probably encounter the .NET Framework, which is the technology that underpins a lot of Microsoft development stuff and helps link up various diverse technologies, development languages etc.
Note that Windows 7 or later is recommended for all this, even if not necessarily absolutely critical – and, as with all development software, plenty of RAM (my PCs have 6GB) and plenty of hard disc space are recommended.
For fancy graphics you’ll also need XNA Game Studio 4. XNA technology runs on Xbox consoles and Windows Phone 7 as well as on PCs. As a humorous aside, note that there are some people who claim XNA stands for "XNA is Not Acronymed". Microsoft say XNA doesn't stand for anything. Microsoft XNA Game Studio 4
Note that if you have a “.ac.uk” email address (or provide other accepted academic credentials) you can probably register at Microsoft’s Dreamspark site and get the “Pro” editions of this (and other) software [for non-commercial use only!] for free. Microsoft DreamSpark
For loading ISO disc images (which is what you get with some of the downloads), a tool like MagicDisc is helpful – or use Nero or any other CD/DVD burning software to burn the images to disc. Magic Disc
If you want to develop web sites, Microsoft’s web server is called Internet Information Server (IIS) – and ASP.NET is the web server extension that links IIS to the .NET Framework (and hence to development in .NET languages like C#) – there are plenty of (relatively) cheap web hosting companies that offer packages including IIS / ASP.NET / SQL Server and lots more – this is the one I use. Fast2Host
This is very versatile and quite powerful. As well as building the robots in the kit, you can design your own, with motors, lights and various sensors. Programming the robot can be very simple or as complex as you want it it with Lego's own easy to use graphical software or add-ons to Microsoft Visual Studio. Simple programs get stored and run on the Lego Minstorms NXT brick itself. For more complex things you can communicate with a PC while it is running and have a program on the PC control the robot. The robot connects to a PC via USB or Bluetooth. You'll probably want the 8547 kit (or the 9797 kit for education) to start with (unless Lego have come up with a newer version) - note that the Lego online shop is unlikely to be the cheapest place to buy it (unless you can get a special price for schools / academic institutions). Lego Mindstorms
For extra parts / spares, consider hunting on eBay . . .
For more advanced programming in C# using Visual Studio, download the .Net library from MindSqualls . . .
Note also that there is a new Mindstorms EV3 generation of products due out in 2013.
3D graphical programming - similar in concept to Scratch but maybe a bit more advanced. Alice
Graphical programming from Microsoft for PC and XBox. Kodu Game Lab
Tools for learning to programm in Java on Windows, Mac or Linux. Greenfoot
Software for app creation for mobiles from MIT. App Inventor
An alternative to PIC programming. Arduino
A simple robot that works with Raspberry Pi, Arduino - and Shrimp - processors. ShrimpBot
A grass roots organisation that aims to promote the teaching of Computing at school. Computing at School
A magazine (online and print) with lots of stuff about computing and its applications. Created with the aim of sharing the authors' passion about all things to do with Computer Science and published by Queen Mary University, London. CS4FN - Computing Science for Fun
A network of volunteers to run coding clubs in schools. Code Club
Software to learn programming in Ruby. Hackety Hack
A network of software developers and designers aged 18 and under. Young Rewired State
A wide range of devlopment boards based on PIC microcontrollers from MikroElectronika. MikroElectronika - EasyPIC
*** WARNING *** Do *** NOT *** confuse this with easypicDOTcom It is *** STRONGLY *** suggested that you block access to easypicDOTcom And do *** NOT *** use Google to search for EasyPIC
A JavaScript framework, rapidly becoming the de facto standard for simplifying programming in JavaScript, including providing lots of cool effects and solving a lot of the cross-platform web browser compatibility issues. Also think about using JQuery UI. JQuery
A language that extends JavaScript to make it a lot more friendly - and plugs into Visual Studio 2012 to give developers a much smoother development experience. Works with JQuery, but remember to include the jquery.d.ts TypeScript definitions file. You may also want to install the Web Essentials Visual Studio extension. TypeScript
Any ideas? Thoughts? Comments? Suggestions?
Found something useful that isn't mentioned here?
Any questions or difficulties?
Or after any further information?
Then email me at Info@CodingIsFun.co.uk
CodingIsFun™ originated with a series of sessions run outside normal school time in a primary school club, with small groups of children aged 8 to 11 (though CodingIsFun™ is just as much about teenagers and students as it is about younger children), aimed at giving them a broad flavour of what computing is about.
The emphasis was on having fun, getting them involved and variety rather than a systematic effort to turn them into programmers.
It certainly felt ambitious, but none of the pupils dropped out - the club was entirely voluntary, with no compulsion to attend - and the feedback was very positive.
And for the record (for anyone who might expect otherwise), it wasn't just boys - there were plenty of girls and they were just as good as the boys - but then it was a woman, Ada Lovelace, who arguably wrote the first ever computer programme!
Quite a lot!
I'm now running these sessions in 6 local primary schools - and developing ideas for other sessions. I'm involved with Royal Institution Masterclasses I'll be starting a series of sessions in a local secondary school as part of their lower sixth enrichment programme. I'm getting involved with staff at some local schools to introduce computing to them - especially in the context of Computing in the new National Curriculum from September 2014. And extending that to work with the Local Education Authority's Central Enfield City Learning Centre.
So things are quite busy
The simple answer is wherever it needs to to help get youngsters enthused about computing and programming.
It is (and probably always will be) a work in progress!
For one thing, computing doesn't stand still.
For another, there are lots of other people creating resources and tools and a major part of the aim of CodingIsFun™ is to help you find them.
CodingIsFun™ web site and content Copyright © TenScope Limited 2012, 2013, all rights reserved
Company registration no. : 06656008
Registered office : Suite F3 Sunley House, Olds Approach, Watford, England, WD18 9TB, United Kingdom
Contact Email : Info@CodingIsFun.co.uk
Use of this web site is subject to these Terms and Conditions and this Privacy Policy
JQuery is used under the terms of the MIT License. For further details, see http://jquery.com
Usage of code from (or based on code from) the following sources is also acknowledged: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf
Use of relevant web sites and resources drawn from them is subject to the relevant terms and conditions specified on such web sites, including copyright and recognition of relevant trademarks.