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
This is an opportunity to explore a wide range of aspects of hardware and software.
The Raspberry Pi is on the one hand a very simple computer and you feel much closer to the raw hardware. At the same time it is actually surprisingly powerful and supports a wide range of programming tools.
Raspberry Pi (with extra hardware connected for session 9)
It is also designed so that you can play to your heart's content without worrying about doing any damage. If you completely wreck the software / operating system installation ("brick" it), the worst you have to do is spend a few minutes re-imaging the SD card, plug it back in and away you go again. Unlike PCs and Macs, where reinstalling operating system and software can be a lot of work and very time consuming, you can afford to experiment.
Incidentally, while I've set out below some notes to get you started, the Raspberry Pi web site has forums with lots of help and advice that probably does it far better than I can. Please note that although these notes are quite extensive, none of this is difficult and much of it may seem very obvious. I've just tried to make sure that all the key things you might need are covered.
First of all, get your hands on a Raspberry Pi. See the Raspberry Pi web site for up to date details. They are cheap (about £30 including VAT and delivery for the Model B), but initially demand outstripped supply by a very long way. Hopefully that has improved as they have ramped up production, but do check what delivery times are like and don't bank on being able to order at the last minute. So far they have only been available online through the RS Online and Farnell / Element 14 (element 14 in the periodic table is silicon) web sites. Other suppliers (e.g. Maplin, traders on Amazon, sellers on eBay) are offering Raspberry Pis, but do check whether they actually have stock, delivery times and what price they are charging.
Unless you are really strapped for cash, go for the Model B - it has an Ethernet / LAN port. Apart from anything else you'll need an internet connection to install packages such as Geany (see below).
It really is a bare computer - CPU / GPU / RAM, SD card slot, 2 USB ports, video / audio output, power connector and GPIO header. OK, there are a few other specialised connectors, but if you're using those, you're already heading for expert status. So you'll need a few extras - hopefully you'll have many of them to hand already.
Note that there are plenty of "Starter Kits" emerging that give you a lot of what you need. And books / guides to help you. They may help, but check what you are getting / paying. They certainly aren't essential or the only way to get up and running.
HDMI to VGA Adapter
Hopefully it is fairly obvious how to plug it all together, but before you do, you'll need an operating system / software.
The recommended operating system for the Raspberry Pi is Linux. Specifically Debian (rather than Ubuntu or any of the other flavours of Linux). And more specifically Debian Wheezy (Wheezy being a character in the Toy Story films - all versions of Debian have been named after Toy Story characters). N.B. This has changed since a few months ago when I started with my Pi - everything I did then ran the previous version, Debian Squeeze. These notes are based on a re-image I've done using Wheezy, so should be up to date at the time of writing, but if anyone spots any major differences or problems, please let me know.
Download an image file of Debian Wheezy from the Raspberry Pi web site and unzip it. This is quite a big download (over 400MB - unzipped it's nearly 2GB), so save it somewhere safe. Note that the image file may be updated periodically with bug fixes, enhancements etc., so you might want to check occasionally whether there is a later version.
You'll also need software to copy the disc image to an SD card. For Windows PC users, Win32DiskImager works fine (occasionally pops up an odd error message when you start it, but I've always ignored that without encountering any problems - if there's a later version of Win32DiskImager that might be cured). If you're not running Windows on your main computer, see the Raspberry Pi forums for software / instructions on imaging the SD card. Note that I'm running Windows 7 Professional 64-bit with 6GB RAM and plenty of hard disc. I'm not aware of any issues over Windows versions / machine spec. with Win32DiskImager, but if you do encounter any problems, you might want to check the Win32DiskImager web site or Raspberry Pi forums. And, of course, you'll need an SD card reader or SD card USB adapter for your PC. Using Win32DiskImager is pretty straightforward - all you need to specify is the image file to be used and the SD card to be imaged. If there's a problem with Win32DiskImager, the downloaded image might be corrupted (that happened to me) - downloading it again solved the problem. Note also that Win32DiskImager doesn't seem to like reading the image file from a network drive - so even if your master copy is on a network drive, make sure the copy you are using as the source is on a local hard disc. Also note that Win32DiskImager can be used to create an image file from an SD card - useful for making a backup (for reimaging SD cards) when you've got everything set up and configured.
Now put it all together, plug in the SD card, turn on your TV, turn on the Pi power supply (at the mains - there isn't an on/off switch on the board). And wait.
Hopefully you get an image on the screen. Don't worry if it's a bit undersized, you can fix that later. The Pi may ask for a reboot after it's done its preliminary configuration. If it stops and doesn't reboot itself, check the on screen messages then switch off and on again.
You should then get to a moderately friendly configuration screen. The notes below deal with the things you're most likely to want to change. The rest are probably for more advanced users only. If you need more help, search the Raspberry Pi forums. Just a couple of quick points. First, when you select an option (just highlight it using the arrow keys and press Enter), the next screen may take a few seconds to load - be patient. Second, after you've been through the initial configuration and selected the Finish button (tab to it and press Enter) the screen won't come up again automatically when you reboot. To get to it, just log on (as 'pi') and do 'sudo raspi-config'.
Raspberry Pi Configuration Screen
Expand Root FS - if you have an SD card greater than 2GB, this is probably a must. The initial image will only use 2GB whatever size card you have. This option expands that to use the whole SD card. Note that it will take a while and require at least one reboot.
Memory split - how much the CPU uses vs. how much the GPU uses - change this so that the CPU uses 192MB and the GPU 64MB (with the default of 16MB for the GPU, the project below won't run as the OpenGL system won't work).
Configure keyboard, change locale, change timezone - check whether the defaults suit your environment and change them if necessary.
Overscan - if your display doesn't fill the screen, you'll want to enable this. Unfortunately you'll then need probably to do some more fiddling around outside the friendly configuration - see more below.
When you're done, select Finish and reboot.
You should then get to a text login prompt. The user name is 'pi'. The password is 'raspberry'.
You're now logged in, but still in text mode. The GUI (graphical user interface) is based on X Desktop and called LXDE (Lightweight X Desktop Environment - or something like that . . .). To start it type 'startx'.
Hopefully you now get to a screen that is vaguely friendly. Have a play. Then think about what extra configuration etc. you need to do.
Note that while some things can be done using graphical tools, this is Linux, so a fair number of bits may need a good, old-fashioned text / command / terminal prompt interface. To get to that, inside LXDE open up an LXTerminal window - or log out of LXDE (this only logs out of LXDE - it does NOT log the user out of Debian completely) and do everything in text mode - or just don't start LXDE after you log on.
Note also that a lot of changes need 'root' access. You have 2 options - either log on as 'root' (rather than as 'pi'), which you can do after you've set a root password (see below) - or prefix commands with 'sudo' (SUpervisor DO).
As a last general point, text commands are case sensitive (frequently all lower case, though not necessarily always) - this is different from some other environments (such as the command prompt or batch files in Windows / DOS).
A couple of general commands . . . 'logout' to log off (maybe if you want to swap to / from logging on as root) . . . 'sudo reboot' (hopefully obvious) . . . 'sudo halt' (again, hopefully obvious).
Set a root password - at a command prompt do 'sudo passwd root'. Then enter a password (twice) when prompted.
Now think about your display setup. By default HDMI should go into a safe mode. But to get the best output you may need to force a mode manually, so will need to know what mode to use. Open an LXTerminal prompt and do 'tvservice -m CEA' and then 'tvservice -m DMT'. This should give you a list of CEA and DMT modes available. Don't worry about what the difference is between CEA and DMT, just decide what mode you want to use (resolution, refresh rate and whether progressive or interlaced) and note the mode number and whether it's CEA or DMT. Now edit the config.txt file using 'sudo leafpad /boot/config.txt'. Look for the lines that say '#hdmi_group' and '#hdmi_mode'. Remove the '#' signs to uncomment them. The hdmi group should then be changed to 'hdmi_group=1' for a CEA mode or 'hdmi_group=2' for a DMT mode. Now change the hdmi mode line to 'hdmi_mode=n' where 'n' is the number of the mode you want to use. Save the config.txt file and reboot.
Having done that, now play with the overscan settings. These determine the size of the black border round the display. There are 4 lines in the config.txt file (edit it using Leafpad as above) - '#overscan_left=16' etc. Again, remove the '#' signs to uncomment them. And adjust the values until you get the result you want. Smaller value give smaller borders - larger values, larger borders. If 0 doesn't give a narrow enough border you can use negative values.
By way of illustration, my setup uses CEA (so group 1) mode 4 (1,280 by 720 pixels 60Hz progressive) with left / right overscan at 0 and top / bottom at -20.
The project below is written in 'C'. In the original Squeeze image of Debian, the Geany IDE was included. For some reason the Wheezy image omits it. But that isn't a problem as it can be easily installed. Open an LXTerminal prompt and do 'sudo apt-get install geany' - and then accept changes when prompted. Note that apt-get is the general Debian package management tool and provides an easy way to manage what packages are installed. It will automatically retrieve anything needed from the internet and install / configure it.
At this point it's worth noting that this needs an internet connection. So long as you have an ethernet cable plugged in and your network has a DHCP server, everything should be configured automatically. The only extra configuration that might be needed is to add in any proxy server details (Preferences / Network in the Midori web browser).
Lastly a couple notes on things you probably DON'T need to worry about. First, swap file / virtual memory - experts only - you probably don't need to worry until you're doing something much more complex where it might really matter. Second, audio - getting this running (getting the cat in Scratch to Meow) was an issue with the original Squeeze image - with the current Wheezy image it should now just work.
I started this session using the PowerPoint slides.
This started off by showing pupils the Raspberry Pi (with nothing connected), letting them handle it and asking them if they knew what it was. A bowl of raspberries (soon emptied) helped make the point and make it memorable!
This led into a discussion of what the various components and connectors on it were and what they did. Key issues included the central role of the processor (and the different roles of CPU and GPU), memory / RAM and storage / SD card / hard disc and the differences between them (fast / temporary vs. slower but permanent - memory is perhaps a misnomer - 'forgettory' might be better as it remembers nothing when the computer is switched off), various peripherals and the power supply. Comparisons were drawn with the PIC. And an old PC motherboard was also passed round and the basic similarities discussed. I also had a spare stick of PC RAM and an old hard drive that I'd opened up so that they could see the guts of the platters and heads.
Next up was software - specifically the operating system - both for the Pi and for other types of computers to make the point that all computers need an operating system of some sort to provide a core framework within which applications function. The software most users think about is applications (Word, Excel, web browsers, mobile apps etc.), but the operating system is just as important.
And then IDEs - Integrated Development Environments. Across the sessions we see several IDEs in use. Their functions are similar even if they might look fairly different. A way to write code in some language that is at least fairly intelligent to human beings, to convert it into code that computers can understand (compiling it - the difference between compiled and interpreted languages was glossed over) and then getting it to run. Possibly with debugging facilities as well. An application for creating applications.
Geany / "C" on the Raspberry Pi
This is a relatively simple application, displaying a constant stream of images flying through space.
It's written in 'C' (but avoids most of the more complex ways that 'C' can be written and does NOT use C++).
To generate the 3D graphics it uses the OpenGL ES 2.0 libraries. OpenGL is one of the major sets of libraries used in many applications / games for 3D effects. The ES versions are designed for Embedded Systems (including mobile phones). And 2.0 is the latest version. So this is fantastic software to be using.
Download the software (ZIP file), and unzip it to a folder (up to you where, but inside the user's documents is probably sensible) on the Pi. You can either do the unzipping / extraction on a PC (or any other computer) and then copy the files to the Pi or download the ZIP file straight to the Pi and unzip it with 'gzip' on the Pi, whichever you are more comfortable with. Note that accessing files on another computer from the Pi is straightforward - Go Network Drives in File Manager and work from there, entering any necessary network credentials when prompted.
Open up the project - right-click on the SpaceOdyssey.geany file and select Geany. Use Build Make in Geany to compile the source code to an executable. And Build Execute to run it. It actually runs as a standalone executable (and does NOT rely on the X Destop environment). So you could run it from a terminal prompt without even starting LXDE - navigate to the folder with the SpaceOdyssey files and do './SpaceOdyssey' (case-sensitive). However you run it, press Ctrl-C to terminate it.
Note that the display size / position it uses is set in the esCreateWindow call in line 58 of the SpaceOdyssey.c file. The 4 numbers are the left, top, width and height of the display area used in pixels. The default values give an exact full screen on my setup. You may want to change them to suit your setup - in particular, the HMDI display mode / screen resolution and overscan values. Just change the values and recompile.
You might also like to edit the crest image. Actually there are 9 images - crest0.png to crest8.png. Start with crest0.png which is a 256 by 256 pixel image in PNG format. Use any convenient image editor you like. But note that the area outside the shield is transparent - opacity = 0. Subsequent images are just lower resolution copies - halve the dimensions for each successive image - so crest1.png is 128 by 128 pixels etc. down to crest8.png being 1 by 1 pixel. These are used for 'mipmaps' - see OpenGL documentation for what this means.
As a simple exercise, you can now look at the code and change the variables that affect things like speed.
Also look at the code that clears the image / sets background colour for each successive frame. Try changing the RGB values to change the background colour. And the A (opacity) value - you can then "see through" the image to the windows undernath - including the window that monitors the frame rate being achieved.
What happens to the frame rate if you change the number of "stars" (number of images) being displayed? Is having more stars always good? If not, why not?
Look also at the basic code structure of updating the 'game position' and rendering frames. This is much like the suggestions for discussion in the PIC session. Get pupils used to the idea that this isn't magic and the code is fairly accessible and not something hopelessly beyond the reach of individuals. This is well within the realms of what is possible with home computing.
Ideally you'll be able to get pupils working in small groups (2 or 3 at a time) on a Raspberry Pi. I was lucky enough to be able to get more than one Raspberry Pi set up and to get pupils to go through actually plugging everything in, starting it up (with a pre-configured SD card) and editing / compiling / running the project for themselves.
See links below for the Khronos documentation of OpenGL ES 2.0. If you want to know more, see the OpenGL ES 2.0 Programming Guide and associated sample code.
Incidentally, one quirk of OpenGL that may confuse if you get into it is the fact that matrix storage is in "column major" order, not the more usual "row major" order. That is to say, Matrix[A][B] refers to the element at column A, row B (not row A, column B). Depending on how code is written, this means that things like matrix multiplication may appear to be the "wrong way round" or operations performed in the "wrong order".
Please note that the OpenGL code (e.g. Hello Triangle) included in the Debian Wheezy image is, as far as I can see, based on OpenGL ES 1.0 and not 2.0. The differences are significant. Version 1.0 is based on a fixed function pipeline. Version 2.0 on a programmable pipeline. I have not attempted to adapt any of the 1.0 samples to 2.0 and anyone attempting to do so should expect to have to make substantial changes even for relatively simple applications.
This isn't the place to go into details, but, like many environments, Geany uses a makefile to control the build process - essentially a customisable set of rules to control many types of operations.
Lastly, for anyone wanting to learn more about 'C', The C Programming Language by Kernighan and Ritchie book is still an excellent introduction. Note that my preferred coding style / use of braces etc. is the 'Allman' style (as generally adopted in Microsoft Visual Studio and other Microsoft sources) rather than the 'One True Brace Style' adopted by K&R.
Pick up the theme of using co-ordinates. This time we are in 3D, so we have a third, depth or Z co-ordinate.
Look at how a 3D scene is put together. Individual objects are placed in a 3D box (like a room). You then have a 'camera' placed in the room that views the objects. The camera is at a particular point in the room. It has a particular orientation - it is pointing towards some specific spot - and you need to know which direction the camera thinks is up. Finally, the camera has a field of view - how wide an angle it can see and how the size of the vertical view compares with the size of the horizontal view (the aspect ratio) - and what are the nearest and furthest distances along its line of sight (z-coordinate) that it will see. These are the Model, View and Projection elements that the computer uses to draw the final image.
Note that the only things OpenGL can really draw directly are triangles - everything is made up of triangles. So a square or rectangle has 2 triangles. More complex surfaces have many more.
Consider the roles of CPU and GPU. A lot of the real work is done in the GPU. This project really has 2 programmes - the CPU programme written in 'C' - and the GPU programmes, the shaders, written in a high level shader language. The GPU is extremely good at doing a lot of relatively small but similar tasks very fast. Vertex shaders do all the plotting of the corners (vertices) of the triangles. Pixel shaders fiil in (interpolate) between the vertices and add the detailed image data (from textures).
Think about colours - red / green / blue values - 1 byte each - for every single pixel on the screen. But the images aren't squares / rectangles, they are shield shapes. No they're not - they are squares - but some pixels are transparent. We are using a fourth 'A' value, the opacity (opposite of transparency) at every point of the baic image (texture).
Note that the Raspberry Pi comes with Scratch installed. So all the tutorials from the Scratch session and the Sprite Sorter example will function on it. Relevant files are included in the ZIP download below.
Coding is Fun - Resources - 6 - Raspberry Pi
Coding is Fun - Resources - 6 - Raspberry Pi - PowerPoint
Coding is Fun - Resources - 6 - Raspberry Pi - Software With thanks to Lode Vandevenne for LodePNG - LodePNG - lodev.org/lodepng.
Raspberry Pi web site Starting point for everything Pi Raspberry Pi web site - www.raspberrypi.org
Raspberry Pi quick start quide Getting you up and running Raspberry Pi quick start quide - www.raspberrypi.org/quick-start-guide
Raspberry Pi downloads Essential software Raspberry Pi downloads - www.raspberrypi.org/downloads
Raspberry Pi FAQs Answers to common questions Raspberry Pi FAQs - www.raspberrypi.org/faqs
Raspberry Pi forums More help / get your questions answered Raspberry Pi forums - www.raspberrypi.org/phpBB3
Farnell / Element 14 Raspberry Pi seller Farnell / Element 14 - www.element14.com/community/groups/raspberry-pi
RS Online Raspberry Pi seller RS Online - uk.rs-online.com/web/generalDisplay.html?id=raspberrypi&cm_mmc=UK-Short_url-_-Internal-Flyer-_-%20RaspberryPie-062012-_-Multimedia
Win32ImageWriter To image SD cards Win32ImageWriter - sourceforge.net/projects/win32diskimager
Khronos OpenGL ES 2.0 documentation Online reference Khronos OpenGL ES 2.0 documentation - www.khronos.org/opengles/2_X
OpenGL ES Programming Guide Introduction and guide - see below for sample code OpenGL ES Programming Guide - opengles-book.com
OpenGL ES Programming Guide Sample Code Sample code for the guide above, ported for the Raspberry Pi OpenGL ES Programming Guide Sample Code - https://github.com/benosteen/opengles-book-samples/tree/master/Raspi The code for the Raspberry Pi version of the Space Odyssey project includes code adapted from this sample code and its use is subject to the relevant terms and conditions.
The C Programming Language Introduction by Kernighan and Ritchie The C Programming Language - en.wikipedia.org/wiki/The_C_Programming_Language
C Coding Styles The One True Brace style / Allman style C Coding Styles - en.wikipedia.org/wiki/Indent_style
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.