CSSE 221: Fundamentals of Software Development Honors

Programming assignment (due by Sunday, 9:00am)

Finish BallWorlds, as stated in the specification, being sure you have checked in your final, fully-documented copy to the repository.

Written homework to do before week 3 (due before beginning of class on Monday, Sept 18).

Answers are to be written in your own words! As usual, please bring hardcopy for written answers to class to hand in on Monday.
  1. Read chapters 7 and 8 from Savitch.
  2. Describe the appropriate uses of each of these visibility modifiers: public, protected, and private.
  3. What is the benefit of creating a class that inherits from another class?
  4. Explain the two meanings of the super keyword. Explain the two meanings of the this keyword. How are they related?
  5. What is the relationship between abstract classes, concrete classes, and interfaces? You should answer this in terms of a continuum.
  6. If Foo extends Bar, explain the use of each of the following or tell why it is incorrect.
    1. Foo f = new Bar();
    2. Bar b = new Foo();
  7. Give an original example in which it is appropriate to use polymorphism. Explain why it’s appropriate.
  8. Explain why you should use a debugger, rather than relying on inserting print statements in your code.
  9. Say deep in your code you have a line of code for which you want to observe the value of a variable.
    1. Describe the process of using the debugger in Eclipse to do this.
    2. Say this line is buried within a loop that runs 10000 times and you need to observe the value of the variable on the 8000th iteration of the loop. How can you do this easily (obviously, hitting “continue” 8000 times isn’t an option).
  10. Also complete any additional questions given to you by your classmates.
Reminder that assistants are in Moench F217 from 7-9pm on Sunday through Thursday nights to help you.