Exams

Final Exam

The average is 74% and the median is 76% — well done! Scores will not be adjusted.

Stats:

grade adjusted% of class
As (90-100) 65 22%
Bs (80-89) 61 21%
Cs (70-79) 59 20%
Ds (60-69) 60 20%
Es (0-59) 52 17%
question average raw score
Q1 (Binary Search Trees) 5.8 / 6
Q2 (BinarySearch Tree Traversals) 3.5 / 4
Q3 (Collections Mystery) 5.2 / 8
Q4 (Inheritance andPolymorphism) 13.7 / 15
Q5 (Comparable andInheritance) 11.4 / 17
Q6 (Binary Tree Programming) 8.6 / 10
Q7 (Binary Tree Programming) 13.7 / 20
Q8 (Linked List Programming) 11.6 / 20
Qx (Extra Credit) 0.9 / 1

Regrades:

If you believe that one or more problem was incorrectly graded and you would like Allison to regrade it, you must:

  • Type in the problem(s) to a Java file exactly as it appears on your exam (for mechanical problems, a text file is ok).
  • E-mail Allison a detailed description of why you believe your problem(s) were graded incorrectly. Attach the Java file with your code.
  • Give Allison your original final either in person or slide it under her office door, CSE438.
  • All regrade requests must be received by Wednesday, January 13th.
  • Allison will regrade your entire exam meaning that your exam score may go down as a result of a regrade request (capped at -2).

Practice Exams:

icon cheat sheet (will be provided as last page of exam)

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.

icon practice final exam (key at the bottom)

Our actual final exam will be most similar to the practice exam above. Additional practice problems can be found in Practice-It or in the PDFs below:

The questions on the final exam will be selected from the following. Each question will be worth between 5-20 points:

  • Collections mystery: Trace the execution of code that includes Sets and/or Maps.
  • 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)
  • Inheritance/Comparable programming: Given an existing class, write a complete subclass of it that adds certain features. Also make the class Comparable based on a given set of comparison criteria. (similar to section 18 problems)
  • Collections programming: Write a method that uses one or more class from the Java Collections framework (with focus on Sets and Maps).
  • Binary tree programming: Add a method to the IntTree class from lecture. (similar to section 15, 16 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 7, 17 problems)

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)
  • detailed knowledge of search/sort algorithms
  • recursive backtracking (recursion will definitely be needed, but not specific backtracking problems)
  • 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

Time/Place:

  • Date: Wednesday, November 4, 2015
  • Time: 50 minutes
  • Place: in normal lecture room (GUG 220)
  • Cheat sheet (will be stapled to your exam)
  • You must sit in your assigned seat. The seat assignments are: list, map

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 ArrayLists, and write its output -- video)
  • ArrayList programming (write a method that uses ArrayLists)
  • ArrayIntList programming (add a method to the ArrayIntList class from lecture)
  • Collection programming (write a method that uses Java collections such as Lists, Sets, and Maps)
  • stack and queue programming (write a method that uses Stacks and Queues)
  • linked list node manipulation (write a few lines of code to change a "before" picture of some linked nodes into an "after" picture -- video)
  • 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
    • Iterator

Rules and Information:

  • You must show your UW Student ID card to a TA or the instructor for your submitted exam to be accepted.
  • You will have 50 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, closed-note and closed for all other resources. You may not bring or use any books or printed materials such as handouts, slides, or practice exams. (A "cheat sheet" of necessary syntax will be given to you at the exam.) 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.
  • On the exam it will be allowed to abbreviate S.o.p for System.out.print and S.o.pln for System.out.println. Otherwise 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.