Richard G Baldwin (512) 223-4758, NRG Room 4238, Baldwin@DickBaldwin.com, https://www.austincode.com/baldwin/

ITSE2321 Object-Oriented Programming

This material applies to classroom sections and Distance Learning sections taught by Professor Baldwin.

Instructions for Downloading and Submitting Assignments

Fall 2019

Revised 05/23/19

The official web page for this course is ITSE2321.htm


General

This document may be modified as the semester progresses in order to incorporate new instructions or clarify existing instructions. Therefore, you should review the instructions periodically and then immediately before submitting each assignment to confirm that you are in compliance.

Failure to comply with the instructions usually results in a failing grade for the assignment, often zero.

The assignments for this course are take-home assignments. You may use any reference material that you have available. However, you are instructed not to obtain assistance from anyone.

Downloading Assignment Files

Assignments are posted in Blackboard. There is a zip file associated with each assignment that you can download from Blackboard. The zip files have names like Proj01.zip, Proj02.zip ... Proj12.zip.

(Note that the first four assignments will not be visible until you have taken and have scored at least 80-percent on Test00. See Online Orientation.)

Format of Downloadable Zip File

Each of the zip files contains the following material as a minimum:

Each assignment requires that you write one program. Extract the contents of the zip file into an empty folder. Then open the ProjXX.htm file in your browser to view the programming specifications for the assignment.

The docs folder contains javadoc documentation for my programming solution for that assignment. The documentation package was produced using Oracle's javadoc program. The folder named docs contains a file named index.html. Open that file in your browser to view the documentation for my solution.

Don't use NetBeans, Eclipse, or other high-level IDEs

NetBeans, Eclipse, and other high-level IDEs are excellent productivity tools for programmers in the workplace who are working on large projects, who know exactly what they are doing, and who have a need to become more productive in their programming efforts.

However, to write the simple programs required for this course, you should need nothing more sophisticated than a text editor (preferably with Java syntax color coding), the Oracle Java Development Kit (JDK), and Barb Ericson's media library. You shouldn't need a high-level IDE to serve as a crutch to help you write these simple programs. The use of a high-level IDE to write the programs required for this course is overkill, can lead to problems, and is not recommended.

Special Instructions Regarding the Submission of Assignments

You may submit each assignment up to two times before the deadline shown in the syllabus. Your highest score among the two scores for each assignment will be used to compute your final grade.

Your name

Your name is required one or more times in the output for every program and the program specifications will indicate where your name must appear. If there is any confusion as to where your name must appear, please discuss this with me at least one week prior to the assignment deadline. (If your name does not appear, I will assume that the material that you submitted does not constitute your own work and you will not get credit for the assignment.)

Separate class and interface definitions

Every class definition (including the driver class that I provide) and every interface definition must be contained in a separate source code file with an extension of .java. Give the file the same name as the class or interface that the file contains.

Each such file must include any required import declarations.

None of the files may include a package declaration.

Submit source code files only

You must submit only your Java source code files encapsulated in a zip file. Do not submit class files or image files. If you do submit them, they will simply be overwritten when I compile and execute your programs.

Your name in the zip file

Include your name in the name of the zip file that you submit to help me avoid getting your zip file mixed up with another student's zip file when I retrieve them from Blackboard. A suitable example file name is:

Asg01_baldwin.zip

Do not submit my driver class files

Do not submit files named Proj01.java, Proj02.java, Proj03.java, Proj04.java ... Proj12.java. I already have them. I don't need them, I don't want them, and if you submit them, I will overwrite and destroy them. Allowing them to be included in the zip file has caused major problems for some students who failed to separate their class and interface definitions into separate files.

Code compatibility

The source code files that you submit must contain code that is compatible with Oracle's JDK installed in the NRG laboratory on the due date of the assignment. The Java version will be specified in the syllabus for your course for the semester in which you are enrolled.

Many of the assignment programs must also be compatible with Ericson's media library. You must download a copy of the library from Ericson's web site. I will specify the required version of Ericson's library in the online syllabus for the course in the semester in which you are enrolled.

I will use the specified version of Ericson's library to score your assignment. If your solutions use features that are not compatible with that version of the library, you will not get credit for your solutions.

Testing your programs

Don't rely on the DrJava IDE (or any other IDE) to test your programs. Test your source code for each program from the command line using Oracle's javac.exe and java.exe programs to confirm that your programs conform to the program specifications before submitting your assignments.

To avoid possible class file problems, delete all of the class files produced by one version of your program before testing the next version of your program or before testing your next program.

No partial credit

I will score your programs from the Windows command line. (In case you develop under a different OS, make certain that your programs are compatible with the version of Windows installed in the NRG computer labs.) Each program will be graded either right or wrong. Partial credit will not be given for source code that does not fully conform to these instructions and to the program specifications. If one of your programs doesn't conform, don't bother submitting it.

Grading criteria

Each program requires you to use (without modification) a controlling class and/or other code that I have provided (file named ProjXX.java) and to duplicate the screen output shown while meeting all other written specifications. Any modification of the code that I have provided will be grounds for disqualification.

(The zip file that you will download from Blackboard contains a Java source code file named ProjXX.java for the driver class for each program. Use it without modification.)

My grading procedure

After copying your source code files into a folder identified by YourName on my M-drive , I will test your program by executing a batch file containing code in that folder similar to the following:

copy ..\_Solution\*.bmp
copy ..\_Solution\*.jpg
copy ..\_Solution\Proj01.java

del *.class
javac -cp .;M:\bookClasses Proj01.java
java -cp .;M:\bookClasses Proj01

What does this mean?

In case you don't understand what the code shown above means, (and you have aspirations of becoming a computer programmer), it is time for you to do the necessary research to learn what it means.

Briefly, it means that I will copy my version of ProjXX.java along with any required image files into the folder identified by YourName, overwriting your files having the same names. Then I will attempt to compile and execute the program using the required version of Java and the required version of Ericson's library.

As of this writing, a fairly good tutorial on the Windows Command Prompt is available here.

Failure to follow instructions

If you modified the code in the file named ProjXX.java or you failed to separate your class and interface definitions into their own separate files when you wrote your program, it is unlikely that your program will compile and execute successfully under the procedure given above.

Run my class files

In all cases I will provide you with the set of class files produced by my version of the program so that you can run my version to observe the output. I recommend that you run my version (from the command line) side-by-side with your version and compare the two.

(Note: My version of many of the assignments writes an output image file with a name similar to Proj01Output.png. This file is incorporated in the HTML specification document for the assignment. Unless stated otherwise, your program is not required to write such an output file.)

You must match the specified screen output in every significant way for every program. Extraneous characters on the screen, extraneous images that are not shown in the assignment specification, extra blank lines, missing blank lines, different colors for output images, etc., are grounds for disqualification. In other words, your output must be an exact image of the specified output.

You must also match the visual and operational aspects of my version in every significant way such as: shape, size, color, shading, labels, interactivity, etc. If they don't match, your version is not correct.

(Every semester there are one or two students who are surprised and saddened to learn that I really do mean that you must follow the instructions and meet the specifications exactly or you won't get credit for the program. Don't be one of those students.)

Output Visual Format

Different versions of Windows or the same version of Windows with different appearance options produce slightly different visual output formats for the same program. The images shown in the file named ProjXX.htm correspond to only one version of Windows and one set of appearance options.

In any event, if you run my solution and your solution side-by-side, the same appearance options will be applied to both outputs, which may cause both outputs to look somewhat different from the images in the file named ProjXX.htm. As long as your output matches my output, it is okay if they both look somewhat different from those images.

Recommended Study Procedures

You should study all of the material in my online EBook titled ITSE 2321 - Object-Oriented Programming (Java).

You should also study the following EBooks:

Pay particular attention to the sample programs that are explained in the various modules in the above list. You will find that those sample programs are similar to some of the programming assignments.

You will also find links to some optional video lectures for this course in my online EBook titled ITSE 2321 - Object-Oriented Programming (Java).Those links are mixed in with the modules to which they apply. Note, however, that the use of the video lectures is not a requirement of the course. They are completely optional. They are provided solely for the benefit of those who can make effective use of them.

You should also make certain that you know how to compile and execute the programs from the command line (see Compiling and/or Running Java from the Command Line).

It may also be necessary for you to do independent research into topics that aren't covered in my EBook or in my classroom lectures. One of the easiest and quickest ways to do this is with an online search. For example, to view most of what I have to say about the concept of overriding the toString method, start the search engine at http://www.google.com/ and search for the keywords:

richard baldwin java overridden toString

Submitting Your Assignment

Submit your assignment using the Blackboard Assignment feature.

After you submit the assignment, select the assignment again from the Assignments menu item. You should see text similar to "Review Submission History." You should see a hyperlink to the zip file that you submitted earlier in that section. Click that link to download the file.

Open the zip file and confirm that it is the correct file for the assignment that you intended to submit. If you discover that you submitted the wrong file, contact me immediately so that we can arrange for you to resubmit the correct file. Otherwise, your assignment will be scored using the file that you submitted. Note that if you attempt to contact me at the last minute to help you correct such an error, it may be too late. In that case, your assignment will be scored using the file that you submitted.

If I am unable to successfully unzip the file that you submitted, or if it contains the wrong material, you will not get credit for the assignment.

The assignments require you to write programs and to submit the resulting source code files. The completed programs must satisfy the requirements described in this document and the individual specifications that apply to each program.

Extraneous Material

Do not allow your programs to display screen images that do not appear in the assignment specifications. If you do, you won't get credit for the programs that display extraneous images.

Every semester, some students fail to receive credit for one or more assignments because they allow their program to display (possibly hidden) images that do not appear in the program specifications. Don't be one of those students. Manually move your images on the screen to confirm that extraneous images are not hidden behind the required images.

Do not submit extra files such as readme.txt files and expect me to pay attention to them. I won't pay attention to them.

Do not expect me to pay attention to text that you may choose to enter into the Blackboard text fields when you submit your assignment file. I am not interested in them, and I won't pay attention to them.

Do not put comments in your source code and expect me to pay attention to them. I am not interested in them, and I won't pay attention to them.

Do not submit javadoc documentation for your programs. It causes the zip file to be very large and I don't need it.

The required material

All I expect to receive from you when you submit your assignment is the set of required source code files. (In many cases, there will only be one source code file with a name like ProjXXRunner.java) There is no reason that you will need to communicate any information about your assignment to me when you submit it. Any need to discuss the requirements of the assignment must be satisfied prior to your submission of the assignment.

Encapsulate an electronic copy of the required material in a zip file and submit it as a Blackboard assignment, not later than the deadline given in the syllabus. If you are running Windows, you don't need a special program to create the zip file. The Windows file compression utility is entirely adequate.

The zip file must be one that I can unzip using the Windows de-compression utility with no effort required on my part other than to open the file and extract the material contained therein. There must be no requirement for any sort of special decoding. If there is such a requirement, I will not accept the assignment.

Clarification on packaging of assignments

Several students have requested clarification on how to package your assignments in multiple source code files. Here is a recipe for packaging Asg01.

  1. First make sure that you understand how to write, compile, and execute the Graphic version of Hello World.
  2. Copy my Proj01.java file into an empty folder.
  3. DO NOT modify the contents of the file named Proj01.java.
  4. Copy any image files that I provided that are required by the program into that same folder. DO NOT change the names of the image files.
  5. Create an empty text file named Proj01Runner.java in that same folder.
  6. Using a text editor such as DrJava, define a class named Proj01Runner in the file named Proj01Runner.java.
  7. Place the following directive at the top of the code in that file:
    import java.awt.Color;
  8. Save the file named Proj01Runner.java
  9. Compile the file named Proj01.java, preferably from the command line. That will cause the new file named Proj01Runner.java to also be compiled.
  10. Correct compiler errors, if any, and recompile Proj01.java until there are no compiler errors. Delete all class files from the folder before recompiling. You should end up with the following two compiled class files in that folder: Proj01.class Proj01Runner.class
  11. When there are no more errors, run your file named Proj01.class from the command line.
  12. When your output seems to be correct, drag your output image to a different part of the screen. Then go back to the material that I provided and run my file named Proj01.class from the command line. DO NOT ATTEMPT TO RECOMPILE MY PROGRAM. (You will probably need to be running Java SE 8.x in order to run my program on your computer.)
  13. Arrange the output images from the two programs side-by-side on your screen.
  14. Compare the two image and make certain that they match.
  15. When they match, encapsulate your file named Proj01Runner.java in a zip file with your name in the zip file name and upload for Asg01 in Blackboard.

If you find any errors in the instructions given above, or you need additional clarification, please notify me so that I can make the needed changes for the benefit of all students.

Be careful what you copy

There is nothing wrong with using the code from an existing program as a template for a new program. Professional programmers do that all the time. However, if you do that, you should do it in a thoughtful and judicious way.

When writing code for an assignment, don't simply copy an entire existing program into your new program with the intent of modifying it to meet the assignment specifications, even if the existing program appears to be close to what you need.

Instead, you should first make certain that you really do understand the requirements of the assignment. Don't write or copy any code until you have that understanding.

Then you should examine each statement in the existing program and make certain that you truly understand the purpose and behavior of each statement. If you don't understand the purpose and behavior of a statement in an existing program, don't even consider copying it into your assignment program.

If you copy code from an existing program into your assignment program, you should copy statements from the existing program into the new program one statement at a time. You should make certain that each statement is both needed and appropriate for the new program before you copy the statement.

When writing assignment programs, students in this course frequently copy entire sample programs into their new programs with the intent of modifying that code to satisfy the requirements of the assignment. Then they frequently fail to delete or modify the code that they have copied as required to meet the requirements of the assignment. This often results in telltale signs such an incorrect colors, display of extraneous images, display of extraneous text, etc.

Don't be one of the students who makes such a mistake. First understand the requirements of the assignment. Then, if you copy code from a sample program to satisfy those requirements, copy and use that code in a thoughtful and judicious way.

A sample program may be useful in helping you to write the new code for an assignment. However, that code is only helpful if you truly understand the code in the sample program and truly understand the requirements of the assignment. The availability of code in a sample program can be detrimental to your success in writing the code for an assignment if fail to copy and use that code in a thoughtful and judicious way.

Contents of your zip file

If you have studied all of the above material and you are still confused about what to include in the zip file that you submit, here are step-by-step instructions for creating the contents of the zip file for Asg01.

First make certain that you can successfully write, compile, and run (from the command line) both the text version and the graphic version of the Hello World programs at Java3000: The Guzdial-Ericson Multimedia Class Library.

Then perform the following steps in the order shown:

  1. Open a command-line window in an empty folder somewhere on your disk.
  2. Make sure that you have complied with this requirement.
  3. Copy your source code file or files into that empty folder.
  4. Copy the image file(s) that I provided for Asg01 into that folder.
  5. Copy the file that I provided named Proj01.java into that folder.
  6. Execute the following commands in the command-line window where [bookClasses] is the absolute path on your computer to the folder named bookClasses. Repeat these five steps until you get the correct output. (Don't overlook the period followed by the semicolon.)

Once you have the correct output,

  1. Delete the file named Proj01.java from the folder.
  2. Delete all files with an extension of .class from the folder.
  3. Delete all image files from the folder.
  4. Encapsulate the remaining file or files in a zip file and upload it for the assignment in Blackboard.

If you are unsuccessful in using this procedure, or you don't understand this procedure, please notify Prof. Baldwin

Failure to Meet the Submission Deadline

The submission deadline for each assignment is provided in the Syllabus each semester. In most cases, the assignment will expire and disappear from Blackboard when the deadline passes.

The penalty for failing to meet the submission deadline is simply that you won't get credit for the assignment.

Before you ask, let me tell you that a temporary Blackboard outage, business travel, problems at work, extreme work pressures, divorce, depression, receipt of a "Dear John letter", automobile repairs, flat tires, computer problems, power failures, total eclipses, extremely high outside temperatures, high pollen count, broken lawnmowers, the Super Bowl Schedule, and other assorted and interesting circumstances are not valid excuses for failing to meet the submission deadline. About the only excuse that I might be willing to accept would be something on the order of extended hospitalization or extended serious illness on the part of you or an immediate member of your family. If your excuse is not on that order of magnitude, I really don't want to hear it.

-end-

File: ITSE2321AsgInstructions.htm

Creative Commons License This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.