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:
- Students should complete some practical work every week. The scope and difficulty of this work should gradually increase over the course of study.
- Each week, the student should present their practical work to a member of staff (either a member of the module staff or a personal tutor) who should date and sign the work. This is not intended to be a marking session (although this may be preferred) but should be primarily used to motivate the student to work consistently and check that the student is completing the work themselves.
- Once a semester, or twice a year, the formative work completed by each student should be collected and marked (summated). Students do not complete extra work for summation, instead every piece of work set is designed to be formative in nature. A percentage of the available marks may be awarded for completing the weekly work on time, as an incentive to consistently practice new programming skills.
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.
Examinations
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:
Python for Rookies A First Course in Programming