There are some obvious ways to assess Scratch programs. One of these is to grade a project or give a test which asks to match Scratch code with the result. These methods are great, but there are some big problems with them.
Problems faced when assessing Scratch:
- It’s tough to assess 30 items of work and give feedback
- You can’t give lots of formative feedback to 30 students, so end up with your time coopted by just a few students
- If you give a grade that tends to stop the learning and prevent students progressing
- Low grades demotivate students
The ideal method of assessment would, therefore:
- Assess the work often
- Give immediate feedback
- Show students how they can improve their work
- Motivate students to progress
The solution to this problem is Dr.Scratch. I first saw this software/website being shown by the creators at the WiPSCE 2015 conference hosted by King’s College London and Sue Sentance. I can assure you that the people who made it are really nice and letting schools use it for free. In fact, they will even take feedback to make it even better.
How it works
To see how powerful this is, let us look at the development of a simple program to draw a square. All of the programs that follow give the same output:
This is the simplest code for a child to achieve a square. It shouldn’t get a high mark though. A change in the size of the square means lots of changes to the code and chances to make bugs.
Quite rightly, the code gets a score of only 3/21. Most importantly, it shows areas where the program could be improved. Many of these aren’t relevant to this program, but there are certainly ways in which we can improve the programs flow control, data representation and abstraction.
By using repetition, we no longer repeat the same lines of code again and again. This is great for making the code more readable, easier to fix, and reduce potential bugs in the future. The beauty of Dr Scratch is that is has increased the score AND shown that my flow control skills have improved.
We haven’t used any variables. This is bad, as we want to try and generalise the algorithm as much as possible. The above algorithm will only work for a square that is 100 wide. What about polygons or bigger squares – this algorithm just can’t do them. With variables though, we can adapt the code to draw polygons of any size – just by changing the variable number… And Dr.Scratch gives us another point in the data representation category.
We have a good algorithm now, but we’ve made everything very confusing in the program – in fact, it’s harder to understand than the original was. That’s where abstraction comes in. We want to look at what is the abstract features here and ignore everything else. If we think about what we want as a human we will get pretty close. We abstract the square to two things:
- Square shape
- Square length
So now we build a new block (this is actually a procedure/method) called square which takes a length as a parameter. We use that length in the algorithm. Now our 4th attempt is incredibly easy. The program on the left is what we wanted to do – put the pen down and draw a square of length 100. Yes we had to tell the computer the algorithm to solve that problem, but now we have done it, how easy is it to draw squares of any size at any point we need to in our program. Also, how easy will it be to read the code. Finally, if there is a mistake in the algorithm, then fixing it once in the one block will fix it everywhere in the program… and Dr.Scratch thinks that if the method used to draw a square follows good programming principles, you deserve far more marks than one which doesn’t – which is why Dr.Scratch is a great addition to Scratch assessment.
Some points to help with Scratch
- You need Scratch 2 to make new blocks
- Test Dr.Scratch – it may not work with all versions of Scratch
- Notice that the length parameter in the square block is different to a normal variable. You can drag it from the block rather than the variables on the left
Some points to help with teaching
- You may want students to print their Dr Scratch result with their program and put into books/folders/electronic evidence
- Do this half way through the project, then at the end to record formal evidence
- Students can then use the program throughout their projects to improve their programs
- Be aware – you can game the system by just putting in pointless blocks/features – you want to take a mark off for each pointless bit of code you find that does this
- My experience is that students used the score as a motivator to do better – and you can make this score part of an overall mark for a project
Dr.Scratch gets a big thumbs up from me
If you’ve used it in your class, or want to suggest ways to improve the square program (I can think of one), then write a comment below.