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

ITSE 2321 Introduction to Object-Oriented Programming

This is the official web page for classroom sections and Open Campus (PCM) sections taught by Professor Baldwin.

Official Web Page

Fall 2003

Revised 11/05/03

General

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

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.

Attendance:
For students enrolled in the classroom sections, it is possible that you may be administratively withdrawn from the course if you fail to attend class at least once during the first two weeks of the semester.  (This requirement does not apply to Open Campus students.) However, you must not depend on me to withdraw you if you need to be withdrawn.  Withdrawal is the responsibility of the student and is not the responsibility of the instructor.

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 (ITSEXXXX) on the Subject line. I normally have a very large number students in any given semester. If I have to search the rolls to identify you, I may not answer your Email.

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.

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. If you include your telephone number and your return email address doesn't work, I will usually try at least once to contact you by telephone.

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 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 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, 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 valuable time showing you how correct for your own carelessness.

Orientation:
To participate in online orientation, click on the orientation link below.

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 COSC 1315 Fundamentals of Programming (CIS 1033) 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.  With Netscape, you can force a reload by holding down the shift key and clicking the reload button at the top of the browser page.  You can clear the cache in the Preferences menu.

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.

07/21/03  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.

07/21/03  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 around 120 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 although it makes me cringe to do so.  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.



07/21/03  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.

07/21/03  Orientation
All students are required to complete the online orientation.  First complete the online orientation. Then send an Email message to

baldwin@austincc.edu

certifying that you have completed the orientation according to the instructions.


07/21/03  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.



07/21/03  Textbook Purchase
Unless you are anxious to spend some money, you should probably defer the purchase of a textbook until after classes begin and you evaluate the requirement for a textbook.  Although there is a standard textbook for this class, I won't do anything to require you to demonstrate ownership of that textbook.


07/21/03  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.



07/21/03 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.

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.



07/21/03  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.


07/21/03  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.  The documentation for each exam is stored in a file named JavaDocs.zip.  Extract the files from the zip file and 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.


07/21/03  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.



07/21/03 Email Subject Line
IMPORTANT:  At the risk of being extremely redundant, I am going to repeat this instruction again (I don't understand why some students have such a difficult time understanding, remembering, and complying with this requirement).

Every email message that you send to me must contain the following information in the Subject line of the message:

In other words, I must be able to see this information without a requirement to open the body of your message.  Otherwise, I will probably simply consider your message to be SPAM and delete it without reading  it


07/21/03 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.


07/21/03 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"



07/21/03 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.



07/21/03 JCreator
One of my students has recommended the freeware version of JCreator, so I have added it to the list of online resources.  I tried it and have started using it myself, but I only use it as a color-coded text editor.  I don't make any attempt to use the project development capabilities of the product, so I don't have anything to say about that capability.


07/21/03 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.



07/21/03Puzzled 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.  These lessons will constitute the primary classroom discussion material for my ITSE 2321 classes now and into the foreseeable future.

Java1600 The Essence of OOP Using Java, Objects, and Encapsulation
Java1602 The Essence of OOP using Java, Classes
Java1500 The Essence of OOP using BlueJ, Objects, Encapsulation, and 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



Updated 07/21/03Online 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.

Baldwin's Java Tutorials
The Java Tutorial from Sun, A practical guide for programmers
Sun's Java Developer Connection, Tutorials and Short Courses
Roedy Green's Java Glossary
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
Java Summary Information
Sun's Online Java Documentation
Object-Oriented Programming in Java
Object-Oriented Programming Concepts from Sun
Java is Object Oriented from Sun
Java Tutorial by Mike Levin
Object-Oriented Java: Getting Into Interfaces
The Java Advanced Placement Test CS Subset
The jGrasp editor
The Java(tm) Language Environment: A White Paper from Sun
Links to dozens of online programming books
The BlueJ Java downloadable programming environment
Visual Basic .NET as a Fully Object-Oriented Language
The Java Language Specification
Essence of Object-Oriented Programming
OO and Java Development:  Guidelines and Resources
Java Robocode from IBM, fun and educational as well
     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
JDK 1.4 docs in HTMLHelp and WinHelp formats: http://www.confluent.fr/javadoc/jdk14e.html
C# and VB Object-Oriented Programming in Visual Studio .NET



07/21/03 Confused by ACC URL?
After many years of using the familiar domain name:  www.austin.cc.tx.us
ACC has now changed to a new domain name:  www.austincc.edu

Apparently the old domain name is still being honored.  However, I have no idea how long it will be honored.  Those of us who teach at ACC are scrambling to get our online material modified to reflect the new domain name before it becomes inoperative.

For example, either of the following may work now, but probably won't work sometime in the future:
http://www.austin.cc.tx.us/baldwin
http://www.austincc.edu/baldwin

Similarly, either of the following email addresses may reach me now, but probably not in the future:
baldwin@austin.cc.tx.us
baldwin@austincc.edu

Please use the second item in each of the above cases.

I apologize for any inconvenience or confusion that this change may have caused you, but someone else made the decision to change.


07/21/03 Don't compose email messages in HTML

Because of the continuing security problems inherent with MS Outlook, I refuse to use it as an email client.  I use Netscape instead.  Unfortunately, the Netscape email client doesn't behave well when the text of the message is composed in HTML.  Therefore, if you want me to read your email messages, compose them using plain text.  Don't compose them in HTML.


07/21/03 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:

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

07/21/03 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@austincc.edu

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

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:

_____________________________________________________


07/21/03 Message from a student
Hello Professor -
Thought I might pass something your way .. I've been using this tool at work for a little bit now to do quick code checking before I begin to really get to the down and dirty It basically allows you to do java command-line scripting and see immediate results without needing to compile .. just like doing perl on the command-line (unix or windows) .. very cool It's totally free and has good documentation... a really nifty tool that's worth checking out ....

Just download the bsh-1.2b6.jar right to your desktop. Its an executable  jar file .. so click and play

http://www.beanshell.org/home.html

enjoy ..
Steve

I haven't had a chance to try it yet, but definitely plan to soon.


07/21/03 The Eclipse IDE
One of my students highly recommends the eclipse IDE, which he says is free, and better than JCreator.  You can search for it at Google if you are interested.


07/21/03 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.


07/21/03 Book recommendation
There are so many good Java books available that it is extremely rare for me to  recommend one highly.  However, there is a new book that I do recommend highly:

Objects First with Java, A Practical Introduction using BlueJ


07/21/03 Installation problems with JCreator
Several students have contacted me to tell me they were unable to get JCreator properly installed on their computer, and asking me to tell them how to resolve their installation problems.

Unfortunately, without direct access to your machine, there isn't much that I can do to help you install software properly.

However, it is extremely important for you to know that for the simple programs required for this course, you don't need to use JCreator, or any other IDE for that matter.  All you need is the SDK from Sun, a simple text editor, and a modest knowledge of how to operate your computer from the command prompt.

Furthermore, if you are unable to create, compile, and execute Java programs on your machine at home, you can use the machines in the ACC laboratories.  The use of JCreator or any other IDE is not a requirement for this course.


07/21/03 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.


07/21/03 Caution when using JCreator
Several students have complained of problems when attempting to compile and/or execute programs from within JCreator.  My response is as follows:

Nether JCreator nor any other high-level Java program development environment is sanctioned for use in this course.  The only software development software that is sanctioned for use in this course is Sun's Java 2 Standard Edition Software Development Kit (SDK) Version 1.4.1 (or later) when run from the command prompt.

However, the free version of JCreator does have a nice color-coded editor, and I use it strictly for that purpose.  You, of course, are free to use any editor that you want to use provided that it produces source code that is compatible with the Sun SDK.

JCreator will not be involved in my evaluation of your exam programs.  Those programs will be executed strictly from the command prompt to determine if they meet the specifications.


07/21/03 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 it 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 readng 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.


07/21/03 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.


07/21/03 Sun J2SE 1.4.2
Sun has released J2SE 1.4.2.  I plan to begin using the new version at the beginning of the Fall 2003 semester.  You should probably do the same.


07/22/03 Exams are posted
All three exams for this course have been posted and are ready for downloading.


08/22/03 EMail log jam
For the past several days, I have been receiving about 1,500 messages per day transmitted by computers contaminated with the Sobig virus.  The Sobig virus propagates by searching the files on the contaminated disk for email addresses.  Then it sends an email message containing the virus to each individual email address that it finds.  The return addresses on the email messages are not the correct return address for the contaminated computer.

Thousands of computers worldwide each contain several hundred tutorial files that I have written.  Each tutorial file contains my email address.  Thus, each such contaminated computer sends me several hundred email messages.  This adds up to a lot of email messages.

As you can imagine, it is very difficult searching through the incoming messages to separate the virus messages from the good messages.  If you have sent a message to me and have not received a reply, I apologize.  Please resend the message causing the subject line to read as follows:

Last name, First name, Course number, Brief topic

That will help me to separate your message from the large flood of virus messages.


10/13/03 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 he 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.



10/22/03 Scores for Exam 1
All students who submitted Exam 1 should have received your scores via Email.  If you submitted Exam 1 and haven't received your score, please let me know immediately.


10/29/03 Possible job opening
I recently received the following Email message.  Note that I know nothing about this individual or his company.
Do you know of any students/prior students that are looking for work?

I am trying to develop a software application and could use someone for probably 2-3 months initially ...more if the product is accepted.

I need someone who is proficient in Java and database design.

Russell Reed
512-658-6089
russell.reed@alloquentsystems.com

11/05/03 Exam Completion Days
There will be no class on the following days.  Please use the class time to perform final quality control on your exams prior to submittal.
November 19, 2003
December 10, 2003


-end-

File: ITSE2321Fall2003.htm