This is the main web page for the course. This page, along with the pages pointed to by Links and the online Blackboard program are used to establish the "rules of the road" for the course.
This page contains important information on many different topics in no particular order. Other pages pointed to by Links contain information that is more specific as indicated by the title of the page.
Read the syllabus
You should read the syllabus for this course before reading further in this page.
All students are required to complete the online orientation. Click here to complete your online orientation.
Use of the Blackboard online system
The online program named Blackboard will be used for communicating with students, such as reporting grades, posting announcements, sending Email messages to individual students, and broadcasting Email messages to all students enrolled in the course.
The Blackboard Assignment and Test features are the mechanisms that you will use to submit your assignments and to take your tests.
The Blackboard "Send Email" feature is the mechanism that you will use to send Email messages to me.
Spam blocking software
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.
Therefore, whenever you send a new Email message to me, you MUST use the Blackboard "Send Email" feature to construct and send the message, and your Subject line MUST contain a brief description of the topic. (Don't simply reply to an earlier Email message from me if the topic is different.)
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.
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 day before an assignment or test deadline, don't be surprised if you don't get a response from me until after the deadline has passed.
I am usually happy to answer questions about Java OOP concepts at the level of this course. However, please don't ask me to tell you how to write the program for an assignment. It is almost certain that I won't do so. It isn't fair for me to provide information about how to write an assignment program to one student when all students don't have an opportunity to hear the question and the answer.
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.
Response to Email:
I normally respond to student Email messages within 24 hours except on 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.
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.
See the module titled Java3000: The Guzdial-Ericson Multimedia Class Library for instructions on how to compile and run a Java application that incorporates the Ericson media library.
Failure to Meet Prerequisites:
Please don't ask me to teach the COSC 1336 Programming Fundamentals I 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 assignment 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 assignment 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.
Who Am I?
I receive many Email messages addressed to Dr. Baldwin, and I appreciate the courtesy. However, 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.
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 as a Blackboard announcement.
Crossing the OOP Chasm
The biggest challenge that many of you will face in successfully completing this course will be learning how to read, understand, and comply with instructions and specifications (see Online Orientation).
After that, the next biggest challenge will be crossing the chasm from procedural programming to object-oriented programming (see Who Should Enroll).
(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).
Computer Studies Student Information Form
The following information 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 use the Blackboard "Send Email" feature to compose a message containing the following information and send it to me.
If you do provide the information, please make the subject line of your Email message read as follows: 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 Blackboard Email client and then fill in the blanks. Don't be too concerned about neatness when filling in the form.
Course Number: IT__ ____
Any issues that the instructor should be aware of:
Reasons for taking the course:
_____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?
The Importance of Sun's Java
I cannot overemphasize the importance of learning how to use Sun's Java documentation for aspiring Java programmers. I have published a lesson titled Java OOP: Java Documentation, which you would do well to study.
Warnings in JDK version 1.5 and later
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
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 in this course. You will learn how to deal with this issue in the Generics portion of ITSE 2317.
Also, the lesson titled 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.
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:
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:
.zip (Provided the zip file doesn't contain any executable files.)
If you find it necessary to attach 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.
Your official Email address
It is my understanding that all ACC students have been provided an official Email address by ACC, and that address is 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 a point to either forward those messages, or to check your ACC Email address on a daily basis.
When I need to send a broadcast message to all students in the course, (and in most other cases as well) 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.
Also, if I need to send feedback to you regarding problems with an assignment or test, I will normally send that message to your official ACC Email address.
You may want to use a free Java IDE named DrJava, which is the IDE recommended by the textbook for this course. It has some 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.
See RunningDrJavaAtACC for instructions for running DrJava in the ACC NRG labs.
Published tutorials and programs using Ericson's
I have published a number of tutorials and sample programs using Ericson's media library. See the tutorials beginning with #340 at http://www.dickbaldwin.com/tocadv.htm.
Publishing at cnx.org
I am in the process of publishing much of my online tutorial material in an e-book at Object-Oriented Programming (OOP) with Java. There are no advertisements on that site.
In addition to normal online viewing, you can download all of the modules in a single pdf file in a book format for offline viewing. You can download the modules in html format in a single consolidated zip file. You can also download the modules in different formats that are compatible with mobile devices.
You can also purchase the entire e-book in printed form from this site. (Note that I receive no compensation when you purchase the printed version of the e-book.)
Programming Oldies But Goodies
You will also find many of my tutorials published free of advertisements at Programming Oldies But Goodies.
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.