Self-Paced Course List

jGuru presents in-depth online courses on Java software development. Each course takes you step-by-step through developing your own software and includes course notes and exercises with sample code.


People tend to learn in different ways and have different backgrounds, so the courses are designed with many paths through the content. You can begin with the exercises and refer back to the course notes, or you can begin with the notes and follow the links to appropriate exercises. Because the courses are designed to be flexible, you can approach the content by learning everything about a particular subject before moving on, or you can get a broad overview before exploring the different subjects in depth. The self-paced learning courses are presented on Sun Microsystems' Java Developer Connection.



Looking to incorporate mail facilities into your platform independent Java solutions? Look no further than the JavaMail API, which offers a protocol independent model for working with IMAP, POP, SMTP, MIME, and all those other Internet-related messaging protocols. With the help of the JavaBeansTM Activation Framework (JAF), your applications can now be mail-enabled through the JavaMail API.


Java Basics

Language Essentials
This course introduces the Java programming language. It includes examples that demonstrate the syntax of the language in an object-oriented framework, along with standard programming practices such as defining instance methods, working with the built-in data types, creating user-defined data types, and working with reference variables.


Introduction to the Collections Framework
In working through this Short Course and the accompanying magercises you will learn to use the Collections Framework to store and manipulate groups of data as a single unit, a collection. Topics include a discussion and demonstration of many of the abstract data types familiar from computer science data structure curriculum: maps, sets, lists, trees, arrays, hashtables, and other collections. In addition, the courseware includes coverage of the data structures and algorithms associated with these abstractions.


Fundamentals of Java Security
This Fundamentals of Java Security shows you how to secure your Java applications on levels ranging from language and class library to virtual machine and application. The tutorial examines the security-related features of the JDKTM 1.1 and 1.2 architecture, and the API-level features of the Java Cryptography Architecture (JCA). The tutorial also covers ways in which you can extend browser privileges to break out of the Java sandbox to use a variety of popular browsers.

Client-Side Development

AWT Fundamentals
This module will teach you how to use the Abstract Window Toolkit (AWT) to allow your programs to create a Graphical User Interface (GUI) to interact with your users. With this tutorial, you will learn how to use components or "widgets" (windows, buttons, checkboxes, scrollbars, menus, and so forth) to display your graphical interface and how to work with events to respond to input from the user.


Effective Layout Management
Because of the promise of Write Once, Run AnywhereTM (WORA) with the Java platform, development of Graphical User Interfaces (GUI) with the Abstract Window Toolkit (AWT) is not straightforward. Unlike when creating user interfaces for one language on one platform, you cannot just position components with absolute sizes and coordinates. You must take into account the fact that components are different sizes on different operating systems. You also must take into account what happens to those components when you internationalize an application and the text labels are localized, as some labels may be different lengths. Additionally, you need to properly handle what happens if the user resizes the user interface screen. To deal with all these situations, the Java platform has the concept of a layout manager for positioning components within windows.

Fundamentals of JFC/Swing: Part I
This is Part I of a two-part course on the Fundamentals of JFC/Swing. Part I provides a general introduction to Swing. After you complete it, you will be able to use the Swing component set anywhere you previously used AWT components.

Fundamentals of JFC/Swing: Part II
Part II includes information on using Swing's Pluggable Look & Feel and Model-View-Controller (MVC) architecture. In the MVC discussion, you will learn to use the more advanced Swing controls. You will also learn the advantages of designing your user interfaces with the MVC model.

Server-Side Development

JDBC Short Course
This module introduces the fundamental concepts of JDBC and gives you a working knowledge of the major elements of the core JDBC 2.0 API. The course is standards-based and uses best practices to demonstrate How-Tos useful to the field developer.

Fundamentals of Java Servlets
Fundamentals of Java Servlets shows you how to enhance web server functionality with safe, efficient, portable and powerful servlets.

By understanding the concepts presented in the Course Notes, and stepping through the exercises, or "Magercises," you will learn how to use the Java Servlet API; how to create and run a servlet with the JSDK; how to install a servlet on the Java Web ServerTM, how to process parameters from HTML forms; and how to manage middle-tier processing.

In short you should be able to learn everything you need to know to start building client/server programs with HTML interfaces.

JavaServer Pages Fundamentals
This module provides an introduction to JavaServer Pages (JSP) technology. JSP is the way to separate the look and feel of the web page from the underlying business logic, so that it is web server and platform independent. This course teaches you how to use JSP to develop dynamic web sites, by exploring the syntax and components of JSP development.

Fundamentals of RMI
Reach out and touch someone. Object-oriented distributed computing is all about communication between objects that live in different virtual machines. Remote Method Invocation (RMI) makes sending a message to an object in Timbuktu as easy as invoking a method on a local object. RMI is 100% Pure JavaTM. And best of all, it's built into the core Java libraries (version 1.1 and higher). This module introduces RMI and covers its strengths and weaknesses as a platform for distributed computing.

Introduction to CORBA
The Common Object Request Broker Architecture (CORBA) from the Object Management Group (OMG) provides a platform-independent, language-independent architecture for writing distributed, object-oriented applications. CORBA objects can reside in the same process, on the same machine, down the hall, or across the planet. The JavaTM language is an excellent language for writing CORBA programs. Some of the features that account for this popularity include the clear mapping from OMG IDL to the Java programming language, and the Java runtime environment's built-in garbage collection.

This introductory course will give you an overall view of how CORBA works, how to write CORBA applications in the Java programming language, and illustrates Sun's Java 2 ORB implementation of CORBA as well as Inprise's VisiBroker for Java. The approach to presenting CORBA taken in this course is through an example stock trading application.

Enterprise JavaBeans Fundamentals
This module provides an introduction to Enterprise JavaBeans technology with particular attention to the role of Enterprise JavaBean components in distributed-computing scenarios, the architecture, the extension APIs, and the fundamentals of working with EJB technologies. NT>