The Final Exam will be from 1pm to 3pm on Thursday, August 29th in 300 Richards.
The best guide by far for the Final Exam are the two Midterm exams, posted here and here. My approach to all this, as I've said repeatedly in class, is that I want you to learn a few very basic things well, instead of trying to test you on a broad range of topics, each of which you would learn only superficially. That is why the Final Exam will be so similar to the Midterm. If you did not do well on the Midterm and you pull your grade up substantially on the Final, this will be strong evidence that you have finally learned some important things. And that will be good all around. Some topics that you should pay special attention to are the following:
The Midterm Exam will be given Monday, July 29th. It will be very similar to the Midterm Exam Sampler available here (updated 7/27/2002). The Sampler has questions but not answers. You should work to understand the questions and practice answering the questions and similar ones that you and your classmates make up. The questions were discussed by Professor Futrelle in the classes in the week before the exam. I hope you were in class. But as I've always emphasized, listening to me explain the answers may lull you into thinking that you understand the answers so well that you'll be able to write them down without any practice. Nothing could be further from the truth. The only way to prepare yourself to understand questions is to work with questions yourself; making up some variations is especially helpful. And the only way to prepare yourself to write out answers is to write out answers.
Another very important way to learn this material is to write, compile and run simple code, to make sure your answers are correct, or to understand why certain answers are not. You won't have a machine in front of you during the exam, so keep that in mind and use your programming only for its value, not again to lull yourself you think you know what's going on because you fiddled some code around and it finally worked. You have to know why it worked and be able to explain why (or why not).
During this week there may be slight alterations of topics or emphasis for the Midterm. But simply coming to class will keep you apprised of any such changes.
The Final Exam will be given Thursday, August 29th at 1pm. Room TBA. A Sampler will be provided for it also. Many of the topics covered on the Final will be similar to those on the Midterm.
About 3/4 of the questions will require writing brief and simple source code, including class definitions and methods. I repeat: You might want to try writing out simple examples on paper, the proper way to prepare, and then, only after you've written them down, check them by trying to compile them with javac, and in some cases running them with java. For example, if you're wondering about the various cases in Question 8 of the sampler, just define two classes A and a subclass B, two trivial methods aMeth() and bMeth(), and do the tests yourself in a main() method in A.