CS102 Lecture Highlights

Copyright © 1999, Kenneth J. Goldman

These CS102 Lecture Highlights are provided to help you review material covered in class, and to free you from constantly copying from the board so that you can pay attention, think about what's going on, and ask questions.

Do not use these notes as a substitute for attending class. They are not complete.  If you read these notes without attending class, they may not make sense to you, it will take you longer to understand the material, and you won't learn as much. (Don't be fooled by the high level of detail in the notes for the first few lectures. These are meant to accommodate students who add the course late. The notes for later lectures will often have much less detail.)

The easiest way to learn the material well is to attend class and do the lab assignments carefully, reviewing these notes as needed, in much the same way that you would use your own notes. 

Introduction and Review

Communication and CS101
Communication and CS102

Packages and Protection

What is a Package?
Why Have Packages?
Creating Packages
Using Packages
Making Choices About Protection

APIs, java.util, javadoc

Quick Hierarchy Review

- Subclasses
- Interfaces
- Abstract Classes
- Multiple Constructors

APIs: java.util

- Vector
- Stack
- Hashtable
- Enumeration
- Javadoc

Introduction to Human-Computer Interface

Design Principles and Advices
Support from JAVA

Class Hierarchy Example: java.awt

GridBagLayout example
Creating Your Own Layout
Creating Your Own Components

The Java Event Model

Creating Your Own Layout
Creating Your Own Components

Adapters and Inner Classes

Nested Classes
Member Classes
Local Classes
Anonymous Classes

Exception Handling

Example 1
Example 2
Example 3
Example 4

Concurrency, Threads and Synchronization

Creating Threads
Thread Synchronization


When Not to Synchronize
Causes of Deadlock
Avoiding Deadlock

Review for Midterm Exam

Streams, Files, and Serializable Objects

Persistent Storage
How the OS Stores Files and Directories?
The File System Abstraction
Serializable Objects

Parsing Character Streams

Applets and URL Connections

Streams and URL Connections
Introduction to Applets
A Bird's-eye View
Applets vs. Applications
Applet and Browser Interaction
Applet Methods

Interprocess Communication

Interprocess Communication
Local Area Network (LAN)
Internet Protocol (IP)
Transmission Control Protocol (TCP)
Client Server Example in JAVA

Client Server Applications

Square Server and Client

IPC Using Remote Method Invocation (RMI)

Remote Method Invocation
RMI Registry

Distributed Applications for Collaboration

Run-Time Type Identification, Reflection

Java Beans and Builder Tools

What is Java Bean?
What is a Builder Tool?

Programming Language Comparison

Language Comparison
Similarities:Java and C++
Differences:Java and C++

Kenneth J. Goldman