CSC 390
Special Topics: Programming in Java

Instructor: Dr. Stephen Bloch
First Summer, 1997

This course meets from 10:40 AM - 12:40 PM MTWTh in Business 33.

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....

The syllabus is available in LaTeX, DVI, Postscript, and HTML.

A schedule of lectures tells what I plan to talk about, and what I expect you to have read, by each class meeting.

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 so we have a local copy.

Homework assignments

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 FontMetrics class.) 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.

Reading assignments

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:
Date(s) D & D Reading C & H Reading
28 May skim Preface;
read 1-55
skim Preface, ch.2
read 1-17
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.
Last modified:
Stephen Bloch /