Brown University
The Center for Geometric Computing
at Brown University and Johns Hopkins University
and Algomagic Technologies, Inc.

a short course on

Johns Hopkins University

High-Performance Programming in Java:

Collections and Beyond

January 21-22, 1999

Department of Computer Science
Brown University

March 18-19, 1999

Department of Computer Science
Johns Hopkins University

[Overview]  [Audience]  [Program]  [Instructors]  [Registration]

[PDF Version for Printing]


In this practical, hands-on course, students will learn new techniques for rapidly developing high-performance software in Java.  The recently introduced Java Collections Framework and related Java class libraries provide general-purpose algorithms and data structures that can be used to build an "algorithms layer" in an object-oriented design.  These libraries have important benefits such as: This course teaches how to take advantage of these powerful class libraries to develop efficient and robust solutions to complex problems.  A number of sophisticated and practical algorithms and data structures are presented.

The first part of the course focuses on the Java Collections Framework, one of the new features of the JDK 1.2. The second part covers more advanced data-structuring techniques that extend the functionality of the Java Collections Framework.

The course includes lectures and lab sessions, where students will develop a variety of applications. A certificate of completion of the course will be issued.

The course is sponsored by the Center for Geometric Computing  at Brown University and  Johns Hopkins University, and  by Algomagic Technologies, Inc..


The intended audience is software developers, engineers, and scientists interested in writing more efficient Java applications. A working knowledge of the Java programming language is assumed.


Object-Oriented Design of Data Structures and Algorithms

  • abstract data types and Java interfaces
  • overview of object-oriented design patterns
  • algorithms as objects
  • algorithmic design patterns
  • the algorithms layer
  • benefits of algorithms and data structures libraries

The Java Collections Framework

  • limitations of the java.util package in JDK 1.1
  • collections and maps
  • iterators and comparators
  • general-purpose and wrapper implementations
  • abstract implementations
  • polymorphic algorithms
  • exceptions
  • interoperability

Using the Java Collection Classes

  • elementary data manipulation
  • searching
  • sorting
  • developing custom implementations

Beyond the Java Collections Framework

  • limitations of the Collections framework
  • JGL[tm]: The Generic Collection Library for Java
  • JDSL: The Data Structures Library for Java
  • new design patterns for data access: Position, Locator, and Decoration
  • position-based and key-based containers

Sequences and Trees

  • nodes and positions
  • array-based and link-based implementations
  • an improved Vector class

Priority Queues and Dictionaries

  • keys, items, and locators
  • heaps
  • hash tables
  • red-black trees
  • skip-lists

Graphs and Networks

  • decorations
  • graph traversals
  • shortest paths and minimum spanning trees


Robert F. Cohen, President, Algomagic Technologies, Inc.

Michael T. Goodrich, Professor of Computer Science, Johns Hopkins University

Roberto Tamassia, Professor of Computer Science, Brown University

The instructors are international experts in algorithms, data structures, and software engineering  Cohen has extensive experience in teaching professional software development courses in the U.S. and internationally. Goodrich and Tamassia are authors of  the highly acclaimed book Data Structures and Algorithms in Java.


The course fee includes class notes, the book Data Structures and Algorithms in Java by Goodrich and Tamassia (Wiley, 1998), lunches, and coffee breaks. Reduced fees are available for companies that are members of the Industrial Partners Programs of the Computer Science Departments at Brown and Johns Hopkins, for academic institutions, and for government organizations. Discounts for multiple participants from the same institution can be arranged.

January 21-22, 1999

9 am - 5 pm

Brown University

Department of Computer Science
115 Waterman Street
Providence, RI 02912-1910

March 18-19, 1999

9 am - 5 pm

Johns Hopkins University

Department of Computer Science
3400 N. Charles Street
Baltimore, MD 21218

Fees and Registration

Fees and Registration

Local Information

Course handout (zip)

Further Information

Course Program Roberto Tamassia
Registration and Local Arrangements Fran Palazzo

Further Information

Course Program Mike Goodrich
Registration and Local Arrangements Linda Rorke

Roberto Tamassia
Last modified: Fri Jan 8 14:58:59 EST 1999