We Don't Need No (Computer Science) Education

(x-ray delta one on Flickr)

I'm cautiously optimistic about Michael Gove's reform of ICT to become more like Computer Science. It's deperately needed (and has been for about 10 years) as outlined in these articles in the BBC and the Guardian:



I personally feel like I was massively let down by IT lessons when I was at school. I never felt like IT lessons were remotely fun or interesting - they were typing lessons merely that taught us how to be good worker drones. I was far more interested in science (which I still love), and so I started Biochemistry at Cardiff. I found that this wasn't the subject for me, and started to become more and more interested in the web and it's possibilities. Now I'm studying Web Technologies and I love mucking around with code. I'm extremely lucky to be able to do switch like that, and I'm sure that there's others out there who aren't.

The revamp is great news as it seems to focus much more on creating rather than only consuming, a path that I think has dangerous consequences.

However (you knew it was coming), I'm not convinced about the so called "open source" curriculum. Feels very much like a buzz word to please the geeks, rather than a concerted effort to change across the country. If "schools and teachers [have] freedom over what and how to teach" what's to stop a school that is unmotivated and/or incapable of updating the curriculum from doing so?

If we're serious about creating a new generation of makers and hackers then the government needs to step up and provide a concrete curriculum. I realise that this top-down approach is very much against the hacker mentality, but I worry that we've neglected technology education for so long that we've lost the skills to teach it.

I'm also skeptical of how the government will handle this guidance, and only listen to the huge corporations that have pushed hard for this. While we must thank them for bankrolling this change Microsoft, Google, IBM and others should have equal input as (real) open source initiatives and small scale hackers. Raspberry Pi springs to mind. As does Apps for Good. And Codecademy

So that's education sorted. Now we just need to overturn the Digital Economy Act and invest heavily in internet infrastructure, and we'll be golden :)

Placement Year - Hire Me!

Ed's note: I got hired! See my update post.

This post is intended as unashamed self promotion for my placement year in the computing industry. Hopefully it'll answer some questions about what a placement year entails and what you might get from it.

So first of all, what is a placement year? Essentially it's a full year where you get an intern working for you. They should take on a role within the company, just like any other employee, and contribute to helping the business. There is a focus on developing skills so that they can become a more rounded employee in the future.

Why do a placement year? It's a great chance for starting some recruitment, and to give some training to someone who may well want to work for you in the future. It offers a lost cost way to bring new skills and lots of enthusiasm into the workplace, possibly onto projects which may have been on the backburner. Existing staff are freed up to complete more complex tasks, and it allows them to develop management skills while mentoring students. There's a more complete list available here.

Many other companies in the sector, small to large, take on placement students and have been extremely happy with them, and go on to employ them once they graduate. Here's a few examples.

What do you have to do to offer a placement? You have to satisfy the five following criteria (these are set by the university):

  • The Industrial Placement should be for a minimum period of 36 fulltime weeks (excluding holiday).
  • The type of work undertaken on the Placement should be relevant to the Student's degree/studies. For instance, a Business Information Technology Student's Placement should be Business/IT focused, - i.e. being involved in the Business and Information Technology systems within the Company
  • The Employer should treat the student as a normal member of staff, particularly in respect of induction, training and Health & Safety practices
  • The Employer should recognise the contract as an Industrial Placement, i.e. a fixed term contract for approx 12 months with no further commitment on either part beyond this.
  • The Employer should allow the Student and the Student's supervisor/line manager to be visited during the Placement by a member of academic staff (to review progress and discuss other issues that may arise).

Now down to the real question: Why offer me a placement? I'm a Web Technologies, at Portsmouth University. I am very enthusiastic about creating new applications for the web, and for mobile. The explosion of HTML5 and it's related technologies point toward a bright future of the web which I want to be part of.

In my first year of the course, which was a common year for all School of Computing students. I studied a variety of units, which cover a generalised look at the field of Computing. Web Authoring and Design, which gave me a grounding in HTML and CSS, and the basics of running a web server Introduction to Structured Programming in which I learnt the Python language; Object Orientated Programming in Java where I learned the basics of object orienatated programming through the use of Java; Computer Organisation which covered a range of subjects on the fundamental concepts of Computing; Social Aspects of Computing, where I looked at the ways computers have had an affect on ethical, economical, social, legal and political issues Developing Information Systems which gave me an introduction to project management and UML; Introduction to Data Communications in which I learnt the basics of networking and finally the Origins of Computing unit, where I looked at where computers have come from and what factors went into their development.

My first year results are shown below:

  • Web Authoring and Design: 87%
  • Introduction to Structured Programming: 86%
  • Object Orientated Programming in Java: 78%
  • Social Aspects of Computing: 91%
  • Computer Organisation: 87%
  • Origins of Computing: 85%
  • Introduction to Data Communications: 85%
  • Developing Information Systems: 74%

Overall I achieved a first class honours grade, although the first year does not count toward the final mark.

My second year (which I am currently studying) is much more focused on Web Technologies, with units based around building web sites, learning PHP and Javascript, advanced Java programming, web-based project management, databases, understand Unix and human-computer interaction. At time of writing I am in my first semester, I am working towards building an online shop for an external client, as well as designing and building a database and investigating data structures through advanced Java programs.

I love to learn more skills and technologies, and to increase my knowledge base. I think this would mean that I would be able to get quickly up to speed with projects and tasks while on my placement year. This is also one of the reasons I would like to do a placement year, I as hope that there will be many opportunities for learning new skills. I also have good organisational skills, which allow me to keep track of time, prioritise tasks and work efficiently. I have previously worked as an intern at the British Red Cross in the digital fundraising team, which gave me great experience of the office environment. I believe that I would be able to integrate easily into any office workflow. I also volunteered at Kandersteg International Scout Centre for 3 months, working as a Short Term Staff Hike Guide, which involved leading groups on hikes around the Swiss Alps. I also returned to KISC again over this summer, as a Snow & Ice Guide, which is similar but teaching mountaineering skills. I developed my leadership qualities, people skills and problem-solving abilities greatly, and was entrusted with risk management to lead groups safely over glaciers. You can see more and some of my photos on my Kandersteg blog (Ed's note: Posterous shut down on 30th April 2013, so this blog was discontinued. I may try to revive it sometime, when I'm finished tidying up this site).

I actively follow technology and web news, reading many blogs and listening to various podcasts, which I believe means I have a good idea of current theories and trends in Computing and on the web.

What else am I interested in? I do quite a few activities outside of my university work. I been involved in Scouting since I was very young, and I continue to help out with my group whenever I am at home. I am an Assistant Scout leader, which involves planning weekly meetings, running activities and assisting where needed. I have also planned out and organised the annual summer camp, which unfortunately I could not attend, because I was working at KISC.

Scouting has also allowed me to do a lot of outdoor sports, another big interest of mine. I love hiking and have been walking many times in North Wales, and other places in Britain. I completed the 3 Peaks Challenge in 23 hours and 49 minutes last year. I also enjoy climbing, and have joined the university climbing club, which run twice-weekly training sessions. I hoping to improve my abilities a lot this year.

I have played Ultimate Frisbee for several years, having joined the club while at Cardiff University. I immensely enjoy playing the sport, improving my abilities and competing against others. Do I have a CV? Certainly, my CV is available via Google Docs here: http://j.mp/alasdairsmithcv

How can I find out more? You can contact me via email, Google+ or Twitter, and you can also have a look around my blog or my main site

UPDATE (15/10/2011): Updated to include info about second year at Portsmouth, and second summer at KISC.

Programme or be programmed

I'm stealing that headline from Douglas Rushkoff's latest book, which I heard about on BBC Outriders. And I just wanted to post quickly about how I agree with the concept (I haven't actually read the book, so....)

Basically he says that kids should be taught programming in school, probably at secondary school level. This would mean that people would be much more aware about basic computing issues, something that affects us everyday. If you understand a little about how Facebook works, then you can learn a little about how to protect yourself. Computing has become so ubiquitous that not learning how to actually make programs is like learning how to read but not write.

This was brought home to me by Mozilla Drumbeat presentation on the state of IT education in the UK. Basically some parts of the curriculum are plain wrong, and some parts are 10 years out of date. According to the curriculum kids should be making web pages on Microsoft Word and Powerpoint, a completely laughable idea. Also it has somehow missed the web's move towards a semantic web, by about 10 years!

It's no wonder that I can walk into a Computing degree with no previous experience - so I've benefited quite a lot from this! The problem is that we're going to fall behind, if all we're doing is teaching kids how to be obedient, unimaginative office drones

So I propose that we start teaching kids how to make stuff on computers, not just spending masses of money on buying computers.