Q1304 – Introduction to Java Programming
Mario Giannini – Mario@openroad.org
 
Text     
Beginning Java 2 by Ivor Horton (ISBN
1-861003-66-8)
                        
Recommended Text
            Java Programming Reference,
by Grant Palmer
 
The Java
Programming Language Third Edition,
by Arnold, Gosling, and Holmes.
 
Exams
1 midterm, and 1 final exam, both assigned as take
home programming assignments.
 
Homework
Handed in on printout, no disks or emails unless
specifically asked for or agreed 
to by the instructor.
 
Grading
Grading is broken down as follows:
                        Midterm/Final               60%
                        Homework                   30%
                        Participation                 10%
 
            Grades are broken down as follows:
                        100 = A+, 99 to 95=A, 94
to 85=B, 85 to 75=C, 74 to 65=D, below 65=F
 
            No 'upgrades' will be permitted for
homeworks, or assignments unless previously 
agreed upon with instructor.  No more than two homework assignments will
be 
accepted from a student on the final day of
class.  A grade of 'incomplete' must be
requested by students two weeks prior to the final exam.  A grade of incomplete is granted at the
instructors discretion, taking into account the students grade average and
ability to complete class assignments.
 
Incompletes
Grades of incomplete are almost non-existent.
 
Support
            School materials will be posted at
www.openroad.org as the class progresses.
Session 1: Introduction
 - Basic overview,
     history, and promises of the Java platform
- Byte code: Java’s key
     to fulfilling its promises
- The Java Virtual
     Machine (JVM)
- Differences between JDK
     Versions (1.1,1.2,1.3)
- Basic Java tools:
     javac, java, jdb, jar, javadoc
- Integrated Development
     Environments for Java: Visual Café, Jbuilder, Visual J++, JpadPro, etc.
- Java Program types:
     Applets and Applications
- Creating, compiling,
     and running Java applications with basic java tools
- Java documentation
- Coding standards
- Introduction to
     Jbuilder
  - Creating a blank
      applet project
- Creating a blank
      application project
- Compiling and running
      applets/applications
- Debugging basics:
      breakpoints, displaying data values
- Viewing output sent to
      the console
- Deploying Java Applets
     and Applications
  - Building a JAR for an
      applet or application and deploy all files to a remote server with FTP.
- Pros and Cons of the
      Java2 browser plug-in; security issues.
- Downloading and
      installing the JRE for standalone applications.
 
Session 2: Java Language Basics
 - Introduction to Object
     Oriented Programming
- Everything is an Object
  - Primitive data types
      are special cases
- Range of primitive
      data types
- Key words and
     identifiers
- Creating objects using new
- Deleting objects and
     Garbage collection
 
Session 3: Java Language Basics continued
 - Operators and
     assignments
- Strings
- StringBuffer class
- Arrays
- Consol I/O: System.in,
     System.out, and System.err
- Flow Control statements
 
Session 4: Classes, Objects, and Methods
 - Creating your own
     classes and methods
  - Constructors and
      destructors
- Method and variable
      access control
- Final applied to classes,
     methods, and variables
- Static methods and variables
- Java program structure:
     Package – import – class
- Packages: Package statement
- Import statement
 
Session 5: Java Exceptions and Data Structures
 - Exceptions
  - What are exceptions,
      and why are they important?
- Exception class
      hierarchy
- Checked and un-checked
      exceptions
- Creating your own
      exceptions
- Throwing exceptions
- Catching Exceptions
- Re-throwing exceptions
- Specifying exceptions with
      the throws clause
- Finally  clause
- Displaying a stack
      trace
- Introduction to Java
     Data Structures
  - Vector and Hashtable
- ArrayList, LinkedList,
      HashMap
- Enumeration and iterator
      classes
- Java.util.Collections class
 
Session 6: More Java Built-In and Utility Classes
 - Math classes:
     Java.lang.math, java.lang.StrictMath, java.math.*
- Converting between
     strings and numbers
- Using the Random
     class to generate random numbers within a range
- Parsing strings with StringTokenizer
 
Session 7:  Basic Object Oriented
Design in Java
 - Modeling a simple
     hierarchy of classes in Java
- Constructors and the Super
     keyword
- Interfaces in Java
- What is an Abstract
     class?
- Comparison of an
     interface and an abstract class
- Inheritance
- Method overloading and
     over-riding
 
 
Session 8: Java I/O
 - Java I/O is based on streams
- Different types of
     streams: byte and character
- Create a local file
- Determining a file’s
     properties
- Creating a directory
- Using Byte and
     Character Streams for reading and writing files.
- Removing a local file
 
Session 9: AWT Programming
 - Component Basics:
     Components, Containers, and Layout Managers
- Using Label, TextField,
     and TextArea controls
- Using List and Choices
     controls
- CheckBox and
     CheckGroupBox controls
- Basics of visual GUI
     design in Jbuilder
- Adding Event handlers
     in Jbuilder
- Processing
     actionPerformed event for a button
- Processing
     itemStateChanged even for listboxes
- Understanding paint()
     and update()
 
Session 10: Applets Basics and Java Events
 - Creating in Jbuilder
- Using the applet class
- Implementing the
     applets init(), start(), stop(), and destroy() methods
- Java.awt.event package
- Creating event handlers
 
Session 11: Threading Basics
 - A thread defined
- Creating new threads
     using the Thread class and Runnable interface.
- Thread states
- Starting and Stopping
     threads
- Sleeping threads
- Concurent access
     problems and solutions (synchronization)
- Using Thread priorities
 
Session 12: Basic Networking
 - Identyfying a machine
- Test programs without a
     network
- Opening a remote URL in
     Java
- Reading and writing the
     remote URL
- Creating sockets
- A simple Client /
     Server demonstration
 
Session 13: Review and Conclusion
 - Review and finalization
     of previous topics
- New directions of Java
     development
- Java, Windows XP, and
     C# (C-Sharp).