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

INEW2338 Advanced Java

This material applies to classroom sections and Distance Learning sections taught by Professor Baldwin with assistance from Dr. Martinez.

Instructions for Downloading and Submitting Assignments

Fall 2019

Revised:  05/23/19

The official web page for this course is INEW2338.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.

There are two sets of assignments. The assignments in the first set differs significantly from the assignments in the second set. Therefore, this document is divided into two major sections with the instructions in each section applying only to the assignments covered by that section:

Please make certain that you are reading the correct section for the set of assignments that you are working on.

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.

Asg01 through Asg08

The instructions in this section apply only to Asg01 through Asg08. See other sections of this document for instructions that apply to the other four assignments.

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 are named Proj01.zip through Proj08.zip. You can access these zip files by selecting Assignments-Network and Assignments-JSON in the menu on the left side of the Blackboard page for the course.

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.

Don't use NetBeans, Eclipse, or other high-level IDEs for Asg01 through Asg08

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 these eight assignments, you should need nothing more sophisticated than a text editor (preferably with Java syntax color coding) and the Oracle Java Development Kit (JDK).

(Note: Asg05 through Asg08 also require you to download, install, and use the json-simple Java library. See Json0205: Getting Started for download, installation, and usage instructions.)

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 these eight assignments is overkill, can lead to problems, and is not recommended.

Special Instructions Regarding the Submission of Assignments

You may submit each of these eight assignments 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 each 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. 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 files

Do not submit files named Proj01.java through Proj08.java. I already have them. I don't need them, I don't want them, and 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. Among other things, this means that your source code must be compatible with the 64-bit version of Oracle's JDK 8 (jdk1.8.xxx) or later.

The code that you submit for Asg05 through Asg08 must be compatible with the json-simple Java library version 1.1.1 or a later version.

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 (the file named Proj01.java for example) 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\Proj01.java
del *.class
javac -cp .; Proj01.java
java -cp .; 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 into the folder identified by YourName, overwriting your file having the same name (if such a file exists). Then I will attempt to compile and execute the program using the required version of Java.

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

I will provide you with the set of class files produced by my version of each 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.

The output from each of your programs must match the output from my corresponding program in every significant way Extraneous characters on the screen, extra blank lines, missing blank lines, etc., are grounds for disqualification.

You must also match the visual and operational aspects of my version in every significant way such as: shape, size, color, shading, labels, interactivity, hyperlink support, graphics support, 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.

As of this writing, the ACC computer labs are running Windows 7.

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 the following sections of my EBook titled INEW2338 - Advanced Java Programming for these eight assignments.

Note: Only one of the topics Search Engines, Servlets, or JSON is covered in the course in any particular semester. However, all three are important. The course material in the Blackboard course management program will indicate which topic is covered in the current semester.

Students are encouraged to study all three topics for their own educational purposes in order to enhance their prospects of landing a job as a Java programmer.

You should also make certain that you know how to compile and execute the programs 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

Encapsulate an electronic copy your file or files 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.

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.

Extraneous Material

Do not allow your programs to display material that does not comply with the assignment specifications. If you do, you won't get credit for the programs that display extraneous material.

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 Comments field when you submit your assignment file. I won't pay attention to them.

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

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.

Asg09 through Asg12

The instructions in this section apply only to Asg09 through Asg12. See other sections of this document for instructions that apply to the other eight assignments.

See Assignments-Frame under Java EE & Frameworks in the left-side menu in your Blackboard course for more information on these four assignments.

Note in particular that you may submit each of these four assignments once and only once.

-end-

File: INEW2338AsgInstructions.htm

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