Python Programming Challenges and open book assessments

Given that it is Computer Science in Education week and the last few weeks of term I wanted to wrap up my practical programming lessons for the term with some Python programming challenges.

Why programming challenges?

In the past I’ve used these successfully with lower age groups. In my opinion it helps to validate the work all students have completed during the term, gives every student an idea of where they should be competence wise, but also allows me to stretch some of those more comfortable with the Python language.

My students will be sitting CIE 9608 Computer Science exams in May/June where their ability to create or understand pseudocode or actual code will be very important. I don’t want to concentrate purely on their ability to regurgitate past paper answers and internal assessment don’t need to closely follow what is to come in the final exam (although I do have three elements to my internal assesssments and one of these is structured around the theory exams), so I’ve made this section entirely practical and open book.

Why let the students use their notes during challenges and assessments?

It’s all about building confidence. If I see a student completing a challenge and staring at a blank screen I can intervene and support them. If I see a student staring at a blank space where their program code should be during an exam I will have failed them as a teacher. Letting students use a computer also opens up the opportunity to use the Internet to help them research their response.

As well as building confidene I want them to be under a little bit of time pressure, allowing them to decide on the strategy for completing the problem. I’ve made the challenge too difficult to Google but broken down into steps so that they can identify practice programs which might help them come up with a solution.

I also make it clear there is no single correct solution and this matches the life of a software developer in the real world. So far student have come up with amazingly diverse ways of solving the same challenge.

What about administration of these challenges?

Collecting and providing feedback on these challenges is pretty easy now they are all set up with GitHub accounts. Students have become adept at pushing code to their repositories and I was amazed at how confident they were using it this week compared to just over two months ago.

I’ve attached my most recent challenge. Have a go or share it with your class… and let me know if you upload your solution to GitHub…


Do not disrupt: thoughts on invisible technology

I’ve just come back from a two-week holiday in Slovenia. It was my first time there and I highly recommend a visit – we were based at Lake Bled but had the benefit of a hire car for four days midway through the fortnight which allowed us to tackle the Vršič Pass (and get lost on a one mile “easy” walk as advertised by our error-strewn Sunflower walking guide), take in the sights of Ljubljana’s Old Town (although I’m sad I didn’t have enough time to get to Metelkovo mestro as taunting snippets of its graffiti were in every guide book, calendar and even merchandise. Take a look at the video embedded in Piran Cafe’s Ljubljana Graffiti Tour if you are wondering what I’m on about) and have our plans to drive to Lipica and Trieste thwarted by thunderstorms. We struck lucky by staying at one of the most kid friendly hotels I’ve ever experienced, the Hotel Savica, and as a result every single member of the family returned home in great spirits (despite 7 different modes of transport between our hotel and house!).

Here’s a great on-board video of the Vršič Pass to give you an idea of how twisty-turny the route is. I loved it (and drove most of it in 1st  and 2nd gear).

Of course I took the old iPod Touch 2G with me. I still love its portability and even though it is showing its age now (stuck on/off button, can’t upgrade past 4.2.1 iOS) it was a godsend during the holiday for route planning, weather forecasts, translation, news and social media. My PLN were fantastic in suggesting things to see and do while in Slovenia (thanks Freda O’Byrne and @shirlpj) and I was able to keep up with some great education conversations and thoughts. I’d signed up to Doug Belshaw‘s Things I’ve Learned This Week newsletter just before the end of the Scottish school term (I used to love reading his short blog posts on this topic and thought he had simply stopped doing them) and some of the links and ideas he mentioned are now in a nice little “to investigate” list in my iOS Notes app. The iPod also allowed me to keep up to date with the Computing At School group posts which continues to inform my planning for the 2012-13 session and simultaneously marvel at the great work that has been done to reintroduce or refresh Computing Science concepts in the UK and Ireland. I lurk there a lot but intend to get more involved as I get further along the road with a few developments (my Raspberry Pi being one of them!).

Slovenia had a fantastic free wifi network: from hotels, bars, airports and museums let me connect quickly without registration and the bandwidth seemed very generous. The most striking moments of high tech connectivity for me were: being able to access fast broadband at a rustic restaurant in Trenta (a tiny village beyond the aforementioned Vršič Pass) and the FREE public wifi available at Ljubljana airport as we checked in for our return flight. Those responsible for digital infrastructure in the UK could do well to take inspiration from their Slovenian counterparts. It was hassle-free, reliable and meant I could get on with my holiday rather than battling with settings, email confirmations, logins, etc.

Although I used Twitter on a daily basis while on holiday, Facebook was a different matter. Their mobile app, almost universally accepted as being pants, has been long erased from the iPod Touch. I did update my status whilst on holiday to let family and friends know how the holiday was going, but made use of Selective Tweets to cross-post from Twitter to Facebook through use of a ‘#fb’ hashtag. This workflow is simple and reliable and saves me a whole heap of app crashes and mood swings.

Although the percentage of Slovenia’s population who have internet access is much lower than that of the UK, they seem to have the right idea about how it should, or rather should not, disrupt normal everyday life. Because access was simplified, I felt that I used my device more effectively to enhance my holiday experience. I didn’t have to spend an hour after breakfast surfing for information and alienating my family, instead looking for information, news or communications on the go when it was needed. I do realise this is what most people with 3G connections can do already, but they pay through the nose for it.

At my previous school I battled to make use of the wifi network to utilise a class set of iPod Touches. The connection authorisation process was so unwieldy that in the end I was forced to take some staff members out of school to the local library to train them. I understand the desire to lock down access to files and personal information on the school network but when the primary use would be to access the internet I feel it should be as open as possible. The traffic would still be going through the school’s filtering system and logs would still be held on the server so the activity of each device can still be monitored. From a learner’s point of view access is most important and, like the staff who were new to mobile devices and wifi at my previous school, difficulties in this area will reduce their confidence in the technology. However if they can focus on extracting or curating information without disruption…

On the journey home I thought a lot about my own workflows and how they can be refined as I begin my new role as PT of ICT for Learning at my current school. I’ll go into this in the detail it deserves in a future blog post.