top of page
Nichola Lacey

The new easy way to consistently assess students' programs



Assessing students' mastery of programming concepts in computer science can be tricky. This is especially when evaluating the smaller, practise-oriented programming tasks that students complete during the learning phase. These challenges, though often overlooked, are crucial in embedding new skills and giving students the necessary practice to develop their programming abilities.


But do these smaller programs need to be formally assessed? I believe they do - at least some of them. Formal assessment provides students with valuable feedback on their progress, helps identify gaps in their understanding and acknowledges their efforts, which can be motivating.


When students first learn programming, they may not complete a larger project for many lessons and need feedback on their progress right from the start.


The challenge of consistently assessing programs

Assessing these smaller programs consistently and efficiently is often difficult. Each student's program is unique and there’s no standard grading method.


Another hurdle is the time it takes to mark the programs. Typically, teachers are faced with two options:

  1. Mark the programs during the lesson.

  2. Mark them after the lesson.


Marking during the lesson is time-consuming, with students potentially waiting a long time for their work to be reviewed. Marking after the lesson means either having students submit their work, which can be a logistical hassle, or requiring the teacher to individually assess each students’ saved work - a task that can be both time-consuming and frustrating.

Computing teacher

Introducing the 123 method

To address these challenges, I developed the 123 method. This approach is designed to be:

  • Consistently applicable, regardless of the program's content.

  • Quick to implement, minimising the time spent on marking.

  • Easy for students to understand.

  • Effective in tracking student progress over time.


The 123 method relies on having a clear lesson objective. For example, in an introductory lesson on selection the objective might be: "I can create a program that displays different outputs based on user input."


The method only works if you are aware of the previous knowledge your students should have acquired. This selection lesson assumes they are already proficient in certain foundational skills such as using input() and print(), creating user-friendly prompts, using variables and converting data types.


Peer assessment and efficiency

One of the key features of the 123 method is peer assessment. Not only does this save teachers significant time, but it also provides students with a valuable opportunity to learn by evaluating others' work.

Peer evaluations

Applying the 123 method

In each lesson, only one task is formally assessed and graded, while other activities receive verbal feedback or merits.


Students are given one main task and a few extension tasks for early finishers, but only the main task is assessed. Once a student completes their main task, they raise their hand for a quick check from the teacher, who verifies that the program works without delving into the code. If the program works, the student receives a merit and can move onto the extension tasks. This keeps all students actively engaged for as much of the lesson as possible. They can also get further merits for doing the extension tasks which helps motivate those pupils who find programming easier than others and promotes a competitive element that students enjoy.


After the activity is completed, I display possible solutions to all three tasks and we talk through them together. Pupils know these are only suggested answers and alternatives are also acceptable.


And then peer assessment begins. Students swap computers and evaluate their peers' main program based on a simple, clear rubric:

0: No attempt or minimal code.

1: Basic programming elements they are familiar with from previous lessons are correctly implemented.

2: The main lesson focus is correctly coded.

3: The entire program works correctly and meets the task's requirements.


First of all, students look at their partner’s programming code (but don’t run it) and answer clear questions. In our selection lesson they are:

  1. Does the program ask the user to input data into the program?

  2. Is the data stored as a number?

  3. Have they used suitable prompts to make the program user-friendly?


If they can answer yes to all three questions, they score 1. As you can see all these questions are based on skills that pupils should have from their previous knowledge and have nothing to do with the main focus of this lesson.


I don’t actually give a criteria for 0 marks because if they do not score 1 then they automatically get 0.


Pupils are then told the criteria for 2 marks.

  1. Have they used an if statement with a condition?

  2. Is the condition correct?

  3. Have they used an else statement?


If they can answer yes to all three of these questions, they score an overall score of 2. This score is awarded for the focus of this lesson, even if the program doesn’t work.


And finally, the criteria for mark 3. Now pupils run the main program to see if it works correctly.

  • If the main program works correctly, they score an overall score of 3.

  • If they have only attempted the main program and it does not work or produces an error message, they do not score 3, even if they attempted the extension programs.


This score is only awarded if the main program is working.


This peer-assessment process is efficient, taking just a few minutes, and it provides a clear, consistent grade for each student. If there are any disagreements, I can easily resolve them by applying the same criteria.

Happy computer science teacher

Using this method I can also see progress over time. For instance, if a student who struggled with the basics early on is now consistently scoring 1 or 2 for later programs, this shows me they have now mastered those early skills which is to be celebrated.


Not only do I get an easy, consistent grade system I can use every time, but pupils get the benefit of seeing how others have approached the same problem.


Conclusion

The 123 method offers a simple, efficient and effective way to assess small programming tasks in the classroom. By focusing on the lesson objective and leveraging peer assessment, this method saves time while providing students with meaningful feedback. It’s a straightforward approach that ensures consistency in grading and helps students understand the different ways a problem can be solved.

Comments


bottom of page