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).