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

ITSE2321 Object-Oriented Programming

These instructions apply to classroom sections and Distance Learning sections taught by Professor Baldwin.

Instructions for Downloading and Submitting Exams

Fall 2011

Revised: 07/25/11

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 exam to confirm that you are in compliance.

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

Downloading Exam Files

Click here to download a zip file named ITSE2321Exams.zip that contains:

Except for the ReadMe text file, the downloadable zip file is password protected.  Complete the online orientation and then contact me at Baldwin@DickBaldwin.com  to obtain the password for extracting the material from the zip file.

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

Format of Downloadable Zip File

The zip file named ITSE2321Exams.zip that you will download contains three other zip files named Exam1.zip, Exam2.zip, and Exam3.zip.  As the names imply, each of these three zip files corresponds to a particular exam.  These three zip files are not protected by a password.  Only the top-level zip file named ITSE2321Exams.zip is protected by a password.

First extract all three zip files from the file named ITSE2321Exams.zip.  Then extract the contents of the zip file for a particular exam of interest into an empty folder, being careful to preserve the directory structure encapsulated in the zip file.

Each exam requires that you write five separate programs.  Each of the three zip files corresponding to a particular exam contains an HTML document (and associated image files) that constitute the programming specifications for that particular exam.  Open the HTML file in your browser to view the programming specifications for the exam.

Each of these three zip files also contains five folders, one for each problem for that particular exam, named Prob01 through Prob05.  The folder for a particular problem contains the class files for my version of the program along with any image files that are required to execute the program.  You will find instructions in the HTML exam document for executing my versions of the programs.  (In some cases, there are multimedia classpath issues involved, so be sure to read the instructions.)

Each of the five folders also contains a folder named docs.  This folder contains javadoc documentation for my version of the solution for that particular problem.  The documentation package was produced using Sun's javadoc program. The folder named docs contains a file named index.html.  Open that file in your browser to view the documentation for that particular problem.

This documentation may be helpful to you in successfully writing the programs for the exams, and may be particularly useful in helping you to write code that will execute successfully with my controlling class file.

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 Sun 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 as illustrated by the following example, and is not recommended.

One of my students recently recently scored zero on an exam because he:

As a result, when I attempted to execute this student's programs in the prescribed manner, they all threw Exceptions or Errors and failed to execute.

Obviously, I can't keep you from using a high-level IDE to develop your programs on your system at home.  If you elect to do so, however, make certain that you understand exactly what you are doing, and also make certain that you test those programs in the prescribed manner.  Otherwise, you too may find that you won't get credit for the programs.

Special Instructions Regarding the Submittal of Programs

Every problem on an exam requires you to write a Java program.

Your name is required in the output for almost every program and the program specifications will indicate where your name should appear.  (If your name is required and 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 program.)

You must submit Java source files, class files, and any required image files or sound files for each program. Store your completed source files, class files, image files, and sound files for each program in a directory tree on your hard drive (see discussion of submittal methods below).

You must store the files for each program in a separate folder (directory) with the name of the folder being the same as the name of the controlling class for the program (example:  Prob01, Prob02, etc.).  If you fail to do this, I will not accept your exam and you will score zero on the exam.

The final version of the programs that you submit for exams, must include source code and class files compatible with the version of Sun's JDK installed in the NRG laboratory on the due date of the exam (in addition to any required image files and sound files). Among other things, this means that you must use Sun's JDK 6 or later.  (Please read the Preface in my lesson entitled Generics in J2SE 5.0 to understand Sun's nomenclature regarding the different versions of Java.)  

Some of the exam problems must also be compatible with Ericson's media library.  Although there is a copy of the media library on the CD in the back of my textbook, it is lacking some features and has a few known bugs. (Your textbook may or may not have a later version of the CD.)

You'll need to download the Java 1.5+ version: bookClasses10-1-07.zip.  This version has some new features as seen at New Features in 8-14-07 or later bookClasses.  For more information, see http://coweb.cc.gatech.edu/mediaComp-plan/101.

(Note that the version of Ericson's library shown above is not the latest version on her web site. However, it does everything that we need and is proven to work with all of the exam programs. Therefore, I recommend that you stick with it rather than to plow new ground with a later version.)

I will use the version of the library described above to score your exam.  If your solutions use features that are not compatible with that version of the library, you will not get credit for your solutions.

Test the class file for each program from the Windows command line using Sun's java.exe and javac.exe programs to confirm that the program conforms to the program specifications before submitting it. If it doesn't conform, don't bother submitting it. (There is no partial credit.)

I will test your program in the following sequence. A failure at any step in the sequence will immediately result in zero credit for the program with no further testing. You should test your programs the same way. If you fail to do so and your program fails to run properly when I test it, you won't get credit for the program.

1.  Copy my compiled version of the controlling class into your folder in those cases where such copying is indicated in the program specifications.

2. Execute the class file from the Windows command line (using Sun's JDK 6, or later) in the ACC laboratory to confirm proper output.

3. Visually confirm that your source code meets all of the written program specifications.

4. Optionally recompile your source code and retest the class file produced by that compilation to confirm that the source code that you submitted was actually used to produce the class files that you submitted.

Each program will be graded either right or wrong. Partial credit will not be given for source code and class files that do not fully conform to these instructions and to the program specifications.

Some of the programs require you to use (without modification) a controlling class and/or other code that I have provided and to duplicate the screen output shown while meeting all other written specifications. In such cases, any modification of the code that I have provided (other than insertion of your name where indicated) will be grounds for disqualification.

You should be able to cut and paste the source code from the electronic copy of the test document into your Java editor (except that you may need to remove control codes inserted by my HTML editor).  It is strongly recommended that you cut and paste instead of retyping the source code in order to avoid errors in copying the code.

You must match the specified screen output in every significant way for every program. Extraneous characters on the screen, 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.

In all cases I will provide you with the set of class files that were produced by my solution to the problem so that you can run my version to observe the output. Be sure to run my version side-by-side with your version and compare the two. If they don't match, your version is not correct.

In no case are you to use any of the class files that I provide (except for the controlling class file with a name like ProbXX.class).  In order to get credit for a program, you must provide source code and compiled class files of your own design for all classes required by the program (except for the controlling class when I provide it) and except for the class files contained in the standard Java class libraries and Ericson's media library.

Your source code should use an indentation scheme and comments that makes it easy to read and understand.

Caution: Sometimes when printing html files from browsers, characters may be duplicated or omitted.  This can sometimes lead to confusion.  If  you are working from a printed copy, be sure to check it against the electronic copy.

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.

Submitting Your Exam

DO NOT SUBMIT YOUR EXAM TO THE BLACKBOARD DIGITAL DROPBOX. DO NOT SUBMIT YOUR EXAM VIA EMAIL. SUBMIT YOUR EXAM USING THE BLACKBOARD ASSIGNMENT FEATURE.

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

The exams require you to write programs and to submit the resulting source files, class files, any required image files, and any required sound files.  The completed programs must satisfy the requirements described earlier in this document and the individual specifications that apply to each program.

Extraneous Material: Do not submit extra files such as readme.txt files and expect me to pay attention to them. Don't expect me to pay attention to text that you may choose to enter into the Comments field when you submit your exam file. I am not interested in them, and I won't pay attention to them. Please 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.

All I expect to receive from you when you submit your exam is the required material. There is no reason that you will need to communicate any information about your exam to me when you submit it. Any need to discuss the requirements of the exam must be satisfied prior to your submittal of the exam.

Encapsulate an electronic copy of the directory tree containing your folders and files in a zip file and submit it as described above, not later than the deadline given in the syllabus.

The zip file must be one that I can unzip using the WinZip program http://www.winzip.com/download.htm 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 exam.

Using the WinZip program, I will check the boxes labeled "Overwrite Existing Files" and "Use Folder Names" (or the corresponding boxes in the version of WinZip that I am using) before extracting all of the files in your zip file.  It is very important that the integrity of your directory tree structure be faithfully reproduced when the files are extracted. If not, and if any files are destroyed in the process, you will not get credit for the files that are destroyed.

 

Exam Hints

Most of the exam problems contain statements similar to the following:

"When my compiled version of ProbXX is executed, in
combination with your other class files, the program must
produce the output shown ...

For quality control purposes, you should test your version
of the program using the same procedure prior to submittal
of your exam..."

Among other things, this means that the signatures of the methods that you write must match the signature of the methods that I wrote (when my code invokes methods in your code).

That signature is usually inferred by the given code and the given required output.  In addition, I provide standard javadoc documentation for every exam problem that shows the signatures of my methods.

If your program executes successfully using your version of ProbXX.class but fails to execute successfully using my version of ProbXX.class, this may mean that you have a problem with your method signatures.  In this case, you should look very carefully at the return type and the types of the parameters in the formal argument list.  You should also look very carefully at the issue of static versus non-static.  (Usually the text in the runtime error will provide clues as to where in the program the failure occurred, sometimes based on the line numbers in the given source code.)

Also note that when the source code in the controlling class invokes a method on an object, it is always a good idea to check first to see if that method is defined in the class named Object and inherited into your new class before writing the method in your new class.

Also, when the source code in the controlling class declares a variable of a given type, or uses a type for casting, or refers to a type for any other purpose, it is a good idea to check to see if the standard Java library already contains a class or interface having that name before defining your own class or interface.  To do this, you will need ready access to Sun's Java documentation which can be downloaded from the Sun site, or accessed online at the Sun site.

Every semester there are several students who ignore this advice and end up with a poor or failing grade as a result. Don't be one of those students.

In order to successfully complete the three exams, it will be necessary for you to do independent research into several topics that we won't have time to cover in the classroom.  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

To prevent Google from showing you an abbreviated list of links, go to the bottom of the last page of links and click on the link that reads: "repeat the search with the omitted results included"

Study Material for Exams

Online tutorials

I have posted three tutorial lessons titled: These lessons are designed specifically to help you study for your exams.

(You will also find a link to these lessons on the Table of Contents page for the Introductory Java Tutorials.)

Set 1 is designed to help you study for Exam 1.  Set 2 is designed to help you study for Exam 2.  Set 3 is designed to help you study for Exam 3.

Each lesson consists of a set of simple programs.  Each program is designed to illustrate one or more important Java OOP concepts.  The concepts involved are identified in the comments at the beginning of each program.

While the code in the lessons contains some explanatory comments, the programs are designed to illustrate the code without providing a detailed discussion of the code.  You are referred to the other lessons in my online Java tutorials for detailed discussions of the OOP concepts illustrated by these programs.

You are strongly encouraged to study and understand the sample programs provided in Set 1, Set 2, and Set 3 before embarking on a solution to the problems on Exam 1, Exam 2, and Exam 3 respectively. Please note, however, that the exams contain material that is not covered in these sample programs.

Online videos

In addition to the online tutorials listed above, the classroom lectures have been also been published as online video lectures primarily for the benefit of Distance Learning students, but freely available to all. You should also consider those videos as a major study resource.

Failure to Meet the Submittal Deadline

The submittal deadline for each exam is provided in the Syllabus each semester.  The penalty for failing to meet the submittal deadline is also explained in the Syllabus.

Before you ask, let me tell you that 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 submittal 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: ITSE2321ExamInstructions.htm