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

ITSE2317 Java Programming (Intermediate)

This information applies to classroom sections and Distance Learning sections taught by Professor Baldwin.

Expanded Course Description

Summer 2010

Revised: 05/24/10

The official web page for this course is ITSE2317.htm

A new approach

Beginning in the Spring semester of 2009, students enrolled in ITSE2317 Java Programming (Intermediate) will pursue two parallel tracks of study designed to teach and reinforce the concepts of and the application of Object-Oriented Programming (OOP) beyond the fundamental level.  The two tracks will go down significantly different paths, but will merge near the end of the course.

One track is traditional

One track is the traditional track that has been used in this course for many years.  Although a number of topics are included, the traditional track is designed primarily to teach students about graphical user interfaces (GUI) and event-driven programming in Java.

Students enrolled in this course should be well versed in the OOP concepts that I teach in the prerequisite course, ITSE2321 Object-Oriented Programming.

The traditional track uses short, concise programs to illustrate concepts.  The programs are designed to be as simple as possible while still illustrating the concepts involved without necessarily attempting to solve any real-world problems.

A multimedia track

The second track is designed to teach students how to apply OOP in the real world.  It is based largely on the textbook titled Introduction to Computing and Programming with Java, A Multimedia Approach.  This textbook teaches the practical applications of Java OOP, including the manipulation of pictures, sound, text and videos.

For example, the following are thumbnail versions of some of the images that students in the prerequisite course (ITSE2321) learn how to create based on the same textbook and a multimedia library that is provided with the textbook.

All of the images shown above were created by writing Java programs to manipulate digital photos or other image files.

The textbook mentioned above includes a multimedia class library, which was used to produce all of the images shown above.  In addition to class files, the library also provides source code for all of the classes in the library.  Students in ITSE2321 learn how to use the library to do some really interesting things, primarily to images.  Students in ITSE2317 will take the multimedia library apart and learn what makes it tick.

For those enrolled in the classroom section of ITSE2317, the bulk of the lecture time will be spent on the multimedia track, mainly analyzing source code for the classes in the library in an attempt to understand why and how they do what they do.

Time in the lab will be dedicated to either the traditional track or the multimedia track, depending on which topics the students have questions about.

Exams will have a mixture of questions from both tracks.  For example, a typical exam question might ask the student to modify one of the classes in the multimedia library to cause objects instantiated from that class to behave in a way that is different from the way objects instantiated from that class normally behave.  In order to do that successfully, the student will first have to understand why objects instantiated from the class behave as they normally do.  This will, in turn, require a good understanding of the class definition and the concepts involved in that definition.

The two tracks come together at the end, at which point I will attempt to provide students with an understanding of a class from the multimedia library named PictureExplorer.  An understanding of this class not only requires a solid knowledge of image processing, but also requires a solid understanding of event-driven GUI programming as well.

Hopefully by the end of the semester students will have a good foundation for learning much of what they will need to know to create multimedia projects similar to the following.  (The second one is quite long and may take a while to download, so you will need to be patient.):

*Copyright Georgia Institute of Technology 2004, author Barb Ericson

Please note, however, that learning to create multimedia projects of this complexity will require a study effort on the student's part beyond the material covered in this one-semester course and its one-semester prerequisite course.  These two courses will simply lay the groundwork for students who desire to pursue the Java/multimedia path.

The first video listed above includes sound and demonstrates audio frequency shifting using a Java program.  The animation was produced using Alice 2.x software.

There is no sound included in the second video.  Instead, this video demonstrates the merging of two videos using a Java program.  One of the two videos is an animation produced using the Alice software.  The other video was produced with a video camera and includes a human actor performing in front of a blue screen (similar to the technique used to merge weather maps and human announcers on TV).

Topics to be covered

You should plan on covering the following topics from the traditional track:

Static Initializer Blocks
Instance Initializers
Member Classes
Local Classes
Vectors, Hashtables, and Enumerations
Callbacks - I
Callbacks - II
Callbacks - III
Delegation Event Model
Sharing a Listener Object
Low-level and Semantic Events
Requesting the Focus
Anonymous Classes
Using Abbreviated Inner Classes
Action Objects
The System Event Queue

You will find links to tutorials that I have published on these topics at http://www.dickbaldwin.com/toc.htm.

You should also plan on covering the following topics from the new multimedia track:

Multimedia Programming with Java
340 Getting Started
342 Getting Started with the Turtle Class
344 Continuing with the SimpleTurtle Class
346 Wrapping Up the SimpleTurtle Class
348 The Pen and PathSegment Classes
349 A Pixel Editor Program in Java
350 3D Displays, Color Distance, and Edge Detection
351 A Slider-Controlled Softening Program for Digital Photos
352 Adding Animated Movement to Your Java Application
353 A Slider-Controlled Sharpening Program for Digital Photos
354 The DigitalPicture Interface
355 The HSB Color Model
356 The show Method and the PictureFrame Class
357 An HSB Color-Editing Program for Digital Photos
358 Applying Affine Transforms to Picture Objects
359 Creating a lasso for editing digital photos in Java
360 Wrapping Up the SimplePicture Class
361 A Temperature and Tint Editing Program for Digital Photos
362 Getting Started with the PictureExplorer Class
363 Redeye Correction in Digital Photographs
364 Building the Information Panel for the PictureExplorer GUI
365 Using Flood-Fill in Java Programs
366 Displaying an Image in a PictureExplorer Object

-end-

File: ITSE2317ExpandedCourseDescription.htm