Designing an Accumulating Snapshot with Repeated Groups, need advise
It's not really clear what is asked here but I think your solution is simplest when you have one row per student.  That allows further aggregating later however you want to do it.

So this is a vote for b.