Homeworks
Home

 

Homework 0
Homework 1
Homework 2
Homework 3
Homework 4
Homework 5

Philosophy

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

Ground rules

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

General structure

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?

Specific structure

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.