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…


To fork or not to fork: Should there be only one way to share digital resources in a school?

Image by Chris Pluta, CC0

My current school is in the midst of a digital revolution thanks to the 1:1 iPad rollout and Google Apps for Education installation. There are so many options open to staff and students with regards to sharing the digital resources they have curated or created and while this is great for choice and accessibility it can also become a mess of misconceptions, policy conflicts and training needs.

During the pilot with our S3 students I’ve been deliberately hands-off and encouraged experimentation within departments. In January I launched a more formal option (not policy) where teachers were given a structure to work with in Google Drive where they could receive or view work created by students in their class. I’ve received very few comments at all about it but know that more and more subject areas are using Google Drive for sharing resources and receiving student work back. Other options are still being used (and I think it is important to allow this to continue) but I want to provide staff, students and parents with a baseline – a method that can be easily implemented in classrooms but that can also be built upon or adapted with the consensus of individual classes (and by that I mean both students and teachers).

Digital is an abstract medium for many and asking staff or students to suddenly begin to utilise this way of working over and above all others can cause confusion, hit confidence and increase resistance towards future workflow changes. Experimentation followed by discussion on the pros and cons of different systems can help build a more robust workflow that is more immediately useful to a larger number of individuals within the school. I am confident that the discussion to come in the next few weeks will become strong foundations for policy that has been created from the bottom up and is based upon experience rather than sales pitch. However I have a concern that one way of sharing digital resources is not best for all and, very like the variety of subject areas and specialisms in the education system, the standard policy will need to be forked (to use GitHub terminology) to suit other areas.

Perhaps using GitHub is a way forward for school or educational authority policies? The system offers clarity, accountability, accessibility and flexibility. I’d be interested to hear if other schools are allowing departments to remix standard policies (with permission of course) to best suit the educational needs of the student and – like Christopher Ritter – use a service like GitHub to record and approve the changes.