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…


Using Book Creator To Create Augmented Textbooks

Since starting my new role as Director of IT Systems and Computer Science in August I’ve been planning how to enhance the resources students have access to in the classroom. I use a blended learning model which mixes “traditional” lessons with pre-reading/watching/listening tasks for homework followed by practical application of the concepts covered when the students return to class.


Why the textbook was required

Put simply, there were no suitable resources for teaching the AS students the basics of computer programming. It is important that students make the link between pseudocode (not exactly program code, but close enough to see the logic of a solution) and the Python 3.x language the students use in class. So I decided to have screenshots of the Python code (I use Pythonista 3, which is still the best programming app out there for iPad) on each page next to a video where I write out the related pseudocode. The students responding positively to this method so I kept the style and layout of each page consistent.

Why I decided to use Book Creator

I decided to use Book Creator as a means of creating my AS Computer Science programming textbook because

  1. I was lucky enough to have access to an iPad (although there is a web version available)
  2. I wanted to embed videos but didn’t want to explore the myriad possibilities of iBooks Author
  3. I wanted to output an ePub version as well as a PDF for students.

Issues encountered

As my classroom is essentially BYOD I published the first few version of the book to our shared Google Drive as ePub and PDF versions. This was when a student kindly pointed out the videos didn’t work in PDF, so I added a link to a YouTube playlist of videos to each page.

The ePub was also difficult for students to access unless they had an iPad or device with a good ePub reader installed. I then remembered about Book Creator’s Teacher account which allows you to publish up to 10 books on their site. This allowed me to share a link to the online book and ensure that the students get the intended experience.

What next?

The students are moving onto more complex programming concepts this term so I’ve already begun creating a second textbook. I would also like to inspire my students to create their own Book Creator programming portfolios which contain images, text, audio and video to help them revise for the AS and A2 exams in the future. I was really impressed with the ease of use of Book Creator and once I had come up with a simple consistent layout and worked out what was possible with the app it was very straightforward to create the book over a number of weeks. I think I prefer the iPad app to the website at the moment because I got more done on trains and planes (without access to WiFi) than when I was in the classroom.


The textbook is embedded below. Any comments on any aspect of the book would be gratefully appreciated.

You can also find out more about Book Creator’s resources for teachers here.