CSSE 220: Object Oriented Software Development
Exam 1, Spring 2008-2009

What does this test cover?

This test allows you to demonstrate your understanding of:

The Rules

  1. Take this exam on Tuesday, April 7 during class (1st and 2nd periods for section 1, 7th and 8th periods for section 2).
  2. This test is open-everything, including but not limited to your computer, the Internet, the course web site, Angel, and your textbook(s). BUT:
  3. You may NOT communicate with anyone except the exam proctors in any way during this exam, and
  4. You may NOT discuss this exam with anyone except the exam proctors in any way from Tuesday at 8 a.m. (when section 1 begins the exam) until Tuesday at 3:25 (when section 2 completes the exam).
  5. Time limit: 2 periods (during your regular class time).

  6. Well before the exam (you can do it now):
  7. As you will see below, you will do two problems: one based on the above Exam1Problem1 project and the other based on the Exam1Problem2 project. In each case, you will turn in your work by commiting your projects to your individual repository at the end of the exam.
  8. If you have questions about The Rules for this exam, ask BEFORE the exam (like now!).
  9. DO prepare hard for this test (by making sure you understand the lessons of WordGames, BallWorlds and BigRational). DON'T get anxious about this test.

Problem 1

You have two choices for this problem: either implement class XXX or implement class YYY [details for each revealed at the exam].

Overview: In this problem you will write a class that implements the StringTransformable interface that you used in WordGames. For this problem, use this process drawn from Extreme Programming Rules and Practices:

  1. Do one of the following:

    1. Add a XXX class to your Exam1Problem1 project, and have XXX implement StringTransformable as follows: [details revealed at the exam].
    2. Add a YYY class to your Exam1Problem1 project, and have YYY implement StringTransformable as follows: [details revealed at the exam].

    In either case, keep in mind this grading rubric (this is the rubric for YYY; take 80% of each item to get the rubric for XXX):

    Note that your JUnit test class need not be documented and may violate style rules (although I hope that it does not do so).

  2. Don't forget to commit your Exam1Problem1 project to your individual repository when you are done working on the project, as well as after each of Steps 1 and 2.

Problem 2

Overview: In this problem you will write a Bonus class that extends the Bouncer class that you used in BallWorlds. You do not need any JUnit tests, but you must have appropriate documentation and style for full credit.

  1. Add a Bonus class to your Exam1Problem2 project, and have Bonus extend Bouncer.
  2. A Bonus behaves just like a Bouncer, except [details to be revealed at the exam]. Implement Bonus, keeping in mind this grading rubric:
  3. When you are done, commit your Exam1Problem2 project to your individual repository.