Live data from Hacker News

Should CS students be graded on performance?

sbcoded.com

31–35 of 35 posts

Re: Should CS students be graded on performance?

#31
Define performance. The question is ill formed since there is nothing specified to measure. The example wonders who should get the better grade based upon design decisions each of which are defensible in some context. And it's the asymptotic and/or typical behavior that is touted, not the implementation.

At a most elemental level, a program written by a CS student should work, that is, do what it is supposed to do for all legal inputs and provide meaningful diagnostics when it fails. That's hard, but that is the nature of programming.

Finding and choosing algorithms to accomplish a task (well defined or not) is also computer science. That is algorithmics and design. Doing a good job here is harder to measure and depends both a deep understanding of the available building blocks and the problem at hand. Moreover, trade-offs are involved and need to be resolved even though there is little real data to guide decisions. Seeing and exploiting invariant properties of the problem often enables better performance in some dimension; insight there is often called cleverness.

Equally important is the ability to see complex things in a simplified way by introducing abstractions. That's the only way to solve difficult, complex problems, and it is exceptionally difficult to codify.

Re: Should CS students be graded on performance?

#32
I had a CS Professor who was convinced that he had cheaters in the class(1), so he decided we should all be graded on performance of our programs. This resulted in a lot of stress for a lot of students (C code only, most students taught only Pascal/Modula-2) and some seriously nasty things done in the programs. I rate it a big fail for what we were doing.

I can actually kind of see this for embedded / small device programming. Embedded systems that can't meet their performance goals are useless and buying faster hardware is very costly option.

(1) he also believed not one of us submitted a C program to print "Hello, World!" that worked. It was a 8AM class and I had just driven 120miles (home visiting) through a blizzard to make it to class when he announced this fact in a dramatic fashion. I required calming down.

Re: Should CS students be graded on performance?

#33
post #21

Earlier quoted context omitted.

But this optimisation is applied many times: it is the leaf case of such qsort algorithms. So it affects the constant scaling factor at all n s, not just for small n s.

I thought I was being totally clear, but seeing your comment and its upvotes, apparently not. What exactly did your "but" refer to? I think we're in complete agreement... (I was trying to say: here's an example where properly using a fast-for-few-elements "toy" algorithm can improve real-world performance on a "serious" problem like sorting a big chunk of data. So big-O is not everything.)

The point is that this improvement doesn't deliver a speed up that is significant only for small n, but a speed up everywhere.

I agree that fast on small n does matter, it's just that this isn't an example.

Re: Should CS students be graded on performance?

#34
post #33

Earlier quoted context omitted.

I thought I was being totally clear, but seeing your comment and its upvotes, apparently not. What exactly did your "but" refer to? I think we're in complete agreement... (I was trying to say: here's an example where properly using a fast-for-few-elements "toy" algorithm can improve real-world performance on a "serious" problem like sorting a big chunk of data. So big-O is not everything.)

The point is that this improvement doesn't deliver a speed up that is significant only for small n, but a speed up everywhere. I agree that fast on small n does matter, it's just that this isn't an example.

Thanks for clarifying! (Still, you get a global speedup because the "inner" algorithm is fast for small n.)

Re: Should CS students be graded on performance?

#35

I had a CS Professor who was convinced that he had cheaters in the class(1), so he decided we should all be graded on performance of our programs. This resulted in a lot of stress for a lot of students (C code only, most students taught only Pascal/Modula-2) and some seriously nasty things done in the programs. I rate it a big fail for what we were doing. I can actually kind of see this for embedded / small device pr…

How would grading on performance discourage cheating?
Post reply on HN