Exams
Final Exam:
Final Exam Regrade Policy:
If your exam score was added up incorrectly, take it to the instructor and we'll fix it for you. (You can slip it under Marty's office door in CSE 466.)
If you disagree with the grading, such as if you think your solution actually does work, or that your solution is more nearly correct than it was given credit for, the procedure for regrades is the following:
- If your complaint is about the correctness of your solution to a programming question, type in your code and try compiling/running it using the above testing files. Fix any trivial syntax problems. Run it for yourself and see how nearly correct your solution is. We will soon post some resources for testing your answers.
- Submit your exam to the instructor for a regrade. You must include a cover page with a brief written explanation of what specifically you think was misgraded and why. If your complaint is about overly harsh grading on a programming question, you should also email a copy of your typed-in code to Marty so that he can run it to verify its correctness, and/or attach a printout of it being run and its output on the provided testing files that will be posted. We will not accept any exam for a regrade unless it includes this cover page, and we will not re-evaluate grading of the correctess of any programming questions without a typed copy of your solution being emailed by you first.
- Also note: When you submit an exam for a regrade, we will regrade your entire exam. If we notice anywhere that you were mistakenly given too many points, we will also correct this, up to a maximum of -2 for the entire exam. So it is possible (though unlikely) that a regrade request will result in you receiving a slightly lower mark than what you started with.
- All regrade requests (other than simple score addition errors) must be submitted by July 1.
Practice Exams from Past Quarters:
These are meant to give you ideas of problems to practice. Our own final may not match these exactly in terms of the types of questions, number of questions, or difficulty. But it will cover a similar range of topics to these exams. (Thanks to UW instructors Hal Perkins, Dan Grossman, Magdalena Balazinska, and Richard Davis for their work on these exams.)
These practice tests are intended to give you a general idea of the kinds of questions you may see on the real exam. The real exam will have a similar number and general style of questions as the practice tests. However, we do not promise that the real exam will exactly match the practice test in terms of difficulty level or the exact concepts covered. You are responsible for knowing all class material covered in lecture/homework other than topics listed below as excluded.
Topic/Question List:
On our final exam you will be asked questions such as the following:
-
Given a piece of C code that performs manipulations of variables, pointers, strings, etc., determine its output or the state of variables.
-
Write a C function to accomplish a certain task, likely involving the allocation/freeing of memory, strings, bit manipulations, and/or file processing.
-
Given a description of the files in a project, write the rules of a Makefile that will properly manage the compilation of the project.
-
Given a set of commands executed on an SVN repository, describe the state of the files in the repository, whether there will be merge conflicts, any problems with the set of files in the repo, etc.
-
Given a piece of C++ code that manipulates objects, classes, references, streams, etc., determine its output or the state of variables.
-
Write some C++ code related to object-oriented programming. For example, given a C++ class, add a particular method, constructor, operator, etc. to that class.
The following topics are guaranteed NOT to be on the final exam. You should assume that a topic is "fair game" on the midterm unless it is specifically listed below. Please ask the instructor if you're not sure whether you must study a particular topic.
-
Unix/Linux Shell
-
regular expressions
-
macros in the C preprocessor
-
debuggers
-
C++ copy constructors, overloading the = operator, pure virtual functions, abstract classes / interfaces
-
C++ templates, STL, ternary operator, enum
-
ethics/society reading material
Policies:
The exam is open-book (any relevant books you have are allowed), and open-notes. The exam takes place in lecture; you have 110 minutes to complete it. No computing devices are allowed. Unless otherwise specified, questions will be graded purely on whether your commands/code have the correct behavior, not on elegance or style.
Midterm:
Regrade Policy:
If your exam score was added up incorrectly, take it to a TA or the instructor and we'll fix it for you.
If you disagree with the grading, such as if you think your solution actually does work, or that your solution is more nearly correct than it was given credit for, the procedure for regrades is the following:
- If your complaint is about the correctness of your solution to a programming question, type in your code and try compiling/running it. Fix any trivial syntax problems. Run it for yourself and see how nearly correct your solution is. We will soon post some resources for testing your answers.
- Submit your exam to the instructor for a regrade. (Either give it to him in lecture, go to his office hours, or slide it under his office door.) You must include a cover page with a brief written explanation of what specifically you think was misgraded and why. If your complaint is about overly harsh grading on a programming question, you should also email a copy of your typed-in code to Marty so that he can run it to verify its correctness, and/or attach a printout of it being run and its output on the provided testing files that will be posted. We will not accept any exam for a regrade unless it includes this cover page, and we will not re-evaluate grading of the correctess of any programming questions without a typed copy of your solution being emailed by you first.
- Also note: When you submit an exam for a regrade, we will regrade your entire exam. If we notice anywhere that you were mistakenly given too many points, we will also correct this, up to a maximum of -2 for the entire exam. So it is possible (though unlikely) that a regrade request will result in you receiving a slightly lower mark than what you started with.
- All midterm regrade requests (other than simple score addition errors) must be submitted by Monday, May 18.
Practice Exams from Past Quarters:
These are meant to give you ideas of problems to practice. Our own midterm may not match these exactly in terms of the types of questions, number of questions, or difficulty. But it will cover a similar range of topics to these exams. (Thanks to UW instructors Hal Perkins, Dan Grossman, Magdalena Balazinska, Richard Davis, and John Zahorjan for their work on these exams.)
These practice tests are intended to give you a general idea of the kinds of questions you may see on the real exam. The real exam will have a similar number and general style of questions as the practice test. However, we do not promise that the real exam will exactly match the practice test in terms of difficulty level or the exact concepts covered. You are responsible for knowing all class material covered in lecture/homework up through the end of Week 5, including recent material on Strings, preprocessor, debugging, etc.
Policies:
The exam is open-book (any relevant books you have are allowed), and open-notes. The exam takes place in lecture; you have 50 minutes to complete it. No computing devices are allowed. Unless otherwise specified, questions will be graded purely on whether your commands/code have the correct behavior, not on elegance or style. Some questions will require a particular style of solution, such as problems that require you to use a regular expression.
Topic/Question List:
On our midterm you will be asked questions such as the following:
-
Describe in English what the following Unix command does: ___
-
Write a Unix command that does the following: ___
-
Write a shell script that does the following: ___
-
Describe in English what kind of strings the following regular expression matches: ___
-
Write a regular expression or command that matches the following kinds of strings or replaces the following pattern with the following text: ___
-
What is the output of the following C code? What are the values of its variables/pointers, or what is the state of the memory of the program? ___
-
Write a C program that does the following: ___
You are expected to have familiarity with topics such as the following:
-
the Unix commands we learned in lecture (as listed on our Bash reference page)
-
basic Unix/Linux filesystem layout and structure
-
Bash scripting syntax
-
regular expression syntax,
sed
, and egrep
-
C programming: basic syntax, console I/O, arrays, functions, memory model, stack vs. heap, malloc/free, structured data, strings
The following topics are guaranteed NOT to be on the midterm exam. You should assume that a topic is "fair game" on the midterm unless it is specifically listed below. Please ask the instructor if you're not sure whether you must study a particular topic.
-
ethics/society reading material
-
C file I/O functions
-
C preprocessor, other than
#include
for libraries
-
debuggers
-
multi-file C programs; Makefiles