4

I am planning a course on game development. Currently my main problem is how to design the assignments and grade them in a fair and objective manner. In previous courses I taught (like basic programming or algorithms), I could always design homework assignments that had objectively correct solutions. However, in game development it is important to encourage creativity and imagination. Ideally, I would like to have each team of students work on their own game. But how can I assign grades to such assignments? There is no objectively "good" solution: each game can be fun for some gamers and boring for others.

I could try to assign grades by "effort" or "creativity", but I do not have an objective way to measure them. And if I assign grades by my subjective perception of effort/creativity, this will inevitably lead to complaints by students who believe they made a lot of effort.

For background, the course is intended for third-year undergrads in a computer science department, and it will probably involve programming in Unreal engine and C++. But, I think the question is relevant to any course in which the main goal is to encourage creativity. What is an objective and meaningful way to assign grades in such courses?

NOTE: The question is related to https://cseducators.stackexchange.com/q/3656/1873. However, there the problem is that the students lack motivation or ability. In my case they will (hopefully) have motivation and ability, since it is a choice course taken by advanced students. Still, I will have to assign different grades to different students since I cannot give 100 to everyone..

4
  • 2
    Consider looking at best practices for how writing (especially creative writing) is graded; there may be certain parallels.
    – cag51
    Commented Mar 28, 2019 at 5:19
  • It's not true that game design is subjective. Good game design follows specific principles that can be described in clear form. I am surprised you don't know that as you are teaching the course. Commented Mar 28, 2019 at 6:04
  • 1
    Echoing @cag51, you may want to look at grading criteria in design and art. Commented Mar 28, 2019 at 13:51
  • Don't know how well it would apply to your field, but generally in projects I tell the students in advance how points will be awarded for various components of a project, with some amounts of points devoted to how challenging and novel the problem and approach they choose are. Of course it's still subjective, but easier to come up with (and defend) a number for challenge versus creativity. Commented Mar 28, 2019 at 16:22

2 Answers 2

3

I would think that one technique you might choose to use in this case would be to establish what your learning objectives are for the assignment and then construct a simple rubric for evaluating each project. You will likely have some areas that will be present for each assignment (e.g., documentation, code clarity, compiler warnings, possibly even a baseline score for a runable attempt, etc.). However, you will probably have a few aspects that are required to be present for each assignment (e.g., sprite usage, pathfinding, narrative) which you can then assign points for.

For example you could use something like the following:

Narrative

  • 5 points - had a clear and easily understood narrative
  • 3 points - had a narrative, but some portions were confusing or difficult to pick up on
  • 1 point - an attempt was made at a narrative, but it was generally insufficient
  • 0 points - no attempt at a narrative

Pathfinding

  • 5 points - no (or almost no) issues with pathfinding
  • 3 points - pathfinding mostly working, sometimes units get blocked behind obstacles/jump through obstacles/etc.
  • 1 point - pathfinding is clearly deficient

For project based courses or assignments, I find that a rubric like this will greatly simplify my life when grading and lets me focus on giving constructive feedback over trying to decide if this is an 82% vs 85%.

Alternate approach

I have also had project based courses where the grading was not based on the artifact, but on a report and presentation/demo that the student teams had to submit. I also used rubrics for scoring those, again greatly simplifying the process and letting me focus on feedback over points.

1

If you want a grade as objective as possible you will need multiple sources for rating.

For example :

  • quality of product
  • understanding of their (students) own code
  • documentation

Quality of product

It is possible to objectively grade the quality of written code by comparing it to standard guidelines or relative to other average quality of code delivered by all students.


Understanding of their own code

Grading actual written code can be tricky because one student can copy a good solution from the internet while not understanding it and another student puts hundreds of hours of work into developing his own code which is, because of the lack of experience, not that impressive. So I would let the students present their own product and let them explain certain parts of code.


Documentation

Any work being done needs some kind of documentation and myself as a student hate that. Nevertheless a written documentation of the assignment explaining the goals, challenges, solution, outcome and possible improvements does give a good look into the work a student put into his work.


Personal experience

In my ongoing educational path I had several courses in which the assignment enabled creativity and still I never had the feeling I was graded in an unfair manner.

One of those assignment were the development of a card game in C and another one was to simply do something interesting with a microcontroller (I designed, build and programmed a Joystick. In both of them the grading were done by the professor reviewing the code by himself and the students giving a presentation about the end product. The presentation gave the professor the opportunity to ask specific and complicated question to test whether or not the work was done by the students themselves and how good they actually understand what they've done.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .