e03 : Final Exam
|e03||false||Final Exam||Tue 12/06 12:00PM|
Special Note about Final Exam
- If you improve your performance on E03 over your E01 or your E02 grade, your E03 grade replaces the lower of those two grades.
- If your E03 grade is your worst grade, then your grade is just the average of E01,E02,E03 (as promised on the syllabus).
The way I will accomplish that in Gauchospace:
- I will post four grades: your scores from E01, E02, E03, and a copy of E03. I will then DROP THE LOWEST OF THOSE FOUR.
Final Exam (3 hours)
Link to actual exam (this is only a placeholder after after the exam is complete, graded, and returned): Actual Exam.
Coverage is identical to E02
Except more comprehensive: it will be a balance of material from E01 and E02.
- H00 through H06
- Chapters 1 through 16, and portions of Chapter 17 in HFJ (ONLY pages 581 through 595).
- Chapters 1 through 4 in HFDP (Chapter 4, only up through page 137.)
- lab00, through lab09
- Lecture notes from start of course up to the class before the exam.
Some topics to focus on:
- Lambda Functions (from lecture notes, from lab06)
- Sorting via Lambda functions and comparators (See HFJ Chapter 16, as well as lecture notes)
- Inheritance and Interfaces. See HFJ Chapters 7 and 8.
- See, for example, the second problem from this practice midterm https://ucsb-cs56-f16.github.io/exam/e01/cs56_f16_e01_practice_c/
- That was from a midterm that was preparation for E01, but in fact, we only used the first question from that midterm on E01.
- So, the second question, the one about inheritance and interfaces, and Polymorphism, is fair game.
- Inner classes
- How would you distinguish between the relationship between “inner class” and “outer class”, vs. “parent class” and “derived class”?
- What is special about non-static inner classes? (The textbook describes this using the word “special bond”. But it will not be sufficient to memorize that word, since it is not a well-defined technical term in Java—it is a word particular to this textbook. You must, in fact, try to deeply understand what the book is getting at with that word.)
java.util.ArrayList<E> data structure, in particular.
- It is one of the fundamental tools of Java programming.
- Problems involving
ArrayList<E>are good ways to check whether your fundamental coding skills are strong or weak.
- Be advised: there will be basic coding questions on the exam. The CS department leadership has issued a strong and clear signal that every lower division programming course needs to test basic programming skills on each and every exam. If your basic coding skills need practice, visit: https://ucsb-cs56-pconrad.github.io/resources/practicing_coding/
- If you master
ArrayList<E>, the concepts you’ve mastered translate pretty well to the other data structures in
java.util.*, such as:
- how to use generics (that whole
<E>thing, as in
- how to work with collections (e.g. the enhanced for loop such as
for (String s : strings)when
- the idea of
extendsas in being able to explain what the words
implementsmean in this context:
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
- how to use generics (that whole
So, in addition to the items above, be sure that you understand some basis things as well:
Links to past exams
Note that the exact coverage of each of these exams varies quite a bit, since the pace of topics, and placement of exams during the quarter can vary considerably. You are encouraged to look at all of them as examples of the types of questions you might be asked, but match them against the topics we have covered, vs. the ones we have not covered.
NOTE: NOT ALL PREVIOUS EXAMS ARE AVAILABLE. The available ones are linked to below.
- First two midterms from this course:
- Summer 2016 M16 Midterm (there was only one): http://ucsb-cs56-m16.github.io/exam/e01/cs56_m16_e01/
- Summer 2016 M16 Final: http://ucsb-cs56-m16.github.io/exam/e02/cs56_m16_e02/
- 14W exams are not available online