Marking Second-Term Programming

This is for my first-year students.  Most of them are British and used to something called A levels, which are two years of special courses and national exams which take place between highschool and university in the UK, and are used to determine qualifications to enter university.

This is a short essay to explain how we mark the second semester of programming. 
Tutors co-marking the first few coursworks together (2015).

The aim of university is to turn you into our peers.  In three or four years, you will be the ones founding companies or working for companies that are building the software systems everyone uses.  If we look at professional systems, it isn't always obvious which ones are best, which is the right or the wrong way to do a particular thing.  Some things of course are absolutely better than others. Other times there are tradeoffs and one system isn't clearly better than another.  Sometimes (this is a point I will return to below) even when there are differences between systems or approaches, they are small enough that the cost of switching to the better approach is higher than the benefit of doing so.

By second semester of programming you are starting to build big enough programs that you are already approaching this uncertainty.  Unlike A levels, there isn't a master mark sheet that tells us exactly how to mark everything you do.  In fact, when I was a tutor myself, I was surprised to find out that as soon as programs were 30 lines long you could already tell if two students "worked together".  There are that many different ways to write a 30 line program.

Programming is a skill and also a creative endeavour.  There are minimum specifications laid out in the coursework assignment, but within those constraints I want you to enjoy yourself, to be creative in how you approach a project.  Also, I don't want to make your marks depend on whether you happened to guess a puzzle that was inside my head.  If you come up with a reasonable interpretation of the spec, then you deserve credit for that.

Giving you useful (including timely) feedback on larger, more complicated programs means that we need lots of labour.  Not every PhD student will mark exactly the same.  This is OK.  We moderate – As the course organiser, I am personally professionally responsible for making sure that there's no significant disadvantage of having one marker or another.  So we make sure that the extremes and the averages look similar, but there will be subtle differences.  This is different from A levels, where the emphasis has to be entirely on making sure that the marks are the same across an entire nation.

You have a right to appeal, of course.  You should check over your coursework.  Aside from quick moderation, we don't carefully double-check marking, so there could be errors – we rely on you to catch these errors.  (This is unlike exams, where you don't get them back, so we have to double-check every single one very carefully.)  But more importantly, if you don't understand why you were marked the way you were, you should ask a tutor in lab.  Because even more important than catching mistakes is making sure that you learn to program.

Learning is by far the main point of university. It is 90% of the point.  We want to teach you, and we want you to go out in the world being excellent, informed professionals.  That makes both you and us look good – you get good jobs, and we get more excellent students who are fun to teach.  That is the primary point of a university education – learning.  However, there is a secondary point, which is that society, particularly industry, expects us to also categorise you and assign you a degree outcome.  I've never known anyone who enjoys this part of teaching.  But it's necessary, or at least it's part of our job.

So it's good, right and natural you should worry about your marks, but you should worry even more about what you are learning.  And now I would like to ask you a favour, that again will help both you and us (particularly the tutors.)  Please remember when you are worrying about the exact variation between markers, that besides learning being the most important thing, what people most look at for your marks is your overall average.  Combining a lot of different marks from courseworks & exams over many units is likely to make small random events unimportant.  This is known as the law of large numbers.  So, for example, 10 points on your first coursework are worth 1.5 percent of your final mark for this course, which since CM10228 is a double unit so worth 0.3% of your first year mark.  Please keep this in mind when you are talking to the tutors (and when you are worrying about your coursework).  It's not that your marks don't matter–they do, they add up–but remember that what matters even more is what you learn.