This course meets from 10:40 AM - 12:40 PM MTWTh in Business 33.
Special Topics: Programming in Java
It's really two separate courses: one an introductory (though fast-paced)
programming course that happens to use Java as its language, and the
other a course for experienced programmers who want to add the Java
language to their repertoire. I haven't done this before, so
I'm not sure how it will work....
is available in LaTeX,
A schedule of lectures tells
what I plan to talk about, and what I expect you to have read, by each
For those times when you want to work on your Java program but you're
not on a machine with Café installed, here's a link to
the Java 1.0.2 API Documentation,
which I've downloaded from java.sun.com
so we have a local copy.
- Assigned June 3, due June 9, postponed to June 12
- Define a class named TextWindow or something similar that
allows a user to print successive strings in a window (using
Graphics.drawString) without worrying
about heights and widths of fonts. I suggest defining methods
print and println, each taking a String parameter.
print will print it in the TextWindow at the current location,
then update the "current location" to just to the right of the end of
that string. (You'll need the stringWidth method of the
println will print the string at the current
location, then update the "current location" to the beginning of the
following line. You will probably want to define other methods, some
public and some private. Features like not writing past the right-hand
edge and the bottom of the TextWindow, or changing fonts, or
word-wrapping, will be worth extra credit. Try to design this class so
that you would find it useful in the future.
- Assigned June 11, due June 18, postponed to June 19
- Write a desk calculator program (either an Applet or a Frame-based
application) which performs exact fraction arithmetic.
See hw2.html for details.
See Calculator.html for my quick-and-dirty
solution (which works much better since I actually sat down and
designed the user interface, rather than just writing it!)
- Assigned June 19, due June 25
- Further enhancements and repairs to your homework 1 or 2. You
decide what needs fixing and what additional features you'd like to get
working, and the more you do by June 25, the more impressed I'll be.
At your convenience, please read as much as possible of my
Adages on Software Engineering.
In connection with the lecture on recursion and showing documents from
URL's, please see the Partitions applet.
(If this is too inefficient for you, take a look at the memoized version of it.)
This is in your spare time (heh, heh!) between the following reading
assignments from the textbooks:
||D & D Reading
||C & H Reading
|28 May || skim Preface; |
| skim Preface, ch.2 |
|29 May || 60-86 || 48-91
|2 June || 272-297 || 93-114
|3 June || 438-483 || 181-219
|4 June || 86-103 || 221-257
|5 June || 110-149 || 257-316
|9 June || 154-176 || 319-342
|10 June || 176-205 || 342-363
|11 June || 297-320 || 114-139
|12 June || 324-347 || 141-157
|16 June || 347-373 || 158-179
|17 June || 214-231 || 423-439
|18 June || 231-252 || 414-421,440-455
|19 June || 376-403 || 505-527
|23 June || 403-431 || 471-482,528-553
|24 June || 860-890 || 365-414
You are visitor number
to this page since May 25, 1997.
Stephen Bloch / firstname.lastname@example.org