As a preface, I should say that there are a few 400-level courses that often do not post sample exams or questions. In case you're wondering why, the mindset is this:
Probably by far, this is the major reason NOT to give out questions. Students will gear their study to those questions only, and ignore the rest of the course.
Yeah, this is another big reason too. By and large, people (outside of Meesh) don't like having to generate new questions every semester. For some courses, writing good exam questions is very difficult (algorithms, for example). Recycling questions is something people like to do.
Well, it's not zero work =). Don't underestimate how "lazy" people are. Just as you may not want to come up with your own review questions, not every one wants to sit and write up review questiosn for a few hours.
Why point this out? You may find yourself taking a course without sample exams. You may have to generate your own review. This is a useful skill to pick up. It forces you to distill the material in the course, and then decide what might be useful questions. You're forced to think up answers too. Again, this isn't something many students like to do, but it's a useful skill to try to build up to.
At this point, I'll say why it's useful to give out review questions to students. The goal is to get you to learn as much material as I can, that can fit reasonably in a semester. The more you have an idea of what's on the exam, the more you will presumably prepare.
Ideally, this preparation should be occurring all the time. Reality says students choose to prepare close to the exam because of human nature to avoid "pain" as much as possible (thus, procrastination). This nature clearly extends to teachers as well (since we procrastinate too). Nevertheless, material is always being presented each week, and your ability to keep up with it is something you really should make an effort.
For example, it seems like too many students choose not to read their notes, despite numerous requests from me to do so. In your heart, you know that reading your notes and keeping up is the right way to be in school. You know you will learn that much more, will retain the information that much longer, and understand the material that much deeper, if you keep up on a regular basis. Yet, for many, time and again, you don't do this.
If you want a midsemester resolution, tell yourself that you will make an effort to meet with a study group and go over the material in class each week. You'd be surprised. Two to three hours a week outside of class will do a lot, than cramming in the few days before the exam. You know you should, so do it.
OK, off my soapbox. Let's get to the format of the exam.
The first three parts usually make up about 100-110 points out of a 140 point exam. The last part is about 30-40 points.
Some students will only manage to complete the first 3 parts, and not be able to complete the rest of the exam. The exam is usually on the long side. Partial credit will be given. So, you might favor some incomplete answers if you get a sketch of the basic idea correct.
The "Challenge" section has challenging questions. They can be much tougher than the average question. However, points are points, whether they come from the easier section or the challenge section. Occasionally, a challenge question will be easy, so it's worth reading them over quickly to see if any of them look easy to you.
The test is usually curved. I tend to rank you relative to the entire class. Historically, a C is about 70/140. That's only 50%. However, since it's curved, it may not always work out to be 70. Clearly, I prefer students to be in the 80-90 range minimum.
Usually, you need to average over 100 for an A. That leaves a very large A range (from 100-140).
We'll return exams after Spring Break.
The "state your assumptions" is something that questions might state. If your assumptions are reasonable, then I will accept your answer. This is a very Meesh-like statement. The reason for "stating your assumptions" is to make you think "what am I assuming?
Too often, students taking exams don't realize they're making assumptions and that these assumptions might be incorrect. If you realize that you are making assumptions, you can often see what errors you make.
In this question, you'd be expected to state an assumption about the representation system used. For example 2C, UB. Usually, most students pick the simplest representation scheme.
Basics of how languages represent numbers.
It's not hard to generate many problems of this format.
Just the inverse problem from the previous problem. It's not too hard to come up with lots of these questions
Do you know the easy way to convert hex to binary? Octal to binary?
Straight-forward question. The only "tricky" part is whether you place the subscript of the bits correctly. I want to know that you know it's 1 sign bit, 8 exponent bits, and 23 fraction bits.
Straight-forward question.
Trying to see if you can describe in words or technical terms NaN or any other representation
Can you recognize denormalized numbers? Can you convert to denormalized form? I like asking questions about denormalized numbers.
Do you know how to count significant bits?
Basic facts about IEEE 754
Basic facts about IEEE 754
Do you know how to write significant bits?
Do you know what little vs. big endian mean? Do you know how to convert hex to binary?
Do you know what common terms M, K, G, T refer to?
Do you know what happens when you type into a file using a standard editor?
A thought question.
A thought question.
A thought question.
A thought question.
For files you've written in a text editor, your output matches xxd's output. For files like a.out, your hexdump produces strange output that doesn't match xxd's output. Based on information in the previous paragraph, what did you do wrong?
This really came up during the project.
This was on last semester's final.
This was on last semester's final---I think. It's somewhat more challenging that you might expect.
Starting to be a tough question.
Do you understand casting? Drool Kitty makes appearances in exams, often asking tough questions.
Use this instruction (and additional instructions) to load the following 32 bit value 0xcafebabe. Assume that you can write immediate values in hex.
Do you really understand endianness?
Thought question. Often I'm interested in your ability to explain clearly. This can be more important than getting a correct anwer.
The book has several pseudo-instructions. It's a good way to show that you understand basic MIPS. Pseudo-instructions are usually available to the assembly language programmer for convenience. The assembler converts them to one or more real MIPS instructions.