CPSC 124, Spring 2006
Information about Test #2

The second test for this course will take place in class on Friday, March 31. It will cover Chapters 4 and 5 from the textbook and Labs 6 through 10. Obviously, you also need to know everything that was covered earlier in the course, but the questions on the test will not be specifically directed to that material.

The second test will be similar in format to the first. It will include some short answer questions, similar to those that have been asked on quizzes. There might be one or two longer essay questions. There will certainly be some programming problems. Some of the programming problems will ask you to write complete subroutines or fictions. There will probably be one problem that asks you to write a complete class. There will also probably be some problems that ask you to use existing subroutines and/or classes in short code segments. You might be asked to read some code and say what it does. You should make sure that you have mastered the syntax of class and subroutine definitions!

Here are some of the terms and ideas that you should be familiar with:

black boxes
interface and implementation
subroutines as black boxes
subroutine definitions
"public" and "private"
return type of a subroutine
formal parameters
calling a subroutine
actual parameters
member variables in a class
automatic initializatin of member variables
local variables in a subroutine
the return statement
signature of a subroutine
multiple subroutines with the same name
using classes from standard packages
the "import" statement
combining initialization with declaration
    ( for example:  int x = 17; )
"final" member variables
named constants and why to use them

writing classes
non-static methods and member variables
  (aka instance methods / instance variables)
accessing methods and variables in objects
references to objects (aka "pointers")
assignment operator for objects
testing objects for equality with ==
classes are used to declare variables,
    formal parameters, and return types
creating objects with "new"
using private instance variable
getter and setter methods
extending a class
subclasses and superclasses
overriding a method
interfaces (technical meaning in Java)
using interface names as types
implementing an interface

event-driven programs
event-handling methods
storing state information in instance variables
ActionListeners for buttons and menu commands
KeyListeners for keyboard events
MouseListeners for mouse events

important event-handling methods:
   public void actionPerformed(ActionEvent evt)
   public void keyPressed(KeyEvent evt)
   public void mousePressed(MouseEvent evt)
   public void mouseReleased(MouseEvent evt)
   public void mouseDragged(MouseEvent evt)

the MosaicPanel class
   getRed(row,col), getGreen(row,col), getBlue(row,col)
   setColor(row,col,color), getColor(row,col)

David Eck, March 2006