http://www.ntu.edu.sg/home/ehchua/programming/java/j2a_basicsexercises.html Recommended exercises: SumAndAverage CheckerBoard fibonacci Bin2Dec GradeStatistics Another challenge: Write a high-low guessing game; have a person think of the number, and have the computer try to guess it After each guess, the human will tell the computer whether it's higher or lower Another challenge: Animal Farm Create an `abstract class` called `Animal` that has a `mass` and a `name` -All animals should have a constructor which gives them a `mass` and a `name` when they are created -All animals can `eat` an `amount`, which increases their `mass` by `amount` -All animals can also `move` a `distance`, which decreases their `mass` by `distance` -Everybody can use `getName` to get the name of an animal -Everybody can use `getMass` to get the mass of an animal Create a class called `Cat` that `extends Animal` -When a cat `speak`, it prints `Meow!` Create a class called `Dog` that `extends Animal` -When a dog `speak`, it prints `Woof!` Create a class called `Farm` -The `Farm` has a `main` method -In the `main` method, the `Farm` creates a `Cat` with a `mass` of `12.2` named `Cloud` -In the `main` method, the `Farm` creates a `Dog` with a `mass` of `15.4` named `Spot` In the `main` method, the `Farm` will print the names of both animals and their masses. -Ex. `Spot is a Dog with a mass of 15.4.` Then, `Cloud` will `eat` `0.2`, `move` `0.8`, and `speak`. `Spot` will then `eat` `0.4`, `move` `0.6`, and `speak`. `Farm` will print the names of both animals and their masses once again. You will probably get weird numbers like 15.200000000001. This is imprecision with floating point numbers, and is normal