Coding 2 Learnhttp://coding2learn.org/2017-06-11T00:00:00+01:00Dear Theresa,2017-06-11T00:00:00+01:002017-06-11T00:00:00+01:00Marc Scotttag:coding2learn.org,2017-06-11:/blog/2017/06/11/dear-theresa/<p>I haven't written anything here for a couple of years, but recent events have inspired me to once again touch fingers to keyboard, in the hope that you might read this.</p>
<p>What I'd like to talk to you about is <strong>encryption</strong>. Wait a second... Please keep reading. I know the …</p><p>I haven't written anything here for a couple of years, but recent events have inspired me to once again touch fingers to keyboard, in the hope that you might read this.</p>
<p>What I'd like to talk to you about is <strong>encryption</strong>. Wait a second... Please keep reading. I know the subject can sound dull and overly technical. I recognise that you may have been told it's too difficult to understand for the layperson. You might even have been led to believe that encryption is the reason terrorists can get away with atrocities. However, If you give me just 15 minutes or so of your time, then I'm sure you'll be better informed about what encryption is, and I'll also tell you how you can go about ensuring that encryption never again thwarts the country's security services. What have you got to lose?</p>
<h2>What is Encryption?</h2>
<p>Encryption is simply hiding information so that only an authorised individual can read it. Here's a simple analogy. if you want to send a message to your friend Robert, then you could buy yourself a metal box with a padlock. The padlock has two keys. One key you keep and the other you give to Robert. This way you can write a message, lock it in the box, and send the box to Robert, knowing that he's the only other person with a key, that can open it.</p>
<p>Sending messages in padlocked boxes isn't a great way of communicating though. For a start, it doesn't take much more than a hacksaw and a few spare minutes to cut through the padlock and dig out the message. Secondly, your postman is going to end up hating you for constantly sending heavy metal boxes through the mail.</p>
<p>In cryptography, rather than using physical keys and lockable boxes, we use mathematics.</p>
<p>The message you want to hide is called <strong>plaintext</strong>. Once the message has been encrypted it's called <strong>ciphertext</strong>. A <strong>key</strong> can be used to change plaintext to ciphertext and visa versa.</p>
<p>One of the earliest methods of encrypting messages was called the Caesar cipher, so named because according to some sources it was used by the Roman Emperor Julius Caesar, when he sent messages to his generals.</p>
<p>Imagine I want to encrypt the message <code>the quick brown fox jumps over the lazy dog</code>. First I choose a key between 1 and 25. Let's go for 13. I then shift every letter in my message forward in the alphabet by 13 places. Here's a handy guide to show you the letter substitutions:</p>
<div class="highlight"><pre><span></span>a b c d e f g h i j k l m n o p q r s t u v w x y z
| | | | | | | | | | | | | | | | | | | | | | | | | |
n o p q r s t u v w x y z a b c d e f g h i j k l m
</pre></div>
<p>So any <code>a</code> in my plaintext message becomes an <code>n</code> in the ciphertext. A <code>b</code> becomes an <code>o</code>. My full message becomes <code>gur dhvpx snfg sbk whzcf bire gur ynml qbt</code>. This looks like complete nonsense, right? I can now send this message to Robert, and so long as Robert is aware that the key is 13, all he has to do is shift each letter in the message back by 13 places to decrypt the message.</p>
<p>The Caesar cipher was useless, even before the age of computers. For a start, it's easy to <strong>brute force</strong> the ciphertext to plaintext.</p>
<p>Brute force just means trying all the possible combinations of a key, until you are successful. All an evil party --- let's call her Evelyn --- needs do is try every key from 1 to 25. She'll know after the first couple of words have been decrypted if she's found the key or not.</p>
<p>If Evelyn chooses not to brute force the answer, she could look at letter frequencies. For instance the letters <code>e</code> and <code>t</code> are the most frequently found letters in the English language. So all she needs to do is find the two most common letters in the cipher text, and she can probably assume these are the letters <code>e</code> and <code>t</code>. This then lets her work out what the key is.</p>
<p>This message has been encrypted using the Caesar cipher, and I have absolutely no doubt that it can easily be decrypted, even though I haven't used the number 13 as a key.</p>
<div class="highlight"><pre><span></span>exm tee fxg dghp ahp xfimr tgw phkmaexll bl max ihpxk hy dbgzl, yhk maxkx bl ghgx phkmar hy max gtfx, unm ax pahf axtoxg, xtkma, tgw lxt huxr ur xmxkgte etpl.
</pre></div>
<p><a href="https://github.com/MarcScott/simple_encryption/blob/master/cc.py">Here's an example of the Caesar Cipher, written in Python</a> that I have used to teach teenagers about encryption.</p>
<h2>Early unbreakable encryption</h2>
<p>There were various improvements on the Caesar cipher, but they all suffer from being easily brute forced or being subjected to letter frequency analysis. This all changed with the invention of the one-time pad.</p>
<p>The one-time pad is a genuine unbreakable method of encrypting and decrypting messages. To continue the analogy, it's like using a padlocked box, where both the padlock and the box are made from an unbreakable metal, and you never use the same key/lock combination twice.</p>
<p>The one-time pad is at it's heart a twin pair of notebooks, identical in every way. On each page of the notebooks there is a grid of random numbers. These numbers can be chosen by a computer, or a much more analogue method such as a bingo machine.</p>
<p>Here is an example of a single page of a one-time pad, only using the numbers 0-26 for simplicity's sake.</p>
<div class="highlight"><pre><span></span>| 14 | 8 | 4 | 16 | 17 | 12 | 4 | 13 | 5 | 4 |
| 9 | 19 | 23 | 16 | 8 | 9 | 25 | 21 | 12 | 1 |
| 19 | 17 | 5 | 11 | 0 | 13 | 22 | 2 | 4 | 21 |
| 5 | 14 | 22 | 23 | 3 | 1 | 14 | 18 | 9 | 24 |
| 7 | 23 | 23 | 20 | 10 | 7 | 22 | 16 | 20 | 17 |
| 4 | 2 | 12 | 23 | 24 | 4 | 1 | 19 | 24 | 2 |
| 11 | 25 | 3 | 12 | 4 | 1 | 17 | 25 | 16 | 8 |
| 17 | 8 | 9 | 15 | 5 | 19 | 12 | 5 | 0 | 11 |
| 7 | 6 | 19 | 5 | 16 | 1 | 3 | 13 | 10 | 4 |
| 24 | 17 | 25 | 9 | 6 | 9 | 9 | 11 | 17 | 17 |
</pre></div>
<p>Now imagine that you and Robert want to exchange messages. You both have copies of the same pad and importantly agree to destroy each page once it has been used once, so you always use a different page for each message you encrypt.</p>
<p>Now you can send Robert a message. Maybe:</p>
<div class="highlight"><pre><span></span>Meet me at the pub at nine
</pre></div>
<p>So the first character in the message is an <code>m</code>, and the first number in the one-time pad is <code>14</code>. This means that the character <code>m</code> gets shifted fourteen places forward in the alphabet (cycling back around to <code>a</code> once <code>z</code> has been reached). The cipher text of the character <code>m</code> is now an <code>a</code>. Then you move on to the next, shifting the first <code>e</code> by eight places and the second <code>e</code> by four places.</p>
<p>In this way the message becomes:</p>
<div class="highlight"><pre><span></span>amij yi fx meu ytw bm stnr
</pre></div>
<p>The beauty of this method of encryption is that brute forcing a solution is impossible. The only clue you have as to what the cipher text contains is the length of each word. Letter frequency analysis is also impossible, as the same characters will be encrypted using different, random, shifts each time. You'll notice that the character <code>e</code> becomes <code>m</code>, <code>i</code>, <code>i</code> and then <code>r</code> in the encryption above.</p>
<p>You can find a simple example of how to create a one-time pad encryption scheme, written in Python, <a href="https://github.com/MarcScott/simple_encryption/blob/master/otp.py">here</a></p>
<p>So we have unbreakable encryption, but it has one colossal flaw. In this case, the major problem is <strong>Key Exchange</strong>. You and Robert need to exchange one-time pads. The only safe way to do this is to meet in person and physically hand over the pads (be they printed on paper or stored as files on flash memory). You can't email a one-time pad to Robert, because it could easily be intercepted by the nefarious Evelyn, who can then use her copy of the pad to decrypt all your messages. She doesn't even need to know which page you are using, as she can easily now brute force a decryption just by getting a computer to try every single page on each encrypted message.</p>
<p>If a one-time pad has been intercepted during key exchange, it is useless. That's why I know that the following message, using the one-time pad above, can easily be decrypted.</p>
<div class="highlight"><pre><span></span>vbxfj://jr.pfaqydyub.fwr/jemm/hwpfcfbxxsy
</pre></div>
<h2>Public Key Cryptography</h2>
<p>Clever mathematicians worked out a method to overcome the problems of key exchange back in the 1970s. Yes, that's right, this technology has been around for nearly fifty years!</p>
<p>The analogy gets pulled a little thin here. You want Robert to send you a secret message. So you send out a padlock to everyone in the world, or maybe you just have a bin filled with padlocks that sit outside of your house. We'll call these padlocks your <strong>Public Key</strong>, rather confusingly. You keep the key that can unlock the padlocks safe, and there is only one key. This is called your <strong>Private Key</strong>. Now, anyone can send you a message in a box, and use your public key to lock the box. They can't open the box and neither can anyone else. The box can then be safely sent in the mail, and nobody along the journey can unlock it, until it reaches your house at which point you can unlock the box.</p>
<p>Mathematically this works on a simple principle. Let's take two prime numbers <code>13337</code> and <code>103171</code>.
It's trivially easy to prove that <code>13337 x 103171 = 1375991627</code>. You can just type it into a calculator. It's really hard to find two prime numbers that when multiplied together makes exactly <code>1375991627</code> though. You don't have much choice but to keep multiplying prime numbers together until you find the two that work. Now in this example a computer can do it fairly quickly, but as we increase the size of the prime numbers, the length of time it takes a computer to brute force the solution, quickly stretches to the known life of the Universe.</p>
<p>This clever maths with primes can be used to encrypt messages. To see how easy this is to implement, we can use really low prime numbers, and what is known as the <a href="https://en.wikipedia.org/wiki/RSA_(cryptosystem)">RSA cryptosystem</a>. The mathematics gets a little complicated, but most people with a reasonable understanding of secondary maths can manage it. I know, as I've taught it to twelve and thirteen year-olds.</p>
<ul>
<li>Choose three prime numbers. Let's go for <code>13</code>, <code>17</code> and <code>19</code>.</li>
<li>Multiply the two largest numbers together. <code>17 x 19 = 323</code></li>
<li>Your public key is now a combination of this product and the small prime number <code>323 13</code>. You can share this with the world.</li>
<li>To get your private key, you need to subtract <code>1</code> from your two large primes and multiply them together.</li>
</ul>
<div class="highlight"><pre><span></span>17 - 1 = 16
19 - 1 = 18
16 * 18 = 288
</pre></div>
<ul>
<li>Then find a number that when multiplied by the small prime and divided by this product, gives a remainder of <code>1</code>.</li>
</ul>
<div class="highlight"><pre><span></span>some_number * 13 ÷ 288 = some_other_number remainder 1
</pre></div>
<ul>
<li>In this case that number is <code>133</code>. Computers can quite easily calculate this.</li>
</ul>
<div class="highlight"><pre><span></span>133 * 13 = 1729
1729 ÷ 288 = 6 remainder 1
</pre></div>
<ul>
<li>You now have your private key. It's <code>323 133</code></li>
</ul>
<p>Now please bare with me. It's important that you understand that although the maths maybe a little complicated, it's not that difficult to implement. You send you public key off over the internet, and Robert gets his copy.</p>
<ul>
<li>
<p>Robert wants to encrypt the letter <code>q</code> to send it to you. He converts it to a number first, using it's position in the alphabet - <code>17</code></p>
</li>
<li>
<p>Now he raises that number to the power of the second part of your public key. </p>
</li>
</ul>
<div class="highlight"><pre><span></span>17 ** 13 = 9904578032905937
</pre></div>
<ul>
<li>Now he divides that number by the first part of your public key, and works out the remainder.</li>
</ul>
<div class="highlight"><pre><span></span>9904578032905937 ÷ 323 = 30664328275250 remainder 187
</pre></div>
<ul>
<li>
<p>This number - <code>187</code> is now the ciphertext, that Robert can send off to you.</p>
</li>
<li>
<p>You receive the number <code>187</code> by email. Raise it to the power of the second part of your private key.</p>
</li>
</ul>
<div class="highlight"><pre><span></span>187 ** 133 = 142867573740720566967281881607100347295847400907671386091157121622780454369129479664615460769905626347535899931271341842520680048730294079130102722601895364310787622375946501020768888839654428347116807175403923673347503784689653101030237682797486439417148026581600192839120518456938618487878401112343947
</pre></div>
<ul>
<li>Wow, That's a big number. Now calculate the remainder when that number is divided by the first part of your private key.</li>
</ul>
<div class="highlight"><pre><span></span>142867573740720566967281881607100347295847400907671386091157121622780454369129479664615460769905626347535899931271341842520680048730294079130102722601895364310787622375946501020768888839654428347116807175403923673347503784689653101030237682797486439417148026581600192839120518456938618487878401112343947
÷ 323 =
442314469785512581539161245422235995778036566832043721231550219640260682060418642693079682615153948474292406207252865372224104020193042907357701452102267201984216551240583474414661674655052564333398394342775448312722776663559110370250126302215824888785001731815323491471101026301914858467798032580608
remainder 17
</pre></div>
<ul>
<li>Notice that remainder. It's <code>17</code>, which is the position of <code>q</code> in the alphabet. You've decrypted the ciphertext and have the plaintext that Robert sent you.</li>
</ul>
<p>Now obviously you have to do this maths on every letter in your message, but computers can do that very easily. Also using small prime numbers makes this pretty easy to brute force, but again computers come to the rescue by being able to perform these calculations on large primes without too much effort. I hope you can see how trivially easy it is to enact a basic form of encryption, using little more than a scientific calculator, that is almost impossible to crack.</p>
<p>To show you how easy this was to implement, the functions to encrypt and decrypt text can be found <a href="https://github.com/MarcScott/simple_encryption/blob/master/poor_rsa.py">here</a></p>
<p>I even generated basic private and public keys using the numbers 983, 991, 997, to send you this very special message.</p>
<div class="highlight"><pre><span></span>976887, 181803, 1, 987990, 311560, 987990, 181803, 288665, 311560, 86240, 287704, 836375, 332585, 311560, 249126, 875736, 287704, 311560, 65832, 875736, 875736, 332585, 24625, 461705, 97073, 311560, 1, 987990, 311560, 976887, 1, 461705, 332585, 288665, 44919
</pre></div>
<h2>Better Encryption Algorithms</h2>
<p>I'm not going to detail the other encryption algorithms available. RSA was one of the first, and the simplest. There are many many more, such as <a href="https://en.wikipedia.org/wiki/Pretty_Good_Privacy#OpenPGP">OpenPGP</a>, <a href="https://en.wikipedia.org/wiki/Blowfish_%28cipher%29">Blowfish</a> and <a href="https://en.wikipedia.org/wiki/Advanced_Encryption_Standard">AES</a>. You can read up about these on Wikipedia and many other places on the Web. You can download implementations of these algorithms from various sites to use in combination with your email and other messaging applications. You can even grab the code off GitHub and use encryption in your own software.</p>
<h2>Some advice on combating encryption</h2>
<p>Now that you hopefully have some understanding of encryption, let's have a brief chat about how you could go about stopping people from using it to send secret messages to each other, that the security services can't read.</p>
<ol>
<li>
<p><strong>Stop national and international companies using encryption in their products.</strong> This means not only stopping Facebook, Apple and Google using cryptography techniques in their messaging applications, you're also going to need to talk to Mozilla, for instance, as encryption is widely used on the web. You'll need to stop banks and other financial institutions from using encryption on their web traffic as well. If companies outside your jurisdiction refuse, you'd have to block access to their services, in much the same way China and North Korea do.</p>
</li>
<li>
<p><strong>Remove access to code repositories where encryption software is freely available.</strong> This includes sites such as GitHub and BitBucket, that developers use on a daily basis. There are many others that need blocking as well, and developers are a wily bunch, so you might need to get rid of Google Drive and Dropbox, as it's fairly easy to use these services to store code. Russian tried this and failed, but you could give it a go.</p>
</li>
<li>
<p><strong>Block or destroy sources of information that detail how encryption algorithms work.</strong> This includes sites such as StackOverflow where encryption algorithms and how to code them are discussed, as well as Wikipedia where the algorithms are detailed. There are a plethora of books you'll also need to ban that teach cryptography techniques. These will need to be outlawed and existing copies in homes and libraries destroyed. I hear that burning is an effective way of destroying a book.</p>
</li>
<li>
<p><strong>Stop teaching encryption techniques in Mathematics and Computer Science courses at a University level.</strong> You might also need to review the teaching of number theory in secondary schools. It's probably best if children are not taught about prime numbers, to be sure that they don't reinvent any cryptography techniques.</p>
</li>
<li>
<p><strong>Put me in prison and restrict my access to any form of communication with the outside world.</strong> I've promoted encrypted communication, taught about encrypted communication and used encrypted communication. I'm not going to stop.</p>
</li>
</ol>
<p>Yours faithfully</p>
<p>Marc Scott</p>
<p>note: I'm not a Cryptography, Mathematics or Computer Science expert. I'm an educator. <a href="https://github.com/MarcScott/coding2learn/blob/master/content/dear-theresa.markdown">This post can be found on Github</a> and if you would like to correct or improve any elements then issues and pull requests are appreciated.</p>Every Lesson Should Be A Hackathon2014-10-23T18:00:00+01:002014-10-23T18:00:00+01:00Marc Scotttag:coding2learn.org,2014-10-23:/blog/2014/10/23/every-lesson-should-be-a-hackathon/<p><em>a note for readers outside of the UK. Year 10 students are equivalent to 8th-grade in the US</em></p>
<p>This year I wanted to do things differently. It was an experiment; one that could go disastrously wrong, and nearly did, but I was determined to go ahead. Let me explain.</p>
<p>I …</p><p><em>a note for readers outside of the UK. Year 10 students are equivalent to 8th-grade in the US</em></p>
<p>This year I wanted to do things differently. It was an experiment; one that could go disastrously wrong, and nearly did, but I was determined to go ahead. Let me explain.</p>
<p>I could teach GCSE Computer Science quite easily using our Windows network and with Python installed on each computer. The kids could use IDLE to create their scripts, and compose their coursework in Microsoft Word. They'd still get to learn everything they needed for their exams. They'd still get to learn the Python language. They'd get to write-up their coursework ready for submission to the exam board. But it just didn't feel right.</p>
<p>I quit teaching Physics and Chemistry a few years ago because I felt I was working at an exam factory. I love Science, and I loved teaching it, but when the pressures of achieving higher and higher grades began to affect the way I taught my lessons, I began to hate the subject. I distinctly remember a student in an A-level class asking me about the particle nature of light. I desperately wanted to launch the lesson on a tangent and talk about the oddities of single-photon diffraction, then segue into a talk about Einstein's elevator thought experiment regarding a gravitational field's effect on a photon, then maybe quickly visit Schrodinger's Cat. Instead I ploughed on with my lesson plan, distinctly aware of the content I had to get through before they sat their next module exam the following month. I never want to do the same with my new found passion - Computing.</p>
<p>I'm not a hacker, I'm a teacher. I've only been coding for three years, and everyday I feel a little more overwhelmed by how much there is to still learn. Some days I feel like a God, as I wrangle with some new JavaScript library and manage to bend it to my will. Other days I feel like a complete beginner as no matter how much I try and how much Googling I do, I still can't get Emacs to parse my init file without flagging up a million errors. I wish I'd discovered it all earlier in life, maybe if I had I'd be able to scan through the articles on the front page of Hacker News and understand more than about one in ten.</p>
<p>I want my students to have the opportunities which I let pass me by. I want them to feel like they're hackers. I want them to know that they are unique, and that out of all the students in the school, only they know the secrets of how computers and software really work. I want them to be able to sit down at a machine and bash away at their keyboards while others look on confused and amazed by what they are seeing.</p>
<p>So in September when my fresh-faced, Year 10, CS students showed up for their first lesson, we embarked on an experiment. We started slowly. We spent a couple of weeks writing some introductory content for their coursework, drew some flowcharts and wrote a little pseudo-code and a couple of Python functions. It was all fairly standard stuff, and we had the type of lessons you'd see in any GCSE CS class up and down the country. We stopped however, as soon as we had a little code, a few images and some content to work with. Then we spent the next four weeks focusing on work-flow. That's twelve lessons where we ignored the Computer Science syllabus, wrote no code whatsoever and learned nothing of syntax, algorithms or CS theory.</p>
<p>Instead my students learned how to launch an instance of a Ubuntu Virtual Machine on our OpenStack server. They learned how to access the VM using Putty, learned how to create a new superuser, navigate around the file system, install software and updates using apt-get, edit their .bashrc files to create aliases that allowed them to mount their Windows home folders that resided on the main network.</p>
<p>Next they learned about Emacs. I taught them a few basic commands so that they could open and save files, navigate around a little, write some scripts in Python-mode and run them in an interpreter in a separate buffer. They learned how to write in markdown, and how to create links and images in a mysterious file that I insisted they all call README.md</p>
<p>Lastly we set up GitHub accounts. They all forked a repository that I had created for them, pulled it down to their VMs and then learned how to add files, commit changes and push those changes back up to GitHub.</p>
<p>It wasn't easy. There was total confusion at first, and blank, unsmiling faces. Passwords were a nightmare. They had to have one for the OpenStack server, one for their VM, and another for GitHub. I launched into one of my rants when I watched a student use the password 'qwertyuiop1234567890', and another rant when a second student told me that 'GitHub is a stupid website' because it temporarily blocked our IP address when they tried to login with an incorrect password more than three times. Trying to explain that this was a security feature and not a bug to a fourteen year old from the SnapChat generation wasn't simple. We had teething issues with our VMs, and many of the instances had to be deleted, new images created, and new instances launched. There was reluctance to use Emacs in a terminal, when they had perfectly adequate tools on their Windows clients for writing text, and where they could use a mouse to navigate. They encountered problems with git, including merge errors, which we patiently sorted out (often by just backing up the repo, cloning again and then re-adding the files (I'm no git guru)).</p>
<p>At one point I thought I'd lost them. I lay awake at night wondering what the hell I'd done. I thought I must be the only Computer Science teacher in the country that had managed to turn an entire class of students off the subject in one fell swoop. I worried that they'd never recover, and that they'd be dreading coming to my lessons where they'd get yet another hour of indecipherable instruction on using tools in which they saw no value.</p>
<p>Then a hackathon came to the rescue. A few in the class have been coding a couple of years, and had heard about the <a href="https://www.youtube.com/watch?v=xCBOUsWZTUw&list=UUBYaqTVeO-oQW2AlmZVj-Fg">MLH LaunchHack</a>, and said they wanted to go. In a rush I organised a trip. I had four girls in the class that wanted to come, so I needed a female member of staff to accompany me. I sent out an email.</p>
<blockquote>
<p>Do any female members of staff fancy coming down to London with a class of teenagers for 24 hours of coding without sleep? There'll probably be free pizza.</p>
</blockquote>
<p>The free pizza did the trick and I got my volunteer.</p>
<p>I can't thank <a href="https://twitter.com/jna_sh">Joe Nash</a> of <a href="http://mlh.io/">MLH</a> enough for all the efforts he went to ensure under 18s were catered for. The hackathon was amazing, and probably deserves a blog post all of it's own. The three kids that could code got on with building stuff, while the others sat confused for awhile until I showed them <a href="http://www.codecademy.com/">Codecademy</a>, and then they just sat down and started to learn. It was the atmosphere we were in that did it; surrounded by hackers with their IDEs filling their screens and bashing out scripts as fast as they could manage. The hackathon swag was top notch, as was the free food and drink, all helping to buoy the kids up and encourage them to get involved. Even the teacher, of English, I had brought with us got into the spirit of it all. She spent the first couple of hours writing poetry resources for school, then the next thing I knew she too was on Codecademy and must have put in a record-breaking stint on the site, logging about 18 continuous hours, before she got bored of it and switched over to <a href="http://learnpythonthehardway.org">Learn Python the Hard way</a>.</p>
<p>All of the kids managed to build something, with a little or a lot of help from me. After 24 hours of no sleep, they got to present their apps to the hackers and see what others had built.</p>
<p>My next CS lesson couldn't have gone better. They were hackers now, and their new-found enthusiasm rubbed off onto the rest of the class, all of whom suddenly wanted to come to the next hackathon. They fired up their VMs, logged in with Putty and just got to work. They even started coming in at lunch, and bringing none CS students with them. It was comical to watch one lad, bash away at a python script in Emacs, while either side of him his friends emulated him on <a href="http://hackertyper.net/">HackerTyper</a></p>
<p>I now have a class of students who code and write up their coursework in Emacs then submit it to me via a pull request on GitHub. Marking has become a doddle. I can view the diffs, make comments and then accept the requests. More than that though, I have a group of students who are now part of a small and elite group. They use Linux. They use the terminal. They use Emacs and git. When they sit at a computer to work, others look on perplexed at screens full of indecipherable text and confused by the lack of mouse activity. They're not just Computer Science students anymore, they call themselves hackers and are proud of the moniker.</p>
<p>What's next? We've still got some issues with OpenStack that need resolving, such as syncing with Active Directory and external access via SSH rather than through the web-console. Once they're resolved, I'm going to start earlier. I'll get my Year 7s using Linux and writing their scripts in nano, Year 8s using Emacs and learning markdown, my Year 9s using git and submitting work on GitHub. It's going to take some time, but I'm determined to make it work.</p>
<p>I know it's not on the syllabus, and I know there'll be no exam questions on version control or terminal text-editors. I don't care. For me, the time investment was worth it. My lessons now feel less like a class and more like mini-hackathons. The kids seem more motivated, more independent and the work I now set them seems paltry in comparison to everything they have already accomplished. In a post I wrote over a year ago I said I wanted to 'build a nation of hackers' and now in my own small way, I've started.</p>One Year On2014-08-08T16:20:00+01:002014-08-08T16:20:00+01:00Marc Scotttag:coding2learn.org,2014-08-08:/blog/2014/08/08/one-year-on/<p>About a year ago I wrote a post called <a href="http://coding2learn.org/blog/2013/07/29/kids-cant-use-computers/">Kids can’t use computers… and this is why it should worry you.</a></p>
<p>In the post, I expressed my opinion that the concept of children being digital natives was a misnomer, that computer literacy is on a decline thanks to the …</p><p>About a year ago I wrote a post called <a href="http://coding2learn.org/blog/2013/07/29/kids-cant-use-computers/">Kids can’t use computers… and this is why it should worry you.</a></p>
<p>In the post, I expressed my opinion that the concept of children being digital natives was a misnomer, that computer literacy is on a decline thanks to the ever increasing sophistication of our devices and software, and that we need to refocus our efforts as educators and parents to ensure that kids <em>can</em> use computers.</p>
<p>I thought there was nothing much more to say on the issue; my opinion had been stated and I’d put forward what I thought the solutions were to the problem. I had no intention of writing a followup post.</p>
<p>Two things occured recently that changed my mind. The first was my involvement with the <a href="https://youngrewiredstate.org/festival-of-code">Young Rewired State Festival of Code</a>. The second was the release of <a href="http://stakeholders.ofcom.org.uk/market-data-research/market-data/communications-market-reports/cmr14/uk/">Ofcom’s Communication Market Report 2014</a></p>
<h2>Ofcom report</h2>
<p>The Ofcom report has been widely publicised in the media under titles such as <a href="http://blogs.wsj.com/digits/2014/08/07/tech-is-childs-play-unless-youre-an-adult/">Tech is child’s play, unless you are an adult</a> and <a href="http://www.theguardian.com/technology/2014/aug/07/ofcom-children-digital-technology-better-than-adults">Ofcom: six-year-olds understand digital technology better than adults</a> once again propagating the myth that preteens and teens are digital natives and those of us over thirty are clueless when it comes to technology.</p>
<p>Let’s make something clear, the Ofcom report focuses on the UK population's use of digital media, and is not a report on computer literacy. An example question from the survey that Ofcom commissioned specifically mentioned the app - Snapchat. The interviewers asked people which statement best described their knowledge of Snapchat.</p>
<ul>
<li>I know a lot about it and I have already used it.</li>
<li>I know a lot about it, but haven’t used it.</li>
<li>I know a bit about it.</li>
<li>I’ve heard of it but don’t know much about it.</li>
<li>I’ve never heard of it.</li>
</ul>
<p>Unsurprisingly 47% of adults had never heard of Snapchat. I fall into the “I know a lot about it, but haven’t used it” category. For instance, I know Snapchat is a messaging application that allows users to send each other images and video that are hidden after a few seconds. I know that Facebook and Google have both tried to acquire Snapchat for billions of dollars. I know that Snapchat has faced controversy over local storage of photos on some devices, its compliance with Government agencies over photos stored on its servers and that it had its database of user details hacked. I know all this because I read Hacker News, and if I didn’t then I’d be in the “I’ve never hear of it” category.</p>
<p>Analysing the digital divide between adults and juveniles depending on whether or not they have used or heard of Snapchat is ridiculous. Snapchat is aimed at a youthful demographic that use smartphones, not at people in their mid forties. Over many years I have managed to whittle my friendship group down to about half a dozen people, and if I were to send any of them a Snapchat, they’d think I was just being a bit weird and very creepy.</p>
<p>Using an individual's knowledge of Snapchat to judge digital literacy, is akin to judging an individuals ability to compose and perform music based on whether or not they have heard of, or listened to, One Direction. But this hasn’t stopped the popular press jumping all over a few statistics and proudly announcing that our 6 year-olds are more digitally literate than their parents.</p>
<p>There are plenty of other skewed statistics that the press have sank their claws into. For instance the “Digital Confidence Scores” show that kids aged 14-15 are at the pinnacle of digital confidence. In reality their digital confidence is only in relation to the products and services they use. My six year-old son is very confident with the iPad I let him use. He’s a whiz at Minecraft and his knowledge of the game mechanics far exceeds mine. He’s a pretty dab hand at Angry Birds, iMessage and using YouTube as well. He would score quite highly when it comes to digital confidence, and when I asked him whether “new technology confuses him” he proudly said “No”, after I had clarified what “new technology” means.</p>
<p><img alt="graph" src="http://consumers.ofcom.org.uk/files/2014/1386071/TQ-v5.jpg"></p>
<p>New technology confuses me all the time. For instance, every time a new JavaScript library pops into existence, I feel an overwhelming dread of being overtaken by technology, and a slow descent of my digital skills into obsolescence. When Apple announced the Swift programming language the weight of yet another set of syntactic rules to battle with pressed down heavily on my shoulders. Every time I decide to sit down and learn a functional programming language I break out in a sweat and have to steady my nerves with a couple of shots of Scotch. I recently spent a couple of days playing with Google Glass, and was exceptionally confused, as I really couldn’t understand what the fucking point of it was, or why anyone would want to pay over a grand for such an ugly and limited gadget.</p>
<p><img alt="Glass" src="http://coding2learn.org/images/OneYearOn/glass.jpg"></p>
<p>My son scores highly on the digital confidence scale as tested by the Ofcom interviews and questionnaires, yet he’s the last person I’d advise you speak to if you needed help with formatting a Word document, debugging an Excel formula or setting up an Outlook appointment; all of which many adults find exceedingly easy.</p>
<p>I’ve denigrated kids enough now, so I’d like to spend some time looking at the other end of the spectrum, and explain why I am still filled with hope for the future of digital literacy amongst the youth of this country.</p>
<h2>YRS</h2>
<p>The <a href="https://youngrewiredstate.org/festival-of-code">YRS Festival of Code</a> is in essence a week-long hackathon for teenagers based at centres all over the country, culminating in a weekend get together of all the participants for a competition to judge who created the best apps. If you're a teenager and reading this, go sign up for next year's event now. Even if you've no coding experience at all, you'll get something out of it. If you're a developer then you should go and sign up as a mentor or centre lead.</p>
<p>This year I mentored a group at the <a href="http://www.comparethemarket.com">CompareTheMarket</a> offices in Peterborough, along with <a href="https://twitter.com/axshaw">Alex Shaw</a> who heads up the Labs division at the company. We both gave up our time, as volunteers, but in reality we both got far more out of the experience than we put in
.</p>
<p><img alt="#ctmers" src="https://pbs.twimg.com/media/Bttocr5IcAENlKy.jpg"></p>
<p>For five days we helped eleven kids hack together a couple of apps using Open Data, marveling at their drive, enthusiasm and ingenuity. We then spent three days in Plymouth and were quite frankly blown away by the quality and originality of the apps that had been created by the teenagers from across the country.</p>
<p>The Festival of Code has been running a few years now, but the number of children attending keep doubling each year, as more and more kids catch the coding bug. There were fifteen year-olds at the event who already dwarf me in terms of their skills and knowledge. We saw kids presenting apps that ran on Android, iOS and the web that demonstrated a youthful ingenuity and ambition that was simultaneously heart warming and terrifying. Check out some of their apps - <a href="http://milesperpound.idealcoder.co.uk/#/">here</a>, <a href="http://unilo.herokuapp.com/users/sign_in">here</a> and <a href="http://be-paranoid.co.uk">here</a>.</p>
<p>The kids I met at the Festival of Code are the future of Computing in this county, and the fact that their numbers are growing year on year, assures me that it won't be long before kids are back in their rightful place as masters of technology, and putting us oldies to shame once more.</p>Computer Games Are A Waste Of Time2014-05-18T11:20:00+01:002014-05-18T11:20:00+01:00Marc Scotttag:coding2learn.org,2014-05-18:/blog/2014/05/18/computer-games-are-a-waste-of-time/<p>When I was a kid I played a lot of computer games. I once played <em>Betrayal at Krondor</em> for so long that I started hallucinating from sleep deprivation. When I was at Uni I chose to mow-down humanoid warthogs in <em>Duke Nukem</em> rather than learn metabolic pathways for amino acid …</p><p>When I was a kid I played a lot of computer games. I once played <em>Betrayal at Krondor</em> for so long that I started hallucinating from sleep deprivation. When I was at Uni I chose to mow-down humanoid warthogs in <em>Duke Nukem</em> rather than learn metabolic pathways for amino acid synthesis and failed an important exam.</p>
<blockquote>
<p>When I was a child, I spoke as a child, I understood as a child, I thought as a child: but when I became a man, I put away childish things.</p>
</blockquote>
<p>I gave up gaming in the traditional sense, years ago. I now recognise the stupidity of playing a computer game for hours on end, hoping to make the value of some variable creep upwards. Thank goodness I don't do that anymore. These days I'm far more sophisticated.</p>
<h2>The Hacker News Game.</h2>
<p>I've been playing The Hacker News game for just under a year. When I first started playing I was killed fairly quickly, what's known in HN circles as being <em>Hellbanned</em>. It's a neat little mechanic where by the NPCs introduce large amounts of lag into the game and hide your character from the other players. I'm still not sure what got me Hellbanned, so I just started again.</p>
<p>My second attempt at playing has been a little more successful. I created a new character called 'coding2learn', who is a kind of geeky computer science teacher. Since playing this new character I have gained nearly 1000xp, known as Karma in the game. The concept of The Hacker News Game is to go on a search for websites that would be of interest to Programmers and Technologists. When you find a website, you submit it to the community, who can then upvote your submission and reward you with xp.</p>
<p>Like most MMORPGs, The Hacker News game allows you to interact with other players. To do this you use comments. Comments can also be upvoted, for additional xp, and if you are a high enough level you can even downvote comments. You're best off only commenting on things you are quite knowledgeable on. If you want to gain lots of upvotes, the more pedantic you are the better.</p>
<p>The Hacker News game is web based, although there is talk of a mobile app or optimisation coming soon.</p>
<h2>The Twitter Game</h2>
<p>I used to play The Facebook game, but I stopped when they kept changing all the game mechanics without notification. Besides, I interact with my friends and family enough irl. Instead I thought I'd give The Twitter Game a chance.</p>
<p>The basic idea of The Twitter Game is to gain followers. Followers are other players who might decide to join your clan, so that they can receive your pronouncements. There is no limit to the number of clans that a player can join, although it is often deemed a measure of success if you keep the ratio of people in your clan, to clans you are a member of, as high as possible.</p>
<p>You gain followers by making pronouncements. Humorous pronouncements are often best, but you can also make informative and controversial pronouncements in an attempt to gain followers. One of the quirky mechanics of The Twitter Game is that you have to make pronouncements in less than 140 characters. Sometime your pronouncements are spread further by your followers. This enables you to reach a wider audience and therefore increase your clan size.</p>
<p>In The Twitter Game I play more or less the same character as in The Hacker News Game. There are a few differences though. 'coding2learn' in The Twitter Game tries to use humour a little more and is a little less arrogant (although not much).</p>
<p>I've had moderate success in The Twitter Game, gaining over 1000 followers. I don't play it enough really to become an elite player.</p>
<p>The Twitter Game is web based, although there are apps for mobile that are quite good.</p>
<h2>The Blogger Game</h2>
<p>The Blogger Game is my favorite game of all. If you're reading this you're playing The Blogger Game right now, and so I should really say ‘thank you’ for the additional xp.</p>
<p>In the Blogger Game you write what are called 'posts'. It's a good idea to write posts that, like in The Twitter Game, are either funny or informative. There's no character limit in The Blogger Game though, and you can write really long posts if you want, although be aware that sometimes your post might be so long that people will comment TL;DR (too long; didn't read).</p>
<p>Success in The Blogger Game is determined by your scores in something called Google Analytics. Google Analytics is like a personal high-score table, that can tell you how well each of your posts has done and how well your blog is doing in general. There are loads of stats to play around with, such as first time visitors, bounce rate and time on page.</p>
<p>If you want to play The Blogger Game it's a good idea to decide on a topic to 'blog' about and stick with it. Regular posting is quite important, and something I struggle with. To get really high scores you need to be 'blogging' about once a week.</p>
<p>What I like about The Blogger Game, is its crossover with The Hacker News Game and The Twitter Game. Success in any of them can lead to success in the other two, even though they're created by completely different studios.</p>
<p>The Blogger Game is available on the web or as a stand alone app on mobile, PC, Mac and Linux. web based, although there are apps for mobile that are quite good.</p>
<hr>
<p>So that’s my gaming life these days. I’m sure we can all agree that it is far preferable and productive than the waste of time that is CoD or WoW</p>Please stop sending me your shitty Word documents2014-04-14T16:07:00+01:002014-04-14T16:07:00+01:00Marc Scotttag:coding2learn.org,2014-04-14:/blog/2014/04/14/please-stop-sending-me-your-shitty-word-documents/<p><em>Throughout this rant I use the second-person personal pronoun (you) quite a lot. This does not necessarily mean I am speaking to 'You' the reader, but rather some other 'You' who will probably never read this anyway.</em></p>
<p>When Microsoft announced Office for iPad I shed a small tear. Excel is …</p><p><em>Throughout this rant I use the second-person personal pronoun (you) quite a lot. This does not necessarily mean I am speaking to 'You' the reader, but rather some other 'You' who will probably never read this anyway.</em></p>
<p>When Microsoft announced Office for iPad I shed a small tear. Excel is an incredibly useful application, without which my managers couldn't inundate me with graphs, statistics and indecipherable Look-ups that reference hidden and protected sheets. PowerPoint allows literally anyone (regardless of their public speaking skills, understanding of image aspect ratios, or ability to use less than 15 different fonts on a single slide) to prepare presentations for their audience. These apps becoming available on iOS did not worry me. What upset me however, was the fact that all of a sudden, swathes of iPad users will now have the ability to view, edit and most worryingly of all - create Microsoft Word documents.</p>
<p>Here's what I have installed on my Mac:</p>
<ul>
<li>Alfred - searching for anything</li>
<li>Python - coding anything</li>
<li>VLC - watching anything</li>
<li>FireFox - browsing anything</li>
<li>Homebrew - installing anything</li>
<li>Emacs - anything</li>
</ul>
<p>You'll notice that Word is not on the list. I have nothing against people who use Word, I am just not one of them. There was a time when if I wanted to put text on a screen, it was my go to software, and I thought I was a pretty 1337 hacker because I knew how to do mail merges. I'm not that guy anymore. I don't tell you what software to install on your computer, and I don't assume you have the same software installed as me. For this reason I am careful to use non-proprietary file types when sending documents via email. I expect the same courtesy from you, and here's why...</p>
<h3>I don't have Word installed</h3>
<p>When you send me a Word document, you are making some pretty major assumptions, and as Samuel L. Jackson once said in the outstandingly amazing film <em>The Long Kiss Goodnight</em></p>
<blockquote>
<p>"When you make an assumption, you make an ass out of 'u' and 'mption'."</p>
</blockquote>
<p>Firstly you assume that I have Word or some clone of it installed. I know you think the words 'Computer', 'Microsoft', 'Windows' and 'Office' are synonymous, but they're not and there are plenty of people in the world who use *nix operating systems. By sending me a .docx file you're forcing me to find a work around, so that I can use your document. What are my options? Well I could install an Office clone like Libre or Pages. I could use an online service like Google Docs or Zoho. I could even attempt to get Emacs to read the data and make a go of presenting it to me in some recognisable format. Do you see what you've done? You've made more work for me. You've sent me a locked box and asked me to either pay to get a key cut or smash it open with a crowbar. </p>
<h3>Plain text should be plain</h3>
<p>What happens when I finally manage to open your document? Well 90% of the time, all it contains is text. That's it. Text. Strings of characters. So why the hell did you send it as a Word document to begin with? Why not just write the text directly into the body of the email? If it's that important for you to write in Word, then save it as a .txt file. There's not a computer on the planet that can't read plain-text. (Well, that's not technically true, as I'm pretty sure my Microwave contains a computer, but that's besides the point.)</p>
<h3>Are you really that good a designer?</h3>
<p>The only possible reason I can imagine that you had to send me the document in Word format is because you are the world's finest graphic designer/type-setter. Maybe your choice of fonts, margins, kerning and paragraph indentation are so awe-inspiring, that the very act of viewing the document will have me gouging my eyes out with a spoon, knowing that the gift of sight is no longer of any consequence as I shall never again behold a thing of such beauty. Of course the small flaw in your plan is that I don't have the Lucida handwriting font installed on my system, and Preview struggles to display Word-Art clearly, so all your efforts are probably in vain.</p>
<h3>Tables grrrr!</h3>
<p>Sometime you send me the Word document as a container for other joys, such as tables. I understand that a .csv is ugly to behold, but computers don't tend to worry about aesthetics too much, so they really are preferable. There are prettier tables available if you're into that kind of thing. HTML tables are great, easy to parse and render, but Microsoft obviously think they're the devil's work and so prefer to use their own method of tabulating data. I don't know how Microsoft has chosen to represent tables in their .docx files, but I do know that if Linus, Stallman and ESR got together and hacked away for a decade or so, they wouldn't be able to create a program that could render a sodding table created in Word, correctly.</p>
<h3>What's with the crud</h3>
<p>Sometimes the documents you send me contain other <em>interesting</em> elements. You feel the need to augment your text with such things as; little animated gifs of a stick-man who is frustrated with his computer, borders of coloured apples and 3D Word-Art. Now I know you think that such embellishments will bring a smile to my face and ease my reading of your text, but I'm sorry to inform you that you're wrong. Very wrong. Criminally wrong. You see, with out Word installed, I won't be able to view these quirky little additions to you plain text. Your efforts were in vain. I could additionally argue that if your text was too boring, without such witty little quirks, then you might like to consider whether the <em>content</em> is worth reading in the first place.</p>
<h3>A heartfelt plea</h3>
<p>So please... pretty please... please with bells on top, borders of apples and the word <em>PLEASE</em> written in bright blue Word-Art; think next time you want to send a Word document by email or put one on your website, think about your recipient. Could you use the body of the email or a page on the site? Perhaps you could save the file as a .txt, .rtf or PDF. Just spare a thought for those of us that <em>choose</em> not to use Microsoft Word, and respect our right not to do so.</p>
<p>Oh... and learn to write in sodding Markdown.</p>Installing Pygame on Mac OS X with Python 32014-03-11T16:22:00+00:002014-03-11T16:22:00+00:00Marc Scotttag:coding2learn.org,2014-03-11:/blog/2014/03/11/installing-pygame-on-mac-os-x-with-python-3/<p>This has been a bugbear of mine for sometime now. I like using Python 3.x. I like teaching kids how to use Pygame. I use a Mac.
Trying to get all three to play nicely with each other has been impossible for me up to now.</p>
<p>I've trawled through …</p><p>This has been a bugbear of mine for sometime now. I like using Python 3.x. I like teaching kids how to use Pygame. I use a Mac.
Trying to get all three to play nicely with each other has been impossible for me up to now.</p>
<p>I've trawled through web pages and blog posts that recommend all manner of ways in which you can install Pygame on a Mac for Python 3, I've tried numerous solutions on StackOverflow, and I've even tried angrily shouting at my computer and threatening to throw it out of my classroom window. None of them worked.</p>
<p>Today I finally nailed it, and I have Pygame running. Here' what I did.</p>
<div class="highlight"><pre><span></span>1) Install XCode and command line tools
2) Install Homebrew (ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)")
3) brew install Python3
4) brew install git
5) brew install sdl sdl_image sdl_mixer sdl_ttf portmidi
6) Install XQuartz - http://xquartz.macosforge.org
7) brew tap homebrew/headonly
8) brew install --HEAD smpeg
9) brew install python (needed to install mercurial)
10) brew install mercurial
11) pip3 install hg+http://bitbucket.org/pygame/pygame
</pre></div>
<p>And that's it. If you have any problems yourself or a better way then please let me know in the comments.</p>
<p><del><em>note: the smpeg install is failing for me at the moment, so I'll look into this a little more. Pygame seems to be working without it though.</em></del></p>
<p><em>update</em></p>
<p>I had some <em>brew doctor</em> issues (around 20!), which might have been due to me trying to install Pygame from source earlier and therefore manually installing all the dependencies, which then conflicted with homebrew.</p>
<p>I deleted everything brew doctor suggested and overwrote all links as suggested. The <code>brew install --HEAD smpeg</code> suddenly worked (although that might have been because I was no longer behind a proxy). I then did a <code>brew unlink jpeg</code> and <code>brew link --overwrite jpeg</code>.</p>
<p>Everything is working perfectly for now. (Crosses fingers, touches wood and searches for a black cat to cross his path.)</p>What exactly are we teaching anyway?2014-02-12T16:00:00+00:002014-02-12T16:00:00+00:00Marc Scotttag:coding2learn.org,2014-02-12:/blog/2014/02/12/what-exactly-are-we-teaching-anyway/<p>On Twitter, numerous education blogs and even on Hacker News, there have been more than a few debates of late regarding the education of students in Computer Science/Computing/Coding/IT. In the UK, in particular, the debate has been fueled by Lottie Dexter's "Year of Code'; a government backed …</p><p>On Twitter, numerous education blogs and even on Hacker News, there have been more than a few debates of late regarding the education of students in Computer Science/Computing/Coding/IT. In the UK, in particular, the debate has been fueled by Lottie Dexter's "Year of Code'; a government backed scheme to encourage everyone to learn a little more Computer Science/Computing/Coding/IT this year.</p>
<p>The usual suspects have all weighed in on this debate.</p>
<p>There are those that consider Computer Science and Computational Thinking the very purpose of a modern education. They argue that without the ability to fully comprehend the Halting problem, no child could ever tie their own shoelaces without entering some sort of bizarre shoelace-tying infinite loop.</p>
<p>Then there are those that argue it is impossible for a student to understand any abstract Computer Science problem. In fact, children are incapable of writing code, finding an on switch, or even manage to sound out the words on a "C" is for "Computer" nursery school flash car. They make the case that we should give up now and all go back to making pretty pictures in Paint.</p>
<p>![C is for Computer]({filename}/images/GettingShitDone/FlashCard.jpg =300x)</p>
<p>The arguments seem, more often than not, to be focused on what name we give to the subject that we are teaching. In reality, of course, the name means very little. During a child's early years we teach them what we think they need to know and during the latter years we're subject to the whims of the exam boards and organisations such as Ofqual.</p>
<p>It is for this reason that I propose a radical reform of the name given to Computer Science/Computing/Coding/ICT, that I will hope will clear things up once and for all, and prevent any future arguments, back biting and bullying. From this day forward I intend to teach students "Getting Shit Done With A Computer".</p>
<p>Getting shit done with a computer is at the end of the day, what I'd like every kid to be able to do. Regardless of what you call my subject, I'll always teach students how to get shit done with a computer, as that's what I think they need to know.</p>
<p>I like my students to be able to recognise when the cable has been removed from the Ethernet port, and understand the reason why they have no network connection. I like my students to understand the basics of a file system and how to navigate it. I like my students to be able to use a spreadsheet, operate a database and write up a project. I like my students to be able to choose the right tools for the right job (The right tool being emacs and the right job being <em>any</em> job, always.). I like my students to be able to knock together little scripts that will recursively grab files out of a nest of directories, or as one enterprising young fellow did the other day, write a script that replaces all your files with this picture of Chuck Norris.</p>
<p>![Chuck Norris is the Internet](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/Chuck_Norris%2C_The_Delta_Force_1986.jpg/834px-Chuck_Norris%2C_The_Delta_Force_1986.jpg =400x)</p>
<p>Along the way I'll teach them a little Boolean logic, some binary and maybe Big O notation. This isn't just high flung theory with no practical use though. I recognise that when you want to get <em>serious</em> shit done with a computer, these are important concepts to have at hand.</p>
<p>When all is said and done, if we could just lose the pathetic tribal mentality that causes some of us to identify with the moniker Teacher of Computer Science, or Teacher of Computing, or Teacher of IT, the students would benefit in the end, and we could all just get some shit done using our computers.</p>X Days of Christmas2013-12-13T08:39:00+00:002013-12-13T08:39:00+00:00Marc Scotttag:coding2learn.org,2013-12-13:/blog/2013/12/13/x-days-of-christmas/<p>Just a quick one from me today.</p>
<p>I woke up this morning with a lesson idea in my head, that was also a Python script.</p>
<p>I've a few teacher followers, so I thought I'd shove it up here for others to use if they want. You'll have to forgive my …</p><p>Just a quick one from me today.</p>
<p>I woke up this morning with a lesson idea in my head, that was also a Python script.</p>
<p>I've a few teacher followers, so I thought I'd shove it up here for others to use if they want. You'll have to forgive my poor coding and poorer use of the English language.</p>
<p>The challenge for the students is to create a program that will produce the lyrics for 'The X Days of Christmas'.</p>
<p>You can find my solution at the bottom of the post, and here's a few files - <a href="http://coding2learn.org/docs/XDays/xdays.py">xdays.py</a>, <a href="http://coding2learn.org/docs/XDays/nouns.txt">nouns.txt</a>, <a href="http://coding2learn.org/docs/XDays/verbs.txt">verbs.txt</a></p>
<p>The results can be quite amusing - my particular favorites have been "20 kittens a bleeding", "99 rats a computing" and "11 creators a mating"</p>
<p>I've even had ones that make sense, like "8 pies a baking".</p>
<p>Here's an example final verse that I quite enjoyed.</p>
<blockquote>
<p>On the 12th day of Christmas my true love sent to me:<br>
12 roads a developing<br>
11 faucets a mating<br>
10 planes a combing<br>
9 worms a solving<br>
8 tents a liing<br>
7 kittens a slaying<br>
6 tubs a handing<br>
5 passengers a scattering<br>
4 bats a utilizing<br>
3 mornings a promoting<br>
2 pollutions a foreseing<br>
and a partridge in a pear tree </p>
</blockquote>
<div class="highlight"><pre><span></span><span class="s s-Atom">from</span> <span class="s s-Atom">random</span> <span class="s s-Atom">import</span> <span class="s s-Atom">randrange</span>
<span class="s s-Atom">nouns</span><span class="o">=</span><span class="p">[]</span>
<span class="s s-Atom">verbs</span><span class="o">=</span><span class="p">[]</span>
<span class="s s-Atom">parings</span><span class="o">=</span><span class="p">[]</span>
<span class="s s-Atom">days</span> <span class="o">=</span> <span class="nf">int</span><span class="p">(</span><span class="nf">input</span><span class="p">(</span><span class="s s-Atom">'How many days of Christmas are there?'</span><span class="p">))</span><span class="o">+</span><span class="mi">1</span>
<span class="s s-Atom">with</span> <span class="nf">open</span><span class="p">(</span><span class="s s-Atom">'nouns.txt'</span><span class="p">,</span><span class="s s-Atom">'r'</span><span class="p">)</span> <span class="s s-Atom">as</span> <span class="s s-Atom">file1:</span>
<span class="s s-Atom">for</span> <span class="s s-Atom">line</span> <span class="s s-Atom">in</span> <span class="s s-Atom">file1:</span>
<span class="s s-Atom">noun</span> <span class="o">=</span> <span class="s s-Atom">line</span><span class="p">.</span><span class="nf">rstrip</span><span class="p">()</span>
<span class="s s-Atom">if</span> <span class="s s-Atom">noun</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s s-Atom">'s':</span>
<span class="s s-Atom">nouns</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="s s-Atom">noun</span><span class="p">)</span>
<span class="s s-Atom">elif</span> <span class="s s-Atom">noun</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s s-Atom">'y':</span>
<span class="s s-Atom">if</span> <span class="s s-Atom">noun</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="o">==</span> <span class="s s-Atom">'e':</span>
<span class="s s-Atom">noun</span><span class="o">=</span><span class="s s-Atom">noun</span><span class="p">[</span><span class="mi">0</span><span class="p">:-</span><span class="mi">2</span><span class="p">]</span><span class="s s-Atom">+'ies'</span>
<span class="nn">else</span><span class="p">:</span>
<span class="s s-Atom">noun</span><span class="o">=</span><span class="s s-Atom">noun</span><span class="p">[</span><span class="mi">0</span><span class="p">:-</span><span class="mi">1</span><span class="p">]</span><span class="s s-Atom">+'ies'</span>
<span class="nn">else</span><span class="p">:</span>
<span class="s s-Atom">noun</span><span class="o">=</span><span class="s s-Atom">noun+'s'</span>
<span class="s s-Atom">nouns</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="s s-Atom">noun</span><span class="p">)</span>
<span class="s s-Atom">with</span> <span class="nf">open</span><span class="p">(</span><span class="s s-Atom">'verbs.txt'</span><span class="p">,</span><span class="s s-Atom">'r'</span><span class="p">)</span> <span class="s s-Atom">as</span> <span class="s s-Atom">file2:</span>
<span class="s s-Atom">for</span> <span class="s s-Atom">line</span> <span class="s s-Atom">in</span> <span class="s s-Atom">file2:</span>
<span class="s s-Atom">verb</span> <span class="o">=</span> <span class="s s-Atom">line</span><span class="p">.</span><span class="nf">rstrip</span><span class="p">()</span>
<span class="s s-Atom">if</span> <span class="s s-Atom">verb</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="s s-Atom">=='e':</span>
<span class="s s-Atom">verb</span> <span class="o">=</span> <span class="s s-Atom">verb</span><span class="p">[</span><span class="mi">0</span><span class="p">:-</span><span class="mi">1</span><span class="p">]</span><span class="s s-Atom">+'ing'</span>
<span class="nn">else</span><span class="p">:</span>
<span class="s s-Atom">verb</span> <span class="o">=</span> <span class="s s-Atom">verb+'ing'</span>
<span class="s s-Atom">verbs</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="s s-Atom">verb</span><span class="p">)</span>
<span class="s s-Atom">for</span> <span class="s s-Atom">i</span> <span class="s s-Atom">in</span> <span class="nf">range</span><span class="p">(</span><span class="s s-Atom">days</span><span class="p">)</span><span class="s s-Atom">:</span>
<span class="s s-Atom">paring</span> <span class="o">=</span> <span class="s s-Atom">nouns</span><span class="p">.</span><span class="nf">pop</span><span class="p">(</span><span class="nf">randrange</span><span class="p">(</span><span class="nf">len</span><span class="p">(</span><span class="s s-Atom">nouns</span><span class="p">)))</span><span class="s s-Atom">+' a '</span><span class="o">+</span><span class="s s-Atom">verbs</span><span class="p">.</span><span class="nf">pop</span><span class="p">(</span><span class="nf">randrange</span><span class="p">(</span><span class="nf">len</span><span class="p">(</span><span class="s s-Atom">verbs</span><span class="p">)))</span>
<span class="s s-Atom">parings</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="s s-Atom">paring</span><span class="p">)</span>
<span class="s s-Atom">for</span> <span class="s s-Atom">day</span> <span class="s s-Atom">in</span> <span class="nf">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="s s-Atom">days</span><span class="p">)</span><span class="s s-Atom">:</span>
<span class="s s-Atom">if</span> <span class="nf">str</span><span class="p">(</span><span class="s s-Atom">day</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span> <span class="s s-Atom">or</span> <span class="s s-Atom">day</span> <span class="o">==</span><span class="mi">1</span><span class="s s-Atom">:</span>
<span class="s s-Atom">ending</span> <span class="o">=</span> <span class="s s-Atom">'st'</span>
<span class="s s-Atom">elif</span> <span class="nf">str</span><span class="p">(</span><span class="s s-Atom">day</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="mi">2</span> <span class="s s-Atom">or</span> <span class="s s-Atom">day</span> <span class="o">==</span><span class="mi">2</span><span class="s s-Atom">:</span>
<span class="s s-Atom">ending</span> <span class="o">=</span> <span class="s s-Atom">'nd'</span>
<span class="s s-Atom">elif</span> <span class="nf">str</span><span class="p">(</span><span class="s s-Atom">day</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="mi">3</span> <span class="s s-Atom">or</span> <span class="s s-Atom">day</span> <span class="o">==</span><span class="mi">3</span><span class="s s-Atom">:</span>
<span class="s s-Atom">ending</span> <span class="o">=</span> <span class="s s-Atom">'rd'</span>
<span class="nn">else</span><span class="p">:</span>
<span class="s s-Atom">ending</span> <span class="o">=</span> <span class="s s-Atom">'th'</span>
<span class="nf">print</span><span class="p">(</span><span class="s s-Atom">'On the'</span><span class="p">,</span><span class="nf">str</span><span class="p">(</span><span class="s s-Atom">day</span><span class="p">)</span><span class="o">+</span><span class="s s-Atom">ending</span><span class="p">,</span><span class="s s-Atom">'day of Christmas my true love sent to me:'</span><span class="p">)</span>
<span class="s s-Atom">for</span> <span class="s s-Atom">count</span> <span class="s s-Atom">in</span> <span class="nf">range</span><span class="p">(</span><span class="s s-Atom">day</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="s s-Atom">:</span>
<span class="nf">print</span><span class="p">(</span><span class="s s-Atom">count</span><span class="p">,</span><span class="s s-Atom">parings</span><span class="p">[</span><span class="s s-Atom">count</span><span class="p">])</span>
<span class="s s-Atom">if</span> <span class="s s-Atom">day</span> <span class="o">==</span> <span class="mi">1</span><span class="s s-Atom">:</span>
<span class="nf">print</span><span class="p">(</span><span class="s s-Atom">'a partridge in a pear tree'</span><span class="p">)</span>
<span class="nn">else</span><span class="p">:</span>
<span class="nf">print</span><span class="p">(</span><span class="s s-Atom">'and a partridge in a pear tree'</span><span class="p">,</span> <span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="s s-Atom">''</span><span class="p">)</span>
</pre></div>How I rediscovered experimental learning and why it doesn't matter2013-11-25T18:30:00+00:002013-11-25T18:30:00+00:00Marc Scotttag:coding2learn.org,2013-11-25:/blog/2013/11/25/how-i-rediscovered-experimental-learning/<p>A few months back I received this tweet.
<blockquote class="twitter-tweet" lang="en"><p><a href="https://twitter.com/Coding2Learn">@coding2learn</a> We loved your recent article about kids & computers & want to send you some Bits. Can you DM your email address?</p>— littleBits (@littleBits) <a href="https://twitter.com/littleBits/statuses/367055818094837760">August 12, 2013</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
I was a little surprised, but DM'ed them back with my address and then promptly forgot …</p><p>A few months back I received this tweet.
<blockquote class="twitter-tweet" lang="en"><p><a href="https://twitter.com/Coding2Learn">@coding2learn</a> We loved your recent article about kids & computers & want to send you some Bits. Can you DM your email address?</p>— littleBits (@littleBits) <a href="https://twitter.com/littleBits/statuses/367055818094837760">August 12, 2013</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
I was a little surprised, but DM'ed them back with my address and then promptly forgot all about it. (I don't know what the past tense of the abbreviation of Direct Message is, so please feel free to correct me in the comments below.)</p>
<p>About a month later I was at home when the doorbell rang and a delivery driver handed over a parcel for me. I opened it up and was surprised to find three <a href="http://littlebits.cc">littleBits</a> kits.</p>
<p>Now I'd just (literally that week) started teaching a new subject called Systems & Control, that has a heavy element of electronics involved, so I packed the kits into my car and took them to school the following day.</p>
<p>For those that don't know, littleBits make electronics kits consisting of snap together magnetic modules. You can use the kits to make a range of electronic circuits - driving motors and buzzers and blinking LEDs.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/IE9dU_REgmc" frameborder="0" allowfullscreen></iframe>
<p>My colleagues and I stood around the opened boxes, picking up the little plastic modules, snapping them together and building an array of little projects. After fifteen minutes or so we all came to the same conclusion. The kits were clever, easy to use, accessible for students but completely impractical for a classroom of thirty secondary school students.</p>
<p>The kits were placed back in their boxes, and left in a cupboard, forgotten about.</p>
<p>Then, due to personal circumstances, my six year old son, Jimi, had to be home schooled by his grandmother. I remembered the kits in my classroom cupboard and took them over to her, suggesting she might like to put together some of the kits with him. This she did, dutifully following the instructions and assembling the kits. She reported back that they had built the circuits, and then the kits came home, to be once again forgotten about, this time in a drawer in Jimi's bedroom.</p>
<p>On Saturday I was standing in the kitchen, enjoying a steaming cup of coffee and my morning Nicotine Replacement Therapy Lozenge, while perusing Hacker News. Jimi came bounding in.</p>
<p>"Dad, come and look at the machine I've made."</p>
<p>I've been caught out by this one before. The "machine" is normally a cardboard box with a cushion inside it and a pencil stabbed through the side. Sometimes it's supposed to be a rocket, sometimes a train or sometimes an Angry Birds catapult.</p>
<p>"Why don't you bring it through here?" I asked, reluctant to leave my coffee and laptop.</p>
<p>"It's a bit delicate," he said "but okay."</p>
<p>He came in a few minutes later, but I wasn't really paying much attention as he began messing around on the kitchen floor.</p>
<p>"Look Dad."</p>
<p>I looked over and was stunned by what I saw. Jimi had pulled out the littleBits kits and had assembled a monstrous creation.</p>
<p>I got down on the floor with him and asked him what he had made. He explained the contraption. How you had to turn this thing and push that thing and hold down this part and then this part lights up and this thing makes a noise. He didn't use a single punctuation mark in his excitable and breathless sentence.</p>
<p>We moved his machine onto the kitchen table and his big sister suddenly made an appearance. Within minutes the two of them were busily clicking together bits of electronics, having fun, amazing themselves, and more importantly learning.</p>
<p><img alt="Jimi and his Sister" src="http://coding2learn.org/images/littleBits/Jimi.jpg">
<img alt="Concentrating" src="http://coding2learn.org/images/littleBits/Concentrating.jpg">
<img alt="Lantern" src="http://coding2learn.org/images/littleBits/Lantern.jpg"></p>
<p>Jimi figured out that a push-to-make switch needs to come between a power supply and an LED to have an effect. He learned what a variable resistor does in series with a motor. He learned what a piezoelectric sensor does when combined with a buzzer. Obviously he learned none of the terminology, but that wasn't important.</p>
<p>I'd dismissed the littleBits kits because I have preconceived ideas of what education should be. These misconceptions have been honed by years of operating in a pressured school environment, where results rule above all else, and where you're required to demonstrate progress in every lesson, term, year and key stage. Watching my son experiment, succeed and learn, all while having fun was sobering.</p>
<p>Unfortunately the lesson I learned is one that I will struggle to apply in my professional life. There just isn't the time available to allow students to experiment at their own pace. I would love nothing more than to give the students the tools they require, be that in computing or in electronics, and allow them to explore the possibilities available to them, but alas I operate in a system where data rules and demonstrable progress is required.</p>
<p>There are areas in which I can allow students to experiment. Thanks to a particularly keen and talented student, I have become involved with a project called <a href="http://thinkspace.co.uk/">THINKSPACE</a>. This involves giving students a time and place that they can come and begin to develop apps. They work on what they want to, at a pace that suits them and where I am a facilitator and troubleshooter as opposed to a driver of progress. I can spare only an hour a week to THINKSPACE. It deserves two or three hours a day.</p>
<p>I admire littleBits, THINKSPACE and similar initiatives. I think they're admirable endeavors with the right mindset when it comes to education. I just wish that policy makers within the education system shared their ideals and attitude towards learning, so that we could give all our students the opportunity to truly experiment in the classroom, to succeed and to fail, to have fun and most importantly to teach themselves to learn.</p>Computing is much more than coding?2013-10-10T22:09:00+01:002013-10-10T22:09:00+01:00Marc Scotttag:coding2learn.org,2013-10-10:/blog/2013/10/10/computing-is-much-more-than-coding/<p>Trying to justify that every student in the country should learn computing is quite a tricky endevour, and it shouldn't be. We're all users of technology after all, and benefit from the advantages and disadvantages of being so. We should all have a basic understanding of computers, networks, encryption and …</p><p>Trying to justify that every student in the country should learn computing is quite a tricky endevour, and it shouldn't be. We're all users of technology after all, and benefit from the advantages and disadvantages of being so. We should all have a basic understanding of computers, networks, encryption and software. Knowledge of technology can help keep us safe, make us money and help our productivity. Why should every student in the country not be given access to such knowledge? After all, we don't balk at the fact that every student in the country should study Shakespeare, trigonometry, the causes of The Second World War or how to throw a rugby ball. I probably use trigonometry about once a month, I haven't thrown a rugby ball in decades but I use a computer every day.</p>
<p>I studied French for five years at secondary school. I hated it. There's nothing worse than sitting at a parents' evening and listening to your mother speak fluent French with your teacher, and knowing, despite not understanding a word they are saying, that he's detailing your every shortfall in the subject. Do I resent the fact that I was made to study French? No. Of course not. I have the utmost admiration for multi-linguists. I marvel at their ability and I know they perform an essential role in our society. Every student should study a foreign language, because a few of them will find they have a talent for it and go onto greater things. Did attempting to learn French benefit me? No. Not one bit, and that doesn't matter</p>
<p>Other subjects have no need to justify their existence in schools. English, Foreign Languages, Maths and Science have the weight of centuries of educational history behind them. As does History. Computing is new. The bastard child of Maths and Electrical Engineering. It's a subject that's only been in existence for a few decades. Because of this it has struggled to gain a firm foothold in our schools, yet I would argue that it is a subject that has a far greater impact on our lives and the lives of our children than any of the others.</p>
<p>There are quite enough reasons to make Computing a compulsory subject in schools. We don't need spurious excuses that confise the issue. What annoys me about many of the "Computing Apologists" is their overwhelming desire to insist that Computing has benefits outside of the sphere of technology. I'm all for Computing in primary and secondary schools, because I think the ability to code is important and I feel that every student should have the <em>opportunity</em> to learn to program. If we teach a thousand students to code, then maybe we'll find a hundred that enjoy it, ten that excel at it and one that goes on to revolutionise our society.</p>
<p>When many advocates of compulsory Computing education are asked why it is so important, they often hail "Computational Thinking" to be the panacea to all our woes. They state that even outside the field of programming, Computational Thinking is an important life skill. They argue that Computational Thinking can be applied to many problems in the real world and that every student should learn to tackle problems in a "Computational way". I teach Computing, and to be honest I only have a vague idea of what Computational thinking is.</p>
<p>I know how to teach programming. I know how to teach students to break down problems and tackle bite-sized chunks with different algorithms. I know how to get students to manipulate large data sets, and to make simplified models of real-world situations. I can teach students all of these things, once I've taught them the basics of the programming language we are using, be it Scratch, Python, Javascript or whatever the flavour of the week is.</p>
<p>The idea that Computational thinking is an essential life skill is nonsense. </p>
<p>If I was to shuffle a pack of fifty-two playing cards and hand them to you, then asked you to sort them, you'd do what any sensible person on the planet would do. You'd sort them into suit order first, then into value order. Is this decomposition or just common sense? Did you require lessons in Computational thinking in order to achieve this task?</p>
<p>My degree is in Biochemistry. I would never argue that Scientific thinking is crucial for everyone. It's useful, in certain situations, but not essential. When some Daily Mail reader argues that the presence of a minority group in our country is resulting in a broken society, I might apply the Scientific Method to analyse their evidence, find its flaws and then disprove their hypothesis. If they told me they'd eaten a bacon sandwich, I'd probably just believe them. My wife is an English teacher. When she reads a novel she drills down into the layers of meaning and the subtext of the book, to elucidate a truer understanding of the authors message. When she reads the menu in a local cafe, detailing the contents of their bacon sandwiches, she just takes it at face value.</p>
<p>You can live a successful life without knowledge of the Scientific Method. You can live a successful life without knowledge of Literary Deconstruction. You can live a successful life without knowledge of Computational Thinking.</p>
<p>If I ask you to build me a shed, do you pick up an armful of planks and repeatedly throw them into the air until a shed has been built? Of course not. Maybe you'll start by building a floor, then some walls and finally a roof. Is this decomposition? Are you "Thinking Computationally"? Maybe you're actually engaging in abstraction. After all, there's no such thing as a roof. A roof is just a series of planks of wood, joined together at an angle that is optimal for self-support and the shedding of rain water. Of course, there's no such thing as a plank of wood. That's just really bundles of xylem vessels, cut into regular geometric patterns. Of course, there's no such thing as a xylem vessel. They're really just arrangements of cells composed of cellulose and... well I'm sure you get my point. We're all fairly familiar with abstraction. We just might not recognise it for what it is, and we certainly don't have to be taught Computational Thinking in order to build a shed.</p>
<p>I think one of the major problems is our labelling of the subject.</p>
<blockquote>
<p>Computer Science is no more about computers than astronomy is about telescopes</p>
<blockquote>
<p>Edsger Dijkstra</p>
</blockquote>
</blockquote>
<p>Unfortunately, Computer Science has little to do with Science either. Let's get straight what we are actually teaching here. We're teaching programming, network infrastructure, databases, communication protocols, markup. We're teaching these things because these technologies are so ubiquitous and important, that it will benefit everyone to have a <em>little</em> understanding of them. We are <em>not</em> teaching a revolutionary new way of thinking that will have wider benefits to society. </p>
<p>Why should we give every student an opportunity to learn Computing? Some of the students we teach might one day become the next Linus Torvalds or Steve Wozniak. Some of our students might become senior developers, collaborating on amazing new technologies and changing the world for the better. Some of our students might develop the algorithms for more realistic flag fluttering in Call of Duty XIII. Some of our students might become Gregs executives and not give the developers such a hard time when they can't sort six million customer records according to when they last ordered a bacon sandwich, in real time, in a browser... that's IE6.</p>
<p>Lets stop trying to make Computing something it isn't, and instead be clear as to what we're teaching and why we're teaching it. Let's stop being afraid of the words programming and coding, as if it'll scare students away. Let's be honest about Computing, and we'll see it's popularity soar.</p>A rant from my brother2013-09-26T19:03:00+01:002013-09-26T19:03:00+01:00Marc Scotttag:coding2learn.org,2013-09-26:/blog/2013/09/26/a-rant-from-my-brother/<p>My brother is the reason I learned to code. To be honest, he's probably forgotten more about programming than I'll ever know, and I'm not exaggerating. His preferred languages are Haskell and OCaml, but he's recently had to dive into Javascript for a project he's working on. I received this …</p><p>My brother is the reason I learned to code. To be honest, he's probably forgotten more about programming than I'll ever know, and I'm not exaggerating. His preferred languages are Haskell and OCaml, but he's recently had to dive into Javascript for a project he's working on. I received this email from him tonight, and I found it amusing so I thought I'd share it. (Note - he talks about Python a lot as it's the language I understand the most.)</p>
<p>Javascript is pretty pathetic when it comes to bug-finding. Here's some Python:</p>
<div class="highlight"><pre><span></span>>>> foo = {}
>>> foo["bar"] = 3
>>> foo["baz"]
</pre></div>
<p>The dictionary foo doesn't have a key "baz", and this is likely a typo. Python sensibly throws an error, and execution will not continue.</p>
<p>In Javascript:</p>
<div class="highlight"><pre><span></span>>> var foo = {};
>> foo["bar"] = 3;
>> foo["baz"]
</pre></div>
<p>This does not throw any errors, but instead returns undefined. This is not entirely retarded, until we find that Javascript happily coerces undefined to NaN (Not a Number) whenever it appears in arithmetic expressions. Since NaN is a valid floating point number, it can happily propagate through running code. Things go from entirely retarded to completely fucking braindead when we find that Javascript will accept NaN as an argument in most functions:</p>
<div class="highlight"><pre><span></span>ctx.fillRect(NaN,NaN,NaN,NaN)
</pre></div>
<p>In other words, what started out as a typo which would have Python raise an error at the earliest possible opportunity is silently ignored by Javascript, only to be found if one notices certain rectangles not being drawn. Tracking down such a typo from a bit of missing graphics is going to be a pain in the arse.</p>
<p>Now functions: Javascript has no time for conventions of mathematics, programming, or basic sanity. In Javascript, any function can be passed <em>any</em> number of arguments without raising an error. The concept of arity be damned. Extra arguments in Javascript are ignored. Missing arguments are set to undefined. And, as explained before, undefined will be coerced to NaN in arithmetic expressions to create lots of great bug-full code when you forget the number of arguments required of a function. For further hilarity, undefined can be used as a key to a dictionary. So if you do:</p>
<div class="highlight"><pre><span></span><span class="kd">function</span> <span class="nx">insert</span><span class="p">(</span><span class="nx">y</span><span class="p">,</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">dict</span><span class="p">[</span><span class="nx">x</span><span class="p">]</span> <span class="o">=</span> <span class="nx">y</span><span class="p">;</span>
<span class="p">...</span>
<span class="p">}</span>
</pre></div>
<p>and you accidentally call insert(3), you won't be told, as you would be in Python, that you are missing a required argument. Instead, x gets bound to undefined, and the dictionary will be become</p>
<div class="highlight"><pre><span></span>{ undefined : 3 }
</pre></div>
<p>That's almost certainly an unexpected behaviour.</p>
<p>The way that function parameters are interpreted leads to this truly bizarre example, which I got from another site:</p>
<div class="highlight"><pre><span></span>['10','10','10','10','10'].map(parseInt)
</pre></div>
<p>this yields the truly <em>weird</em></p>
<div class="highlight"><pre><span></span>[10,NaN,2,3,4]
</pre></div>
<p>The function <em>map</em> is supposed to apply its argument to every value in a list. In sane languages, </p>
<div class="highlight"><pre><span></span>[x,x,x,x,x].map(f)
</pre></div>
<p>should give you the list</p>
<div class="highlight"><pre><span></span>[f(x),f(x),f(x),f(x),f(x)]
</pre></div>
<p>In Javascript, for likely dumbfuck reasons, map takes a function of three arguments. The first argument is bound to the element in the list. The second argument is bound to the index into the list. The third argument is bound to the entire list. This will cause surprise when you don't know exactly how many arguments the argument to map is expecting (parseInt in this case), but don't expect a prompt error in case of mistakes, as you would get in Python.</p>
<p>It turns out that, in this case, parseInt takes an optional second argument which is the base in which the first argument is to be interpreted. For unexplored reasons, when the base is 0, the argument is read in base 10. In base 1, NaN is always returned. This explains the first two elements in</p>
<div class="highlight"><pre><span></span>[10,NaN,2,3,4]
</pre></div>
<p>The third element is "10" in base 2. The fourth element is "10" in base 3. The last element is 10 in base 4</p>
<p>Ridiculous.</p>How we were trained to lower the drawbridge2013-09-08T09:28:00+01:002013-09-08T09:28:00+01:00Marc Scotttag:coding2learn.org,2013-09-08:/blog/2013/09/08/how-we-were-trained-to-discard-our-tinfoil-hats/<p>A few years ago, the parody news network <a href="http://www.theonion.com">The Onion</a> released a video claiming that <a href="http://www.theonion.com/video/cias-facebook-program-dramatically-cut-agencys-cos,19753/">Facebook was a massive CIA surveillance project</a>. It was funny at the time. It's not so funny any more.</p>
<p>Perhaps naively, I believe that Facebook, Google and the other tech giants <em>reluctantly</em> cooperate with the …</p><p>A few years ago, the parody news network <a href="http://www.theonion.com">The Onion</a> released a video claiming that <a href="http://www.theonion.com/video/cias-facebook-program-dramatically-cut-agencys-cos,19753/">Facebook was a massive CIA surveillance project</a>. It was funny at the time. It's not so funny any more.</p>
<p>Perhaps naively, I believe that Facebook, Google and the other tech giants <em>reluctantly</em> cooperate with the NSA. I believe that they comply with FISA requests because <em>they have to</em> and that they have remained tight-lipped about their cooperation because if they don't then whistleblowers could expect the same fair, just and proportionate treatment as has been meted out to Chelsea Manning and Edward Snowden. These corporations exist, after all, to make money and handing over vast swathes of user data to spy agencies just isn't in their financial interests.</p>
<p>I feel however, that the tech giants have accomplished something far more insidious, and in many ways more detrimental to our privacy than is claimed in the video. They've trained us to devalue privacy.</p>
<p>There's an old saying that actually used to mean something.</p>
<blockquote>
<p>An Englishman's home is his castle.</p>
</blockquote>
<p>In the UK at least, it used to be the case that we valued our privacy. What went on between the four walls of our homes was our business and nobody else's. There were only three people in your life you would ever share your private lives with: your doctor, your priest and your spouse - in that order.</p>
<p>Then along came the Internet. At first it was a place only a select few could publish. You had to have the technical ability to setup a webserver and write in HTML, and the World Wide Web was a curious place filled with niche websites created by geeks, academics and hackers. But it didn't stay like that for long. Facebook, Wordpress, Twitter, Google+ all came along and made it easy to share everything.</p>
<p>We've been trained to lower the drawbridge, lift the portcullis and let the world into our castles. Social networks reward us every time we publicise our lives, and we eat it up. This is most startlingly apparent amongst Generation Y, for whom sharing their lives with the world is so natural and ingrained, they almost see it as a basic human right. They consider privacy as something archaic and quaint, no longer relevant to the world we live in. They like it when they Google their own name and see images of themselves on the front page. They compete to gain followers on Tumblr, friends on Facebook and mentions on Twitter.</p>
<p>We don't yet know what full the consequences of the sharing culture will be. When today's fifteen year-old students attempt to stand for Parliament in twenty years time, and the front pages of the red-tops are plastered with embarrassing Snapchat selfies, will we look at them and decide that they are not fit to represent us in Government, or will we just shrug and acknowledge that 'everyone used to do that'?</p>
<p>We can see one consequence of our <em>training</em> by the social networks here and now though - apathy. When Snowden's revelations first hit the Guardian's front page almost nobody cared. Hacker News was filled with NSA stories, but you'd expect that from a community of technophiles. The BBC seemed to include Snowden stories as an after thought though, and even then, they focused on the human element of where he was and what he was doing, rather than the surveillance programs he had exposed. Glen Greenwald promised there would be more to come, and he didn't disappoint. But the latest revelation, that the NSA and GCHQ consider most of the widely used encryption technologies as a mere hindrance to their dragnet data gathering, has caused barely a ripple in the public consciousness.</p>
<p>Why are we not out on the streets protesting these flagrant invasions of our privacy? Why are we not holding our parliamentary representatives to account, and demanding the end to mass surveillance of innocent citizens? Why are we not doing something... anything?</p>
<p>Generation W didn't think about privacy, they just had it. Amongst Generation X there are precious few of us who care. Most of Generation Y consider privacy a barrier to their lives. It's Generation Z where the only hope lies.</p>
<p>As a teacher I grow tired of the government and media constantly passing the buck and demanding that all societal ills need to be cured in schools. Teenage pregnancy rates too high? Teachers can fix that. Young adults can't manage their finances? Teachers can fix that. Too much apathy at the polling booth? Teachers can fix that. Government, the media and parents constantly abdicate responsibility and throw more into the curriculum in an attempt to fix society. When it comes to teaching about online privacy however, I don't see who can help Generation Z other than the teachers. The media, the Government and the corporations have no vested interest in a generation that considers privacy important. As for parents, they're already setting up Facebook accounts for their babies so that we can track their offspring's progress from cradle to grave.</p>
<p>I'll start. I'm currently working on a scheme of work about cryptography. There'll be plenty of Computer Science concepts in there, but I also intend for students to understand the importance of strong cryptography from a societal perspective rather than just a technological perspective. My hope is that it will make them think a little when using digital communication technologies, about exactly who has access to the content they send. I'll publish it here when I'm done. If you would like to join me in this campaign, then please feel free to share links to resources in the comments section, or on Twitter, and I will endeavour to curate and publish what you send.</p>The Myth of Mobile Computing2013-08-30T15:01:00+01:002013-08-30T15:01:00+01:00Marc Scotttag:coding2learn.org,2013-08-30:/blog/2013/08/30/the-myth-of-mobile-computing/<p><em>note - I use the term General Purpose Computer (GPC) rather than PC as it does not carry connotations of which OS you are running</em></p>
<p>This is not an anti-Apple rant. I love my iPad. It's the device I pick up the moment I get out of bed in the morning …</p><p><em>note - I use the term General Purpose Computer (GPC) rather than PC as it does not carry connotations of which OS you are running</em></p>
<p>This is not an anti-Apple rant. I love my iPad. It's the device I pick up the moment I get out of bed in the morning. While drinking my coffee I check my emails. While on the toilet I check my twitter feed. While having a cigarette I read Hacker News. While taking my dogs for a walk I listen to Today on iPlayer. While at work I project content to students via AppleTV. When I get home I play Plants vs Zombies with my son. While marking students' work, I'll watch some film or TV series on Netflix.</p>
<p>To misquote Charlton Heston:</p>
<blockquote>
<p>You can take my iPad out of my cold dead hands.</p>
</blockquote>
<p>Now go back and read that first paragraph. What do I do with my iPad? I use it to view content and communicate. iPads, and any tablet, are great for this. I <strong>do not</strong> use my iPad to create <strong>anything</strong>.</p>
<p>I've tried. Honestly I have. I've downloaded apps to make videos, code in Python, create presentations and write blog posts. I've excitedly shown friends and colleagues how <em>easy</em> it is to knock up a Keynote presentation, or make Khan Academy style tutorials using various apps. I've even purchased a stylus and tried using it as a notebook only to discover that my writing is illegible unless my characters are at least three inches high. As time goes on, the apps I've downloaded to 'aid' productivity get used less and less, and I find myself firing up my MacBook whenever I want to do any serious work. I got sick of finding workarounds to get over the restrictions of the OS; transferring files along a chain of apps or even emailing them to myself. I now have a simple policy for managing my apps. If an update comes through, and I haven't used the app in more than a month, I delete it. This is what my home screen looks like. These are the only apps I have.</p>
<p><img alt="My Only Screen" src="http://coding2learn.org/images/MobileMyth/homescreen.PNG"></p>
<p>I read <a href="http://www.theguardian.com/technology/2013/aug/30/pc-boom-over-tablets-smartphones">this Guardian article</a> (on my iPad) and I'd like to spend a little bit of time explaining why mobile computing, in its current form, is not going to take over the world.</p>
<p>The statistics that are quoted in the article, along with fancy looking graphs, are all for GPC <em>sales</em>. This is important. They are not quoting GPC <em>usage</em>. If you want some statistics on usage, then check out this screen-shot for the analytics of my blog.</p>
<p><img alt="Analytics" src="http://coding2learn.org/images/MobileMyth/analytics.png"></p>
<p>When you buy a computer you tend to expect it to last a few years, and you tend to just buy one or maybe two for an entire household. This is not the case with mobile devices. Along with every member of my family over the age of eleven, I am on carrier subsidised mobile contract. We upgrade our phones regularly. So just looking at my household, you have a purchasing pattern of maybe one computer every five years and four mobile devices every two years.</p>
<p>I use a third generation iPad (screw Apple's ridiculous naming policy). My son uses a first generation iPad. This is a device that is barely three years old and has already become obsolete. Even typing on the thing is a pain, as the OS has advanced beyond the hardware and it takes what seems like seconds for the key presses to register. The last few apps that I've tried to download for him won't run on the OS and those that do tend to crash pretty often. I should think that most people that purchased a first generation iPad that can afford to, have already replaced it with a later one.</p>
<p>Is it any wonder that the sales of mobile devices are so high? Mobile devices, in my opinion, are like disposable computers. They're designed to be that way. You use it for a couple of years, it becomes obsolete, and you buy a new one (all with a nice carrier subsidised contract so you don't realise how much money you're actually spending). I think this is in part due to the manufacturers' policy and in part due to the rate at which technology is developing. Apple and Samsung are constantly innovating, bringing out better mobile devices each year that consumers want to buy. At the same time, they have no desire to ensure that a two-year old device is as functional as the day you bought it. We've been tricked into accepting this business model in a way we would never accept with our GPCs. A three-year old computer will still run the latest operating systems and software, so we don't need to upgrade as often. Most households now already own a GPC, so is it any wonder that sales have flat lined.? </p>
<p>Convergence I think is important, it's just that the big manufacturers have got it the wrong way around. They've taken the sales of mobile devices and made an assumption - everyone wants mobile and people aren't buying PCs. Apple and Microsoft are pushing to make our GPCs more like mobile, in the misguided opinion that this is what people want. It's not. Windows 8 is a prime example of how this tactic has failed, it's a God awful OS that nobody wants. I hope Apple have paid attention to this. Imagine if the next iteration of Mac OS stopped you from installing apps from outside the App Store, removed the terminal and locked away your file system. How many of us would upgrade then?</p>
<p>No, the correct style of convergence can be seen in Canonical's attempt at launching the <a href="http://www.indiegogo.com/projects/ubuntu-edge">Ubuntu Edge</a>. The crowd funded campaign failed, but I think it gained significant enough numbers of pledges to show that this is what many consumers want. We want a GPC that we can carry around in our pockets, SMS our friends with, post to Twitter with and browse the Web with. Then, when we need to do some work we can plug the thing into a monitor, link up a Bluetooth keyboard and get on with some real productivity.</p>
<p>I've seen a worrying number of articles about schools who have bought into the mobile craze. They're making the assumption that current mobile technologies are the future, and that they need to jump on the bandwagon as quickly as possible. This is of course only part of their reasoning. Any school that's offering free or subsidised iPads has a competitive advantage over neighbouring schools, not in terms of results, but in terms of bums on uncomfortable plastic seats. Schools are paid per pupil, so getting feet through the door is important, and nothing is more attractive to a student than the ability to use Instagram during their History lessons.</p>
<p>The problem with school iPad programs is that they're providing the students with a device that will be next to useless by the time they're half-way through their education. Additionally they're providing students with a device for viewing content rather than creating content, and education should be about creation. I don't want my students reading blogs, I want them writing them. I don't want my students playing games, I want them developing them. I don't want my students watching videos, I want them making them. I don't want my students using Snapchat... full stop.</p>
<p>I think that in a few years time this will cease to be a topic of conversation. I think we will see convergence of personal computing devices in the right direction, and I'll own a pocket-sized GPC with a user interface that doesn't inhibit my ability to create content. We need to keep in mind that <em>mobile</em> is still young, and it should not be assumed that that iOS and Android (operating systems that are only six-years old) will be the future. And if you're the Head of a school, please think twice before jumping on the iPad bandwagon, there's better uses of public money.</p>How I do my computing by !=Richard Stallman2013-08-21T21:48:00+01:002013-08-21T21:48:00+01:00Marc Scotttag:coding2learn.org,2013-08-21:/blog/2013/08/21/how-i-do-my-computing-by-equals-richard-stallman/<ul>
<li>
<p>I use an HP laptop with Windows on it. I'm not sure which model it is. It's blue. I also have a Samsung Galaxy thingy, which I use for the Internet quite a lot.</p>
</li>
<li>
<p>I chose Windows because it came with the laptop, with lots of helpful tools made by …</p></li></ul><ul>
<li>
<p>I use an HP laptop with Windows on it. I'm not sure which model it is. It's blue. I also have a Samsung Galaxy thingy, which I use for the Internet quite a lot.</p>
</li>
<li>
<p>I chose Windows because it came with the laptop, with lots of helpful tools made by HP so that I can connect to wireless networks and play DVDs. I don't understand why Windows doesn't include these things itself.</p>
</li>
<li>
<p>I do all my work in Word or PowerPoint. They're both great programs. I use Word to write letters, memos, reports and make posters for my gardening club. I like Word because it means that anyone can be a graphic designer. I like to use WordArt all the time, as it makes my work stand out. When I make PowerPoints I take my audience into consideration. I like to make my presentations interesting for them. To do this I use lots of different colours and different fonts on each slide and make sure that the words fly around and bounce a lot.</p>
</li>
<li>
<p>I use email mainly for registering with Internet sites I go on. I use Gmail for this. I've never been able to figure out how to get emails in Outlook so I just get them on the Internet. I never download attachments from people I don't know. If I know the person and they send me an attachment then I'll download it and open it as I love the funny pictures I get sent in zip files. I sometimes get emails from friends warning of scams where people pretend their car has broken down or something. I forward these emails to all my friends so they also know the dangers.</p>
</li>
<li>
<p>I get a lot of spam emails and I don't understand why. I'm not stupid so I don't send money to people in Nigeria. I like the emails I get about competitions though, and I normally enter these as I'd quite like to win a new MacBook.</p>
</li>
<li>
<p>The Internet on my laptop runs really slowly and it's quite difficult to see sites because of all the toolbars that take up half of the screen. Also when I load the Internet I get annoyed by all the pop-ups that suddenly appear for adult dating sites and on-line gambling. I used to get lots of annoying messages on the Internet about things like ActiveX, but a friend showed me how to change my security settings so they don't come any more.</p>
</li>
<li>
<p>I use all the Social Networks. I have two-thousand friends on Facebook. I use Twitter and Google+ to follow the celebrities I like. On Twitter I follow nine hundred people and I have six hundred people in my Google+ circles. I don't post things to Twitter very much as I only have six followers and they just send me offers for adult dating and on-line gambling.</p>
</li>
<li>
<p>When I'm on the Internet I'm always logged into Facebook, Google and Twitter. This makes it easy to 'Like' videos I see. Also it means I don't have to type in my password all the time. My password is easy to remember as it's my cat's name and my son's date of birth. A friend told me this was unsafe, but I don't see how anyone could possibly guess it.</p>
</li>
<li>
<p>I like to post pictures of my cat to Facebook, and also photo's of my son, especially at his birthday parties. Facebook is great. I have the Facbook app on my phone. I post things to Facebook about ten times a day, and it is the only way I talk to my friends and family. Every photo I take goes on Facebook. I also check-in whenever I'm out somewhere interesting, like my local Fish and Chip shop or when I'm abroad for a couple of weeks on holiday.</p>
</li>
<li>
<p>Sometimes Facebook is not so good, especially when you get people bullying you on there who don't agree with you. I hate bullies so I always put them in their place, and my messages are always in capitals so they know how wrong they are.</p>
</li>
<li>
<p>I'm quite careful with my computer. I make sure I'm safe by having anti-virus. I have AVG, AVAST, Norton, Microsoft Security Essentials and a few others that I downloaded from sites that said my computer was infected. I do find anti-virus annoying because they keep telling me to update, but I just close the messages as I think this is a scam to make me buy newer versions that don't do anything special.</p>
</li>
<li>
<p>I'm very careful with my files. I have two folders on my desktop. The first folder has all my files in it and I always backup everything into the second folder in case the first one gets accidentally deleted. I used to backup everything onto a USB, but I kept losing it.</p>
</li>
</ul>
<p><a href="http://stallman.org/stallman-computing.html">Original Stallman post</a></p>KickStarting A Revolution2013-08-16T13:00:00+01:002013-08-16T13:00:00+01:00Marc Scotttag:coding2learn.org,2013-08-16:/blog/2013/08/16/kickstarting-a-revolution/<p>So I've had an idea. It might very well be the worst idea ever, I can't really judge as I'm naturally biased - <em>I think all my ideas are amazing</em>.</p>
<h2>The First World Problem</h2>
<p><img alt="First World Problems" src="http://coding2learn.org/images/KickstartARevolution/firstworldproblems.png"></p>
<p>I'm unhappy about the current political landscape. In England we have a choice between three parties; Conservatives …</p><p>So I've had an idea. It might very well be the worst idea ever, I can't really judge as I'm naturally biased - <em>I think all my ideas are amazing</em>.</p>
<h2>The First World Problem</h2>
<p><img alt="First World Problems" src="http://coding2learn.org/images/KickstartARevolution/firstworldproblems.png"></p>
<p>I'm unhappy about the current political landscape. In England we have a choice between three parties; Conservatives, Labour and Liberal Democrats. Realistically, you will end up being represented by a Member of Parliament (MP) from one of theses parties (voters in Scotland, Wales and Northern Ireland have a couple of more options).</p>
<p>The three parties have broadly similar policies. They differ slightly in various areas. The Conservatives want corporations to run the country with the free-market providing checks and balances. Labour want corporations to run the country with trade unions providing checks and balances. The Liberal Democrats want corporations to run the country with <a href="http://www.theguardian.com/uk">The Guardian</a> providing checks and balances.</p>
<p>In truth, the policies of the 'big three' don't really seem to affect me very much. I'm a teacher by trade and I'm probably more or less a typical middle class, mode income, median family-size and mean citizen of the UK. No matter which party gets into power, life continues as normal. If I were living on the poverty line or if I were a millionaire, then I might be incentivised to favour one party over another, but I'm in neither situation.</p>
<p>Now I could vote altruistically. I could vote for a party whose policies favour one or other of my country's other demographic groups. I could cast my vote in the hope that in some small way I would be helping people on the poverty line who could get by if they could just get that extra boost from the state. Or maybe I could vote to help small business owners that could become big business owners if only they could just get that extra boost from the state. Or perhaps I could vote to help millionaires that could become billionaires if only they could just get that extra boost from the state. However, in voting for one of the existing parties I would be providing tacit approval of all their policies --- policies on education, health, welfare, energy, foreign affairs and, of course, technology.</p>
<blockquote>
<p>I care about technology.</p>
</blockquote>
<p>I care that GCHQ has the ability to store and read my emails, view my browsing habits and monitor my telephone conversations. I care that my government is trying to fashion a sanitised Web, where it is considered subversive and perverted to view websites that aren't prefixed with the domain telegraph.co.uk. I care that you can face extradition and life imprisonment for accessing a US Federal computer or running a website that leaks sensitive documents to the world. I care that it's okay for me to give a dog-eared copy of <em>Nineteen Eighty Four</em> to a friend, but if I try to do the same with an ebook purchased from Amazon then all of a sudden I'm a criminal. I know these are First World problems, but I live in the First World.</p>
<p>I don't want to put a cross in a box next to the name of any candidate that comes from any of the three major parties. I watched William Hague stand up in parliament and talk about PRISM, and not a single member of the house gave a serious challenge to what he said. I've read article after article on how ISPs will be forced to introduce filtering on their networks, and not seen a single objection from the party in opposition. So what choices are left to me?</p>
<p>There are a few fringe parties, but they tend to field representatives in only a few constituencies, and most certainly not in mine. There's a single protest party, the UK Independence Party, but UKIP and I don't really see eye-to-eye, due to the fact that I am married to a naturalised British citizen and together we have three mixed-race children. There's the Pirate Party, but again they don't run in my constituency. Besides, they have a silly name and their focus seems to be solely on 'sharing culture' at the expense of everything else. </p>
<p>What we need in this country is a protest party that campaigns on the issues of Internet privacy, censorship, copyright/patent reform and computer misuse laws. Most importantly, the party <em>needs to have representation in every constituency in the country</em>. It's no use gaining a few hundred votes in Manchester and a few hundred votes in Bethnal Green. The party needs thousands of votes nationwide. That way a message can be sent to those in parliament that people care about these issues.</p>
<h2>The First World Solution</h2>
<p><img alt="First World Solutions" src="http://coding2learn.org/images/KickstartARevolution/firstworldsolutions.png"></p>
<p>Confession time. The solution is not to "Kickstart a revolution", but that sounds so much better than "Crowdfund a Protest Party". There are a lot of people that care about the impact of politics on technology, and many of these same people also like crowdfunding.</p>
<p>Here's my idea: a 21st century solution to a 21st century problem.</p>
<p>There are <a href="http://en.wikipedia.org/wiki/List_of_United_Kingdom_Parliament_constituencies">650 constituencies</a> in the United Kingdom. The deposit required to stand in an election to the House of Commons is <a href="http://en.wikipedia.org/wiki/Deposit_(politics)">£500</a>. So a quick calculation reveals that the total cost to any political party wishing to field a candidate in every constituency is £325000. Now I've done some <a href="http://lmgtfy.com/?q=registering+political+party+uk">fairly hefty research</a> and it appears that the only other cost is a £25 fee to register a new party. So the absolute minimum funding required stands at £325025.</p>
<p><a href="http://www.kickstarter.com/help/guidelines?ref=footer">Kickstarter</a> won't allow crowd-funding of political parties from what I can gather.</p>
<blockquote>
<p>Kickstarter cannot be used to raise money for causes, whether it's the Red Cross or a scholarship, or for "fund my life" projects, like tuition or bills.</p>
</blockquote>
<p><a href="http://www.indiegogo.com/">Indiegogo</a> has no problem with it though. Indiegogo charges a 4% fee on successful campaigns, so that needs to be factored into our target. We'll need £338,568 in order to pay Indiegogo, and have enough left to register the party and then pay a deposit for a candidate to stand in every constituency in the UK.</p>
<p>Reward structures could be fairly simple. £5 lists you as a party founder on a website and a chance to vote on the name/emblem of the party. £25 gives you automatic membership to the party and a vote in the selection of candidates. £500... wins you The Internet?</p>
<p>There are a few administrative roles that need filling. We'd need a Party leader, a Treasurer and a Nominating Officer. They would come from the party membership and be elected by the party membership. These would be volunteer roles, but, if various stretch goals were reached, there could be funding to pay for the time they dedicate to the party. </p>
<p>Campaigning would be centralised. We'd harness the technical skills of the party membership to create a website and maybe a few YouTube videos. We'd promote the party on social networks, keeping the message alive until election day. There should be no need for local campaigning. I've never had a politician knock on my door to discuss who I'd vote for, but I have had plenty of leaflets and fliers put though my letterbox and they end up straight in the recycling. I do, however, pay attention to my Twitter stream, to the blogs I read and to interesting posts my wife shares with me from her Facebook feed.</p>
<p>There should be no need for a manifesto either. In reality, it would be a hindrance. We could draft policies on reforming privacy laws, censorship, copyright law and patent law, and that would be it. We'd have no intention of winning any seats, and realistically we'd have no chance anyway. The point is to provide voters with a 'None of the above' option, but with a clear message as to why 'None of the above' is being chosen. Having policies designed to fix the looming pension crisis, or on welfare reform would detract from our message and probably generate a significant amount of infighting. We need a party that you'd feel happy to vote for no matter where you lie on the political spectrum.</p>
<p>I don't know whether this is a good idea or not. I suppose that's why I'm asking here for your opinions. This post could fade with time, unread and ignored. Maybe it'll be read and I'll be shot down as a fool with no understanding of politics. Or maybe I'm on to something. Feel free to comment anyway, either below or via my twitter handle <a href="https://twitter.com/coding2learn">@coding2learn</a></p>
<p>I'm happy to modify and update this post in response to your comments.</p>
<p><em>Edit - <a href="https://news.ycombinator.com/item?id=6232071">Comments on Hacker News</a></em></p>
<p><em>Edit - <a href="http://discours.es/post/we-need-a-viable-protest-party-for-the-next-uk-election">Doug Belshaw's post in response</a></em></p>Kids can't use computers... and this is why it should worry you2013-07-29T15:37:00+01:002013-07-29T15:37:00+01:00Marc Scotttag:coding2learn.org,2013-07-29:/blog/2013/07/29/kids-cant-use-computers/<p><strong>TL;DR?</strong> <em>Why not just go watch another five second video of a kitten with its head in a toilet roll, or a 140 character description of a meal your friend just stuffed in their mouth.</em> <strong>"nom nom"</strong>. <em>This blog post is not for you.</em></p>
<p>The phone rang through to …</p><p><strong>TL;DR?</strong> <em>Why not just go watch another five second video of a kitten with its head in a toilet roll, or a 140 character description of a meal your friend just stuffed in their mouth.</em> <strong>"nom nom"</strong>. <em>This blog post is not for you.</em></p>
<p>The phone rang through to my workroom. It was one of the school receptionists explaining that there was a visitor downstairs that needed to get on the school's WiFi network. iPad in hand I trotted on down to the reception to see a young twenty-something sitting on a chair with a MacBook on her knee.</p>
<p>I smiled and introduced myself as I sat down beside her. She handed me her MacBook silently and the look on her face said it all. <em>Fix my computer, geek, and hurry up about it.</em> I've been mistaken for a technician enough times to recognise the expression.</p>
<p>'I'll need to be quick. I've got a lesson to teach in 5 minutes,' I said.
'You teach?'<br>
'That's my job, I just happen to manage the network team as well.' </p>
<p>She reevaluated her categorisation of me. Rather than being some faceless, keyboard tapping, socially inept, sexually inexperienced network monkey, she now saw me as a colleague. To people like her, technicians are a necessary annoyance. She'd be quite happy to ignore them all, joke about them behind their backs and snigger at them to their faces, but she knows that when she can't display her PowerPoint on the IWB she'll need a technician, and so she maintains a facade of politeness around them, while inwardly dismissing them as <em>too geeky</em> to interact with.</p>
<p>I looked at the MacBook. I had no experience with OSX at the time. Jobs wasn't an idiot though, and displayed proudly in the top right hand corner of the screen was a universally recognisable WiFi symbol. It took me seconds to get the device on the network.</p>
<p>I handed back the MacBook and the woman opened up Safari. 'The Internet's not working,' she stated with disdain.</p>
<p>I've heard this sentence so many times now from students and staff, that I have a stock reaction. Normally I pull out my mobile phone and pretend to tap in a few numbers. Holding the handset to my ear I say: <em>'Yes, give me the office of the President of the United States.... NO, I WILL NOT HOLD. This is an emergency.... Hello, Mister President, I'm afraid I have some bad news. I've just been informed that The Internet is not working.'</em></p>
<p>I decided that the young woman would probably not appreciate the sarcasm, and took the MacBook off her so I could add in the county's proxy server settings. I had no idea how to do this on OS X. The county proxy is there to ensure that the staff and students can't access porn on the school network. It also filters for violence, extremism, swearing, social networks, alcohol, smoking, hacking, gaming and streaming video. Ironically, if you were to perform a Google search for "proxy settings OS X", the top results would all be blocked because you used the word 'proxy' and that is a filtered word.</p>
<p>'Do you know where the proxy settings are?' I asked, hopefully.</p>
<p>I don't get a response. I might as well have asked her <em>'Can you tell me how to reticulate splines using a hexagonal decode system so that I can build a GUI in Visual Basic and track an IP Address.'</em></p>
<p>It took me about ten seconds to find and fill in the proxy settings. I handed back her MacBook and she actually closed Safari and reopened it, rather than just refreshing. 'Thanks.' Her gratitude was overwhelming.</p>
<p>I was about to leave, when she stopped me. 'PowerPoint's not working'.</p>
<p>This probably didn't warrant a phone call to the President of the United States. I'm sure he takes an interest in technological issues, but the breakdown of the World's leading presentation tool would probably be somewhat of a relief to him. At least the NSA wouldn't be losing any more poorly designed slide-shows.</p>
<p><img alt="Tax Dollars Don't Pay For Graphic Designers" src="http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2013/6/8/1370710424658/new-prism-slide-001.jpg"></p>
<p>I sat back down and once again took possession of her MacBook. The slide she was displaying contained an embedded YouTube video, and as I have said, streaming video is blocked. I tried to explain this to the woman, and she then patronisingly explained that it shouldn't matter as the video was in her PowerPoint and that was running from her USB stick. I didn't argue, it was really not worth my time. Instead I do what I normally do for people and <em>Just make it work</em>. Using my iPad's 3G connection, I set up a hot-spot and download the YouTube video using a popular ripping site and then embed the now local video in her presentation.</p>
<p>'So what do you teach?' she asked as I worked on her presentation. <br>
'Computing' I replied.<br>
'Oh... I guess these days you must find that the kids know more about computers than the teachers....' </p>
<p>If you teach IT or Computing, this is a phrase that you'll have heard a million times, a billion times, epsilon zero times, aleph one times. Okay I exaggerate, but you'll have heard it a lot. There are variants of the phrase, all espousing today's children's technical ability. My favourite is from parents: 'Oh, Johnny will be a natural for A-Level Computing. He's always on his computer at home.' The parents seem to have some vague concept that spending hours each evening on Facebook and YouTube will impart, by some sort of cybernetic osmosis, a knowledge of PHP, HTML, JavaScript and Haskell.</p>
<p>Normally when someone spouts this rubbish I just nod and smile. This time I simply couldn't let it pass. 'Not really, most kids can't use computers.' (<em>and neither can you</em> - I didn't add.)</p>
<p>She looked surprised by my rejection of what is generally considered a truism. After all, aren't all teenagers digital natives? They have laptops and tablets and games consoles and smart phones, surely they must be the most technologically knowledgeable demographic on the planet. The bell went, and I really did have a lesson to teach, so I didn't have time to explain to her my theories on why it is that kids can't use computers. Maybe she'll read my blog.</p>
<p>The truth is, kids <em>can't</em> use general purpose computers, and neither can most of the adults I know. There's a narrow range of individuals whom, at school, I consider technically savvy. These are roughly the thirty to fifty year-olds that have owned a computer for much of their adult lives. There are, of course, exceptions amongst the staff and students. There are always one or two kids in every cohort that have already picked up programming or web development or can strip a computer down to the bare bones, replace a motherboard, and reinstall an operating system. There are usually a couple of tech-savvy teachers outside the age range I've stated, often from the Maths and Science departments who are only ever defeated by their school laptops because they don't have administrator privileges, but these individuals are rare.</p>
<p>I suppose before I go on I should really define what I believe 'can't use a computer' means. Being a network manager as well as a teacher means I am often the first port of call when a teacher or student is having issues with computers and associated devices. As my lead technician likes to state, <em>'the problem is usually the interface between the chair and the keyboard.'</em> Here are a few examples of <em>issues</em> I encounter on a fairly regular basis.</p>
<p><em>A sixth-former brings me his laptop, explaining that it is running very slowly and keeps shutting down. The laptop is literally screaming, the processor fans running at full whack and the case is uncomfortably hot to touch. I run Task Manager to see that the CPU is running at 100% despite the only application open being uTorrent (which incidentally had about 200 torrent files actively seeding). I look at what processes are running and there are a lot of them, hogging the CPU and RAM. What's more I can't terminate a single one. 'What anti-virus are you using?' I ask, only to be told that he didn't like using anti-virus because he'd heard it slowed his computer down. I hand back the laptop and tell him that it's infected. He asks what he needs to do, and I suggest he reinstalls Windows. He looks at me blankly. He can't use a computer.</em></p>
<p><em>A kid puts her hand up in my lesson. 'My computer won't switch on,' she says, with the air of desperation that implies she's tried every conceivable way of making the thing work. I reach forward and switch on the monitor, and the screen flickers to life, displaying the Windows login screen. She can't use a computer.</em></p>
<p><em>A teacher brings me her school laptop. 'Bloody thing won't connect to the internet.' she says angrily, as if it were my fault. 'I had tonnes of work to do last night, but I couldn't get on-line at all. My husband even tried and he couldn't figure it out and he's excellent with computers.' I take the offending laptop from out of her hands, toggle the wireless switch that resides on the side, and hand it back to her. Neither her nor her husband can use computers.</em></p>
<p><em>A kid knocks on my office door, complaining that he can't login. 'Have you forgotten your password?' I ask, but he insists he hasn't. 'What was the error message?' I ask, and he shrugs his shoulders. I follow him to the IT suite. I watch him type in his user-name and password. A message box opens up, but the kid clicks OK so quickly that I don't have time to read the message. He repeats this process three times, as if the computer will suddenly change its mind and allow him access to the network. On his third attempt I manage to get a glimpse of the message. I reach behind his computer and plug in the Ethernet cable. He can't use a computer.</em></p>
<p><em>A teacher brings me her brand new iPhone, the previous one having been destroyed. She's lost all her contacts and is very upset. I ask if she'd plugged her old iPhone into her computer at any time, but she can't remember. I ask her to bring in her laptop and iPhone. When she brings them in the next day I restore her phone from the backup that resides on her laptop. She has her contacts back, and her photos as well. She's happy. She can't use a computer.</em></p>
<p><em>A teacher phones my office, complaining that his laptop has "no internet". I take a walk down to his classroom. He tells me that the internet was there yesterday, but today it's gone. His desktop is a solid wall of randomly placed Microsoft office icons. I quickly try and explain that the desktop is not a good place to store files as they're not backed up on the server, but he doesn't care; he just wants the internet back. I open the start menu and click on Internet Explorer, and it flashes to life with his homepage displayed. He explains that the Internet used to be on his desktop, but isn't any more. I close I.E. and scour the desktop, eventually finding the little blue 'e' buried amongst some PowerPoint and Excel icons. I point to it. He points to a different location on the screen, informing me of where it used to be. I drag the icon back to it's original location. He's happy. He can't use a computer.</em></p>
<p><em>A kid puts his hand up. He tells me he's got a virus on his computer. I look at his screen. Displayed in his web-browser is what appears to be an XP dialogue box warning that his computer is infected and offering free malware scanning and removal tools. He's on a Windows 7 machine. I close the offending tab. He can't use a computer.</em></p>
<p>Not really knowing how to use a computer is deemed acceptable if you're twenty-five or over. It's something that some people are even perversely proud of, but the prevailing wisdom is that <em>all</em> under eighteens are technical wizards, and this is simply not true. They can use some software, particularly web-apps. They know how to use Facebook and Twitter. They can use YouTube and Pinterest. They even know how to use Word and PowerPoint and Excel. Ask them to reinstall an operating system and they're lost. Ask them to upgrade their hard-drive or their RAM and they break out in a cold sweat. Ask them what https means and why it is important and they'll look at you as if you're speaking Klingon.</p>
<p>They click 'OK' in dialogue boxes without reading the message. They choose passwords like qwerty1234. They shut-down by holding in the power button until the monitor goes black. They'll leave themselves logged in on a computer and walk out of the room. If a program is unresponsive, they'll click the same button repeatedly until it crashes altogether. </p>
<p>How the hell did we get to this situation? How can a generation with access to so much technology, not know how to use it?</p>
<h3>Parents</h3>
<p>I've messed up, as I'm sure many of you have. When we purchased an XBox it was <em>Techno-Dad to the rescue</em>. I happily played about with the mess of cables and then created profiles for everyone. When my son's MacBook was infected with the FlashBack virus <em>Techno-Dad to the rescue</em>. I looked up some on-line guides and then hammered away in the terminal until I had eradicated that bad-boy. When we purchased a 'Family Raspberry Pi' <em>Techno-Dad to the rescue</em>. I hooked it all up, flashed an OS to the SD-card and then sat back proudly, wondering why nobody other than me wanted to use the blasted thing. All through their lives, I've done it for them. Set-up new hardware, installed new software and acted as in-house technician whenever things went wrong. As a result, I have a family of digital illiterates.</p>
<h3>Schools</h3>
<p>When it became apparent that computers were going to be important, the UK Government recognised that ICT should probably become part of the core curriculum in schools. Being a bunch of IT illiterates themselves, the politicians and advisers turned to industry to ask what should be included in the new curriculum. At the time, there was only <em>one</em> industry and it was the Microsoft monopoly. <code><sarcasm></code>Microsoft thought long and hard about what should be included in the curriculum and after careful deliberation they advised that students should really learn how to use office software<code></sarcasm></code>. And so the curriculum was born. <code><sarcasm></code>Schools naturally searched long and hard for appropriate office software to teach with, and after much care they chose Microsoft Office<code></sarcasm></code>. So since 2000 schools have been teaching students Microsoft skills (Adobe skills were introduced a little later).</p>
<p>But the curriculum isn't the only area in which we've messed up. Our network infrastructures in UK schools is equally to blame. We've mirrored corporate networks, preventing kids and teachers access to system settings, the command line and requiring admin rights to do almost anything. They're sitting at a general purpose computer without the ability to do any general purpose computing. They have access to a few applications and that's all. The computers access the internet through proxy servers that aggressively filter anything less bland than Wikipedia, and most schools have additional filtering software on-top so that they can maintain a white-list of 'suitable sites'.</p>
<h3>Windows and OS X</h3>
<p>My first PC was an ESCOM P100 with Windows 3.1. My second was a Packard Bell with Windows 95. My third was a custom build with Windows XP. My fourth was an Acer laptop with Windows 7. I now use a MacBook Pro with OS X (or occasionally Ubuntu, depending on my mood and levels of paranoia). Windows 7 was a game changer for me. It was the first time I'd installed an OS and had literally nothing to configure. Even a PE teacher could have managed it.</p>
<p>Windows 7 (I hate 8, but that's another story) and Mac OS X are great operating systems. They're easy to use, require almost no configuration, include or provide easy access to all needed drivers, and generally 'just work'. It's fantastic that everyone from the smallest child to the eldest grandparent can now use a computer with absolute minimal technical literacy, but it's also a disaster. It didn't used to be like this. Using an OS used to be hard work. When things went wrong you had to dive in and get dirty to fix things. You learned about file systems and registry settings and drivers for your hardware. Not any more.</p>
<p>I should think the same thing will one day be said about the ability to drive. There will still be the auto-mobile geeks out there that'll build kit cars and spend days down the track honing their driving skills, while the rest of us sit back and relax as Google ferries us to and from work in closeted little bubbles.</p>
<h3>Mobile.</h3>
<p>Mobile has killed technical competence. We now all carry around computers that pretend to be mobile phones or tablets. Most people don't even think of their phone as a computer. It's a device to get quick and easy access to Google. It's a device that allows us to take photos and post them to Facebook. It's a device that allows us to play games and post our scores to Twitter. It's a device that locks away the file system (or hides it from us). It's a device that only allows installation of sanitised apps through a regulated app store. It's a device whose hardware can't be upgraded or replaced and will be obsolete in a year or two. It's a device that's as much a general purpose computer as the Fisher Price toy I had when I was three.</p>
<p><img alt="My first mobile phone" src="http://modculture.typepad.com/photos/uncategorized/2007/11/12/chatter.jpg"></p>
<p>So this is the state of the world. Let's make up some statistics to illustrate my point. If 20 years ago 5% of us had a computer in our homes, then you could pretty much guarantee that 95% of those computer owners were technically literate. Today, let's assume that 95% of us have a computer in our homes, then I would guess that around 5% of owners are technically literate.</p>
<p>This is scary and I'm sure the real statistics would be scarier still. It's something we should all be worried about.</p>
<h3>Why?</h3>
<p>Technology affects our lives more than ever before. Our computers give us access to the food we eat and the clothes we wear. Our computers enable us to work, socialise and entertain ourselves. Our computers give us access to our utilities, our banks and our politics. Our computers allow criminals to interact with us, stealing our data, our money, our identities. Our computers are now used by our governments, monitoring our communications, our behaviours, our secrets. <a href="http://boingboing.net/2012/01/10/lockdown.html">Cory Doctorow</a> put it much better than I can when he said:</p>
<blockquote>
<p>There are no airplanes, only computers that fly. There are no cars, only computers we sit in. There are no hearing aids, only computers we put in our ears.</p>
</blockquote>
<p>The Summer of Surveillance has me worried.
<center><iframe width="420" height="315" src="//www.youtube.com/embed/MxSxDkzXqho#t=55s" frameborder="0" allowfullscreen></iframe></center>
After <a href="http://en.wikipedia.org/wiki/PRISM_%28surveillance_program%29">Snowden's</a> revelations first came out, I went into school on Monday to find that most of my colleagues and students had either not heard about the scandal, or if they had just didn't care. While I was busy <a href="http://coding2learn.org/blog/2013/06/08/its-our-own-fault-dot-dot-dot-deal-with-it/">deleting my on-line accounts</a> and locking down my machines, my friends called me paranoid and made jokes about tinfoil hats. My family shrugged their shoulders in that <em>'Meh'</em> way, and mumbled the often quoted 'Nothing to hide, nothing to fear.' Then, out of the blue, Cameron announces that ISPs are going to start filtering The Internet. It's described as a 'porn filter', but the <a href="https://www.openrightsgroup.org/blog/2013/sleepwalking-into-censorship">Open Rights Group's</a> investigations implies that far more than porn will be filtered by default. Then to top it all, Cameron's chief advisor on this issue has her <a href="http://order-order.com/2013/07/23/claire-perrys-website-hacked-by-porn-prankers/">website hacked</a> and displays just how <a href="http://www.bbc.co.uk/news/technology-23437473">technically illiterate</a> she really is.</p>
<p>Tomorrow's politicians, civil servants, police officers, teachers, journalists and CEOs are being created today. These people don't know how to use computers, yet they are going to be creating laws regarding computers, enforcing laws regarding computers, educating the youth about computers, reporting in the media about computers and lobbying politicians about computers. Do you thinks this is an acceptable state of affairs? I have David Cameron telling me that internet filtering is a good thing. I have William Hague telling me that I have nothing to fear from GCHQ. I have one question for these policy makers:</p>
<blockquote>
<p>Without reference to Wikipedia, can you tell me what the difference is between The Internet, The World Wide Web, a web-browser and a search engine?</p>
</blockquote>
<p>If you can't, then you have no right to be making decisions that affect my use of these technologies. Try it out. Do your friends know the difference? <em>Do you?</em></p>
<h2>Fixing it all</h2>
<h3>Parents</h3>
<p>Stop fixing things for your kids. You spend hours of your time potty-training them when they're in their infancy, because being able to use the toilet is pretty much an essential skill in modern society. You need to do the same with technology. Buy them a computer by all means, but if it goes wrong, get them to fix it. Buy them a smartphone, give them £10 of app store credit a year and let them learn why in-app-purchases are a bad idea. When we teach kids to ride a bike, at some point we have to take the training wheels off. Here's an idea. When they hit eleven, give them a plaintext file with ten-thousand WPA2 keys and tell them that the real one is in there somewhere. See how quickly they discover Python or Bash then.</p>
<h3>Schools</h3>
<p>In the UK we're moving some way towards fixing this issue. Gove and I have a love-hate relationship, but I genuinely like what he is doing to the Computer Science curriculum. We just need to make sure that Academy Heads stick to Computer Science, and don't use curriculum reform as a means to save some money by scrapping the subject all together.</p>
<p>We could do more though. We should be teaching kids not to install malware, rather than locking down machines so that it's physically impossible. We should be teaching kids to stay safe on-line rather than filtering their internet. Google and Facebook give kids money if they manage to find and exploit security vulnerabilities in their systems. In schools we exclude kids for attempting to hack our systems. Is that right?</p>
<h3>Windows and OSX</h3>
<p><strong>USE LINUX</strong>. Okay, so it's not always practical, but most Linux distros really get you to learn how to use a computer. Everyone should at least have a play around at some point in their lives. If you're not going to use Linux then if you're on OS X have a play around in the terminal. It really is fun and you get to feel like a hacker, as does the Command Line or PowerShell in Windows.</p>
<h3>Mobile</h3>
<p>This one's tricky. iOS is a lost cause, unless you jail-break, and Android isn't much better. I use Ubuntu-Touch, and it has possibilities. At least you feel like the mobile phone is yours. Okay, so I can't use 3G, it crashes when I try to make phone calls and the device runs so hot that when in my jacket pocket it seconds as an excellent nipple-warmer, but I can see the potential.</p>
<h2>Conclusion</h2>
<p>This has happened before. It is not a new phenomenon. A hundred years ago, if you were lucky enough to own a car then you probably knew how to fix it. People could at least change the oil, change the tyres, or even give the engine a tune-up. I've owned a car for most of my adult life and they're a mystery to me. As such I am dependent on salesmen to tell me which one to buy, mechanics to tell me what's wrong and then fix it for me and as technology progresses I am becoming dependent on satellite navigation as well. I doubt my five year-old son will even need to learn to drive. It'll be done for him by his car. When he needs to get it fixed he'll be directed to the mechanic that pays the most for on-line advertising. When he wants to stop for a bite to eat he'll be directed to the fast-food outlet that pays the most for on-line advertising. When he needs to recharge his dilithium crystals he'll be directed to the filing station that pays the most for on-line advertising.</p>
<p>I want the people who will help shape our society in the future to understand the technology that will help shape our society in the future. If this is going to happen, then we need to reverse the trend that is seeing digital illiteracy exponentially increase. We need to act together, as parents, as teachers, as policy makers. Let's build a generation of hackers. Who's with me?</p>
<p><em>Edit: I've corrected a few errors that have been pointed out to me. This in no way invalidates the comments I've received on my poor use of the English language.</em></p>
<p><em>Edit: There are (now dead) discussions on <a href="https://news.ycombinator.com/item?id=6186730">Hacker News</a> and <a href="http://www.reddit.com/r/technology/comments/1k1ezs/kids_cant_use_computers_and_this_is_why_it_should/">Reddit</a></em></p>GitHub for Teachers2013-07-12T20:13:00+01:002013-07-12T20:13:00+01:00Marc Scotttag:coding2learn.org,2013-07-12:/blog/2013/07/12/github-for-teachers/<h2>Why use GitHub?</h2>
<p>I'm not sure how you share resources within your departments, but I should imagine it is much the same way as resources are shared in my school. The creator of the resource uploads them to a shared area on the school server and then informs everyone where …</p><h2>Why use GitHub?</h2>
<p>I'm not sure how you share resources within your departments, but I should imagine it is much the same way as resources are shared in my school. The creator of the resource uploads them to a shared area on the school server and then informs everyone where they are (probably by email).</p>
<p>Of course teachers want to look at the resources at home and so download copies of the resources and store them locally on their laptops.</p>
<p>If I, as the resource author, update the original files to improve them or correct errors then I change them locally, delete the shared resource and then re-upload the resource. I then notify everyone by email that the resource has been updated. They delete their local copies and then download the original version.</p>
<p>Of course the teachers in my department might also want to make alterations. They change a file locally and then upload it to the shared area with a different file name. They notify me by email of the update, I review their updated file, approve of it, delete the original from the server and my local copy and re-download the resource.</p>
<p>Not only is this inefficient, but how often do we lose changes? How often do we see files called copy_of_copy_of_copy_of_worksheet1.doc? There must be a better way...</p>
<h2>What is GitHub?</h2>
<p>To answer that I'm first going to have to tell you about Git. Git is a tool that assists with version control and is used by programmers. Basically it allows you to have a bunch of files and go back and look at previous states of those files from an earlier time, or to clone those files into a new branch and work on improvements.</p>
<p>GitHub is an on-line workspace that works with Git. It's that simple. But it can be used for so much more than simple version control. GitHub can be <em>the</em> place for you to share your resources with the world.</p>
<h2>How can I use GitHub?</h2>
<p>You can use GitHub to share your resources with other teachers. They'll be able to easily download your work, or transfer it to their own workspace. What's more, they can make improvements and ask you to merge their improvements back into your work. It's a win/win situation.</p>
<h2>How do I use GitHub?</h2>
<p>Just follow this simple guide and you'll be harnessing the power of GitHub in a few minutes.</p>
<h3>Create an account</h3>
<ol>
<li>Goto www.github.com</li>
<li>Sign Up</li>
</ol>
<p><img alt="GitHub signup" src="http://coding2learn.org/images/github/Signup.png"></p>
<h3>Create a repository</h3>
<p>Your a teacher, not a hacker, so there's really no need to start messing around with command line Git. You're going to be using it though the website to start with and then an installable desktop app later on.
First thing to do is create a repository.</p>
<ol>
<li>Click on the <code>Create a new repo</code> button<br>
<img alt="Sign Up" src="http://coding2learn.org/images/github/New_Repo.png"> </li>
<li>Give your repository a sensible name and a description. I teach Systems & Control as well as Computing, so I'll make a resource on the exciting world of resistors.
<img alt="New Repo" src="http://coding2learn.org/images/github/Name_repo.png"> </li>
<li>Don't forget to check the "initialize with a Readme" check box </li>
</ol>
<h3>The README file</h3>
<p>We've all seen README files before. They're normally used to give the user the required information to get started with a bit of software. On GitHub, the README is where you can explain what your resource is and how to use it.
The README file will be the only file in your repo to begin with. Here's the tricky part - to edit the README you're going to have to know a little Markdown.</p>
<ol>
<li>Click on the README.md file in the repo.
<img alt="README" src="http://coding2learn.org/images/github/README.png"> </li>
<li>Then click on the Edit button<br>
<img alt="Edit README" src="http://coding2learn.org/images/github/Edit_README.png"> </li>
<li>You're going to be presented with an editor that you can write in. Go ahead and delete all the text that's in there. Then prepare to feel 1337...<br>
<img alt="Markup" src="http://coding2learn.org/images/github/Markup.png"> </li>
<li>README files are written in Markdown. It's an easy way of generating HTML. This entire blog post is written in Markdown. You can get a full description of Markdown <a href="http://daringfireball.net/projects/markdown/syntax">here</a> but we want to get started quickly so bookmark the page and put "Learning Markdown" on your to-do list.</li>
</ol>
<h3>Markdown</h3>
<p>Okay, here goes. Try copying and pasting the following into the Editor and then hitting the preview button.</p>
<div class="highlight"><pre><span></span># RESISTORS WTF!!!
## By An Author
### A converted academy resource
[Resistors](http://en.wikipedia.org/wiki/Resistor) are so exciting I can barely contain myself.
![Resistors](http://upload.wikimedia.org/wikipedia/commons/e/e6/Resistor.jpg)
> WOW Resistors are great
1. They resist.
2. They have colours bands.
3. They are small
**Here are some codes**
|Colour|Multiplier|
|------|----------|
|Black |0 |
|Brown |1 |
|Red |2 |
|Orange|3 |
</pre></div>
<ol>
<li>Use this as a template or use the <a href="http://daringfireball.net/projects/markdown/syntax">Daring Fireball</a> link to create your own README file.</li>
<li>Once you're done click the "Commit Changes" button (Commit is not the same as Save. Your changes are saved, but the old version is still there for you to go back to if you want.)<br>
<img alt="Commit" src="http://coding2learn.org/images/github/Commit.png"> </li>
<li>Go back to your repo home page by clicking on the repo name at the top of the page.<br>
<img alt="Back to repo" src="http://coding2learn.org/images/github/Back_to_README.png"> </li>
<li>You should see your README proudly displayed.</li>
</ol>
<h2>Installing a GitHub app</h2>
<p>We now need a way to interact with GitHub from our computers. I'll assume you're on a Windows machine, but the process is almost identicle for Mac users. If you're on Linux then I'm not going to patronise you as you're probably already comfortable in the terminal and you can go ahead and Google how to use Git.</p>
<ol>
<li>Goto <a href="http://windows.github.com">the Windows download page</a> or <a href="http://mac.github.com">the Mac download page</a>.<br>
<img alt="Download Git" src="http://coding2learn.org/images/github/Download_Git.png"> </li>
<li>Download the client and install and accept all the usual Terms & Conditions and allow the installation of dependencies like .NET. </li>
</ol>
<blockquote>
<p>(a note to Network Managers - if a teacher has directed you to this page after asking for permission to install this program then please don't be a dick. Seriously, are you that much of an IT-Nazi that you can't allow them to have this on your network? Millions of developers far more experienced than you use GitHub, so grow up and do the teachers in your school a favour.)</p>
</blockquote>
<h2>Loging in</h2>
<ol>
<li>Once opened you should see a screen like this.<br>
<img alt="Login" src="http://coding2learn.org/images/github/app_login.png"> </li>
<li>Enter your GitHub login details.</li>
<li>I encountered a hitch here, as I didn't enter my email address. This is essential. If you're not given the option then goto <code>tools</code> and<br>
<img alt="Optons" src="http://coding2learn.org/images/github/Options.png"><br>
enter your email address.<br>
<img alt="Email" src="http://coding2learn.org/images/github/add_email.png"> </li>
<li>
<p>Back at the main screen you should see your available repos to clone.
<img alt="Clone" src="http://coding2learn.org/images/github/repo_choose.png">
click the clone button.</p>
</li>
<li>
<p>Now open up your Documents and you should see a new folder called GitHub, in there will be your cloned repo.<br>
<img alt="Cloned" src="http://coding2learn.org/images/github/Cloned_directory.png"> </p>
</li>
<li>Well done, you now have a local copy of your GitHub repository.</li>
</ol>
<h2>Adding and altering files.</h2>
<ol>
<li>Let's add a new document to the repository.</li>
<li>Create a Word (or any other document) file. Throw in an appropriate question and save it to the newly created directory in your Documents.<br>
<img alt="File added" src="http://coding2learn.org/images/github/added_file.png"> </li>
<li>In the GitHub app, when you go back and look at your repo you should see a big yellow box telling you that you have uncommitted changes.<br>
<img alt="Uncommited" src="http://coding2learn.org/images/github/added_worksheet.png"> </li>
<li>Add a message detailing your changes and click <code>COMMIT</code> </li>
<li>You should now be able to see the details of the changes.<br>
<img alt="Commited" src="http://coding2learn.org/images/github/Commited_changes.png"> </li>
<li>Click the <code>sync</code> button at the top of the screen and the changes will be pushed to your repo on GitHub.com.</li>
</ol>
<h2>How to use GitHub with your team.</h2>
<p>The great thing about GitHub is that your team can now, all, use the resource you've created and it will always be up-to-date. All they need to do is create their own GitHub accounts and then <code>Fork</code> your repo. This will create a copy of your repo in their workspace. It's all incredibly easy to do.</p>
<ol>
<li>Provide them with the URL for your GitHub repo. It'll be something like <a href="https://github.com/MarcScott/resistor_colour_codes">https://github.com/MarcScott/resistor_colour_codes</a>. </li>
<li>All they need to do (once they have an account setup) is to goto the URL and click the <code>Fork</code> button.<br>
<img alt="Fork Repo" src="http://coding2learn.org/images/github/fork_repo.png"> </li>
<li>They now have a fork of your repo. If they to have the GitHub app installed, then they can clone the repo onto their own machines.<br>
<img alt="Clone repo" src="http://coding2learn.org/images/github/clone_fork.png"> </li>
<li>Anytime you make changes to the files in your repo, they will be able to see that alterations, additions and deletions have been made. All they need do is sync their fork of the repo and they'll have the changes on their local machines. But that's not all...</li>
</ol>
<h2>Pull requests</h2>
<p>Here's the truly most useful aspect of GitHub - Pull requests. When a colleague of yours makes changes to a repo that you have control over, they can submit a Pull request. You then pull their changes into your repo and merge. This is an excellent method of collaboration and ensures everyone has an up-to-date repo.<br>
1. Your colleague makes an alteration to one of your files (or adds/deletes a file).<br>
2. In their GitHub app they can then Commit the changes.<br>
<img alt="Commit" src="http://coding2learn.org/images/github/added_question.png"><br>
3. Let's switch back to the website now. Your colleague can go on-line and on the right hand side of their screen they can click on the <code>Pull Requests</code> option.<br>
<img alt="Pull Requests" src="http://coding2learn.org/images/github/pull_request.png"><br>
4. They then click the <code>New pull request</code> button, confirm it and write a message detailing their change.<br>
<img alt="New pull" src="http://coding2learn.org/images/github/new_pull_request.png"><br>
<img alt="New pull confirm" src="http://coding2learn.org/images/github/new_pull_request_2.png"><br>
<img alt="New pull message" src="http://coding2learn.org/images/github/new_pull_request_3.png"><br>
5. You should receive an email with the Pull request and it will also be visible on the website.<br>
<img alt="Received Pull" src="http://coding2learn.org/images/github/received_pull.png"><br>
6. You can then merge the pull with your repo and just like that you (and all others) have a repo with the updated files.
<img alt="Merge Pull" src="http://coding2learn.org/images/github/merge_pull.png"> </p>
<p>Well that's it and I've barely scratched the surface of all Git can do. I've talked nothing of version control or multiple branches, not to mention using GitHub.io to host your own static website. All these and much, much more can be found by on-line searches. Please comment below if I've made any mistakes or you think there's a better way.</p>The One App To Rule Them All2013-07-09T11:55:00+01:002013-07-09T11:55:00+01:00Marc Scotttag:coding2learn.org,2013-07-09:/blog/2013/07/09/the-one-app-to-rule-them-all/<blockquote>
<p>New app - AutoBotClassRoomManager will revolutionise the way you teach forever.</p>
<p>Why your students must use KnowledgeHeroine and use it now.</p>
<p>1,000,000,000 ways to use PinBook in your classroom.</p>
</blockquote>
<p>These are typical of the tweets that pop into my twitter feed on an almost hourly basis. I'm a …</p><blockquote>
<p>New app - AutoBotClassRoomManager will revolutionise the way you teach forever.</p>
<p>Why your students must use KnowledgeHeroine and use it now.</p>
<p>1,000,000,000 ways to use PinBook in your classroom.</p>
</blockquote>
<p>These are typical of the tweets that pop into my twitter feed on an almost hourly basis. I'm a Computer Science teacher, so naturally I follow a fair number of educators and the #edtech tag.</p>
<p>It's typically some new app that is going to make my life as a teacher so easy that I'll barely need to sober up and get out of bed to ensure 100% A*-A passes. Or perhaps it's an app that is so powerful that by virtue of simply installing it on their phones, my students are guaranteed first class degrees from Oxford. Or, of course, it's new ways of using existing products and services in a revolutionary way, that is so effective it's like injecting knowledge straight through their eyeballs.</p>
<p>Well I'd like to talk about an app that is quite possibly the most powerful piece of software out there. An app that will allow you to harness the raw power of your computer and do things you would never have dreamed possible. An app, next to which, all others pales into insignificance.</p>
<p>The app is Notepad, or TextEdit or Gedit, depending on your OS. That's right, the pre-installed text editor that comes with every desktop computer. Why am I talking about text editors? Well with a text editor I can write an essay, keep a to-do list, store an address book, fashion a blog post or build a web page. If I'm feeling particularly confident then I can use it to write a script to switch my proxy settings, create my own RSS reader or build SkyNet and instigate thermonuclear war.</p>
<p>Text editors are amazing apps but they seem to be mostly ignored by the vast majority of educators and students. Of course, there are text editors and then there are text editors. Personally I use Sublime Text. Others might prefer Notepad++ or TextMate. The truly hardcore hackers will rarely leave Vim or Emacs, and the minimalists out there will stick to Nano.</p>
<p>Despite the many advantages of using more advance text editors (although I've heard Emacs described as an excellent operating system that lacks only a good text editor), I would argue that you're always best starting your students with the default editor for your OS. Kid's these days have been brought up in an app-centric world. As far as they're concerned Word is for essays, PowerPoint is for presentations, and Internet Explorer IS the Internet. If you start to teach your kids how to write Python code in Sublime Text, then they'll jump to the conclusion that you need Sublime Text for coding. We need to get away from the idea that when your faced with a problem, you find an app to solve it.</p>
<p>When I teach HTML to my year 7 students, we start in Notepad. Notice that I said I'm teaching them HTML. I don't want to teach them how to use Dreamweaver to build web pages. We build our first web pages with headings, links, images and some embedded video in Notepad. Once I'm sure they have it nailed then I might be generous and show them Dreamweaver, where they'll discover the joys of syntax highlighting and auto-completion, but not before they understand the basics.</p>
<p>When I introduce kids to Python I again use Notepad. They need to learn that file extensions are important and that there's a world of difference between .txt, .html and .py. Once they've negotiated variables, conditionals and a few basic loops, I'll let them progress to IDLE so that again they can benefit from some basic syntax highlighting and of course the all important interpreter.</p>
<p>But it's not just HTML and coding that I encourage students to use Notepad for. If they need to write up some work, then I'd prefer them to knock something together in Notepad than use Word. Don't get me wrong, Word is a fantastic software package. If I need to do a mail merge then Word's what I'll use. If I need a document with embedded spreadsheet charts and graphs, then Word is an excellent choice. But I rarely need to do anything more complex than knock up a blog post, a quick lesson plan or the minutes of yesterday's department meeting.</p>
<p>Using a text editor is not only a case of using the right tool for the right job. It also avoids distractions. In the old days I would set the kids a task and then watch them spend the next twenty minutes choosing the most hideous font they could find, ensuring that every heading was displayed in a different and garish colour, and that their document was surrounded with a border of fucking apples. With a text editor you forgo all that crap. They write text, and content is King. If they want a bit of prettiness then I show them Markdown. It's easy to use and the web based parser is great.</p>
<p>There are a few other nice little uses that I've used Notepad for. I like my students to keep a learning journal, where they write what they've achieved in a lesson and a personal objective for next lesson. Notepad lends itself perfectly to keeping diaries. All they need to do is add .LOG to the beginning of their text files and every new addition is date-stamped automatically. Presentations? Not a problem. Once they've got to grips with HTML then using Deck.js or Reveal.js is a breeze. All they need to do is open up the html file and beautiful presentations are a few keystrokes away.</p>
<p>Text editors are great and we should be encouraging our students to use them more. So do me a favour; next time you're considering trying out that fantastic app you've seen promoted on Twitter, or planning on using some social network in a new and fantastic way, pause for a second. Have a little think. Can you achieve the same end result by using the humble text editor?</p>Precrime2013-06-29T11:04:00+01:002013-06-29T11:04:00+01:00Marc Scotttag:coding2learn.org,2013-06-29:/blog/2013/06/29/precrime/<p>I'm not the first blogger to highlight the similarities between the Snowden revelations and Philip K. Dick's excellent short story - <a href="http://readanybooks.net/ScienceFiction/The_Minority_Report/">The Minority Report</a>. I'll brush over the fact that most commentators seem to have forgotten, or be unaware, that the concept of Precrime did not first appear in the inferior …</p><p>I'm not the first blogger to highlight the similarities between the Snowden revelations and Philip K. Dick's excellent short story - <a href="http://readanybooks.net/ScienceFiction/The_Minority_Report/">The Minority Report</a>. I'll brush over the fact that most commentators seem to have forgotten, or be unaware, that the concept of Precrime did not first appear in the inferior adaptation of the short-story, staring a certain Scientologist, and push on with my point. (By the way, if you haven't read the Minority Report, stop reading this now and go and read something written by someone with talent and vision. Then go and read all his other stories that were so stunningly ruined by Hollywood, including Screamers, We can remember it for you wholesale, Paycheck and The Adjustment Team. (Do Androids dream of electric sheep? and A Scanner Darkly were well made adaptations but still worth reading.))</p>
<p>The concept put forward in The Minority Report, was that three mutant humans with powers of precognition, are able to view events up to about two-weeks into the future. They babble relentlessly in an unintelligible way about what they can see and the data is hoovered up by computers for processing. The computers are then able to produce punch-cards showing when, where and by whom a crime will be committed. The would-be perpetrators are arrested and imprisoned before they are able to commit the crime. The entire system is called Precrime.</p>
<p>The parallels with the current events surrounding NSA/GCHQ data gathering and Precrime are fairly obvious and so I'll gloss over them by stating that it is potentially possible for an agency to examine the data from your phone calls, texts, browsing habits and social network interactions, and then profile you. This profile could match with that of known criminals and hence provide an agency with motivation to investigate you more thoroughly. Perhaps it would be enough for them to judge you a sufficient risk to society that you could be rendered and imprisoned without trial.</p>
<p>What most people seem to fail to understand was that Dick did not espouse the opinion that Precrime itself was a dangerous issue. The short story, if anything, judges Precrime to be an important step forward for mankind and the protagonist in the story sacrifices himself in order to preserve its sanctity. The twist in the story was not that Precrime is fundamentally flawed, but that under certain rare and unique circumstances Precrime can fail to make accurate predictions. Those circumstances are when feedback occurs.</p>
<p>Feedback in The Minority Report occurs because the protagonist is able to see the predictions made by the Precogs and hence alter his own future. In the story, this is in turn foreseen by one of the Precogs who makes a differing prediction of the future, which the protagonist also becomes aware of. This leads the third Precog to make a further prediction, which turns out to be the correct one.</p>
<p>In the story the ability to feedback into the system is unique to the protagonist. He is the only one who can see the predictions made by the Precogs and therefore create the paradoxes. In our digital world however, feedback is integral to the data gathering systems and this is why the very concept of profiling people based upon their digital signatures is so dangerous.</p>
<p>I buy a book on Amazon. I like the book. I give it a five-star rating. Amazon's algorithms are able to make predictions on what other books I might like. A second book is recommended to me, which I buy, like and rate. The process continues. This system relies on feedback and can lead to me buying and rating books on subjects from an increasingly niche area of literature. I start by reading a Victorian History, then a biography of a Victorian gentleman, then a biography of a Victorian policeman, then a biography of Jack the Ripper, and all of a sudden I'm in serial killer territory. I'm being recommended books about and by serial killers despite the fact that I might never initially have shown any interest. All of a sudden I'm caught in a feedback loop. If anyone was to look at my reading habits they might leap to assumptions regarding my obsession with violent sociopaths.</p>
<p>I receive a re-tweeted comment from a person I follow on Twitter, regarding a miscarriage of justice. I follow the OP. Twitter algorithms suggests others I might like to follow. I start to follow others who tweet about social injustice and heavy-handed state actions. Before I know it I could be following some of the most politically extreme activists out there and all of a sudden I'm pigeon-holed with them.</p>
<p>I've read the word radicalisation so much in the press now that I'm sure to many it ceases to have any real meaning. My worry is that radicalisation can occur fairly easily in an internet age where there is so much information available, it is impossible for a human to choose what they will read, watch or listen to next. When we walk into a newsagents and purchase a paper we might browse the dozen or so headlines on the front page and then make out decision as to which paper to buy. When we browse for material on the internet the sheer volume of data makes this impossible. Instead we rely on social networks to advise us through friends or advertisements or recommendations. We rely on news aggregators and forums that lend themselves to community bias. We are no longer making free choices as to what we might want to see. Instead, hidden algorithms make those choices for us. These algorithms are fallible and I am sure they can lead to radicalisation.</p>
<p>I'll use myself as an example. Two-years ago I would have been in the 'If you've nothing to hide you've got nothing to fear' camp. The Snowden revelations wouldn't have bothered me in the slightest. Since then my reading browsing habits have changed. I read Hacker News daily, I follow the <a href="https://twitter.com/EFF_">@EFF</a> and Pirate Party founder <a href="https://twitter.com/Falkvinge">@Falkvinge</a> on Twitter. My RSS feed contains nothing but technology and digital-freedom blogs. All of a sudden I'm blogging about <a href="http://marcscott.github.io/blog/2013/01/14/the-second-amendment-in-the-21st-century/">The Second Amendment in the 21st Century</a> and how <a href="http://marcscott.github.io/blog/2013/06/08/its-our-own-fault-dot-dot-dot-deal-with-it/">I've quit the cloud</a>. It's difficult to know whether I care about this because of what I've read on the internet or that I read about this stuff on the internet because I care.</p>
<p>If there is one message that I take from The Minority Report it's not that gathering data on individuals is unethical. It's that in a world where feedback is so integral to our systems, profiling people based upon their data is a fundamentally flawed concept.</p>The NSA hears a Who2013-06-24T11:11:00+01:002013-06-24T11:11:00+01:00Marc Scotttag:coding2learn.org,2013-06-24:/blog/2013/06/24/the-nsa-hears-a-who/<p>So young Snowden sat, his laptop on his knee,<br>
And wondered whether we'd ever be free.<br>
Siphoning data from all the four corners,<br>
and thinking that someone should finally warn us. </p>
<p>"Enough is enough" he suddenly thought,<br>
This data is private and cannot be sought.<br>
People trust Facebook and Google …</p><p>So young Snowden sat, his laptop on his knee,<br>
And wondered whether we'd ever be free.<br>
Siphoning data from all the four corners,<br>
and thinking that someone should finally warn us. </p>
<p>"Enough is enough" he suddenly thought,<br>
This data is private and cannot be sought.<br>
People trust Facebook and Google and Bing,<br>
This theft of our data's a terrible thing. </p>
<p>So with care and with stealth and with one simple click,<br>
He saved a few docs on a USB stick.<br>
Then not wishing to stay in the US for long,<br>
He boarded a plane and he fled to Hong Kong. </p>
<p>So what was it that the docs actually said?<br>
That caused such outrage when finally read?<br>
All was revealed as the docs were not sold;<br>
But given quite freely to Mister Greenwald. </p>
<p>There's a slideshow whose content is fairly apparent,<br>
Though the design is described as frankly abhorrent.<br>
It states there's a program that's weirdly named PRISM,<br>
The revealing of which has caused a huge schism. </p>
<p>The Spooks and the Feds, to name but a few,<br>
(Well okay, the Brits with their GCHQ)<br>
Have been hoovering up data without our consent,<br>
With complete disregard for the Fourth Amendment. </p>
<p>This data collection has spread like a cancer,<br>
With 'Terrorism' given as the only answer,<br>
And with each passing day there are more secrets spoken,<br>
Till we know that the trust in our leaders is broken. </p>
<p>Obama just sits in his big oval room,<br>
His statements on PRISM just seem out of tune.<br>
And over in Blighty there's William Hague<br>
Whose speeches in Whitehall are equally vague. </p>
<p>Yet Snowden continues to leak all his leaks,<br>
While politicos continue to speak all their speaks,<br>
And meanwhile the people who think it unjust,<br>
Can't help but believe that they've lost all their trust. </p>
<p>So Snowden is charged with, wait for it... spying,<br>
The irony lost on those authorising,<br>
The orders to have the poor man extradited.<br>
Though many feel that he ought to be knighted </p>
<p>And so Snowden flees to Moscow then where?<br>
To South of the border is probably fair.<br>
Not to Europe, SA or over to Oz,<br>
But that's strange don't you think? Simply because... </p>
<p>I remember when these countries held their heads high,<br>
And decreed to the world, in days long gone by,<br>
That China and Russia and Cuba were all,<br>
Countries where freedom meant nothing at all. </p>
<p>I remember the day that the Berlin wall fell,<br>
I remember Mandela and Orwell as well,<br>
I've read JFK and his peaceful intent,<br>
Heard speeches by Churchill and all that he meant. </p>
<p>And now as I sit, my laptop on my knee<br>
I shed a small tear for what may never be.<br>
For we've lost it all to those with the spies,<br>
And what can I do, but dry my moist eyes? </p>
<p>But wait just a minute, can nothing be done?<br>
Do we give up this battle before it is won?<br>
Is there something that every man, women and child,<br>
Could do to prevent the State from running wild? </p>
<p>Well you have the power come election day,<br>
It's your opportunity to have a say.<br>
Send a message to those that have all the powers,<br>
That FROM THIS DAY FORTH THE INTERNET'S OURS. </p>It's our own fault... Deal with it.2013-06-08T10:02:00+01:002013-06-08T10:02:00+01:00Marc Scotttag:coding2learn.org,2013-06-08:/blog/2013/06/08/its-our-own-fault-dot-dot-dot-deal-with-it/<p><em>TL:DR I delete every cloud service I belong to and take back control of my data.</em></p>
<p>I don't blame them. I just keep thinking about a future scene from the next bond film.</p>
<p><strong>M:</strong> So you see 007, we need to find out which of the millions of citizens …</p><p><em>TL:DR I delete every cloud service I belong to and take back control of my data.</em></p>
<p>I don't blame them. I just keep thinking about a future scene from the next bond film.</p>
<p><strong>M:</strong> So you see 007, we need to find out which of the millions of citizens of this county has stollen the 'Space Laser'.<br>
<strong>007:</strong> That might be tough M, but I'm sure with the aid of an invisible car, a watch that shoots poisonous darts and a couple of scantily clad female Russian agents, I'll be able to find the culprit.<br>
<strong>M:</strong> Yeah, that's one option, but we thought we'd just look on BookFace.<br>
<strong>007:</strong> What?<br>
<strong>M:</strong> BookFace, haven't you heard about it. You really are a dinosaur, 007. You see whereas a few years ago we had to run all kinds of covert undercover operations to find out what the residents of the country were doing, now we just need to look on BookFace.<br>
<strong>007:</strong> You mean they tell us their secrets? Idiots.<br>
<strong>M:</strong> I know. It seems that your average citizen is quite happy to share almost every facet of their lives; every iota of personal information; every thought, deed and desire, all in exchange for the ability to tell their friends and family that they've just had a poo, or show them a cute picture of a cat with a whimsical caption beneath it.<br>
<strong>007:</strong> So what your saying, M, is that you don't really need me anymore.<br>
<strong>M:</strong> Not really 007. I've just had Q access the BookFace servers and run a search for anyone who has updated their status along the lines of 'I've just stolen a gigantic Space Laser… lol #WMD' </p>
<p>I'm as guilty as everyone else out there. I talk to family on Facebook, friends on Google+ and colleagues on Twitter. I keep my documents in Dropbox, my notes in Evernote and my photos in Picassa. I keep my contacts in iCloud , my calendar in Gmail, my tasks on Wunderlist and I store my passwords in Lastpass. I even let Apple track my every movement in case I misplace my iPad, and Google track me when I need to know where the nearest McDonalds can be found.</p>
<p>I've signed up for a myriad of services, all of them apparently 'free', when in reality I've purchased the services with my personal data. I could be outraged that this data has been accessible (by whatever method) to the NSA in the States and to GCHQ in the UK, but I also have to ask myself who is truly at fault here? By giving these corporations (that are all subject to the laws of the countries they operate in) our data, we have presented too easy an opportunity to the security services. Like a sheet of virgin bubble rap, they just couldn't help themselves. They had to start popping those privacy bubbles.</p>
<p>Rather than get angry or upset, I've decided to take action. I'm going to try and quit them all. I'm going to wrestle back control of my data, and ditch the cloud. To some extent the cat is already out of the bag, probably with an odd expression on it's face and a whimsical caption floating beneath it. My data is already out there, but I can try and stop providing them with any more.</p>
<p>I'm not going to ween myself off. I'm going Big Bang style. This weekend I'm getting rid of all my online accounts.</p>
<ol>
<li>
<p>Facebook - Piece of piss. I've nothing of value stored on Facebook, so deleting my account was not an issue. And I do mean delete and not deactivate. I've made that mistake before and it's just too tempting to pop back on just to see who's had a poo lately or posted a picture of a kitten that looks like it's having a poo.</p>
</li>
<li>
<p>Dropbox - Not so easy. I've carefully nurtured 20Gb of free storage on Dropbox over the years and I'll be sad to see it go. Nevertheless, I've made the commitment to this so it has to be done. First thing to do is find an alternative. <a href="http://labs.bittorrent.com/experiments/sync.html">BitTorrent Sync</a> looks like it'll do the trick for now, so I've installed it on my Mac Book and Mac Mini and transferred all my files over into my newly created BTSync folder. I then logged into Dropbox on the web and deleted my account.</p>
</li>
</ol>
<p><img alt="Dropbox" src="http://coding2learn.org/images/OwnFault/Dropbox.png"></p>
<ol>
<li>
<p>Browser - I use Chrome, and I tend to be logged into my Google account while doing so. I install Firefox and send Chrome to the trash.</p>
</li>
<li>
<p>Search - No more Google search for me. This one is easy enough. I remove the default search tools from Firefox and install the curiously named <a href="https://duckduckgo.com/">Duck Duck Go</a> search tool. I also set my privacy settings so I'm always in Private Browsing mode and I don't accept cookies.</p>
</li>
<li>
<p>Browser Addons - Just to help to secure my privacy a little more, I've installed <a href="https://addons.mozilla.org/en-US/firefox/addon/adblock-plus/">AdBlock Plus</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/noscript/">NoScript</a>.</p>
</li>
<li>
<p>Internet - Know I'm no 1337 hacker but I'm pretty sure that if I want privacy online then I'm going to need to hide my IP address at times. I've played with Tor before, but I find it too slow. Additionally I've no use for the Silk Road as my drug of choice is sold in packs of four at supermarkets. Instead I've opted for a VPN. <a href="http://btguard.com/">BTGuard</a> seems like a fairly reputable provider so I pay up front for three months worth of VPNing and configure it on my Mac.</p>
</li>
<li>
<p>Microsoft - This one should be easy. I don't use Skype or Windows and my XBox account is separate. The only regret is that as an early adopter of Outlook.com, I'm going to lose some cool email addresses. The problem however, is that when I try and close my account it tells me that I have to cancel my paid services (I don't have any) and as there is nothing to cancel, I'm locked in a vicious circle. After a nice chat with a Microsoft 'Agent', I'm told they'll get back to me within 3 weeks to close my account.</p>
</li>
</ol>
<p><img alt="Microsoft" src="http://coding2learn.org/images/OwnFault/Microsoft.jpg"></p>
<ol>
<li>
<p>iCloud - This one's a fairly easy. First I need to transfer all my iWorks documents out of iCloud and into my BTSync folder. With that done I switch off iCloud syncing for my calendar, notes, contacts and just keep them all on my Mac.</p>
</li>
<li>
<p>LastPass - I've used this password manager for around a year, and I like it. However, in order to sync passwords across devices it stores them all in the cloud. <a href="https://agilebits.com/onepassword">1Password</a> seems like a sensible alternative, so I fork out my seventeen odd quid and install it. Transferring my passwords is a simple CSV export and import.</p>
</li>
</ol>
<p><img alt="Lastpass" src="http://coding2learn.org/images/OwnFault/LastPass1.jpg"></p>
<ol>
<li>Phone - This one is a tricky one. First off let's tackle my phone. It's a Nexus 4, which means it's pretty much reliant on Google services. Luckily, it's a Nexus device so there are alternatives. I'm opting for <a href="https://wiki.ubuntu.com/Touch/Install">Ubuntu Touch</a>. Now the OS is far from ready, but so long as I've got the ability to send and receive calls and SMS, and I can browse the web, I can wait for the OS to become more fully featured as the months progress and get rid of that fourteen tweets notification. Following the instructions on the Ubuntu website was simple enough as my device was already rooted. I had a small heart attack when it went into an infinite boot cycle, but a quick wipe and a manual install resolved the issues and I have a nice new phone to play with.</li>
</ol>
<p><img alt="Android" src="http://coding2learn.org/images/OwnFault/UbuntuTouch.jpg"></p>
<ol>
<li>Google - My main (non-work) email is my Gmail account, but I'm not overly bothered about this. I also use G+ for photos and keeping in touch with people. I decide the most sensible option is to do a Google Takeout and export all my data. My broadband isn't the best however and its taking hours to download the 20Gb of data I have sitting on Google's servers.</li>
</ol>
<p><img alt="Google" src="http://coding2learn.org/images/OwnFault/Takeout.png"></p>
<p>I have an email within the battle-school domain which will now be my only personal email address. I haven't told anyone about my change of email address but I've made sure all my accounts use the new one. If anyone needs to contact me they can call me (assuming my Ubuntu phone still works). I download GPG for Mac Mail and install it for a little extra security when I want it.</p>
<p>There's a little more tidying up to do. I delete my other accounts like Evernote and Wunderlist, resolving to use SublimeText for that kind of thing from now on.</p>
<p>So there we have it. I'm free. My data from now on is mine. There are a few more things for me to look into. I'd like to have access to a secure social network - possibly based on P2P technology with end-to-end encryption, but I'll save that for another day. I'm going to carry on using Twitter, as it's all fairly public anyway with no pretense of privacy.</p>Selling Computer Science2013-01-29T09:55:00+00:002013-01-29T09:55:00+00:00Marc Scotttag:coding2learn.org,2013-01-29:/blog/2013/01/29/selling-computer-science/<iframe src="http://player.vimeo.com/video/69947264" width="750" height="420" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><p><a href="http://vimeo.com/69947264">Selling Computer Science</a> from <a href="http://vimeo.com/user19426535">Marc Scott</a> on <a href="https://vimeo.com">Vimeo</a>.</p></p>
<p>The idea for this video came from Rebecca Franks over on the CAS forums. I've copied her original idea and just added my own flare.</p><iframe src="http://player.vimeo.com/video/69947264" width="750" height="420" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><p><a href="http://vimeo.com/69947264">Selling Computer Science</a> from <a href="http://vimeo.com/user19426535">Marc Scott</a> on <a href="https://vimeo.com">Vimeo</a>.</p></p>
<p>The idea for this video came from Rebecca Franks over on the CAS forums. I've copied her original idea and just added my own flare.</p>The Second Amendment In The 21st Century2013-01-14T09:19:00+00:002013-01-14T09:19:00+00:00Marc Scotttag:coding2learn.org,2013-01-14:/blog/2013/01/14/the-second-amendment-in-the-21st-century/<p>Two items in the media have recently interested me.</p>
<p>The first was related to the Sandy Hook Elementary School shootings. It was not the tragic incident itself that sent me scouring Wikipedia articles for information, but the way in which gun proponents in the United States immediately began screaming about …</p><p>Two items in the media have recently interested me.</p>
<p>The first was related to the Sandy Hook Elementary School shootings. It was not the tragic incident itself that sent me scouring Wikipedia articles for information, but the way in which gun proponents in the United States immediately began screaming about their Second Amendment right to bear arms. In the UK, we are so used to instantly dismissing the cries of the gun lobby as ravings of lunatics, that we rarely listen to their arguments at all. No sane person, after all, could possibly justify possessing a Bushmaster XM-15 assault rifle for the purposes of self-defense or hunting; so why is it that these weapons are so readily available in the USA?</p>
<p><img alt="Bill of Rights" src="https://upload.wikimedia.org/wikipedia/commons/7/79/Bill_of_Rights_Pg1of1_AC.jpg"></p>
<p>The second item, that flooded Hacker News and Twitter on the 12th and 13th of January, was news that Aaron Swartz had committed suicide. Aaron was a young man, who at the age of 14 had helped to develop RSS technology, had been a contributor to the phenomenon that is Reddit and had long been a proponent of Internet Freedom. Aaron’s suicide was almost certainly related to the fact that he was facing up to 35 years in a federal prison for allegedly downloading millions of academic articles from JSTOR, by hiding a networked laptop in a cupboard on MIT’s campus. Despite the fact that JSTOR did not wish to pursue any criminal charges against Aaron (all the documents having been returned), the Department of Justice mounted a prosecution case.</p>
<p><img alt="Aaron Swartz" src="https://upload.wikimedia.org/wikipedia/commons/7/78/AaronSwartzPIPA.jpg"></p>
<p>So how are these two seemingly unrelated events related?</p>
<p>The Second Amendment right to bear arms is an anachronistic piece of constitutional law that dates back to a time when the ruling elite would assert their dominance over the common man through brute force. Having overthrown the British Imperial forces using armed militia, the founders of the United States wrote into their constitution that it was every civilian’s right to possess a firearm. This made absolute sense in the 1700s. If the newly formed Federal Government was ever to attempt suppression of the people that they had been elected to govern, they could potentially face huge numbers of armed civilians forming militias, ready to wrest back control of their county.</p>
<p>The power of the Second Amendment was demonstrated clearly during the American Civil War. When the South seceded, it was to the armed civilians that the Governors of the Southern States turned. Armed militia were formed from the citizenry and seized courthouses, treasury mints and federal forts. So began a war that would see over 600,000 soldiers and 50,000 civilians killed.</p>
<p>Let me state that I have no wish to defend the practice of slavery, but that does not make the following point moot: the citizens of the South felt that they had a right to own slaves, and they felt that President Lincoln was infringing on their civil liberties. To any civilized individual, then or now, their beliefs may have been contemptible, but that does not change the fact that they, ironically, felt they were being oppressed.</p>
<p>The Second Amendment, in its current form, is no longer relevant and needs to be updated. The last time that the Government in the United States used armed troops against its own citizens was to quell ant-war protestors in the late 60s and early 70s, and I doubt we will ever see such scenes again in our lifetimes. Even if we did, the Vietnam War protests, and since then the Occupy Movement, has shown how people can peacefully exert their combined power in acts of civil disobedience, and have a very real impact on their Government, without resorting to armed insurrection.</p>
<p><img alt="Flower Power demonstration" src="https://upload.wikimedia.org/wikipedia/commons/4/4e/Flower_Power_demonstrator.jpg"></p>
<p>The threats to our civil liberties in the 21st century comes from a different quarter all together, as demonstrated by the prosecution of Aaron Scwartz. We should ask ourselves why it is that Aaron was pursued so zealously by the DOJ? Could it have been because of his outspoken opposition to the defeated SOPA and PIPA bills? Could it have been due to his release of approximately 20% of Federal Court documents from the PACER database into the public domain? Could it have been due to his connection to the MIT hackers that had links to Bradley Manning, as claimed by Cory Doctorow? Here was a young man whom cared nothing for material wealth, but everything for Internet Freedom, and for that he was facing the prospect of million dollar fines and nearly a life-time in jail.</p>
<p>Across the world our civil liberties are being threatened, spurred on by corporations that are quite happy to use their lobbying powers to protect their profits. In the USA, Congress recently passed the FISA Amendments Act that allows warrantless wiretapping of its civilians. In the UK, we face the threat of the "Snooper's Charter" that will require ISPs to log details of all their customers' web traffic, and the censorship of websites such as <a href="http://thepiratebay.se/">The PirateBay</a>.</p>
<p>The Second Amendment is fundamentally important; it just needs updating for the 21st century and it needs to be adopted by countries across the world. The weapons we use to defend ourselves in our modern era are no longer rifles, pistols and shotguns. Our 'arms' in these times are social media platforms, P2P networks, and anonymous communication technologies such as the TOR network. It should be every citizen's right to communicate without fear of being monitored by the very politicians we placed in power or by their proxies. It should be every citizen's right to be able to access information without their activities being tracked by corporations or law enforcement. It should be every citizen's right to view information that has been created using public funding. It should be every citizen's right to share culture without fear of prosecution.</p>
<p>If we cannot trust our elected officials to preserve our civil rights, then it is our responsibility to 'arm' ourselves. Organise, host or attend a <a href="https://cryptoparty.org/wiki/CryptoParty">CryptoParty</a>. Support those that are on the front line and who are trying to fight for your civil rights such as <a href="http://www.pirateparty.org.uk/">The Pirate Party</a> or the <a href="https://www.eff.org/">Electronic Frontier Foundation</a>. Use <a href="https://www.torproject.org/">Tor</a> when you browse the internet. Encrypt the data on your hard drive and use GPG encryption in all your sensitive emails. Last but not least, scream about Internet Freedom on Twitter, Facebook, Google+ or even <a href="https://joindiaspora.com/">Diaspora</a>. Tell Aaron Scwartz' story and other stories like his to anyone that will listen, and make sure our politicians know that if they will not protect our civil liberties, the electorate is 'armed' and ready to act.</p>Banning mobiles is not enough...2012-05-12T08:46:00+01:002012-05-12T08:46:00+01:00Marc Scotttag:coding2learn.org,2012-05-12:/blog/2012/05/12/banning-mobiles-is-not-enough-dot-dot-dot/<p>Michael Wilshaw, the new inquisitor-general over at Ofsted ( NOBODY expects Ofsted! Our chief weapon is surprise...surprise and fear...fear and surprise.... Our two weapons are fear and surprise...and ruthless efficiency.... Our <em>three</em> weapons are fear, surprise, and ruthless efficiency...and an almost fanatical devotion to Michael Gove.) has …</p><p>Michael Wilshaw, the new inquisitor-general over at Ofsted ( NOBODY expects Ofsted! Our chief weapon is surprise...surprise and fear...fear and surprise.... Our two weapons are fear and surprise...and ruthless efficiency.... Our <em>three</em> weapons are fear, surprise, and ruthless efficiency...and an almost fanatical devotion to Michael Gove.) has highlighted that mobile phones should be banned in schools to assists teachers in managing disruptive pupils.</p>
<p>While I commend Wilshaw for his no-nonsense approach to behaviour management, I really don't think he goes far enough. Some teachers, particularly ICT teachers, have publicly stated that banning mobile devices removes a potentially invaluable resource from the classroom, and that we should be encouraging students to use their devices to access VLEs, to make audio notes in lessons, to work collaboratively with other students. What poppycock.</p>
<p>In my school, while banning mobile phones has improved behaviour a little, these devices only contributed to a small percentage of poor behaviour. There are other equally worrying factors that can turn a placid classroom into a scene from Lord of the Flies in seconds. We need to ban more than just mobile phones.</p>
<ol>
<li>
<p><strong>Pocket Calculators.</strong> Yes, they're great for doing sums, but shouldn't we be teaching these students mental arithmetic anyway. Calculators are a horrendous distraction, and their potential for ruining lessons was recently highlighted to me by a colleague in the maths department. She was forced to leave her lesson, in floods of tears, after some malicious young wretch had written the number 55378008 on his calculator and then turned it upside down. Be warned, if you're going to try this yourself then it is most definitely NSFW.</p>
</li>
<li>
<p><strong>Paper and Pens.</strong> I yearn for the days when students used to have to write on slates with sticks of chalk. Paper and pens are a constant source of disruption and should be banned immediately. Students use these infernal devices to write notes to each other, often of a malicious nature, and they are a major cause of bullying. Some students will doodle incessantly while I am talking, not really paying attention to my series of lessons on correct paragraphing in Microsoft Word, and their doodles can often be horrendously graphic depictions of male genitalia. Worse yet, some particularly imaginative students have devised ways of fashioning potentially dangerous projectile darts from these sheets of paper, that could easily "have someone's eye out".</p>
</li>
<li>
<p><strong>Two-pence coins.</strong> Students should be spot checked for these at the school gates and all two-pence coins should be confiscated immediately. In some extreme cases, it might be necessary to ban all denominations of coins. The miscreants at my school have devised a clever little distraction they call penny football. This involves flicking the coin across a table while the teacher's back is turned in an attempt to get it as close to the edge as possible. the coin is then launched into the air, often flying across the classroom, with the serious potential of "having someone's eye out".</p>
</li>
<li>
<p><strong>Digits.</strong> I don't think any school can be a truly productive environment while we allow students to brazenly walk the corridors with the full compliment of eight fingers and two thumbs. Not only have students developed devious and secretive communication methods using these devices, such as the extension of their middle-finger from a closed fist, but these things can be a horrendous distraction. Drumming at tables or incessant tapping has recently begun to infect my classroom, and I really don't see a way of preventing this short of amputation. One colleague in the PE department also explained how dangerous digits can be. He had allowed the students to have their fingers out to assist in his series of lessons on throwing and catching, only to find that the students were occasionally poking each other with their index fingers. He told me how worried he was that they would "have someone's eye out".</p>
</li>
<li>
<p><strong>Genitalia.</strong> We've all been there. Puberty is a difficult time for students. Hormones are a major factor in classroom disruption causing erratic and often aggressive behaviour. Furthermore, as students develop, their sexual urges can become so great that they would actually prefer to talk to the opposite sex rather than listen to my series of lessons on correct paragraphing in Microsoft Word. While it is difficult to ban genitalia, I would recommend that all primary school children are chemically castrated to prevent future disruption to secondary school lessons. In my own subject (ICT and Computing) I can't think of a single example of where chemical castration has adversely affected the development of academic progress.</p>
</li>
<li>
<p><strong>The prefrontal cortex.</strong> Student's are devious, manipulative and calculating. They're constantly developing new ways to misbehave and disrupt lessons. By banning the connections between the prefrontal cortex and the rest of their brain, behaviour in lessons would dramatically improve. The leucotomy is a simple enough procedure, that could be carried out the moment a student reaches secondary school age. With a classroom filled with lobotomised students, I would finally be able to deliver my series of lessons on correct paragraphing in Microsoft Word without a single interruption.</p>
</li>
<li>
<p><strong>Children.</strong> We've all thought it. Remember your last training day? The corridors quiet, the classrooms peaceful. Wouldn't it be great if every day was like that? Banning students from schools would, in one fell swoop, eradicate poor behaviour forever. In one progressive school in Denmark, banning students from school has seen the number of external exclusions drop an impressive 100%. Additionally, with zero students on-roll, attendance is at +-infinity as is their A*-C percentages. You just can't argue with statistics like that.</p>
</li>
</ol>
<p>So there we have it. My answer to improving behaviour in schools. Come on Wilshaw, don't be soft. Let's all get on that slippery slope and see where it takes us.</p>How the Grinch stole ICT2012-04-25T07:45:00+01:002012-04-25T07:45:00+01:00Marc Scotttag:coding2learn.org,2012-04-25:/blog/2012/04/25/how-the-grinch-stole-ict/<blockquote>
<p>Gove said to the world “ICT is no more,<br>
The curriculum’s going out of the front door.<br>
It’s coders we need and I need not disguise,<br>
You should all teach computing on Raspberry Pi’s.” </p>
<p>A school full of hackers’<br>
That’s of course what we need,<br>
The …</p></blockquote><blockquote>
<p>Gove said to the world “ICT is no more,<br>
The curriculum’s going out of the front door.<br>
It’s coders we need and I need not disguise,<br>
You should all teach computing on Raspberry Pi’s.” </p>
<p>A school full of hackers’<br>
That’s of course what we need,<br>
The games companies desperate,<br>
Many gamers to feed. </p>
<p>But what Gove failed to say,<br>
As the subject was shot,<br>
We need teachers to teach it,<br>
And to teach it a lot, </p>
<p>And those teachers can teach,<br>
So the Heads have all heard,<br>
In Excel or in Access or perhaps just in Word,<br>
But of Java and Python and Lua and C,<br>
These teachers know nothing, not even VB. </p>
<p>So how can they teach all these eager young pupils,<br>
Of Arrays and of Loops and of Ifs and of Tuples.<br>
They simple can’t do it they’ll, need costly training,<br>
And the Heads’ eagerness is suddenly waning. </p>
<p>“Don’t worry says Gove, you don’t need to fret,<br>
I was telling white lies when I spoke out at BETT.<br>
There’s no need to teach ICT in particular,<br>
Why don’t you just all go and teach cross-curricular?” </p>
<p>“Historians, Chemists, Mathematicians you see,<br>
You don’t need to be skilled to teach ICT.”<br>
“But you said computing, that’s what we all heard”<br>
“But I am a Tory, you can’t trust my word.” </p>
<p>“When I said computing I meant in the grammars,<br>
Not comps where the kids barely have any manners,<br>
Your students are not academically able<br>
They couldn’t tell fiber from coaxial cable” </p>
<p>So the heads give a sigh of enormous relief,<br>
And silently thanked the old ICT thief.<br>
They can sack a few teachers and call the job done,<br>
No computers to buy that’ll cost them a ton,<br>
No Head of Computing they’ll need to anoint,<br>
And the students can go back to old PowerPoint. </p>
</blockquote>