EIMACS:
- Took EIMACS test 18, which was on binary and sequential sorts
- I'm finding that the tests put a lot of focus on being able to work through these obscure, pointless algorithms for no clear reason other than to jump through their hoop to get the answer.
- For example:
- What is the value returned by the line newsearch( new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 9 )?
public static int newsearch( int[] a, int t ) { int n = (a.length - 1) / 2; int k = 0; while ( true ) { for ( int j = 0 ; j < a.length ; j += n ) { k++; if ( t == a[ j ] ) { return k; } } n--; } }
- And my approach for solving it:
- What does this even do? Why would you ever want to do this?? They make these complex algorithms for no reason! The only thing they are testing is my patience by making me work through each iteration, not my knowledge of searches.
This is interesting, since you keeping putting me in the position of defending something that I'm not accustomed to defending. I basically agree with you, in that I believe an ideal curriculum would be one in which the ideas discussed and skills learned would be directly related to "real" problems that the learner is engaged in solving. "Real" problems are more interesting, and working on them is more satisfying.
ReplyDeleteMost of our education system is not designed that way, for worse or for better, and we need to operate within the constraints of what we are given, at least regarding those things we don't currently have the power to change.
The reason so many of the problems in a typical CS curriculum seem so contrived is that acquiring the domain knowledge which would be needed to understand "authentic problems" would be prohibitively time consuming.
Let's talk more about his tomorrow. In the mean time, this is an excellent post despite your continued whining ;-)