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

ITSE2321 Object-Oriented Programming

This is the main web page for classroom sections and Distance Learning sections taught by Professor Baldwin at

http://www.austincc.edu/baldwin/Fall10/Itse2321WebPage/ITSE2321.htm

Main Web Page

Fall 2010

Revised 10/29/10

General

This is the main web page that will be used for communicating information between Professor Baldwin and students enrolled in this course.

Use of the Blackboard online system
The online program named Blackboard will not be used for communication with students except in those cases where confidentiality is required, such as the reporting of grades to students.

Orientation:
All students are required to complete the online orientation.  To participate in online orientation, click on the orientation link below.

Broken Links:
Occasionally one or more of the links, which tie these online, documents together, may become accidentally broken.  If you discover a broken link, or any other problem with the online documents, please notify me as soon as possible so that I can repair the problem.

Communications via Email
If you send email to me, it is imperative that you include your name and the identification of the class in which you are enrolled (ITSE2321) on the Subject line. I normally have a very large number of students in any given semester. If I have to search the rolls to identify you, I may not answer your Email.

Spam blocking software

In addition, because I have received more than 500,000 spam messages during the past 30 days, I use a very aggressive spam blocking program.  If your email message doesn't contain the identification of the class in which you are enrolled (ITSE2321) on the Subject line, your message will probably be put in quarantine by the spam blocker and I will probably never see it.

Inquiries about Java programming

I also receive large numbers of email messages from persons all over the world asking questions about Java programming.  I don't have the time to answer all of them.  If you identify yourself as a member of my class and identify the specific class as described above, I will make it a point to try to answer your question.

Telephone number

It is also important that you provide a telephone number where I can contact you. I receive many email messages from students with invalid return email addresses.

Questions via Email:
From time to time you may need to ask questions via email, and I encourage you to do so.  However, please make the question as specific as possible.  For example, "What is OOP?" is not a question that I can easily answer via email.

If you, like many others, procrastinate and save your questions until the weekend before an exam deadline, don't be surprised if you don't get a response from me until after the exam deadline has passed. The weekend before an exam deadline is not the time for you to begin trying to learn how to program in Java.

I am usually happy to answer questions about Java programming concepts at the level of this course. However, please don't ask questions about the exams (unless you believe there is a problem with one of the test files that I have provided).  It is almost certain that I won't answer them.  It isn't fair for me to answer questions about the exams from one student when all students don't have an opportunity to hear the question and the answer. After all, if I didn't give take-home exams, you wouldn't have an opportunity to ask questions anyway. Just pretend that you are taking the exam in an ACC testing center and that I am not there.

When appropriate, please illustrate your question with a short sample program.  When you send a sample program, please observe several important rules:

I am here to help you, so don't hesitate to ask for help when you need it.

How many lessons...?
I frequently receive questions (both via Email and in the classroom) similar to the following, “How many tutorial lessons or how many textbook chapters do I need to read to be able to write the program for problem X on exam Y?”

My answer is usually something like the following, “Read (and understand) as many lessons and chapters as necessary to learn enough about Java programming to be able to write the programs or answer the questions.

If I gave true/false and essay tests in the classroom under closed-book conditions, I would feel obligated to tell you in advance how many lessons you need to understand in order to prepare for the test.  However, my tests are all take-home tests.  You have access to all of the test questions from very early in the semester.  You have access, not only to my tutorials and the textbook, but also to any book that you wish to consult, and to numerous resources on the web, in preparing yourself to successfully complete the exam.  I consider it to be your responsibility to make use of those resources in whatever manner, and on whatever schedule works best for you.

I simply provide the tutorial materials, conduct classroom lectures and discussions, answer appropriate Email questions, and establish the necessary deadlines.  (Unfortunately, deadlines are a fact of life, not only in college, but also in the workplace.)  I make no attempt to tell you how to schedule your time and your efforts.

So, before you ask, the answer is, “Consult whatever resources you need to consult, on whatever schedule you need to consult them, to learn enough about Java programming to be able to successfully complete the exams by the required deadlines (but please don’t get human assistance in the actual writing of the exam).”

Help me debug my program
Please don't waste our time by asking me to help you debug your programs.  The best way to debug is to avoid errors in the first place.  Then there won't be any bugs that require attention.

If you understand the requisite programming concepts, the only bugs that you will incur will be the result of careless errors on your part.  I won't waste my time showing you how to correct for your own carelessness.

Getting Started:
See the material in the "Hello World" lesson for instructions on how to compile and run a Java application.

Failure to Meet Prerequisites:
Please don't ask me to teach the COSC1315 Fundamentals of Programming material to you.  If you don't already understand that material, it will be your responsibility to learn it, on your own, without assistance from me.

Carelessness is costly
A few semesters back, on the last Friday of the month, which was anticipated to be one of the most active trading days of the month, programmers working on a network made a careless error and shut the NASDAQ stock exchange down for several hours.  There is no way of estimating how much this cost various people around the world.

A few months later, programmers working for a telephone company made a careless programming error and swamped the 911 emergency call center in Austin with wrong numbers for several hours.  Hopefully no one died as a result, but we will never know.

Although careless errors on exam programs may not be as costly as the errors described above, they are costly nonetheless.  In fact, the cost for making a careless error on an exam program is just as costly as not knowing how to write the program in the first place.  In either case, you get no credit for the program.  So, don't be careless.


Links

If things don't seem to be working properly when you follow these links, you may need to clear your cache or force a reload or both.

Bulletin Board

Check this area daily for messages from Professor Baldwin to all students enrolled in the class.

Note that this bulletin board contains postings that are new to this semester, in addition to postings that were carried forward from previous semesters due to the fact that the information in those older postings continues to be important over time.
 
08/05/10 Correct Email address
I was notified on 05/10/04 that ACC will no longer forward my Email messages to my preferred Email address.  Please do not send Email messages to baldwin@austincc.edu.  Send them instead to Baldwin@DickBaldwin.com
08/05/10  Who Am I?
I receive many email messages addressed to Dr. Baldwin, and I appreciate the courtesy. My highest degree earned is a Masters Degree in Electrical Engineering, and I am a full Professor at ACC. Under the circumstances, Prof. Baldwin is a more appropriate salutation than Dr. Baldwin.
08/05/10  Who are you?
When the semester begins, I will have a very large number of students on my rolls.  I probably won't be able to learn your name and email address.

I typically receive hundreds (occasionally thousands) of email messages each day, many of them from my students.

When you send an email message to me, make absolutely certain that the Subject line contains the following information as a minimum:

Make certain that your reply-to email address is valid.  (Send yourself a message and then reply to it to see if you get the reply.  Do I really need to tell Java programming students how to validate their reply-to email address?  Unfortunately, yes I do.  I receive many email messages from students with invalid reply-to addresses.)

Include your current telephone number somewhere in the body of the message, and make it easy to find.  If my email or your email goes down, I may try to call you on the telephone.

If you don't comply with the above, don't expect me to answer your email messages.


08/05/10  Please Be Patient
Other than questions regarding registration, please do not send email regarding this course prior to the first day of classes.  If you do, I probably won't answer it.  A great deal of preparation is required to teach a course of this nature.  I have many responsibilities to take care of in the final days before the course begins and I do not have the time to work with individual students until after the course actually begins.  If I reach the point that I can accept email regarding this course prior to the first day of classes, I will post that fact on this bulletin board.


08/05/10  Submitting Your Exams
As explained in one of the online documents, you can submit your exams on diskette or via email.  However, because of the danger of spreading computer viruses via contaminated diskettes, I would prefer that you submit your exams by encapsulating them in a zip file and attaching the zip file to an email message.

Diskette Submittal
If you submit your exam via diskette and my virus checker tells me that your diskette is contaminated, I will simply throw it in the trash and you will earn a zero on the exam.  Be sure that you are using an up-to-date virus checker, or run your diskette through the virus checker in the NRG lab before turning it in.

If you submit your exam via diskette and you are unable to hand it to me in person, put it in a large envelope and slide it under my office door.

EMail Submittal
If you submit your exam as an attachment to an email message, before sending the zip file to me, send it to yourself via email and confirm that you can unzip it to produce what you think it should contain.  Then when you send it to me, list your own email address to receive a copy of the email message.  When you receive the copy, unzip it to confirm that you sent the correct file.  If you find a problem in the file that you submitted, notify me immediately via email.  Otherwise, if I am unable to successfully unzip the file that you send to me, you will get zero credit for the exam.

Duplicate Copies
You will have only one opportunity to submit each exam.  Make it count by submitting the correct file.  DO NOT SUBMIT DUPLICATE COPIES of your exams.  This leads to a great deal of confusion.  If I receive more than one copy of an exam from you, I will either select the first copy that I receive, or will select one copy at random for grading, whether or not that is the one that you desire to have graded.



08/05/10  Crossing the OOP Chasm
The biggest challenge that most of you will face in successfully completing this course will be in crossing the chasm from procedural programming to object-oriented programming.  (Unfortunately, most of you probably learned what you know about programming from a procedural rather than an object-oriented viewpoint, and bad thinking habits are very hard to break.)

My biggest challenge is figuring out how to help you cross that chasm.  Unfortunately, I don't have a magic recipe for accomplishing this.

If history is any indication of the future, many of you won't make it across.  For this reason, you should plan to devote a very large amount of time and effort to the task of understanding OOP (as opposed to simply memorizing the mechanics of Java programming).

For starters, you should carefully study Lesson 4 in my online tutorials.

Beyond that, you should visit one of the major bookstores and read the first couple of chapters in every Java book and every OOP book that you find there (many books have a chapter introducing OOP as a programming paradigm).

There is no simple recipe for learning OOP.  In order to progress from procedural programming to OOP, you will have to develop a completely different way of thinking about programming.  Perhaps if you read what a large number of authors have to say on the topic, that will help you to successfully cross the chasm.



08/05/10 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.



08/05/10  Problems in ACC NRG labs
I have been informed that there is a problem when students attempt to execute Java applications out of the root directory in the ACC labs at NRG.  Apparently if you create a directory and compile and execute your programs out of that directory, the problem will go away.  Laboratory personnel are working on the problem.


08/05/10  Documentation on my source code
When you download the exam files, you will receive a documentation package for each exam describing my source code.  The documentation package was produced using Sun's javadoc program.  Open the file named index.html to view the documentation.  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.


08/05/10  Study Material for Exams
I have posted three tutorial lessons entitled: 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.



08/05/10 Study Material
A great deal of effort and study is required to successfully make the transition from procedural to object-oriented programming.  Although we will be able to cover some of the relevant material in the classroom, it will not be possible to cover it all.  I strongly recommend that you study the following bodies of material in parallel:

Online Intro Java Tutorials lessons 4 through 56
Online Data Structures tutorials lessons 1350 through 1380
Sample programs 9000 through 9002 <<< VERY IMPORTANT
Essence of OOP Using Java, lessons 1600 through 1630 as listed elsewhere on this page.
Advanced Placement Study Guide, AP002 through AP...
Test Your Java Knowledge, lessons 1 through 13.
Additional online resources listed elsewhere on this page.


08/05/10 Exam hints
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"



08/05/10 Classpath Environment Variable
If you are running Java under Windows and are having difficulty executing Java applications that you have successfully compiled, your problem may have to do with the classpath environment variable.  For example, see the discussion at the following URL:

http://java.sun.com/j2se/1.3/install-windows.html#Classpath  

Pay particular attention to the section that reads "Should I modify the CLASSPATH variable?"

Within that section, pay attention to the discussion involving the current directory.

There are also some issues having to do with the classpath for the media library from the Ericson textbook.  Information on how to deal with those issues is provided in the textbook.



08/05/10 Doing online Java research
It is frequently necessary for me to remind students that my teaching and examination approach doesn't involve feeding facts to the students so that they can memorize and regurgitate those facts on the next exam.  Rather, my approach is to teach important Java OOP concepts.  I have an expectation that the student will do the necessary self study and research to fill in the facts in order to successfully complete the next exam.

Here are two online resources that are particularly useful for doing such research:

Search Sun's Java Tutorial at http://java.sun.com/docs/books/tutorial/search.html
Search Sun's documentation and the Java Tutorial at http://java.sun.com/docs/searchabledocs.html

For example, if I needed to know more about focus traversal and couldn't find what I needed in Baldwin's tutorials, I would probably take a look at the sites listed above and search for key words like focus traversal.  This may or may not yield what I need to know, but it surely is a good way to start.



08/05/10Puzzled_by Polymorphism
If you, like many students, don't completely understand polymorphism as implemented using inheritance and interfaces in Java, I have written several tutorial lessons that may help you to understand.  You are encouraged to study them to see if they help.

Java1600 The Essence of OOP Using Java, Objects, and Encapsulation
Java1602 The Essence of OOP using Java, Classes
Java1604 The Essence of OOP using Java, Inheritance, Part 1
Java1606 The Essence of OOP using Java, Inheritance, Part 2
Java1608 The Essence of OOP using Java, Polymorphism Based on Overloaded Methods
Java1610 The Essence of OOP using Java, Polymorphism, Type Conversion, Casting, etc.
Java1612 The Essence of OOP using Java, Runtime Polymorphism through Inheritance
Java1614 The Essence of OOP using Java, Polymorphism and the Object Class
Java1616 The Essence of OOP using Java, Polymorphism and Interfaces, Part 1
Java1618 The Essence of OOP using Java, Polymorphism and Interfaces, Part 2
Java1620 The Essence of OOP using Java, Static Members
Java1622 The Essence of OOP using Java,  Array Objects, Part 1
Java1624 The Essence of OOP using Java,  Array Objects, Part 2
Java1626 The Essence of OOP using Java,  Array Objects, Part 3
Java1628 The Essence of OOP using Java,  The this and super keywords
Java1630 The Essence of OOP using Java, Exception Handling
Java904 Use of an abstract class containing no abstract methods



08/05/10 Online Resources
Understanding OOP can be very difficult for those persons who have already developed a lot of non-object-oriented thinking in their previous programming experience.  That's the bad news.

The good news is that there are numerous free online resources to which you can refer in your efforts to understand OOP.  The following is a short list of useful, free online resources (in no particular order).  I strongly recommend that you study all of the material in this list with particular emphasis on the various explanations of Object Oriented Programming.

As time goes on, I will add new items to this list. If you find any of these links to be broken, please let me know.  (Broken links removed on 1/23/07.)

Baldwin's Java Tutorials
The Java Tutorial from Sun, A practical guide for programmers
Sun's Java Developer Connection, Tutorials and Short Courses
Bruce Eckel's Thinking in Java
Object Oriented Concepts in Java - Part 1, by Kevin Yank
Object Oriented Concepts in Java – Part II, by Kevin Yank
Sun's Online Java Documentation
Object-Oriented Programming Concepts from Sun
Object-Oriented Java: Getting Into Interfaces
The jGrasp editor
The BlueJ Java downloadable programming environment
Visual Basic .NET as a Fully Object-Oriented Language
The Java Language Specification 
OO and Java Development:  Guidelines and Resources 
Rock'em, sock'em Robocode, good article on Robocode
Ms.net Framework Training Modules
Code examples from the Java Developers Almanac
JCreator - a color-coded freeware IDE
Search Sun's Java Tutorial at http://java.sun.com/docs/books/tutorial/search.html
Search Sun's documentation and the Java Tutorial at http://java.sun.com/docs/searchabledocs.html 
C# and VB Object-Oriented Programming in Visual Studio .NET
DrJava


08/05/10 You don't need to withdraw?
If past history is any indication of the future, a large percentage of you won't submit the first exam.  Most of you who don't submit the first exam will ultimately withdraw from the course and forfeit the money you paid to enroll in the course.

Barring a personal emergency (such as an extended stay in the hospital), there is no excuse for anyone failing to successfully complete this course.  All of the information that you need to successfully complete all three exams is located on the following Web pages and in the textbook:

If you will spend a reasonable amount of time studying the sample programs located there in addition to the textbook, you should be able to successfully complete all three exams.  I sincerely hope that you do that and that you successfully complete the course.

08/05/10 Computer Studies Student Information Form

The following is requested by the Computer Studies department, but is not a requirement of the course in which you are enrolled.  Whether or not you provide the following information will not be taken into account when determining your grade in the course.

If you are willing to provide this information, please compose an e-mail message containing the following information and send it to Baldwin@DickBaldwin.com

If you do provide the information, please make the subject line of your e-mail message read as follows:
Last Name, First Name, Course Number, Student Information Form

DO NOT include this information in the message that you send confirming that you have completed online orientation.  Send separate messages for those two purposes.

You should be able to copy and paste the following form into your e-mail client and then fill in the blanks.  Don't be too concerned about neatness when filling in the form.

Last Name:_____________________
First Name:_____________________
Student ID:_____________________
Course Number: IT__ ____

Telephone Numbers

Home:___________
Work:___________
Other:___________
E-mail address:_________
Any issues that the instructor should be aware of:

_________________________________________________

Reasons for taking the course:

_____Personal Interest
_____Required by degree program, which is ______________
_____Work related - please explain in comments section below
_____Recommended by ______________________________
_____Other, please explain in comments section below
Please indicate the following:
_____Hours working per week
_____Number of credit hours enrolled in this semester
_____Number of computer courses completed at ACC
_____Highest degree earned
What computer courses have you completed at ACC or elsewhere?

_____________________________________________________

What computer or computer related work experience do you have?

_____________________________________________________

Comments:

_____________________________________________________


08/05/10 Broken tutorial links
I discovered during a recent semester that Internet.com had broken the links to many of my Java, Python, and C# tutorials.  The tutorials were apparently still there, but they were at different URLs from the URLs listed in my Table of Contents pages.

If you are unable to view a particular tutorial by clicking the link in the Table of Contents, copy the name of the tutorial from the Table of Contents, and then search for it using Google Advanced Search.  Enter the name of the tutorial in the "Exact Phrase" box, change the number of results per page to 100, and then click the Google Search button.

If you haven't located the tutorial of interest by the time you have viewed the last page of links on the Google results page, click on the link at the bottom of the last Google page that reads "repeat the search with the omitted results included."  Then examine the links again to see if you can find the tutorial of interest.

Please also let me know if you find broken links in my Table of Contents.


08/05/10 A Special Invitation
Statistics show that the dropout rate in Distance Learning classes is much higher than in classes where students regularly attend lectures, ask questions, and participate in discussions.  It is my strong desire that you succeed in this course and that you do not drop out.

If you are enrolled in the Distance Learning section of the course, I urge and invite you to attend my lectures whenever your schedule will allow.

You can find the schedule for all of my classes at the following URL:

http://www.austincc.edu/


08/05/10 Studying for exams
I cannot overemphasize the importance of you studying Sample programs 9000 through 9002 in preparation for the completion of your exams.

Also, whether you are a regular classroom student or a Distance Learning student, if you don't understand everything that you need to understand about OOP using Java, you need to be in my office talking to me about it.  Often a short explanation will get you past a roadblock and get you back on the track to learning OOP.  Visit during office hours, lab periods, or any time that my office door is open.


08/05/10 What Java version do you need?
See Materials and Facilities in the Syllabus.


08/05/10 EMAIL VIRUS WARNING
I receive several hundred email messages every day.  Many of the messages that I receive contain viruses or worms.  Most of the rest are SPAM.

As a result, I have been forced to become very selective regarding the messages that I am willing to open and read. I can't trust that simply because a message is received from someone that I know, it is safe to open and read.  Unless something in the Subject line of the message causes me to believe that I can trust the message, I will simply delete the message without reading it.

Therefore, if you send email messages to me, your Subject line MUST be formatted as follows:

Last name, First name, ITSE2321, Brief topic of message

When I see that format, I will trust that the message is safe to open and read.  Otherwise, I will assume that your message contains a virus or constitutes SPAM, and I will simply delete your message without reading it.

Therefore, if you want me to read your message, you MUST format your Subject line as shown above.

I normally respond to student email messages within 24 hours except on the weekends.  If you send a message to me and you don't receive a response within 24 hours (allow 72 hours on weekends), make certain that your Subject line is correctly formatted and send the message again.


08/05/10 The Importance of Sun's Java Documentation
I cannot overemphasize the importance of learning how to use Sun's Java documentation for aspiring Java programmers.  I have published a lesson entitled The Importance of Sun's Java Documentation, which you would do well to study.


08/05/10 Revised Email exam submittal instructions
On two occasions recently, something embedded in a zip file attached to a student's Email message triggered an Email filter on my system and caused the student's Email message, along with the zip file containing the exam, to be routed into the trash folder.  Fortunately, I saw them there and retrieved them before emptying the trash.
 

Effective immediately, whenever you send an email message to me with an attached zip file, please send another message without the attachment telling me to be on the lookout for the message with the attachment.  That will cause me to look in the trash folder if I don't find your message with the attachment in the inbox.
 

Also, if you have sent an Email message to me with an attached zip file and haven't received an acknowledgement from me, that means that I didn't get it.  Please send it again following the procedure described above.


08/05/10 Upgrade to JDK 6
In the Summer 2007 semester, we began using Sun's JDK 6.  I have briefly tested the exam problems to confirm that they still behave properly under JDK 6.  However, much of the source code used in this course was written prior to the release of JDK 1.5.  Therefore, when you compile that source code, you may get compiler warnings as a result of new features that were incorporated in JDK 1.5 (see my lesson entitled Generics in J2SE 5.0).  This is particularly true if the source code uses the Java Collections Framework.  As of this writing, however, I haven't discovered any "code breakers" in the new features in JDK 1.5 as was the case with JDK 1.4.


08/05/10 Warnings in JDK version 1.5
As a result of changes (improvements?) made in JDK1.5, (see my lesson entitled Generics in J2SE 5.0) many existing programs will produce the following warning when recompiled using JDK 1.5 or later versions:

Note: ....java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

This is a warning, and is not an error.  As far as I am concerned, you can simply ignore the warning.

The lesson entitled Generics in J2SE 5.0 explains how to avoid the warning on future programs.  It is extremely unlikely that I will modify and re-publish earlier programs that worked fine prior to the changes in the JDK.


08/05/10 Do not send executable attachments
If you send an email message to me and expect me to read it, DO NOT attach any executable files, even if they are encapsulated in a zip file.  This includes files with the following extensions, just to name a few:

.exe
.com
.scr
.bat
.pif
.vb

If you do send such files, my virus blocker will simply reject the message and I will never see it.

The following file extensions should be OK:

.java
.class
.htm
.html
.css
.xml
.xsl
.doc
.zip (Provided the zip file doesn't contain any executable files.)

If you find it necessary to send a questionable file for any reason, you should also send another message without an attachment notifying me that you sent the questionable file as an attachment so that I can be on the lookout for it.


08/05/10 Problems with the Java version and the path environment variable
A student of mine who had successfully compiled and executed Java programs on his system suddenly began to experience problems when trying to execute programs that had compiled successfully and had been run successfully in the past.

After a great deal of troubleshooting effort, this student determined that the recent installation of Oracle software for a database course that he was taking had caused an old version of the Java virtual machine to be installed on his system.  In addition, that installation had placed an element at the beginning of his path environment variable that caused the old version to be executed every time he attempted to execute a Java program.

If you experience problems when executing compiled Java programs from the command line, try entering the following command and confirming that you get a similar response (the first few digits of the version shown should be the same as the version that you installed):


C:\jnk\1>java -version
java version "1.6.0_06"
Java(TM) 2 Runtime Environment, Standard Edition 
(build 1.6.0_06-b05)
Java HotSpot(TM) Client VM (build 1.6.0_06-b05, mixed mode)

Similarly, if you experience problems when compiling Java programs, try entering the following command.  Your output should confirm the version.

C:\jnk>javac -version
javac 1.6.0

08/05/10 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) and the Sun Java Development Kit (JDK).  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 a gross 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.


08/05/10 Grades
I have been notified that I am no longer allowed to send your grades to you via email.  Therefore, in order to view your grades on exams, you must establish a Blackboard account.  Since I have never established a student Blackboard account, I can't tell you what is involved.  All I can tell you is that you can probably begin that process at the following link:

http://acconline.austincc.edu/

Please be aware that the classroom and the Distance Learning sections for this course may have been combined within Blackboard.  You may find only one available section of this course within Blackboard.  If so, that is the one you will need to connect to and look for your name.

Once you are connected, you should be able to view your grades in the grade book.  Once again, never having gone through that process as a student, I can't tell you what is involved.

Please be aware that only the individual grades showing in the grade book are of significance, and they are provided for information purposes only.  The computations that purport to show your final grade are meaningless.  I will compute and record your final grade (possibly including a curve) according to the information contained in the syllabus and other related documents, and will cause that grade to be recorded at the end of the semester completely independent of the Blackboard grade book.

Also be aware that if you find any information in Blackboard that conflicts with information provided in the syllabus and its associated documents, the information in the syllabus and its associated documents will prevail.  If you find such conflicts, please notify me.

If you are unable to set up your account and view your individual grades via Blackboard, please let me know.

Since I have very little experience using Blackboard, I may find it necessary to modify this posting as time progresses.


08/05/10 Your official Email address
It is my understanding that as of 09/15/08, all ACC students will be provided an official Email address by ACC, and that address will be reflected in all official ACC student records.  I have been told that you can cause messages sent to that address to be forwarded to the Email address of your choice.  You should make it point to either forward those messages, or to check your ACC email address on a daily basis.

Please be aware that when I need to send a broadcast message to all students in the course, I will send that message to your official ACC Email address. If you don't check you mail at that address, you won't get the message.


08/05/10 DrJava and Ericson's media library
I was recently introduced to a free Java IDE named DrJava that has some very interesting features including the ability to execute Java code interactively.  It can also be run without the requirement for a Windows installation and should run on any platform that has a Java JRE installed.  For example, I am currently running it from a USB memory stick.  If you download it, I recommend that you download the JAR file and run it as a Java application instead of downloading the Windows executable version.  I was unable to successfully run the Windows executable version under Windows Vista Home Premium Edition.

See RunningDrJavaAtACC  for instructions for running DrJava in conjunction with Ericson's media library in the ACC NRG labs.

The materials in the media library were provided by Barbara Ericson for use with the textbook.  Georgia Institute of Technology holds a copyright on the media library.


08/05/10 A bug in Ericson's Textbook CD Media library
Your programs must be compatible with Ericson's media library.  Although there is a copy of the media library on the CD in the back of the textbook, it is lacking some features and has a few known bugs.

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.

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.


08/05/10 A hint regarding Prob01 on Exam 1
The background image in a World object is an object of the Picture class.  If there are requirements of this program that you can't meet using the capabilities of the Turtle class and the World class, be sure to take a look at the methods that are defined in and/or inherited into the Picture class.


08/05/10 Published tutorials and programs using Ericson's multimedia library
You should know that I continue to publish tutorials and sample programs on this topic.  See the tutorials beginning with #340 at http://www.dickbaldwin.com/tocadv.htm


08/05/10 Windows Vista versus Windows XP appearance
Although ACC computer labs are still running WinXP, many of you (and myself included) who have purchased new computers are probably running some version of Windows Vista at home.  The exam documents contain images showing the output images required by many of the programs.  With Vista, you have several appearance options including Windows Aero, Windows Vista Basic, Windows Standard, and Windows Classic.  The option that seems to provide the best match for the images in the exam documents is Windows Standard.  You can change the "Window Color and Appearance" in Vista by right-clicking the desktop.


08/05/10 Exams are ready for downloading
All three exams are ready for downloading after you complete the orientation.


09/01/10 Changes in submittal procedures
During the Fall 2010 semester, I will be making a transition for the submittal of exams, projects, and other required materials from the use of email attachments to the use of the Digital Dropbox in Blackboard.

Therefore, you are requested, (but not required) to send such material to me via the Blackboard Digital Dropbox instead of as an attachment to an email message.

As always, any material that you send to me must be encapsulated in a zip file that I can open using WinZip.

Please make sure that you read the instructions for using the Digital Dropbox on the Blackboard website before sending your zip file.

If you send a zip file to me via the Blackboard Digital Dropbox and would like for me to confirm receipt, send an email to that effect. I will attempt to confirm that your zip file is in my inbox and send a confirmation message to you within 48 hours.


09/27/2010 Revised lecture schedule

This message was sent to all students enrolled in ITSE 2321 during the Fall 2010 semester via their ACC email account.

I have fallen somewhat behind on the lecture schedule and the deadline for the first exam is rapidly approaching. Therefore, I will deliver lectures at 3:40 p.m. in Room NRG 4230 in addition to the normal lectures at 4:40 p.m. in Room NRG 4211 on the following dates:

09/27/2010
09/29/2010
10/04/2010
10/06/2010

Prof. Baldwin


10/16/10 Exam 1 grades are posted
The grades for Exam 1 have been posted in the Blackboard grade center. If you did not earn a grade of 100 on the exam, you should have received a personal email message from me explaining the reasons why your grade was less than 100.

A word of advice to a few students seems to be in order -- if you are going to copy program code provided by someone else, you should make certain that the code that you are copying meets the specifications for the exam.


10/16/10 Corrupted image displays
Since I installed java version "1.6.0_21" a few weeks ago, some images produced using Ericson's library seem to corrupt themselves after a few seconds as shown below. The image on the left shows how the image looked when it first appeared on the screen. The image on the right shows how the image looked a few seconds later. Forcing the image to be repainted will usually cause it to be correct for a few seconds, after which it usually reverts to the corrupted state. This problem does not occur with java version "1.6.0_14", which I was using until I upgraded to the new version. I am using Windows Vista Home Premium Edition. As of this writing, I have no explanation for the cause of the problem, nor can I confirm that the problem is confined to the use of Ericson's library. I am consulting with Barb Ericson on the matter. If anyone else is seeing this problem, I would like to know about it.

Missing image


10/29/10 Corrupted image displays continued
I have now installed java version "1.6.0_22" and that did not resolve the image problem described above.


10/29/10 Update to Exam 2, Prob01
You will need to add import java.awt.Color; to the code shown in the exam document for Prob01 on Exam 2 in order to get your problem to run correctly. Be sure to test your final version as specified to confirm that it runs correctly with my file named Prob01.class before submitting your exam.


-end-

 

File: ITSE2321.htm