Introduction

We now offer OCR AS Computing to our KS4 pupils as an alternative to the GCSE ICT course. Pupils will study this course over two years; it is normally done in one year by 16-17 year olds but given the excellent students we have here, I think they will cope. Just under 50% of the pupils opted to do this course when they had to make their choices at the end of Year 9. There is no coursework in the OCR AS computing course (which ironically means we will be able to do more practical work as we won't have to jump through hoops).

The pupils are all girls in a high-performing grammar school. They have all had some experience writing code in previous years; they have used Scratch to write a shoot-em game, VB.net to produce a web browser, Logicator for flow charts and html to produce web sites. Pupils on this Computing course will have three 50 minute lessons a week in both year 10 and 11; one lesson is intended to be a pure theory lesson and they will also have a double lesson lasting 1 hour 40 minutes in a computer suite. I expect them to do about an hour or so a week of homework. Pupils will primarily be learning Java. The main IDE we will be using is Greenfoot (excellent and free). We will be working from the Michael Kolling Greenfoot textbook and using resources from the Greenfoot website. We may dabble with other languages and IDEs.

The broad plan for the first year is to program program program by teaching pupils how to write computer games. I intend covering as much of the Greenfoot textbook as possible and as much of the Programming unit (OCR Syllabus F452) in year 1, and then the theory parts (F451) in year 2. By the end of the first year, I want the pupils to be able to confidently write their own computer games.

Thursday 8 December 2011

So, how has it gone this term and where to next?

The hols are nearly with us. We shall spend the rest of this term playing with arrays. In January, we need to look at records, then functions and procedures and a bit on recursion. A few weeks spent on opening and closing files, reading data from them and the like and we are done with round one of teaching the basics they need to know for the syllabus.

The question really is how to move forward from mid February. What I really want to do is go through everything again but in more detail and give them more opportunities to write and experiment with code. We could carry on with BBCBASIC. I like the language but it has limitations, not least of which is the cost for pupils to put on their home PCs if they are to develop larger programs. The debugging tools are limited, too.

I could return to Java but I'm worried! We used Greenfoot. We had a lot of fun using the first five chapters and it really got their imagination going. BUT and it's a big but, chapter 6 onwards was difficult for a significant number of my very bright students (remember, this is a grammar school). Pupils started a bit of chapter 6 and I found they could copy but had little to no understanding of what they were actually doing or why, so they found it difficult to start the first few steps to independence. That's why we stopped and moved to BBCBASIC. Java's syntax is also a lot harder to get to grips with and some of concepts that get introduced from chapter 6 onwards are pretty hard for a 15 year old.

The OCR specification is more geared up to learning a procedural language, which is a problem when you are using an OO language like Java! you can still cover much of the basic programming stuff but talking about top-down design and functions and procedures gets a bit tricky! The other problem is my own weakness in Java. I spend a lot of time trying to get my head around some of the abstract goings-on in Java and then trying to work out how to make it clear to youngsters. There isn't enough time in the week and unfortunately, there is zero help and training for teachers like me during work hours. I have a good set of books, a great set of online resources, some forums for advice, but still - it's hard without someone to sit and explain things and help you work through a problem you have in programming.

Then there is a compromise. I guess I am old enough to be part of the Pascal generation and something like Delphi might be best. The Lazarus IDE is open-source and well supported. We can cover the specification that OCR sets easily. There are some great resources around, particularly on YouTube, and we can easily move on to creating forms-based applications from console-based ones. I've also taught Delphi in the past and am a lot more confident with this than Java. And of course, it will be exciting for pupils to learn a new language and they can practice again all the things they did in Java and BBCBASIC, and then extend those skills.

I wonder if I am too hung up over teaching OO, or indeed any form-based application? I think I'm talking myself into Pascal using Lazarus but need to thing about his over the next few weeks.

What to do to do to do? What to do?

Monday 5 December 2011

Week 10 - Arrays

We ran through one and two dimensional arrays in class, comparing them to using a bunch of variables. We talked about setting up an array and how we can visualise a one and two dimensional array. We then dry-ran initialising them, writing to and reading from them.

New challenges were set around arrays. Pupils were given a program that used an array and asked to comment each line. They then were told the data to use and had to do the trace table for it. Then they had to get some small array-based problems working, extending them as they went.

BBCBASIC is a really good introductory language to use. The more we use it, the more I am impressed. It's very forgiving, pretty clear and uncluttered and there is enough help out there to make life easy. If I had to be critical, I don't think the debugging tools are very good. Pupils really need to be able to step through the code and trace the path, watch variables and elements change. But as an introduction, it's superb and will be part of future teaching plans from now on.

Friday 25 November 2011

Week 9 - WHILE ENDWHILE and REPEAT UNTIL

We have been practising our loops, looking at how WHILE and REPEAT UNTIL work, writing little programs and then dry-running them in class. I then set the pupils challenges in the computer room. These required them to work in small groups to get problems solved using any of the iterative loops.

I also stumbled across another method of helping them to become more self-sufficient and confident to have a code writing their own code. Although the challenges I set were fairly short and easy to solve, I asked them all to extend each challenge in any way they wanted. So for example, some pupils were confident using CASE so put a menu system at the front of a challenge. Someone else knew how to use an IF statement, so asked the user a question and displayed the answer, if it was right or wrong. Others simply printed things on the screen and changed the text and background colour.

I liked this, not least because by the end of the lesson, they all ended up experimenting with producing different Matrix screens! I kid you not. This potentially boring lesson turned into a lot of fun, as they worked out that by using loops and the TAB keyword, they could produce all kinds of patterns on the screen.

Monday 14 November 2011

Week 8 - FOR loops and dry-running code

This week, pupils have been writing programs using FOR loops. They've were given some pseudo-code of problems and had to dry run them using trace tables. They then had to convert the programs into code and get them working. One of the problems involved them using a nested FOR loop. Most pupils found these tasks fairly straightforward. They just needed a bit of practice and to be nudged into playing around with the code, trying out different numbers, trying to produced error messages and so on.

After FOR loops, we will press on with the other iterative constructions. I'm trying to get the pupils to write as many pseudo-code programs as possible and to get used to dry-running solutions. They are getting better at it!

Monday 24 October 2011

Week 7 - The joys of binary

This week was used to give pupils a breathing space in their computer lab lesson to complete their piano projects.

We used the theory lesson to introduce pupils to the joys of the binary counting system, which was fun. We looked at how denary works and then extended this to binary, doing lots of conversions between both systems. We defined LSB, MSB, bit, nibble and byte and made a few notes on what a character code was, a character set and ASCII. Pupils had to spell out their names in ASCII. We briefly touched on the hex numbering system.

Quite a few pupils were away on trips so I'll have to revisit this anyway but with the next lesson on strings and string manipulation, this seemed like the right time to introduce this topic. Fortunately, they are bright pupils, good at Maths, so we didn't need to labour all of this.

Half term next week so lots of time for preparing lessons (*£&$!). This was a fun site, for making ASCII art.

Friday 14 October 2011

Week 6 - Forwards we go ...

Pupils have worked very hard this week on their pianos. They aren't all finished, so next week will be about getting them finished. I'd like them all to have done one crab game and one piano by the time they return after half term. I also need to use them to showcase the AS Computing course to year 9s soon. They have all been set homework, to do the first 4 chapters of the BBCBASIC tutorial and look at chapter 8, and then to write two simple problems: get the width and height of a field and display the area, and get the radius of a coin and display the circumference. Most have already done it.

Today, I gave them all a test. This was the first one on the course and tested a knowledge of a cross-section of the terms we've come across so far. It lasted 25 minutes. I've just marked them and interestingly, I'm failing half a dozen as they just aren't getting the basics clear in their heads. Most, however, are doing staggeringly well. I'm both delighted and relieved that the knowledge is going in for most of them. Next week, I will work closely with the six who are struggling whilst the others get on with their pianos and see if I can help them with some of the basics. I also need to arrange 'Study buddies' for them, other students who can help them revise and who they can ask for help. This idea works well in a Grammar School. On the plus side, they all completed a questionnaire on all aspects of the course so far. Nearly everyone is thoroughly enjoying the course. Most love the challenge, although a few are struggling. They like the resources, the pace is good for most of them and all but one person thinks they are really learning something useful. This is very encouraging but I must work harder to get the ones who aren't so happy back in the groove!

We also did our first introduction to pseudo-code today. We talked about why programmers need to define problems exactly and we looked at an example. I gave them a problem and then asked them to write down the steps in solving it in any way they wanted. After a while, they were stopped, and we looked at their solutions, finding ambiguity as we went. I then showed them a solution in pseudo-code and we discussed that and why it was precise (nearly) and what we needed to do to improve it.

This was really interesting, watching them thinking and discussing how to clearly describe a solution to a problem. I have a feeling that they are going to benefit from practising using pseudo-code to define the solutions to problems in all kinds of unexpected ways. If nothing else, they should after a few weeks start to think more logically, step-by-step, trying to pick holes in their own solutions. I'm quite looking forward to the next few lessons.

Monday 10 October 2011

Week 6 - Things just got harder, and easier ...

Most pupils are getting to the stage where they have finished their piano (chapter 5 of the Greenfoot book) and are playing with customising it (not very constructive in terms of the syllabus but fun anyway). I worked through Chapter 6 in the book again over the weekend and am struggling with this; there is a rather large jump in complexity in this chapter and I know my excellent pupils will struggle with the abstract ideas it contains, especially in dealing with lists and collections.

So, while I figure out how to deal with this, we are going to spend a month or so with BBCBASIC as well as introduce BlueJ for Java. Our syllabus requires us to look at a procedural language. The plan is to set them lots of small, focussed problems and get them expert in producing pseudo-code in constantly mixed-up groups. Then dry-run the pseudo-code, showing them how to do that and produce test plans. Then they will have to implement the code in BBCBASIC and finally, implement the code again, but this time in Java using BlueJ. Hopefully, looking at BBCBASIC as well as Java will drive home some of the more basic ideas: variables, constants, selection and iteration, arrays etc. This might make life a bit easier when we return to a world made up of objects and classes (or it might confuse them - we shall see). If nothing else, we can tick off lots of bulletpoints in the syllabus in the next four weeks and that can only be a good thing.

This week, the plan then is to get them all closer to having a finished fun piano, then start working through the tutorials in the BBCBASIC application. It has been donkey's years since I looked at BASIC, but it all came flooding back on Sunday.

Friday 7 October 2011

Week 5 - Jargon

That was a good task to do! I gave pupils a page of code and a list of buzzwords. They were mixed up into threes, working with people they don't sit next to and then they had to work together to identify the buzzwords in the code, colouring them in and then writing next to them what it was. It was a really good opportunity for them all to make some notes in a slightly different way on all of the jargon that they keep meeting. Method signatures and programming constructions needed to be explained but apart from that, there was some really good conversations going on. They are brighter than the sun, these pupils! This took about half an hour. The lesson used is available from the Downloads section.

None of them knew what MOD did so I set the groups a challenge, giving them e.g. 10 MOD 3 = 1 on the board and then giving them a few minutes to tell me what MOD did. Then I gave them 20 MOD 6 = 2 and a few more minutes. Then 7 MOD 4 = 3 and so on. One group got it after 4 sums were on the board and then a few more got it after a few more sums were put up. That was a fun challenge for them.There two competitions now that I will be entering them for this year: this one and this one. With pupils like these, how can they fail.
I have set up an anonymous questionnaire in Moodle for all the pupils to do next week, asking them all about how they feel the course is going, if they are happy, if they feel the teaching is okay, if they think the pace is okay etc. This should be interesting. I also have set the date for the test I've kept promising them for next Friday so that will give them a focus for revision of work they have done. On top of that, they have been asked to download BBC BASIC at home and do a few of the starter chapters.

I want us to play around with BASIC and also PASCAL for a bit, but fully intend to keep the momentum up with Java, as most seem to be really enthusiastically enjoying what they are doing. BBC BASIC looks simple enough for them to work through on their own, with just a bit of help in class from time to time.he next two weeks will be devoted to finishing the piano in chapter 5 and then customing it with their own sounds. I also want to do a few formal exercises on writing simple pseudocode to describe problems and then converting that into solutions in Java. Fortunately, I got my budget recently and ordered half a dozen reference books for Java, so should be able to get lots of ideas.

Tuesday 4 October 2011

Week 5 - Constructors

Generally, a good lesson in the computer suite today. Pupils have started Chapter 5 of the Greenfoot textbook and loved the idea of a piano that can play animal sounds so they all worked very hard on their pianos. We had some fun, with the students coming up and playing the piano on the interactive whiteboard as well, which was amusing.

A few got near the end of their piano, although when they looked at the final version of the piano code in the book-scenarios, they wondered where the FOR loop had come from. Chapter 5 uses a WHILE loop! It was really pleasing to see the first few girls really start to independently hunt for bugs in their code and work together to track down where something has gone wrong. I have got to keep praising this, and fortunately, found a big pile of reward stickers in the bottom of one of my drawers today so will have a praise frenzy in the next lesson.

The introduction of constructors, where you pass parameters when you create a new object, is causing a few problems for some students and they struggled to get to grips with this idea. I guess this must be quite a difficult idea and I don't think I explained it that well so will do a lesson on constructors in the next theory lesson on Friday. I'll also have to go through arrays as well, as I think that students are copying but not really understanding.

I keep promising both classes a test soon. I must get my act together so will put something together for next week.

Friday 30 September 2011

Week 4 - Variables

Another week has gone and time is flying. One class had a Thinking Skills day so missed their time in the computer suite. They should have caught up by next week.

I'm still happy with the progress pupils are making. They were getting their heads around variables this week, and the idea of storing instances of a helper class in a variable. We did some examples of declaring variables and constants and initialisation. We also talked about meaningful names and reserved words in the theory lesson. They are pretty good at doing what is required in the book but still need much more practice in explaining what they are doing using the correct jargon and using examples. I need to work on this!

Before pupils progress onwards to making a playable piano application, I have set them all a challenge: to improve their Crab game in some way or ways. I'll probably give them a few weeks for this as I am keen for them to start doing their own research into how to do things - they have to start somewhere! This is going to require them to find out how to do something on their own, by using the Greenfoot site and having a look at some games others have written and by doing a bit of research on the internet.

I don't think I could want for two better classes of students! Apart from all being nice people, they are so enthusiastic and hard-working. This is helped by the excellent OCR AS Computing course. It doesn't get any better than this course in my opinion, although I did note this week, AQA are developing a GCSE in Programming or some such title. I filled out a question for them and was a) excited to see OO rather than procedural languages being a main area of study and b) dismayed to see the same old boring topics (databases, systems life cycle etc) in there. I hope they don't make a mess of a potentially great course but I don't think this course will be for us - not unless they get rid of the coursework side of things completely. It's not too late to sort it out, AQA!!

Some decisions need to be made with regard to the GCSE ICT course soon. We switched from the OCR to the AQA course recently, which was long overdue, but these controlled assessments are messy to run (and I suspect the same for all exam boards). There's always a few pupils who are off school or doing something else that takes them outside of lessons and trying to keep everyone on track is interesting! I have also already come across being told one thing in an AQA meeting only to find out that actually, they meant the opposite. I'm not a fan of controlled assessments. They are very boring to prepare students for e.g. databases and then getting them to spend their time doing a similar database task. GCSE ICT is not part of my idea of a rounded education. I think we might have to bite the bullet and not offer ICT anymore soon, only Computing - a risky way forward but it must be the best way, surely? 

I have my departmental budget now so spent this afternoon getting a list of programming books in Java together for the school library and have an order ready for a couple of Kinects for the pupils to start using in their programs. The pupils are looking forward to this.

I'm looking forward to next week. If only all courses were like this one!

Saturday 24 September 2011

Week 3 - Errors and layout

This week was another excellent week. Most students are pretty much at the end of Chapter 3 in their textbook, so they have started to use class methods and the IF construct and have been introduced to the documentation side of Greenfoot.

A common theme this week has been getting pupils to spend more time making sure their code has been indented properly, laying it out using spacing and adding comments, as well as using meaningful names for methods. Another point that needed some work was to ensure pupils started taking more note of the error messages they got when compiling their programs and making sure that they noted these and how they dealt with them for the future.

To help reinforce both the above points, I put together a few worksheets (see the Greenfoot downloads section at www.theteacher.info) and we spent some time talking about these issues, looking at some examples and doing some exercises. It will be interesting to see who takes this on board in the next few weeks and who still needs more encouragement.

Both classes are starting to look like real programmers! As a reward, I bought a tin of chocolates for them and they munched their way through them in the computer labs as they worked on their crab games.

I found a nice competition that I want to get them to enter and have asked them to have a look at the web page for it for homework. I explained to them that it is a bit too earlier at the moment to think about writing code but to take note of the competion and start thinking about ideas. I reckon come November or December, this competition might make a good project for them.

I've also started setting up contact lists for the two groups and am working on a Moodle course for them. One thing I am hoping to do pretty soon is to start regular monthly tests, but I really want them done and marked automatically in Moodle and/or Hot Potatoes to keep the workload under control. I'm also keen to do monthly questionnaires with them in Moodle, to get feedback about how they feel they are doing and to start a Moodle Wiki soon, to help develop course notes.

The only other thing on the horizon is the Sixth Form open evening. We didn't get anywhere near enough Sixth Formers opting to take Computing A Level last year so the course didn't run in the Sixth Form, the first time for 10 years. I think we (as well as lots of other schools, judging by the national drop in numbers) put off most students in KS4, where the GCSE ICT coursework has had a lot to answer for (and the new GCSE ICT courses with their pretty awful controlled assessments are just as bad - but that is a whole different blog!!)

The plan is to emphasise the games writing parts of the course to Sixth Formers and to showcase some of the work the new KS4 Computing students have already done. Hopefully, I'll also have an XBox Kinect set-up by then. I want to get some of the pupils programming the Kinect as soon as I get my budget approved and can buy some. Then hopefully, they can showcase what they have done in some assemblies.

Sneaky huh?

Friday 16 September 2011

Week 2 - So far so good ...

Both the classes had a single lesson today, where we practised working out whether quite complex expressions using relational and Boolean operators were true or false. They were also introduced to the idea of programming constructions, and we wrote our first pseudo-code using an IF statement.

All the pupils seem to have really thrown themselves into programming in the first two weeks. If I'm honest, I am quite surprised how easily many of them have got hold of some quite abstract ideas and then applied them in actual programs. There has been a lot of fun had so far and although I'm slightly on the control-freakery side, I'm fairly happy that a lot of constructive work has taken place and the laughing is a by-product of that - I hope I'm right and need to work out how to prove it is! Their homework is to get to page 30 in the Greenfoot book by the start of next week - probably an hour or so's work for most of them over the weekend.

Someone at our school has managed to arrange for a speaker to come in from Warwick University and talk about computers and artifical intelligence in a couple of weeks, so that is something for our students to look forward to.

Note to self: I must start looking for interesting trips we can do. And also programming competitions for students. I asked the students if they had any ideas and most said "ice skating". Mmmm. I'm not sure they all have the right idea, yet.

So all in all, I've gone home pretty happy and am ready to plan next week's work over the weekend.

Wednesday 14 September 2011

Week 2 - Chapters 1 onwards

Had some really excellent lessons this week in the computer lab. We spent 5 minutes going over some of the terms from last week in a round-the-class Q&A session. The pupils seem to know what most terms are but need more practice in clearly explaining them, and using "for example" to get across what they mean. We spent 10 minutes doing some revision on methods, return values and parameters. By jove, they seemed to have got the ideas pretty quickly. Very impressed!

So, they were then asked to open the text book and begin! They had all read chapter 1 for homework so they were asked to work through all the tasks and then press on to the next chapter. Some had reached the beginnings of chapter 3 and random numbers an hour and a half later although a few had had a head start and done quite a few of the tasks in the first few chapters already, which was great to see.

What was particularly good was that some of the pupils were playing around with the code in ways that weren't asked for in the book. For example, some had inserted their own images and backgrounds into the scenarios and a few had worked out how to insert sounds when certain events occured. There was a lot of laughing going on but all focussed on the wacky things they had discovered how to do. Greenfoot seems to be performing really well so far. I was surprised at how little I was needed! I had a few problems with missing closing brackets and had to explain how the random number generator worked but that was about it - I spent most of the lesson dishing out the praise and getting them to look at each other's great work.

By the end of the lesson, there was quite a spread of progress. I think I need to do some tests for each chapter, to ensure that they aren't going too fast and skipping bits out at the expense of learning everything in a chapter. On the other hand, giving them free reign to experiment with Java and have some fun programming, getting them hooked, seems like the right thing to do, before hitting them with too many tests or too much theory!

Tomorrow will be back to Earth - 50 minutes on expressions using relational and Boolean operators and introducing the idea of the selection construct using the IF statement to test expressions.

Monday 12 September 2011

Week 2 - The new Windows MSI

I just logged into the Greenroom and see that they have created a Windows installer file to make Greenfoot installation easier - and it works! I've added this week's theory worksheets to the downloads section on the Greenfoot menu over at theteacher.info.

Sunday 11 September 2011

Week 1 - A history of programming


The course begins! In the first double, books, folders, dividers and paper were handed out and we all got organised. Although we were in the computer suite, I thought we had better put programming and computing in context before starting. I watched the excellent Stanford University Lecture 4 on programming methodology the night before the lesson and then prepared a mini lecture suitable for 14 year olds.

They listened to me summarise 4000 years of computational history in 20 minutes, including a bit about Ada Byron and Charles Babbage, 1971 and the microprocessor and the pace of change from then til now. I also introduced Java and the idea of source code, translation, object code as well as OO, classes and objects. Pupils then did a bit of their own research and answered a few questions.

This all took about an hour. We spent the rest of the lesson opening Greenfoot and playing; creating objects, changing code, compiling code and running it.

For the theory lesson, I introduced classes, objects, inheritance and methods. We looked at some examples of different class diagrams. I even managed to squeeze a bit of kinetic thinking skills activities in, by calling out methods for a pupil class, and they had to do the action, taking note of whether the method returned a value or was void. Homework was to get pupils to read through Chapter 1 in the Greenfoot textbook.

All in all, I'm happy with the start. The only problem was a few pupils hadn't set up Greenfoot at home for one reason or another. One thing I did discover is that there is a Greenfoot version that will run from a USB stick (available from the Greenfoot website) and that helped a few pupils who were having installation problems. Next year, I will make sure part of the options application process involves confirming that a pupil has installed Greenfoot at home and done the 'Getting started' tutorial.

Next week, pupils will start working through the activities in Chapter 1 of the textbook. For the theory lesson, I'll be doing some practice exercises on methods (void, return values, parameters, parameter lists) and introducing datatypes. I also need to set up a VLE course for Greenfoot.