CPSC 124, Fall 2005
Information Sheet for the Final Exam
The final exam for this course will take place on Thursday, December 15, at 7:00 PM. It will be held in Gulick 206A, which is just next to the Gulick 208 computer lab. This is a cumulative exam, with some emphasis on the material that we have covered since the second test. You will want to look over the review sheets for the first test and second test.
The format of the final exam will be similar to that of the two in-class tests. It might include definitions, short answer questions, and longer essays. You can expect to write some Java code, including some code segments, complete subroutines, and possibly a complete class. You might be given some code and be asked to explain what it does.
You can expect at least one long essay question on a general topic such as programming style and why it is important; program development with stepwise refinement, top-down and bottom-up design, and object-oriented programming; or abstraction and how it relates to black boxes and modularity.
My office hours for exam week are as follows:
Monday, December 12: 11:00 -- 12:00 and 1:30 -- 3:00 Tuesday, December 13: 11:00 -- 2:00 Wednesday, December 14: 11:00 -- 3:00 Thursday, December 15: 12:00 -- 1:20
Here are some of the things that we have covered since the last test:
GUI Components JPanel JButton JLabel JTextField the idea of "laying out" components in a JPanel BorderLayout GridLayout adding a component to a container events and listeners using an ActionListener to respond to a JButton the actionPerformed(ActionEvent e) method using the setText() and getText() methods with JButton, JLabel, and JTextField enabling/disabling buttons to reflect the state of a program the paintComponent(Graphics g) method using instance variables to store information about what needs to be drawn calling the repaint() method animation the special variable "this" arrays base type of an array array types: BaseType[] elements of an array index of an array element; A[i] using a for loop to process an array ArrayIndexOutOfBoundsException using an array of objects creating an array with: new BaseType[N] creating an array with specified contents, such as: new int[] { 2, 4, 6 } random access to array elements partially full arrays using a counter to keep track of how many items are in an array managing a list whose size can change -- adding and deleting elements sorting the selection sort algorithm search linear search binary search two-dimensional arrays rows and columns of a two-dimensional array createing a two-dimensional array with: new BaseType[ROWS][COLUMNS] processing a two-dimensional array with nested for loops polymorphism abstract classes design of class hierarchies processing an array of objects of different types typecasting objects Exceptions the try/catch/finally statement NumberFormatException, Double.parseDouble(s) and Integer.parseInt(s) the throw statement Exception methods e.getMessage() and e.printStackTrace() abstraction control abstraction procedural abstraction data abstraction the stram abstraction; InputStream and OutputStream