<IMG SRC="fla_train.gif" WIDTH=200 HEIGHT=400 BORDER=0> <IMG SRC="fla_fill.gif" WIDTH=200 HEIGHT=400 BORDER=0> <IMG SRC="fla_fill.gif" WIDTH=200 HEIGHT=400 BORDER=0> <IMG SRC="fla_fill.gif" WIDTH=200 HEIGHT=400 BORDER=0> <IMG SRC="fla_fill.gif" WIDTH=200 HEIGHT=400 BORDER=0> <IMG SRC="fla_fill.gif" WIDTH=200 HEIGHT=400 BORDER=0> <IMG SRC="fla_fill.gif" WIDTH=200 HEIGHT=400 BORDER=0> <IMG SRC="fla_fill.gif" WIDTH=200 HEIGHT=400 BORDER=0>
Click Here for the Outline in PDF Version
Course Outline: Java Programming

(5 Days) with Hands-On Labs
    Learning Objectives

  • Chiefly, learn to program effectively in the Java language
  • Understand the Java software architecture, and the design decisions which make Java software portable, efficient, secure and robust
  • Learn how to configure a simple Java development environment
  • Know the grammar, data types and flow control constructs of the Java language
  • Understand Java as a purely object-oriented language
  • Learn how to program GUIs using Java, including using event handling to connect the GUI to an underlying data model
  • Understand the structure of streams in Java, and learn how to use streams to manage file I/O


This course description should be used to determine whether the course is appropriate for you based on your current skill and technical training needs. Technical information is provided on the intended audience, course prerequisites, and covered topics. Course content, prices, and availability are subject to change without notice.


Course Audience

This course is intended for programmers with experience in languages other than Java, who may or may not have any previous Java experience.

Course Description

The course includes a detailed study of the object oriented aspects of Java, with a case study that is carried from analysis and design (presented in UML) to implementation in Java. The course incorporates treatment of the major Java tools including javac, java, jar and javadoc. There are numerous example programs and lab exercises, all of which are fully documented using javadoc. The course is entirely platform independent and targets the Java 2ä platform. (Almost all the material applies well to Java 1.1, and differences between the platform versions are highlighted.) The course consists of five modules, which are also available independently.

The first module introduces the Java software architecture, including the Java Virtual Machine, Java Runtime Environment, Core API, and the Java Developer’s Kit. Students learn to configure a Java development and runtime environment and to use the JDK command-line tools, and learn the basic software development process for Java.

The second module covers the fundamentals of the Java language, focusing on its grammar, data types, and procedural aspects such as flow control (including exception handling) and threads. By the end of the module students are building simple, practical Java classes and applications.

The third module covers Java as an object-oriented language. The module includes an optional primer on object-oriented methodology and concepts, and then looks at Java as an object-oriented implementation language, including classes, construction, visibility, inheritance, polymorphism, interfaces, abstract classes, and type identification. Lab work moves from analysis and design of a case study to implementation as a Java package of several classes including an application class that implements a command-line interface.

The fourth module introduces GUIprogramming in Java, starting with the Abstract Windowing Toolkit and moving through chapters on layout management, event handling, and Java Applets. The case study introduced in the previous module is expanded considerably, as a GUI interface is connected to the model, custom events and handlers are added to the model, and the resulting application-driven GUI is rewrapped and delivered via JAR file as an applet.

The fifth module introduces the Java Streams model. First the delegation-based stream model itself is covered, and successive chapters look at use of this model in raw file I/O operations and finally at Java Serialization. The case study is again expanded, finally to include dump and load of the entire application dataset through serialization.

Course Objectives

At course completion the student will be able to perform the following tasks:


  • Chiefly, learn to program effectively in the Java language
  • Understand the Java software architecture, and the design decisions which make Java software portable, efficient, secure and robust
  • Learn how to configure a simple Java development environment
  • Know the grammar, data types and flow control constructs of the Java language
  • Understand Java as a purely object-oriented language
  • Learn how to program GUIs using Java, including using event handling to connect the GUI to an underlying data model
  • Understand the structure of streams in Java, and learn how to use streams to manage file I/O
Prerequisites

Experience with some programming language other than Java, on any current operating system for which a JVM is available (including all Windows flavors and most Unix flavors). No Java programming experience or reading is required. C and C++ programmers will probably find that their natural pace through the course is a little faster.

TOPICS COVERED IN LECTURE & LAB

Module 1: The Java Software Architecture

The Java Virtual Machine

  • Overview of Architecture
  • Java Virtual Machine
  • Java Runtime Environment
  • The Core API
  • Java Developer’s Kit
  • Portability and Efficiency
  • Security
  • Robustness – Language Features
Building Java Software

  • Packages
  • Tools
  • JARs
  • Security Model
Module 2: The Java Language

Fundamentals

  • Source File Format
  • Intro to Classes
  • Fields and Methods
  • Code Grammar and Expressions
  • Identifiers
  • Operators
  • System Class
Data Types

  • Primitive Types
  • Type Conversion
  • Object References
  • Comparing and Assigning References
  • Garbage Collection
  • Strings
  • Arrays
Flow Control

  • Call and return
  • Conditional Constructs
  • Looping Constructs
  • Exceptions
Threads

  • Java Thread Model
  • Creating and Running Threads
  • Manipulating Thread State
  • Creating Thread Classes
  • Thread Synchronization
Module 3: Object-Oriented Programming in Java

Object-Oriented Analysis and Design

  • Complex Systems
  • Abstraction
  • Classes
  • Responsibilities and Collaborators
  • Relationships
  • Visibility
  • Simple UML
  • Polymorphis
Encapsulation in Java

  • Java Classes
  • Member Visibility
  • Static Members
  • Constructors and Finalizers
  • Overloading Methods
  • Collection Classes
Inheritance and Polymorphism in Java

  • Extending Classes
  • Superclass Reference
  • Overriding Methods and Polymorphism
  • Defining and Implementing Interfaces
  • Abstract Classes
  • Type Identification
Inner Classes

  • Motivation
  • Named Inner Classes
  • Outer Object Reference
  • Anonymous Inner Classes
Module 4. Java Graphical User Interfaces

The Abstract Windowing Toolkit

  • Components
  • Containers
  • Frames
  • Controls
  • Menus
  • Dialogs
Layout Management

  • LayoutManager Interface
  • Implicit Use of LayoutManager
  • Standard Layout Managers
  • Custom Layout Manager
Events

  • Java Event Model
  • Event Types
  • Listeners
  • Sources
  • Connections
  • Custom Event Types
Applets

  • Applet Class
  • Applet Context
  • Applet Security
  • Distribution Using JARs
Module 5. Java Streams

The Java Streams Model

  • InputStream and OutputStream
  • Delegation-Based Stream Model
  • Media-Based Streams
  • Filtering Stream
Working with File Systems

  • File Class
  • Modeling Files and Directories
  • Chaining Streams to Files
  • Input and Output
Java Serialization

  • Serializable Interface
  • ObjectInputStream and ObjectOutputStream
  • Introduction to Reflection
  • The Serialization Engine
  • Transients and Initialization Hooks
Appendices

Appendix A. References

Appendix B. Using javadoc

  • Doc Comments
  • Tags
  • Cross-References
  • Package Documentation
  • Docfiles and Sample Code
Appendix C. The Car Dealership Case Study - Summary

  • Overview of Case Study
  • Progression of Concepts
  • List of Lab and Demo Steps
Policy