Assessment Advice and Materials

This page gives suggestions and example materials for assessment activities on modules following the material in Python for Rookies.

Coursework and continuous assessment

When we first began writing Python For Rookies, James and Sarah were teaching around two hundred students, from a variety of different courses how to program with Python. These modules followed a pattern of study and assessment developed in the Department of Creative Computing. This pattern proved to work extremely well for fundamental programming and the following gives an overview of our adapted strategy:

The formative work that we have set students is roughly the equivalent of five to eight of the Programming Exercises contained at the end of each chapter of Python For Rookies. We recommend that teachers adopt this strategy and choose a suitable sample of the Programming Exercises for each class. If longer or more difficult exercises are required (either for modal formative work or separate summative work) then the end of chapter Challenges can be used.


In general, we do not think it is wise to assess introductory programming with an examination. The place of introductory programming in a three or four year curriculum is largely to build a solid foundation of fundamental programming principals and concepts. These principles are likely to be covered in more depth and breadth in later parts of the course. Depending on the award title that might mean covering different sorts of programming technology and applications, or it might mean covering more theoretical aspects of language design and compiler construction. Either way, students primarily need as much practice as possible in fundamental concepts such as choice, recursion, iteration, types, object-orientation, linear and non-linear data structures, and so on. Examinations are purely summative and do not give the student clear formative feedback on their work and so do not help the student in learning core skills covered at Level 1.

However, on some courses, for a variety of reasons, examinations may have to be set. In this case, we suggest that the exam should be as formative as possible. It should cover fundamental principals of programming that will be transferable to other parts of the curriculum and students should be asked about practical aspects of designing algorithms and writing code.

The following example paper follows our philosophy:

Please email us with your comments about this book.