RSS

Category Archives: Coding For Kids

Coding & The Liberal Arts

DSC00155Up until the early 20th Century Latin formed the basis of the Liberal Arts curriculum, not because everyone would be a Latin scholar, but because it was seen as something which taught one to think, because it was a rigorous discipline requiring accuracy and ability to master a logical system. It formed an excellent indicator of academic potential, and thus persisted in the educational system well beyond its usefulness as a lingua franca. In the 1900s it was largely replaced by History as a preparation for public life, politics and the civil service.

I would argue that the decline of History, and of Latin, has left a crucial void in the Liberal Arts. In a sense it has robbed the Liberal Arts of their importance in the overall scheme of things. When the main purpose of Education was to fuel the bureaucracy of the empire, the need was for individuals possessing the skills to administer vast tracts of foreign soil, far from home with a sense of duty and the ability to remain unflappable under enormous pressure. The study of Latin or History provided a sense of place and importance – it underlined the belief in the superiority of Western culture, and gave the colonial bureaucrat, trained at Harrow or Eton, a sense of their moral and cosmic worth.

The relativism and post-modernism of the last hundred years, along with the decline of the empire, has stripped away all sense of worth and purpose, and left only naked materialism. In Education, the Liberal Arts have been eaten away by the ascendency of Mathematics and Science. Now, I have nothing against the Sciences – they are absolutely vital in any education, but I believe that critical thinking needs a balance, a grounding in the Arts. I’ve just seen some research suggesting that good English teaching improves Mathematical ability. And I have a gut feeling that music is also vital. Drama too – hell, all the Arts are important, but I can’t help feeling that something is missing at the core of our curriculum: a humanistic study which is grounded in rigour and trains critical thinking.

Those of you who are still with me will be surprised now to hear that I am going to suggest that coding, computer programming fills this void. Is coding an Art? Surely it should be lumped with the Sciences. How can it fill that need for a rigorous study which simultaneously fuels a sense of moral worth and makes sense of the Universe? It is undoubtedly rigorous, and I would argue is an excellent training ground for rigorous thinking, so vital for critical thought. There is nothing quite as exacting or as unforgiving as a computer program. One comma out of place, a forgotten semi-colon can negate an entire endeavour. Programmers need to be able to conceive of the purpose and function of a program, design its outline and implement its details in ways which enhance user experience and maximise functionality. Game design, in particular, needs to engage on many levels at the interface between humans and machine. In a sense, like music, it combines creativity with mathematical precision.

I have a sense that the 21st Century is going to be all about how we manage our relationship with machines. The factories of the Industrial Age were one kind of machine, but the digital interfaces of the Information Age are quite another, and I have a feeling that the ability to hack one’s machines is what will define our ability to rise above mere consumerism. What the digital natives of the digital generation seem to lack is that ability to hack their machines. When I think back to what I did with my first computer, a ZX Spectrum, it involved almost only programming! There was precious little else you could do with it. Kids today experience computers almost entirely as platforms for products they download. Very little is done even to tweak these programs. Computing has become an act of consumption first and foremost.

We have a duty to teach kids to code so that people have the ability to act as agents of their own destiny in an increasingly complex digital world. Coding is therefore a humanistic project, perhaps the most vital expression of our humanity in a world where we are relying on our machines more and more.

What should replace History at the core of the Liberal Arts curriculum? Why, coding of course!

 

Hack Your Life!

tdLearning to Code is all the rage right now, but how to implement a coding for all programme is not as easy as it sounds. There are a number of decisions which need to be taken. The first decision is around whether it will be merely open to all, or compulsory for all. At my school we expose all the students to a little bit of coding in their computer skills classes, in the form of some Scratch and some JavaScript. I also do a Game Design unit using Flash, with a little bit of Action Script. It works in that everyone can meet the requirements, but not all students embrace coding enthusiastically, so there might be a great deal to say for going the extra-curricular route, or maybe both.

I suspect that both is the right answer for most contexts. Everyone needs to be exposed to some coding, but I’m not convinced everyone can handle a full-on programme. the second decision is what programming language to use.

I started teaching some coding back in the late 1990s, with some Logo, and then quickly moved to JavaScript. The big advantage of JavaScript is that you do not need a compiler. All you need is a browser and a web editor. Currently I get my grade 9s to use JavaScript to create a quiz which will tell the user if they are right or wrong, and tally a score. When they create Flash games, I teach them to use AS3 to create drag and drops, and how to use tutorials to learn more skills. However, with many new interfaces for creating mobile apps appearing, my gut feeling is that this is the way to go, and I am probably going this route this year. MIT has a platform for creating apps, but there are so many popping up, I haven’t been able to research them all.

Here’s the introductory video for the MIT App platform to give you an idea of how it works.

The third decision is around how to build enthusiasm. Some students will enter into it with gusto and there is so much available online that they will be able to teach themselves. But getting the social aspect to work is vital to any programme having staying power. If you can meet face to face that is the best option, but in many schools the normal sporting and extra-curricular programme is so full, finding a mutually agreeable time is well-nigh impossible. I have tried running a virtual club, but the buy-in is limited. Special programmes which run for a limited period of time, such as a Hackathon or Hack Off may work better if you can find a niche in the calendar. I have been trying to shoe-horn some coding time into whole school programmes such as Cross-curricular tasks, or end of year programmes when teachers are marking exams and willing to sacrifice curriculum time, but for some reason staff meetings tend to resist the idea as soon as you mention coding, or even worse, hacking. For students the word hacking has a much more positive valency, however.

I honestly don’t know what the answer is, to all three questions, but I do sense that this year the zeitgeist is different. The idea that everyone should code is so out there, I think it may just take hold!

 

 

 

Coding is the new Shop!

DSC00169When I was at school we had a subject called woodwork & metalwork, which was compulsory for all boys. Leaving aside issues of sexism, and the often desultory efforts made by my teachers to teach me the elements of joinery and metalwork, the sense was that all boys needed to be able to make, or at least fix, household furniture, and tackle DIY jobs around the house. By the same token, girls had to do home economics, cooking and sewing. I wish I had taken woodwork more seriously because I lack the kind of DIY skills today that would have stood me in excellent stead. Fewer schools offer home economics, woodwork & metalwork these days, but whatever one thinks of this, I would argue that in the twenty-first century, coding is the new shop!

Just as in previous decades, everyone learned some of the basic skills they might require in life to make and create things around the house, so, in the digital age, I would argue the ability to tweak and hack our programmable machines emerges as crucial life skills which everyone should learn. I’m not saying we all need to become programmers, or that we need to study computer studies as a full subject. To my mind the issue is that all students should be able to, at the very least, use HTML to tweak their blog posts or Facebook page, or mod their favourite games, or tweak their avatars. If MIT has its way the future will be awash with programmable machines, and the ability to actually tweak those settings would come in handy too!

I also believe coding gives one cognitive skills which would be of benefit to all. Coding forces students to think logically and accurately. In these days where opinions are largely expressed by sharing or liking, there is more need than ever for a discipline which emphasizes clear logical thinking. I think that creating games is an excellent way of introducing coding to students. Creating Flash games in particular can be very motivating for students because in a very short time, and with very few skills they can have a superb up and running, and this can be converted to an iOs or Android app.

 
Leave a comment

Posted by on May 21, 2015 in Coding For Kids

 

Holiday Projects – Learn To Code As A Family!

With the holidays fast approaching, I am filled with just a little dread. Not only will my wife trot out the DIY jobs jar, but, as a father of teenage boys I know that after a few mornings sleeping in, a few days of playing the new computer game, will come that moment when the inevitable question gets asked, “What can I do now?”

But these holidays I am forearmed with an answer. Learning to code is all the rage: for good reason. Firstly – it is good mental discipline – the logical reasoning, attention to detail, the need to plan and move from the generality of pseudo-code to the specific syntax of whatever language you are using. I think learning to code teaches you a certain kind of mental precision that children used to get from having to learn Latin.

Secondly – I believe that it is a digital citizenship skill, something we all need to know for a future where being able to tweak your machine, modify your applications will not be seen as something geeky, but something as necessary as breathing. We are fast headed for a technological future where we will be interfacing with machines not as isolated events during a busy day, but on a constant basis. That future has two possible paths, one in which all the coding of those machines is managed by corporations, and we have little say in how we experience our environment, apart from choosing from a list of alternate “templates”, and another in which we are able to tweak the code ourselves, and can deliver more personalized outcomes. I believe it is imperative that we try our darndest to be ready for the second alternative – and that means learning to code.

It worries me that we seem to be producing a generation of consumers rather than producers. When I was young, computers came more or less assembled with nothing on them. You pretty much had to learn to program to be able to get them to do anything. Even to get the programs that were on them to work you had to learn to type in DOS commands! These days computers come with everything on them, and you don’t need to learn a stitch of code to work them. We need to get back to that spirit of showing your machine who’s in charge!

Thirdly – and perhaps most importantly, coding is fun. learning should always be fun, but especially during the holidays! It can also be an opportunity to experience learning together as a family. We don’t do enough of that. The natural order of things is that adults know more than kids, hopefully anyway! So learning tends to be about stuff your kids need to know, but you already know. Even if it’s stuff you’ve forgotten, like Algebra, it is never really a situation where the playing field is level. Coding, however, for most families will probably be a learning project the whole family can take on where all of you start as beginners.

So – here’s the challenge! Set up a challenge at the beginning of the holidays, a family project to code your own game for computer or mobile, learning to code as you go! This may sound like an impossible task, but actually the resources online are incredible, and make the task relatively painless. You can scale the ambition as you go. In many cases the tutorials and guidance is so good you can have a game going in 10 minutes! The rest is all about wanting to design your own game.

Here are some sites you can use (mostly free):

This list is not exhaustive, but represents some of the most popular sites.

 

Programming For Thinking Skills

DSC00169Up until the early 20th Century Latin formed the basis of the Liberal Arts curriculum, not because everyone would be a Latin scholar, but because it was seen as something which taught one to think, because it was a rigorous discipline requiring accuracy and ability to master a logical system. It formed an excellent indicator of academic potential, and thus persisted in the educational system well beyond its usefulness as a lingua franca. In the 1900s it was largely replaced by History as a preparation for public life, politics and the civil service.

I would argue that the decline of History, and of Latin, has left a crucial void in the Liberal Arts. In a sense it has robbed the Liberal Arts of their importance in the overall scheme of things. When the main purpose of Education was to fuel the bureaucracy of the empire, the need was for individuals possessing the skills to administer vast tracts of foreign soil, far from home with a sense of duty and the ability to remain unflappable under enormous pressure. The study of Latin or History provided a sense of place and importance – it underlined the belief in the superiority of Western culture, and gave the colonial bureaucrat, trained at Harrow or Eton, a sense of their moral and cosmic worth.

The relativism and post-modernism of the last hundred years, along with the decline of the empire, has stripped away all sense of worth and purpose, and left only naked materialism. In Education, the Liberal Arts have been eaten away by the ascendency of Mathematics and Science. Now, I have nothing against the Sciences – they are absolutely vital in any education, but I believe that critical thinking needs a balance, a grounding in the Arts. I’ve just seen some research suggesting that good English teaching improves Mathematical ability. And I have a gut feeling that music is also vital. Drama too – hell, all the Arts are important, but I can’t help feeling that something is missing at the core of our curriculum: a humanistic study which is grounded in rigour and trains critical thinking.

Those of you who are still with me will be surprised now to hear that I am going to suggest that coding, computer programming fills this void. Is coding an Art? Surely it should be lumped with the Sciences. How can it fill that need for a rigorous study which simultaneously fuels a sense of moral worth and makes sense of the Universe? It is undoubtedly rigorous, and I would argue is an excellent training ground for rigorous thinking, so vital for critical thought. There is nothing quite as exacting or as unforgiving as a computer program. One comma out of place, a forgotten semi-colon can negate an entire endeavour. Programmers need to be able to conceive of the purpose and function of a program, design its outline and implement its details in ways which enhance user experience and maximise functionality. Game design, in particular, needs to engage on many levels at the interface between humans and machine. In a sense, like music, it combines creativity with mathematical precision.

I have a sense that the 21st Century is going to be all about how we manage our relationship with machines. The factories of the Industrial Age were one kind of machine, but the digital interfaces of the Information Age are quite another, and I have a feeling that the ability to hack one’s machines is what will define our ability to rise above mere consumerism. What the digital natives of the digital generation seem to lack is that ability to hack their machines. When I think back to what I did with my first computer, a ZX Spectrum, it involved almost only programming! There was precious little else you could do with it. Kids today experience computers almost entirely as platforms for products they download. Very little is done even to tweak these programs. Computing has become an act of consumption first and foremost.

We have a duty to teach kids to code so that people have the ability to act as agents of their own destiny in an increasingly complex digital world. Coding is therefore a humanistic project, perhaps the most vital expression of our humanity in a world where we are relying on our machines more and more.

What should replace History at the core of the Liberal Arts curriculum? Why, coding of course!

 
Leave a comment

Posted by on January 28, 2014 in Coding For Kids, Critical thinking

 

Coding For All?

ImageThere is a positive mania for all things coding right now, and it begs the question, should we be teaching everyone to code? Part of me believes that everyone should have some exposure to some kind of programming. I believe it helps develop the rational mind in some vague way, in the same way that the study of Latin was said to be good for one! It is also an essential twenty first century skill. People should not be at the mercy of technology, and to gain some ability to control the world around us, we need to be able to hack our machines a little.

I have always taught a little bit of coding in my computer skills classes, whether a bit of Scratch, or some HTML or JavaScript. Recently I have been using ActionScript with Flash as well.

Another part of me, though, recognises that coding is not for everyone, and ramming it down everyone’s throats might be counter-productive. I would love to see some coding as part of the core curriculum, and I do believe everyone should have an introductory look at it, and be encouraged to take it up, but I don’t think it should be compulsory.

I also believe that coding should be embedded in the curriculum. It should be seen as part of any act of critical thinking. There should be some coding in History, some in Maths, in Geography and Art. Students should be encouraged to develop apps or games that help them learn in all their subject disciplines. I believe all kids are capable of that, and that increasingly coding and learning are the same thing. Learning in a Digital Age is wrapped up with one’s ability to hack solutions. Creating a website is a deeper learning experience than merely viewing one. Creating a game is more packed with learning than merely playing one.

Saying all kids should be coding is perhaps a step too far, but we should be encouraging everyone to give it a go! MIT App Inventor looks like a great site to encourage students to develop apps for any subject discipline – a challenge I will certainly be setting my students this year!

 

Creating Flash Games – Communities Of Practice in the Classroom

We are so used to hearing bad news about the state of education and teaching, but teachers can make a difference, and it is important to remember this. My youngest son takes piano, and in the last concert he messed up his piece. It has been playing on his mind, and as this term’s concert approaches, he has become more and more nervous about it. His piano teacher has been working with him to try to get him into the habit of carrying on playing, instead of stopping when he makes a mistake. He came back from his last piano lesson very upset. His teacher had shouted at him for stopping! His teacher also gave him a poem to read about perseverance and fortitude. In the days that followed he resolutely sat at the piano practising not stopping! He may mess up again – the concert is next week, I don’t know, but what has impressed me as a parent is the patience and fortitude of his teacher in getting him to the point where he is a great deal more resilient, and now appears to have a level of confidence about his ability to face up to his hoodoo!

flash gameAt the moment I am very aware of the tendency many students have to give up when the task becomes difficult. Most of my grade 10 students are in the process of finishing off Flash games they have been designing, and this year most groups have been far more adventurous and ambitious than usual! This has meant that instead of using core skills taught in class to construct their games, they have downloaded tutorials off the Internet and included coding well beyond their understanding, and, I hasten to add, mine!

While this is fantastic and students have really stretched themselves, and learned a great deal in the process, it has placed many under stress and led many to want to give up, often a mere semi-colon away from working code!

Common problems included not being able to convert code written up in Action Script 2 tutorials to Action Script 3, not being able to edit code copied from tutorials to different purposes,and simply being very over-ambitious. I have had to spend many afternoons with students trying to help them adapt their code, searching the Internet for solutions and scouring Adobe manuals to find out exactly what a gradient box is anyway! It must be remembered that this was a general class, not a programming class.

The fact that I did not know how to solve many of these problems without searching the Internet, that I was in many ways learning alongside students was for me, a great experience, and a window into the kind of communities of practice that I would love to set up in my classrooms, but which is often elusive because I do know the answers already. It becomes too easy just to tell students what they need to do rather than work alongside them.

flash 2Teaching students to code is an obvious place where communities of practice can be very effective. Where one group had solved a coding issue in their Flash games, I asked them to help out another group with similar problems. This model worked quite well – because students were quite good at explaining things to each other, and it took the pressure off me when I needed to put in some solid research over some knotty problem.

As an English teacher I try to turn my writing classes into communities of practice, and I always write alongside students when thy are doing an exercise. I share my thought processes as a writer and show them that I also have some good results, and some duds when I write, that I also find it hard,  that I often also get stuck, and change my mind about what I want to do. I ask for their opinion about a word choice or as for an idea, and I hope this helps encourage students to see that learning a skill is an ongoing process, and that you need to be persistent, and have confidence that you can find solutions, and it’s OK to start without knowing all the answers.

But most of all it teaches persistence. When you are alone it is often tempting to give up. But working in groups and seeing that no-one is giving up, helps to keep going. Or, when it comes to the piano, having a teacher shout at you, is often necessary!

 
 
%d bloggers like this: