Assignment 1: Magic 8-Ball Due Thursday June 24 at 9:00pm

Greetings! Welcome to the first assignment for CSE143 Summer 2004. In this first project we are simply going to go over a few things that you should have under your belt before proceeding. You also may get a little practice looking up stuff in the Java API.  You will see there are two parts to the assignment, a programming and a review part.

PART I: Programming -- Turn-in Part I here

The assignment is to create a Java program that answers questions in the manner of a "Magic 8-Ball". When a user concentrates very hard on a yes/no question and runs your program, it should resopnd with one of the following messages: yes, no, maybe, ask again....

Write a class called Magic8 that has a main method. Use a Java ArrayList to store the possible messages that the program can display. When a user runs the program, one of the messages listed above should appear. Further, it must be possible to for any of the messages to appear without recompiling the program. For example:

> java Magic8
yes
> java Magic8
maybe
> java Magic8
ask again...
> java Magic8
yes
> java Magic8
no
Notes:

Hand in Magic8.java electronically by the due date at the top of this page.  (If you did not take CSE142 at UW: This is the only way you can turn in the program, so leave plenty of time to figure it out in case something goes wrong.  If you miss the deadline, you can't e-mail the program to your TA, or turn in a disk, etc.)

In addition, write a short technical description (at most one page, but a paragraph will probably do) of your program and how it works. Turn this in (hardcopy) at the next lecture after the due date above (along with the Review part of the assignment). [Note added 6/22: unless you handwriting is exceptionally clear, please type this!]

PART II -- REVIEW  (SELF-ASSESSMENT)

CSE142 covered chapters 1-7 of the textbook and some material in later chapters.   Please spend some time reviewing this material.    One quick way to survey the material is to read through the glossaries at the end of each chapter, making note of any terms that are unfamiliar or not well understood.

For this part of the assignment, make a list, to hand in, of all the terms in the glossaries for chapters 1 and 2 which are either new to you or which you feel you do not understand well.  That's all you have to do!  Just make a list of those terms and and hand it in on a piece of paper with your name on it.  If you understand everything -- hand in a piece of paper anyway, telling us that.  (Athough that's all you have to do to get credit, for you own benefit you should find out what those terms actually mean!  Read the book, talk to your TA, go on the Internet, etc.  And you shouldn't stop with chapters 1 and 2.  Keep going as time permits until you have reviewed everything.) [Note added 6/22: likewise, please write very legibly, or type it.]

This little project is to be done by individuals -- no pairs.