I noticed when studying for DSA that the past papers were characterised by definitions of vague concepts ("What is a subtree?"), and downright petty questions that, frankly, angried up my blood. Mostly they went along the lines of, "Why wouldn't you want to be involved with an algorithm that, it is claimed, can sort a list/find the maximum of a list/find the cardinality of a list in O(root n) time?" As far as we know, that's not possible. But if somebody showed me an algorithm that did this, I'd do anything to get my name on the patent.
As it turned out, however, this year's paper was unusually charitable. There were lots of marks available for unsurprising type definitions, and a straight-from-the-book linked list append procedure for a good few marks. The obligatory inorder traversal was there (Milton's poetry this time (lines 58-9)), though I was disappointed that it didn't turn out to be a full game of Mornington Crescent, as last year.
My reservations about the paper are few. The programming question (1(f)), where a sentence had to be read in, and all extraneous whitespace discarded, seemed somewhat unwieldy. For the life of me, I could not figure out how the given procedure GetNext() worked. If it only returned non-blank characters, and all reading could be done with it, how would the spaces be appended to the sentence?
My only other qualm was the running together of many disparate questions into a single entity. I believe there was a seven-mark question that asked at least six different questions; and was, as a consequence, rather difficult to read.
But these are petty differences! The exam was a lot better than it could have been, and for that, we can be thankful.