This is intended to give you a sense of what I think is important from the course so far, and what I will be thinking of when creating the exam.
I hate disclaimers, but here are some anyway. This is not a contract. I may have inadvertently left something off this list that ends up in an exam question. I make no guarantees that the exam will be 100% limited to items listed below. Moreover, I will not be able to test all of this material given the time limitations of the exam. I will have to pick and choose some subset of it.
You are permitted one 8.5 x 11 sheet of paper with notes (both sides) for use as a reference during the exam.
Here are the specifics: Students should be able to...
Write a method to do some kind of image processing, similar to the ones we did for the assignments.
Create and use arrays and ArrayLists that contain either primitives or objects. Be aware of the need to construct individual objects when making arrays or ArrayLists of objects.
Be able to write a recursive method correctly.
Show how bubble sort, insertion sort, selection sort, sequential search, and binary search work by demonstrating on lists of data, somewhat like the optional assignment.
Demonstrate capability to write Java code that sorts or searches. Asking a question that says "write the Java code for bubble sort," or "write the Java code for binary search" is pointless because of the reference sheets, but I could describe a new sorting or searching algorithm and ask you to code it.
Count the number of comparisons in a sorting or searching algorithm for purposes of evaluating its efficiency. I won't ask about mergesort, but I could present a new sorting or searching algorithm that has some of the same flavor as the others that we have done and ask about how many comparisons the algorithm makes in the worst case, and what its general behavior is (in terms of n).
Correctly interpret and write code using try/catch to handle exceptions.
Be able to predict the output of sample programs that use inheritance.
Be able to convert from binary (base 2) to decimal (base 10). Understand the difference between simple traditional binary numbers and other representations that computers might use (sign magnitude, twos-complement, etc). |