CIS 4930 (Programming in Java):
Old Announcements
Old "latest news" entries, in reverse chronological order
- May 1: Sample solutions are available for the optional
homeworks. See
sample solution (Homework #6a), and
sample solution (Homework #6b).
- May 1: I have posted on my office door (E326) two updated lists
of scores, posted by last 4 digits of SSN:
- A list of raw numeric scores for homeworks and exams,
including optional (extra-credit) homeworks.
If you believe something is recorded incorrectly,
send me mail
(blm@cise.ufl.edu)
as soon as possible, preferably sometime today.
- A list of the following, expressed as percentages:
- Homework average, including optional (extra-credit)
assignments, computed as
(100 * (total points) /
(maximum non-optional points)).
- Exam scores.
- Weighted average (40% homework plus 30% each exam).
These are final unless something has been recorded or
computed incorrectly.
Letter grades will be decided and posted later today.
- April 30: Homework #6 (both parts) has been graded and
can be picked up from the folder on my door (E326). See
Notes on grading
for some very brief notes on grading and style issues.
- April 30: A
solution key for the final
is now available.
- April 29: Homework #5 has been graded and can be picked up
from the folder on my door (E326). See
Notes on grading
for some very brief notes on grading and style issues.
- April 29: The finals have been graded. You may pick yours
up in my office (E326) any time I'm here (often past 5pm).
For those who are interested in such things:
- Maximum points: 150
- High score: 143.5
- Low score: under 30 (not to embarrass anyone with
specifics)
- Median score: 90.5 (compare to 118 for midterm)
In general scores were substantially lower than for the
midterm, no doubt because this was a long exam.
Remember that
your final letter grade will be determined largely by your
total score (weighted average of homeworks and exams)
relative to the rest of the class.
- April 29: I have posted on my office door (E326) two lists of
scores (posted by last 4 digits of SSN):
- A list of numeric scores for homeworks and exams,
not including extra-credit homeworks.
If you believe something is recorded incorrectly,
send me mail
(blm@cise.ufl.edu)
no later than the morning of Friday May 1.
- A list of percentage scores for your homework total,
two exams, and weighted average
(40% homework plus 30% each exam).
These do not include the extra-credit homeworks
and should be regarded as preliminary.
I have also posted approximate
letter-grade ranges.
These averages and ranges will change somewhat
after the extra-credit homeworks are graded (Thursday)
and included.
I plan to post final grades late Thursday or early Friday.
- April 24: The final may be a little more difficult than
I anticipated. Don't panic (you're all taking the same exam,
and letter grades will be scaled based on relative scores),
but come prepared to work quickly.
- April 24: Homework #4 is graded at last; apologies for the delay.
You can pick yours up from the folder on my door (E326). See
Notes on grading
for comments on testing procedures and style issues.
The remaining homeworks will be graded as quickly as possible.
- April 24: A
sample solution is available for Homework #5.
- April 24: A reminder/hint about the final from the
review session yesterday -- you are allowed to bring and
use any notes, including listings of homework and example
programs.
- April 23: The final, as announced previously, is scheduled
from 3pm to 5pm Monday the 27th. It will be held in the
same room in which the class met (CSE E221).
- April 22: The review guide.
has been updated to include notes on what to study from before
the midterm (most recent update 5:40pm today), plus some
additional "tips on what to review".
- April 21: There will be a review session April 23, at the same
time and place as a Thursday class meeting.
It will likely begin with a short review of what I consider
"fundamental concepts" from the second half of the course
(which I hope will also be of interest to students who've
felt like they've been writing programs by trial and error),
followed by a question-and-answer session.
- April 21: I've added a
Miscellaneous tips page containing
tips gleaned from various Usenet newsgroups pertaining to
questions often asked by students.
- April 21: The final is scheduled for April 27 from 3pm to 5pm.
Watch this space for an announcement about location (but I'm
told it is likely to be in the same room where the class met).
- April 21: A review guide
for the final is available
- April 21: The optional homework is available
(Homework #6).
There are two parts; you may submit either part, or
both parts, for 10 extra homework points each.
- April 17: The final will not be optional. Sorry to
disappoint those who've asked, but with only one other exam
I think it doesn't make sense to make the final optional.
However, it will be open-book, similar in format to the
midterm, and my intent is for the exam to be one that
students who've more or less
kept up with course material (homeworks, lectures, and
example programs) can do reasonably well on without much
study time.
- April 17: The network examples from yesterday's class
are available via Sample programs.
If you want to try these out with client and server running
on different machines but don't have access to multiple
machines, I can run the server program(s) for you on one of the
CISE Unix machine (or even on an offsite machine in
California -- for which "show local time" is more interesting).
Send me mail
(blm@cise.ufl.edu)
to arrange this.
- April 17: A
sample solution is available for Homework #4.
We're working on grading this assignment now.
- April 16: Homework #5 is the last required homework.
I will offer one or more optional extra-credit homeworks.
(In class I said I would do so only if enough people were
interested. About a third of the class says "yes", so I'll
do it.)
The optional homework will be available sometime Friday
if all goes well, and you will have about a week to complete
it. Watch this space for updates.
- April 16: There will be a review session for the final
next Thursday (April 23) at the usual class-meeting time
and place. The final is scheduled for the following Monday,
and is mandatory. A review guide should be available by Monday.
- April 15: Several students have reported problems with
their applets for Homework #5, in two categories:
(1) If the applet is resized, the drawing area looks
bigger, but the only part that can be drawn on is an area
of the original size. This is expected behavior given
that the program doesn't obtain a new offscreen image
when its window is resized (though it probably should);
you aren't expected to correct it.
(2) On some systems, when the applet is run under the
appletviewer, the appletviewer's status line (showing
"Applet started") overlays the applet's buttons. This
situation sometimes resolves itself when the applet is
resized. This behavior is probably caused by a bug
in the appletviewer (Sun's Bug Parade reports some
likely-sounding bugs);
you aren't expected to try to correct it.
- April 14: Networking examples from today's class and last
Thursday's class are available via
Sample programs.
- April 9: See Sample programs
for a hints example for Homework #5 (example contrasting
an application and applet).
- April 8: Homework #5 has been updated; the change is a small
addition to the "Helpful hints" section.
- April 7: I've added a link to the
Useful links and other resources
page for Sun's Java Developer Connection, which among other
things maintains a list of known JDK bugs. It's worth a look
if your program is misbehaving in an inexplicable way,
especially if you're not using the most
current release of the JDK (e.g., if you're using one of the
CIRCA Windows machines, which have only JDK 1.1.3).
- April 7: Homework #5
is available. It is due April 16 at midnight. This is
meant to be a short homework (worth 10 points rather than
the usual 20) in which you make a few modifications to an
existing program; if you find yourself changing more than
a few dozen lines or spending more than a few hours,
consider asking for help.
- April 7: Any of you who have tried developing or running
your Java programs on the CISE Unix machines have probably
noticed that the default window-manager setup doesn't have
a "close" button like the one Windows provides. What it
does provide is a pull-down menu of window operations
(which pops up when you click the middle mouse button outside
a window), and the "delete window" operation (but
not the "kill window" operation) seems to generate
a Java window-closing event. It is possible to customize
your window-manager setup so that every window has
a "close" button in the title bar;
send me mail
(blm@cise.ufl.edu)
if you want details.
- April 7: The test-pattern programs from last week are available
via Sample programs.
- March 31: The test-pattern programs from today's class will be
available soon. An additional sample picture-drawing
program can be found in
IsItArt.java
(requires
CIS3020CloseableFrame.java
too) -- this program repeatedly draws a random assortment
of shapes in its window.
- March 31: Sample programs for many of the classes described
in chapter 14 are available via
Sample programs.
(Earlier today it appeared that some of these programs
might have problems on DOS/Windows systems. All problems
have been resolved (courtesy of Sun's Bug Parade), except
that MenuExample appears to compute the minimum window size
incorrectly -- which can be worked around by resizing
when it appears.)
- March 30: A small correction to Homework #4 based on
a question last Thursday: If the program's command-line
argument references a file that doesn't exist, the
program should just print an error message and exit.
(Don't worry about this change if you've already turned
in your program: We won't test for this case.)
- March 30: Homework #3 is graded and can be picked up
outside E326. Apologies for the delay.
See Notes on grading
and
sample solution.
- March 24: A "hints" program for Homework #4 is available
(
AddMachineGUI.java).
Also see Sample programs
for examples from last week (updated/improved again 3/24)
and additional
examples (colors, layout managers) not discussed in class.
- March 23: Resubmitted versions of Homework #2 have been
graded and are available outside my office (E326).
Apologies for the delay.
- March 21: Example programs from this week's lectures are
now available
(see Sample programs).
Most are expanded and/or improved versions of the
programs presented in lectures.
- March 20: Homework #4
is available. It is due April 2 at midnight.
- March 17: I still have a few midterm exams in my office
(E326). Stop by during office hours or almost any
afternoon.
- March 5: Midterm exams were returned in class today.
If you weren't there, you can pick yours up in my
office (E326) during office hours today, or almost
any weekday afternoon (send e-mail first to blm@cise
if you want to be sure I'm there).
For those who are interested in such things:
- Maximum points: 150
- High score: 149
- Low score: under 50 (not to embarrass anyone with
specifics)
- Median score: 118
- March 5: Homework #4 has been deferred until after spring
break. I recommend that you download and compile the
threads examples
(see Sample programs)
and try them out on your system, to get a little more
exposure to how threads work.
- March 3: The
Notes on grading
for homework #2 have been updated to include the test input
data and expected output.
- February 27: If you are one of the students resubmitting
Homework #2 because of problems with redirected standard
input, see
setStdin in Homework #2
for an explanation of what I believe to be the cause
of the problem.
- February 27: Homework #3 seems to be giving some students
enough trouble even without the complication of figuring
out how to count non-comment lines in C source, and
the hint to use a StreamTokenizer may be less
helpful than intended, since our book does not discuss
StreamTokenizer.
So an example program
showing how to use a StreamTokenizer to
compute the required count is now available.
See
CountCLines.java
(sample input
CountCLines.IN).
- February 26: Homework #2 was returned after the exam.
If your grade sheet says "See me (blm) about
resubmitting", read the instructions in the
Notes on grading
(updated 5:30pm 2/26). Note that I need the grade sheet back
too.
- February 24: The threads example from class today
is available via Sample programs.
(This is the last time an announcement of this form will
appear here: Sample programs discussed in class will nearly
always be available, and will be linked from
Lecture summaries and
Sample programs.)
- February 24: The due date for Homework #3 has been moved
to Monday, March 2.
- February 24: Homework #3 has been updated, as follows:
- The command line for the example (in the
Detailed description section) should read:
java FilesInfo Test.OUT EmptySub Sub cpgm.c
empty.txt otherfile fpgm.f tfile.txt qwertyuiop
(EmptySub and
Sub were mistakenly omitted from the
command line, though the rest of the example shows
them being processed. Apologies for this typo.)
- The comments in buildObj() in the program
framework have been revised to read:
// PUT SOMETHING HERE:
// assign appropriate value to o
// *HERE* is where you should decide what type
// of file you have and call an appropriate
// constructor (for a subclass of FileInfoObj)
The idea is that you will create subclasses of
FileInfoObj, one for each kind of file
you're asked to deal with, each with methods
(prSize(), etc., defined in the class or
inherited from a superclass) that do the right thing
for that file type.
- February 23: The final version (slightly more detailed than
the preliminary version) of the
review guide
for the midterm is now available, as is a
sample solution for Homework #2.
Homework #2 is being graded and will be returned soon.
- February 20: Homework #3
has been updated to further clarify issues of system
dependency (summary: your program probably doesn't need to
concerned with differences between, e.g., Unix and Windows).
- February 19: The threads examples from class today
are available via Sample programs.
- February 19: Several students pointed out that the example in
the Homework #3
writeup has some Unix-specific aspects. It has been slightly
revised to be less system-specific, and an explanatory note
has been added after the example output noting remaining
system dependencies. A link has also been added to the
little example program from today's class.
- February 18: Remember that the midterm exam is scheduled
for class time next Thursday (February 26).
A review guide listing which textbook chapters you should
review and showing examples of possible questions is in work.
A preliminary version
is available now; a final version will be available by Monday.
Sample solutions to Homeworks #1 and #2 will also be
available by Monday.
- February 17: The final version of
Homework #3
is available. It is due February 27 at midnight
(the day after the midterm).
- February 14: A preliminary version of
Homework #3
is available. It is tentatively due in not quite
two weeks (February 26).
- February 12:
A last-minute note about Homework #2: The methods of
the Input class signal end-of-file by throwing an
InputEOFException. You are meant to catch this exception
and end the program gracefully.
- February 12: Homework #3 is coming soon -- either tomorrow
(Friday) or Monday.
- February 12: Several small program examples were mentioned
or discussed in class today. All are now available
via Sample programs,
together with some examples we'll discuss next week.
- February 12: If you've been browsing the Core API
documentation via Sun's Web site, consider locating
a local copy (if you're using one of UF's systems)
or downloading a copy (if you're using your own system).
See Java tips for details.
- February 10: For homework #2, please try to ensure that
we receive your source code in good condition.
Source code sent as an attachment to a message
seems to arrive in good shape; source code sent in the
message body sometimes seems to arrive with extra
line breaks inserted into long lines (and if the lines in
question are comments or string literals, the result
doesn't compile). See the grading notes for Homework #1
(link below) for more information.
- February 10: Homework #1 has been graded.
Grading sheets (one for each student who submitted a
homework, showing comments and your score)
are in the envelope on the
instructor's door (E326). Comments flagged "blm" are
from the instructor; other comments are from the grader.
See
Grading notes and sample solution for notes
on grading criteria and a sample solution.
- February 10: Note that you do not need to understand
anything about the internals of the Input class (discussed
in today's class) to do Homework #2; you should be able
to see how to use the methods of Input from looking only
at the example programs and the main() method of Input.
- February 5: Expanded versions of examples from today's class
are available;
see Sample programs.
Most examples include comments and a simple text
interface so you can see how the formatting classes
work with a variety of inputs.
- February 5: For Homework #2, you may assume that Input.class
(and Assertions.class) will be available in the directory
in which we test your programs. (So if you use one of
these classes, you do not need to copy it into your
program.)
- February 5: It appears that problems related to submitting
homework by sending the source file as a mail attachment
have been resolved. So you may submit homework in that
format if it's more convenient to you. The instructions
for submitting homework have been revised accordingly.
- February 5: The Programming style
guidelines have been updated.
- February 5: New and improved Input class.
Some students have reported that the Input class
does not behave properly on Windows systems (the symptom
is that it sometimes seems to ignore keyboard input for
a while and then catch up all of a sudden).
The source of the problem seems to be a bug in the
Windows implementation of the Java runtime system.
A new and improved version of the Input class
works around this bug and should work correctly on all
systems. It also provides neater methods for switching
between file input and standard input.
The new version replaces the old one on
the sample programs page.
Sample program TestFileInput has been revised to demonstrate
use of the new methods for switching between file input
and standard input (Input.setFile() and Input.setStdin()).
The methods previously used in TestFileInput
for this purpose are not
available in the new and improved Input class, so for
compatibility the old versions of Input.java and
TestFileInput.java have been retained as
OldInput.java and OldTestFileInput.java.
(Warning: The older version has been retained with a
classname of OldInput. If you plan to use it, rather
than the newer version, in your
homework #2, you must use classname OldInput as well.)
See Sample programs
for links to all of the above.
- February 3: Homework #2 has been updated to clarify a few
points, including:
- A reminder to include comment lines giving your
name and SSN.
- A suggestion to review the Vector and Hashtable
classes before beginning this assignment.
- February 3: For those who may be wondering how much of
the text they should have read, by now you should have
read chapters 1, 4, 5,
6 (except for the sections on
inner classes, which you should read in connection with
this week's lectures),
7 (only the section on the Object class),
and 9 (only the sections on string- and math-related
classes, and vectors and hashtables).
Lectures have also covered material from chapters 2 and 3,
but you need not read these chapters carefully at this point.
- February 3: The linked-list example from last week has
been revised and improved, and the
examples of using the Input class have also been
slightly revised to include more comments.
See Sample programs.
- February 3: The nested-classes examples from today's class
(plus two more we'll discuss next time)
are available;
see Sample programs.
If you found these examples difficult to understand,
it may help to download them, compile and execute them,
and look at the output. We can also review them in class
Thursday.
- January 30: Homework #2
is now available (posted 6am, last updated 9:30am).
It is due in not quite two weeks (February 12).
This assignment is intended to be more
challenging than its predecessors, but not overwhelmingly
so. We can spend some time in class next week
discussing it if there's interest.
- January 29: By request, the example of overriding the
clone() method presented during class
has been provided;
see Sample programs.
(Updated February 2.)
- January 29:
Useful links and other resources
(formerly "References and useful links") has been updated.
- January 29: If you've already submitted your homework #1 in
a way that makes the source code an attachment, you don't
need to try to submit it again as plain text. (By the way,
if there was a comment on your grade sheet for Homework #0b
about problems with long lines being split, it would be
helpful to know what system/program you used to submit it.
Let me know at
blm@cise.ufl.edu.)
- January 27: The due date for Homework #1 was meant to be
January 27 at midnight, not January 26 as previously
announced. Apologies for the confusion!
- January 27: Homework #0b was returned (or rather, a grade sheet
showing your score was returned). If you didn't come to
class, you may pick up your grade sheet outside room E326.
See How to submit homework for
updated hints on how to make submitting homework more
painless for you and for us, as well as some clarification
of policies.
- January 20: Homework #1
was assigned today and is now available. It is due January 26.
(Last updated January 20 at 8:25 pm.)
(Due date corrected to January 27.)
- January 20: Not-for-credit assignment
Homework #0x
has been extended and sample solutions have been provided.
- January 15: Not-for-credit assignment
Homework #0x
is available.
- January 14: Information about the location of
online documentation has been added to
Java tips.
- January 13: The sample applets from today's lecture are
available for execution and/or download; see
Sample programs.
Give them a try!
- January 13: Don't be alarmed if you didn't understand
everything in today's class: It was meant as a quick
look at the insides of some not-completely-trivial Java
programs. We will talk about most of the topics
covered (object-oriented programming, Java libraries,
threads, etc.) in more detail in upcoming classes.
- January 13: The campus bookstore reportedly has the textbook
now.
- January 8: Homework #0b was assigned January 8 and is due
January 15. See the
homework writeup
for details.
- January 6: Where possible, copies of overheads will be provided
via Class notes and other documents.
- January 6: As of Tuesday, the campus bookstore did not have
copies of the textbook. Supposedly it's on order and will
arrive in a few days.
- January 6: Remember to turn in your background questionnaire
(homework #0a) by 5pm January 7 -- worth 5 homework points.
- January 6: If you have questions about the course syllabus,
course policies,
or where to find more information about course-related topics,
browse through the pages linked from the "Course links"
section of the class Web page.