The first of the two in-class tests for this course takes place on Friday, September 28. It will cover everything that we have done in class up to and including Monday, September 24. From the textbook, this includes Chapter 1, Sections 2, 3, 4, and 6; and Chapter 2, Section 1 plus Section 2 through 9.2.3. You are also responsible for the material from the first four labs.
program correctness program robustness various approaches to handling errors (error message, special return value, end the program, throw an exception) exceptions throwing an exception Exception classes: Throwable, Error, Exception, RuntimeException IllegalArgumentException, IllegalStateException, NumberFormatException, etc. exception objects e.getMessage() and e.printStackTrace() for an exception e checked exceptions and mandatory exception handling why some exceptions require mandatory exceptions the "throws" clause in a method declaration catching an exception the try..catch statement the "finally" clause of a try..catch statement how uncaught exceptions are processed; unwinding the call stack preconditions and postconditions using exceptions when checking preconditions and postconditions assertions the assert statement using assertions when checking preconditions and postconditions enabling and disabling assertions at run time reasons for using assertions instead of exceptions Analysis of Algorithms Θ(f(n)) and O(f(n)) -- "Theta of f of n" and "Big-Oh of f of n" why Theta and Big-Oh only give you information "up to a constant multiple" why Theta and Big-Oh only give you information about "sufficiently large n" why "lower order terms" can be discarded in Θ(f(n)) and O(f(n)) run-time analysis worst-case, average-case, and best-case run time applying run-time analysis to a given code segment comparison of run times, such as Θ(n) vs. Θ(log(n)) what is the meaning of log(n)? comparing linear search and binary search comparing insertion sort and quicksort recursive method (or subroutine) recursive binary search factorial as a recursive function base case of a recursion recursive "blob counting" infinite recursion "marking" items that have been processed to avoid infinite recursion QuickSort what is accomplished by QuickSortStep? informal run-time analysis of QuickSort activation record (or "stack frame") created when a method is called how activation records and the stack are used to implement recursion infinite recursion and stack overflow linked data structures linked lists ListNode classes following links: runner = runner.next the head of a list empty list (head == null) using a "while (runner != null)" loop to process all the items in a list searching a list adding an item to the head of a list basic ideas about Eclipse and CVS integrated development environment debugging in an integrated development environment breakpoints CVS repository Committing and Updating a project in CVS