As a note - this is the first Tech IQ to get posted. There are some bugs we are still working to fix. For example, the text has been initial cap'd. It shouldn't be. That is being fixed. If you see any other issues with the functionality of this, feel free to chime in.
If you want to create a new Tech IQ, I've created a guideline document that is also rough, but I'll go ahead and attach it.
Aaah - didn't realize there was a thread in the feedback section; I'll just repost what I said back at the original thread in C# forums, and add a few things along the way.
Originally Posted by TheGreatCthulhu
There's an error on the first question - the correct answer is 3 (the one with the static Main()). When an option different than 1 is chosen, the error/info message (wrongly) says that the right answer is 1, but correctly displays the code from the answer 3.
BTW: you can re-do the test by deleting codeguru.com cookies (specifically, the one with the name "b2b_techIQ_CSharpBeginning").
A comment on Q6 - aside from the spelling error in one of the options, there's something else to it, that could perhaps be incorporated into the error message response. The original requirement was that this would be a basic C# test, something for C# beginners. Now, granted, beginners probably won't get all he answers right, but this is not a bad thing, because the error messages can be used to clarify some rather important and fundamental information. So, I think that the wrong answer responses deserve more work.
Now, specifically about Q6; of the answers offered, the "Class fields and properties are used to represent state, while methods implement behaviors." is the most accurate, but there is a catch. Properties are just syntactic sugar for the get/set methods (mutator methods), so technically, they can be considered behaviors as well. However, I wouldn't expect a C# rookie to know this, or understand why get/set methods are used in OOP. Furthermore, it seems that this is made worse by teachers, who fail to explain this, and how properties and backing fields relate, and simply use auto properties (with implicit backing fields - which means that to a beginner, properties appear no different than a class member variable... In fact, when they encounter properties in their true form for the first time, backing fields appear redundant to them - and there have been questions about that on the forums). So, this is what I had in mind when I proposed the question (and answers).
Also, a minor annoyance: when the text of an option wraps around to the next line, and comes directly under the radio button, the button becomes somewhat harder to check (at least in Firefox - the bottom half of the radio button becomes unclickable, and my browser selects text instead - I suppose this can be fixed with some CSS magic).
@dglienna: What about Q9? Maybe it could be phrased better? The idea is, since practically everything in C# is an object, to communicate that, in OOP, objects are primarily meant to interact by calling public methods on each other (and from this basis more complex and indirect scenarios may arise).