|






| |
The purpose of the homework assignments is to challenge you. You will find
the assigned textbooks interesting and useful, and perhaps challenging, too.
Reading and studying concepts and theory is essential to your understanding of
the material covered by this course. Because most of you are in a technology
curriculum, it is safe to assume your goals include understanding how the
technology works, and how it can be applied to solve practical problems.
The way to learn problem solving skills is to select interesting problems,
and solve them...lots of them. Many disciplines resort to solving seemingly
endless lists of short, "toy" drill problems. The learning is through
repetition; slowly expanding the repertoire of problem solving skills through
gradual expansion of the problem solving "tool kit". It is somewhat more
difficult in computer science and software engineering; our problems do not
easily lend themselves to this teaching method.
In this course, we are necessarily limited to "toy applications"; ones that
you can develop, test, and "ship" in the time allowed, while balancing the
reading load in this course, your other coursework, and the rest of your life
(particularly those of you who have full-time employment in addition to your
coursework).
- Homework assignments are an individual effort. You shall not collaborate
with anyone in developing answers to homework assignments. You may ask
questions of the instructor either through the course web site (which is the
preferred method) or by email. Responses to these questions, or to the
questions posed by other students in the class may be used in your
homework assignment responses. Please review the Virginia Tech
Graduate Honor System.
- Responses to homework assignments are due by midnight (Blacksburg, VA
time) of the due date. The server records the date and time of submission, and
it is this date and time that counts for grading purposes. Do not count on
this clock being synchronized with UTC USNO (or the phone company, or whomever
provides your reference time), so you should not expect to upload your
submission at the last possible moment and expect the server to agree with
your local host time. Remember, in this case the server is always right.
Pushing submission to the last possible moment is also making the critical
assumption that the server is available at the moment you need it. Give
yourself a little extra time.
- Exceptions must be handled
gracefully.
- The source code for your homework assignments must be
documented using
javadoc tags. There is a very good style guide available
online.
- In addition to good documentation, you should follow Sun Microsystems'
Java™
Coding Conventions in writing your program. There is a minor cottage
industry in coding standards; many of them are good, crafted as the result of
experience in developing production computer programs. In this class, we use
the one discussed above.
- Submission is done electronically using your Student DropBox. Submit
only one file, a .jar file
containing all the files required by the homework assignment and only those
files (in particular, do not upload "screen shots" or parts of the jdk --
this makes the uploaded file extremely large and takes significant time to
download). For more information about
jar files and the jar
utility, see
The
Java™ Tutorial.
- Special note on the file naming convention for files you submit. The
.jar file that you upload to your Student
DropBox shall have a name that is formed by concatenating your pid with the
characters HWnn, where nn is the number of the homework assignment. For
instance, yourpidHW01.jar is a valid file name
for a submission intended to satisfy the requirement for Homework01. The
.java file that contains your program should
be similarly named (i.e., yourpidHW01.java).This
rule is in place for the convenience of the grader; this convention makes it
much easier to download files, put them in the correct directory for
safekeeping, and running a script to remove the source code, compile, and
execute your program. When it is time to evaluate and grade your program, it
is downloaded, along with all the other submissions, and placed in a directory
on the computer that is used for grading. The script then runs the following
commands in the directory that now contains your submitted file::
jar xf *.jar
javadoc -private -author -use -version *.java
javac *.java
java yourpidHW01
The source code is inspected visually, the javadoc
file is inspected visually, and the output is compared against the grading
criteria, and a grade is assigned.
- If, for some reason, you must submit after the deadline, the penalty is:
- 10% of the maximum homework grade for first 24 hours of delay (next day
until midnight).
- 50% of the maximum homework grade for 24-48 hours of delay (second day
until midnight).
- 100% of the maximum homework grade after 48 hours of delay (third day
and later).
- Every effort will be made to grade homework assignment submissions within
one week. If there is a problem with your submission, you will likely receive
an electronic mail message (to your vt.edu account) with questions or
comments.
What is the overall theme of the homework assignments? What do we hope to
accomplish by the end of the semester? What follows the work we're doing this
semester?
The homework assignments have a specific structure; these assignments are
intended to guide the learning process and to give you experience in problem
solving.
Objective
Assignment
This is where the requirement is described. The language used will be as
unambiguous as possible, though with any requirements document, it is safe to
assume that the requirement will not be perfect. If you do not understand the
requirement in any way, you should post a comment on the course web site. Either
the instructor will provide an answer, a fellow student will provide help, or
both.
Testing scripts
Providing the testing scripts helps in two ways. First, this is how The Real
World™ operates; test scripts should be developed in parallel with computer
program development, so the test scripts are ready to support module, unit, and
system testing. Second, if your program passes the testing script on your
machine, chances are it will pass the testing script on the machine used for
grading. This makes everyone's life easier, and removes some of the subjectivity
from the grading process (which is a significant goal).
Grading criteria
Grading criteria are provided with every homework assignment. The goal is to
make the grading process as objective and repeatable as possible.
Hints
I believe in judicious hints. This isn't a treasure hunt...it's an
educational experience.
Copyright © 2000-2001 First Principles. All
rights reserved.
For problems or questions regarding this web contact
webmaster.
Last updated:
07 June 2001 23:06:26 -0400.
|