Tagged: code academy

Extended Guardian post: Teaching Computing for the first time

Below is a piece written for the Guardian Teacher Network , before being edited down to size. I’d really like to hear from other teachers who have recently started teaching computing or are planning to in the near future and share experiences (please leave a comment below).

A reflection on teaching computing for the first time.
It was around this time last year I began to fret a little. The novelty of the summer holidays had started to wear off and ‘the fear’ began to settle in. After a couple of years of teaching ICT, I was getting a little bored of churning out coursework and was looking for a new challenge that would really make my students think. Don’t get me wrong, ICT has its place but I felt like students were missing out by not getting a mix of computer science(CS) and ICT. So I made a bold decision and came up with a plan to start delivering Computing from September (2012). My decision to do this was made somewhat easier a few months before, after listening to Dr Tom Crick (@drtomcrick) speak passionately about the merits of a curriculum that combined CS, IT and Digital Literacy.

Starting point
Having previously studied Internet Technology at university, taught ICT for almost 4 years and being a bit of a geek, I felt quite secure in my subject knowledge for Computing (networks, the Internet, data representation, hardware, software, e.t.c.) but was not feeling confident with my my programming skills. The first thing thing I did was sign up to code academy (http://www.codecademy.com) and began working through the Python exercises. I decided to choose Python as my language of choice because it is quite close to written English and there were plenty of support materials online.

After a few weeks of spending 30-45 minutes a day working through the Python tutorials (little and often) I decided to attempt one of the GCSE programming projects and immediately became stuck! Online tutorial sites are great for learning the syntax of a programming language but don’t necessarily teach you to solve problems. This is where computational thinking comes in. After a call for help on Twitter I quickly found myself being tutored through the problem solving side of things via Skype and email by two amazing computer scientists (@codeboom and @colinthemathmo). Problem solving is the essence of computer science, using a computer as a tool to solve real world problems. The only to get good at problem solving is practice.
In terms of planning for the new school year (2012/2013) I had decided to shrink the change to allow myself time to develop my programming skills further. I incorporated some new units at KS3 looking at hardware and how computers operate and process instructions, computational thinking and an introduction to programming in Python. I also sought to explicitly raise awareness in lessons and across the school of the differences between computer science and ICT, with the latter having a little bit of a negative stigma attached to it. At KS4 I offered OCR GCSE Computing and managed to get 14 students signed up. I roughly planned out the year against the spec and used lots of the many outstanding resources already available on the Computing at Schools website.

Teaching Computing
Returning to school in September with the annual ‘fear’ instilled after 6 weeks off I was actually quite excited to get started. Teaching the problem solving / programming side of things provided a really interesting contrast to the ICT I had taught previously. Lower ability students were feeling success quicker and gaining in confidence by solving relatively simple problems whereas the higher ability students had come across something that they weren’t getting right first time. The problem solving lessons provided a great platform for differentiation by task and it was amazing to see the students take a step back and really think about the problem and plan out a solution. When I got the level of challenge just right, sessions had ,a really nice flow to them and a 100 minutes flew by. There were plenty of times when students got stuck and I didn’t know the answer so I advised them to do what I did when I didn’t know how to do something – use the Internet. Students started becoming quite proficient at searching blogs and forums to seek out the bit of code that would help them.

In hindsight I think I focused a little to much on students learning the syntax of particular language rather than embedding wider programming concepts, something I’m going to change in my approach for the upcoming school year. I’m also going to give students more open ended problems to solve rather than step by step guides. I found that students really responded well to challenge of solving problems rather than just following step by step guides. Obviously they need a starting point, and tutorial sites / syntax guides will give students that. What I will do differently from September is start getting students thinking about problem solving sooner and try and get them to see programming as a tool for solving problems rather than an exercise that they must get right at all costs.

Computing club
Computing club was a real success this year and has gone from strength to strength. I initially set it up as an informal laboratory for me to try out some ideas for lessons on a group of extremely keen students wanting to find out more about Computing and specifically programming. If you haven’t already set one up – do so as soon as you get back to school! It was through this club that culture quick grew of students sharing things that they had been working on at home, outside of lessons. One student had been making apps online and had already tried out a number of sites and was able to give me a comprehensive review of each which helped me choose one to use in class. Andover student had been making text based adventure games in notepad++ and running them in a command prompt – an excellent idea for a KS3 project! In the final term I managed to secure some funding to buy a class set of Raspberry Pi’s, and who better to test them out but Computing club! It’s a great way to get confidence with new technologies before introducing them into a formal lesson.

Department CPD
This is potentially the trickiest obstacle to change. Thankfully I work in a great department with teachers willing to learn new things (our mission statement is ‘never stop learning’). I provided a number of after school sessions and helped staff with planning lessons whilst always returning to our moral purpose of WHY we were implenting change – trying to provide a more enriching and challenging experience for the students we teach. We reviewed things every few weeks in department meetings to find out what worked well and what needed tweaking for next year. It has been hard work but extremely rewarding to see both staff and students develop.

Final thoughts
I’m really glad I decided to ‘dive in at the deep end’ with Computing. I believe the students have benefitted from much more challenging and engaging lessons which the subject matter of computing tends to lends itself to. With computer science all around us it’s easy to make links to ‘real world’ scenarios that students can relate to. An example of this was a starter I created for a lesson on the Internet where students had to use Google street view to go inside of a data center and locate a stormtrooper (yes a stormtrooper!) that Google had placed in one of their server rooms.

I will continue to develop my knowledge base and schemes of work to ensure students at KS3 get a balanced mix of computer science, IT and digital literacy to enable them to manipulate the digital world in which they live. Above all I want students to be challenged in lessons and enjoy them. I think Computing provides us with a great platform to achieve this. As Dr Sue Black (a senior research associate in computer science at the University College London) said in a recent tweet to students considering Computing as a GCSE, “Knowledge of computer science gives you access to and control over your future. Everything we do is depending more and more on technology and understanding computer science gives you the key to unlock its potential.”

#neverstoplearning

Tips for teaching Computing for the first time (list of resources included)

Influenced by a strong moral purpose to give students exciting, challenging lessons and a balance of computer science, IT & digital literacy, this time last year I started planning to deliver Computing. The first thing my lizard brain (see Seth Godin’s post) shouted out was “Ahhhhh coding, coding, codinggggg!!!” At this point it would have been quite easy to not make the change, but returning to my moral purpose of improving the experience for the students I teach, I decided to carry on. Over the last year I have learnt a lot (blog post reflecting on my first year teaching Computing is coming soon!) about Computing and engagement / challenge for students is up in lessons.

If you are reading this post there is a good chance you are either considering introducing, in the midst of planning or have already been teaching Computing. Below are some things I’ve learnt (loosely resemble ‘top tips’ – sounds a bit cheesy and I’m by no means an expert!) over the last year that I thought I’d share.

1. Practice makes better. Don’t put off learning to program, start now, right now after reading this. Go to code academy (http://www.codecademy.com) or Khan Academy (http://www.khanacademy.org/cs) or one of the other many online tutorial sites.

2. Do ‘little and often’ to ensure you remember what you learnt previously.

3. Accept failure as part of the journey to success. It’s unlikely you’ll get everything right first time, but be courageous and give it a go. Learn from your mistakes, that’s what we keep telling the students isn’t it?!

4. Start a Computing Club and use it as a laboratory to road test new technologies, activities , e.t.c. before trying them in class.

5. Join Computing at School (http://community.computingatschool.org.uk/door). CAS’s online community hosts 100’s of free resources for teaching Computing. They also have a number of ‘Master Teachers’ who are hand to answer questions and offer support, forum’s, CPD events and regular Hub meetings around the country.

6. Use Twitter to extend your PLN. I received help from a number of people on twitter who checked my program’s and tutored me through some of the GCSE level programming problems.

7. Make use of student guru’s. If you have students in your class that are already quite competent programmers, use them. Ask them to explain who they solved a problem and peer teach others.

8. Be honest. If you don’t know they answer to a question, be honest and say so. Turn it into an activity to find the answer. Take part in the learning journey with your students.

9. Shrink the change. Try focusing on one thing at a time. Introduce a couple of Computing modules at KS3 first and get use to teaching programming to solve problems. Then think about introducing a GCSE option the following September.

10. Accept that students have more time to spend becoming an expert then you do!

11. Continue being remarkable.

Resources:

You can find a list of resources I have built up over the last year HERE. I will be adding to this list regularly and if you would like to share an online resource (video, website, blog, e.t.c.) please leave a comment on the Google Doc and I’ll add it in.

If you have found this post useful please pass it on, re-tweet, leave a comment below…

#neverstoplearning