Time begins when you click here to proceed to the actual final.
This exam is due Friday, December 14, at 4:00 AM. You will need to submit two different items for this exam; please read the notes below for details.
The time limit on this exam is six hours. We think that it will take less time than this to complete, but we don't want you to feel rushed.
You are permitted to write the exam in more than one sitting (e.g. two hours for problem 1 on one day, four hours for the rest of the exam the next day) with two restrictions. First, you have to keep track of the total time spent and not go over the time limit. Second, you may not consult any CS1-related material or Scheme-related material between the time you start the exam and the time you finish (except for material that is expressly permitted as described below).
If you do go over the time limit, it's permitted to keep on writing until you finish the exam as long as you state exactly where the time limit expired (e.g. by drawing a line and writing "this is where the time limit expired"). We may give partial credit to work done after the time limit.
There is no collaboration on this exam. Show us what you know. Do not discuss the exam with anyone before the final due date for it, even if you have turned in your answers already.
If you have questions about any problem (e.g. you aren't sure exactly what the question is asking you to do), you may turn off your stopwatch and email any of the instructors (Mike, Donnie, Joseph) with your questions. We will try to respond as quickly as possible. We will also try to have the CS lab staffed all week, so you can ask a TA for clarifications of the exam questions if they are on duty. Of course, you can't ask them to help you solve the problem.
This is a no-reference exam, with these exceptions:
You may consult your lab submissions or a copy of them, as well as any responses from your TA to those submissions, during this exam.
You may consult the PDF versions of the CS 1 lectures. However, do not print out the lectures on the CS cluster printer (in Jorgensen room 154) unless you have already done so. You can print them out on a different printer (e.g. your own, or your undergrad house's) if you want.
You may consult the textbook (SICP, available online here), in either online or print editions. You are not allowed to print out portions of the book on the CS cluster printer.
You may consult the Scheme standard, located here, if you want to check on the definition of any Scheme procedure. Be careful about this, though; you don't want to spend your exam time browsing through a lot of reference material (use the index!).
This is a closed-interpreter exam. You may not use DrScheme or any other Scheme interpreter.
There are two kinds of answers to this exam: environment diagrams, and everything else. You must submit the environment diagrams as physical (actual paper!) drawings or print-outs on standard 8.5x11 white typing paper. You must submit the "everything else" electronically to cs1man as assignment final.
For the "everything else", Here is how your exam should be formatted. Note that we will deduct a significant proportion of your midterm grade (up to 1/4 of the total grade) if you violate any of these rules. If you have any questions about these rules, contact us before starting the exam and we'll clarify them.
Type up your exam in any plain text editor of your choice.
We recommend that you use an editor like emacs that can
match parentheses, but you can use vi, pico, or
any other editor that can save text in plain text format.
You are not allowed to use DrScheme to write your exam, even if you just intend to use it as a text editor. Therefore, you might want to spend a little time before you start the exam getting familiar with another text editor (if you haven't done so already).
Your exam should all be in a single plain text file called
"final.txt" (that exact name; not
"cs1final", "final", "myfinal" or
anything else). You should write your full name and your CS cluster
login name in the first couple of lines of the file.
Do not submit code in non-plaintext form; Microsoft Word documents and PDFs are examples of non-plaintext formats. Again, Microsoft Word documents and PDFs are not acceptable submission formats! If you do not know what format your editor saves its files in, you should ask someone more knowledgeable (like your TA) to help you.
Make sure that all of the lines in your final file have no more than 80 characters in a line. Most text editors will show you what column you're on as you're editing, so this will help you keep the line lengths to a maximum of 80 characters.
However, be careful! We had a number of midterm exams which had
lines that were several hundred characters long, and they lost marks for
this. Just because it looks OK in your editor doesn't mean that there
are real line breaks where you see them. The best approach is to
transfer the file to your CS cluster account and type "more
final.txt" at the terminal prompt ("more" is just a
program which will display your file to the terminal a screen at a time).
If it looks like it the lines are wrapping, there's a problem and you may
have to enter the line breaks manually.
If you write the exam on a Mac OS X computer, you should know that the end-of-line characters on the Mac are different from those on Linux. We are aware of this and we can compensate for it, so we won't take marks off for this. However, if you use a Mac and want to fix your file so it looks right on Linux you can type this at the terminal prompt:
% tr '\015' '\012' < final.txt > final.txt.fixed % mv final.txt.fixed final.txt
Type that in _exactly_ or it won't work. The "%" is just
the terminal prompt, so don't type that, of course.
For the environment diagrams, you are welcome to use a software diagramming tool like xfig or dia, but you are also permitted to draw them by hand. Either way, please submit a physical, paper copy of your diagrams. Guidelines for physical submissions:
Draw or print your diagrams on standard 8.5x11 white paper sheets. This makes it easier for us to sort, stack, and grade your work. (Do not use graph paper, notebook paper, etc.)
If you draw your diagrams by hand, it is very important that you make an attempt to draw and write legibly. If we cannot read your diagram, we won't grade it. Also, be sure to label each diagram with the appropriate problem number and/or sub-part.
If you print your work, please verify that the entire diagram printed to your satisfaction. (You'd be surprised how many people turn in incomplete diagrams!)
There is no need to submit any electronic versions of your diagrams, so please don't try to do this.
Most importantly: please clearly print your full name and your CS cluster username on the top of each sheet of your submission! Every year, a few students submit a good environment diagram submission without giving their name, and so they get no credit for that section. Don't let this be you!
Please staple all of your sheets together and turn them in to the clearly-marked box on the table near our offices in the lab. (JRG 154). There is a stapler in JRG 154 that you can use; we'll keep it well-stocked with staples. Don't use paper clips, or fold over a corner and hope the sheets stay together; they won't.
Did you read the part above where we said to please clearly print your full name and your CS cluster username on the top of each sheet of your environment diagram submission? If not, you have now.
The exam will receive a score between 0.0 and 18.0 based on your performance across all of the problems.