Exams
Final Exam
Results:
You can now check your final exam score on MyUW (see instructions). Your exam wil be available to pick up from the CSE front office starting at 12pm on 8/26. Please pick up your exam before asking grading questions.
The average is 79.71% and the median is about 81% — well done! Scores will not be adjusted.
Regrades:
If you believe that one or more problems were incorrectly graded and you would like Kevin to regrade it, you must:
- Write a brief cover page describing what problem(s) you would like regraded and why.
- Give the exam to the receptionist (Rebecca) in the CSE Department Office, and tell her to put in in Kevin Quinn's mailbox.
- All regrade requests must be received by Monday, October 6th.
- Kevin will regrade your entire exam meaning that your exam score may go down as a result of a regrade request.
Time/Place:
- Date: Thursday, August 21 and Wednesday, August 22, 2014
- Time: 60 minutes each day
- Place: in your section (Thursday) and in normal lecture room (Friday) (GUG 220)
- Cheat sheet
- You must sit in your assigned seat. The seat assignments are:
list,
map.
Practice Exams:
We strongly suggest that you try to solve all of these problems yourself, on paper, without a computer, and without looking at the answer key until you're done. You may also want to time yourself to practice your pacing.
practice final exam (key at the bottom)
Our actual final exam will be most similar to the practice exam above (ignore the Collections Mystery problem). Additional practice problems can be found in Practice-It, by browsing previous quarter's web pages, or in the PDFs below:
The questions on the final exam will be selected from the following. Each question will be worth between 10-20 points:
- Binary search trees: Given a set of values, add them to a binary search tree. Then perform traversals in the three standard orders on that tree.
- Polymorphism mystery: Given a set of classes with inheritance relationships, a set of variables declared using those classes, and a set of method calls made on those variables, write the output. (similar to section 19 problems)
- Comparable programming: Given a specification, write a complete class that implements the Comparable interface based on a given set of comparison criteria. (similar to section 15 problems)
- Collections programming: Write a method that uses one or more class from the Java Collections framework (with focus on Sets and Maps) (same as the midterm but harder).
- Binary tree programming: Add a method to the IntTree class from lecture. (similar to section 12, 13 problems)
- Binary tree programming: Add a method to the IntTree class from lecture. Similar in spirit to the previous question but harder (likely involves modifying or building a tree).
- Linked list programming: Add a method to the LinkedIntList class from lecture. (similar to section 6, 16 problems)
- recursive backtracking : Write code to solve a problem using recursive backtracking (on the easier side of question from section) or answer basic questions about recursive backtracking
- General Sorting knowledge
The following topics are guaranteed NOT to be explicitly tested on the final exam:
- detailed knowledge of Big-Oh (some questions may ask you to solve them within a certain big-Oh limit, but mainly this is just to ward off extremely inefficient answers)
- writing code with 2-D arrays
- catching exceptions
- priority queues
- input/output streams
- abstract classes
- inner classes
- implementing an
Iterator
class
- implementing a "generic" class (one that accepts type parameters such as <T>)
- hashing
-->
Midterm Exam
Results:
You can now check your midterm score on MyUW (see instructions). Your exam was returned to you in section on Tuesday. Please wait to receive your exam before asking grading questions.
Shift: The score listed on MyUW is your raw score. There will be a +4 point shift added to everyone's score.
Stats:
stat | raw | adjusted |
MEDIAN | 73 | 77 |
AVG | 71.38 | 75.38 |
question | average raw score |
Q1 (ArrayList Mystery) | 10.96 / 12 |
Q2 (Recursion Mystery) | 10.72 / 12 |
Q3 (Collections programming) | 9.18 / 16 |
Q4 (Stacks and Queues) | 15.42 / 20 |
Q5 (LinkedIntList Implementor) | 10.88 / 15 |
Q6 (LinkedIntList Clients) | 5.86 / 10 |
Q7 (Recursive Programming) | 8.29 / 15 |
Regrades:
If your exam score was simply added up incorrectly, take it to your TA and they'll fix it for you.
If you believe that one or more programming problem was incorrectly graded and you would like Kevin to regrade it, you must:
- Type in the problem(s) to the appropriate test file below exactly as it appears on your exam. (There is no test code for problem 6).
- Print out the output of running the test.
- Write a brief cover page describing what problem(s) you would like regraded and why.
- Give Kevin your original midterm, your test results, and your cover page
- All regrade requests must be received by Wednesday, August 6th.
- Kevin will regrade your entire exam meaning that your exam score may go down as a result of a regrade request.
Time/Place:
- Date: Monday, July 28, 2014
- Time: 60 minutes
- Place: in normal lecture room (GUG 220)
- Cheat sheet (will be stapled to your exam)
Practice Exams:
The actual midterm exam will have 6-8 total problems. Those problems will be selected from the following kinds of questions:
-
ArrayList
"mystery" (look at a piece of code that uses ArrayList
s, and write its output -- video)
-
ArrayList
programming (write a method that uses ArrayList
s)
-
ArrayIntList
programming (add a method to the ArrayIntList
class from lecture)
-
Collection "mystery" (look at a piece of code that uses Java collections such as
List
s, Set
s, and Map
s)
-
Collection programming (write a method that uses Java collections such as
List
s, Set
s, and Map
s)
-
stack and queue programming (write a method that uses
Stack
s and Queue
s)
-
linked list node manipulation (write a few lines of code to change a "before" picture of some linked nodes into an "after" picture -- video)
-
linked list programming (add a method to the LinkedIntList class)
-
recursion tracing (look at a piece of recursive code, and write its output)
-
recursion programming (write a method that uses recursion)
- The following topics are guaranteed NOT to be required to solve any problem on the midterm:
- Java I/O, file processing,
Scanner
- programming with inheritance (extending a class, etc.)
- writing an interface (though you might have to write a method that accepts a parameter of interface type, such as
List
, Set
, Map
, etc.
- testing, debugging, commenting
- grammars/regex
ArrayIntListIterator
- recursive backtracking
Rules and Information:
- You must sit in your assigned seat. The seat assignments are:
list,
map.
- You must show your UW Student ID card to a TA or the instructor for your submitted exam to be accepted.
- You will have 60 minutes to complete the exam. You may receive a deduction if you keep working after the instructor calls for papers.
- The exam is closed book. You will have a cheat sheet provided by the instructor (see above). You must work alone and may not use any computing devices of any kind including calculators. Cell phones, music players, and other electronic devices may NOT be out during the exam for any reason.
- Unless a question specifically mentions otherwise, your code you write will be graded purely on external correctness (proper behavior and output) and not on internal correctness (style). So, for example, redundancy or lack of comments will not reduce your score.
- You don't need to write any
import
statements in your exam code.
- Do not abbreviate any code on the exam.
- Please be quiet during the exam. If you have a question or need, please raise your hand.
- Corrections or clarifications to the exam will be written at the front of the room.
- If you violate the University Code of Conduct during the exam, you may receive a 0% for the exam and possibly further punishment.
- When you have finished the exam, please turn in your exam quietly and leave the room.
- If you enter the room, you must turn in an exam paper and will not be permitted to leave the room without doing so.