I got this right, but ended up having to invent notation to keep track of the indirection in the last segment. I think it’s likely a decent test of whether you’re likely to quickly pick up an intuitive head for pointer math and a very basic variable name-value distinction, but it won’t capture other forms of abstraction that’re necessary for programming: loops, types, conditional branching, Boolean logic. You could probably get away with dropping conditionals (I get the impression they’re fairly intuitive), but I’ve had trouble teaching the others in the past.
Has a bit of an old-school feel to it, too; I’d expect the results to correlate better with talent for C than they would with, say, Python.
I didn’t. Instead, I just kept taking the least-condition-laden part of the instruction, replacing it with a number, and repeating the operation on the newly simplified sentence.
I got this right, but ended up having to invent notation to keep track of the indirection in the last segment. I think it’s likely a decent test of whether you’re likely to quickly pick up an intuitive head for pointer math and a very basic variable name-value distinction, but it won’t capture other forms of abstraction that’re necessary for programming: loops, types, conditional branching, Boolean logic. You could probably get away with dropping conditionals (I get the impression they’re fairly intuitive), but I’ve had trouble teaching the others in the past.
Has a bit of an old-school feel to it, too; I’d expect the results to correlate better with talent for C than they would with, say, Python.
This is also the case for myself. I would be very impressed by anyone who did not have to do this.
The trick is to evaluate right to left.
I opted for doing this and also checking the answer once, as opposed to using notation.
I didn’t. Instead, I just kept taking the least-condition-laden part of the instruction, replacing it with a number, and repeating the operation on the newly simplified sentence.
Ditto.
I didn’t invent notation, but I did write
number whose number [redacted] box whose number = [redacted]
so that I could keep track as I worked from bottom to top.