Java Seminars, Tutorials, and Presentations by Elliotte Rusty Harold

This page lists some of the Java talks I've given in the past and am willing to give in the future. Talks range from an hour to all day. The duration of most of these talks can be expanded or contracted as necessary to fit your needs.

If you'd like me to speak at your conference or to your company just drop an email to me at elharo@metalab.unc.edu and we'll see what we can set up. I'm based in New York, but I do travel quite a bit. I also do a lot of speaking about XML as well. I'm constantly developing new presentations on a variety of subjects related to XML, Java, and the Web so if there's a particular topic you'd like to hear me pontificate about, feel free to ask. For example, it would be straight-forward to do a seminar on the Java Collections API or Multithreading in Java.

Java 1.4 and Beyond (1 hour)

Now that Java 1.3 has been officially released, it's time to explore both where Java is going in the future and where it should go (which may or may not be the same place). What's ahead for the Java language and libraries? Will Java ever get templates, operator overloading, and multiple inheritance? Perhaps more to the point, should it get these constructs? Will Java I/O ever be fast enough for data intensive work? Will your network programs be allowed access to the raw IP layer so ping or traceroute can be written in Java?


Java I/O (1.5 hours)

I/O is one of the most widely misunderstood areas of the Java API, not because it's hard but because it's different. The Java I/O libraries have one of the cleanest, simplest designs of any common programming language, but that design is unfamiliar to most programmers. In this seminar you'll learn how to perform fast, efficient I/O that works with Java instead of against it. Topics covered include input and output streams, filter streams, readers and writers, and the crucial differences between text and binary I/O.

Outline:

Prerequisites:

This talk assumes attendees are familiar with basic Java and object oriented programming techniques including classes, inheritance, and polymorphism.


Common Misconceptions about Java I/O (1 hour)

I/O is one of the most widely misunderstood areas of the Java API, not because it's hard but because it's different. This talk explores some of the common misconceptions about Java I/O and corrects them. Along the way you'll learn how to do some things you probably thought Java couldn't do and how to avoid some of the traps and pitfalls that lay in wait for the unwary programmer.

Prerequisites:

This talk assumes attendees are familiar with basic Java and have done some programming that involves I/O streams.


Web Client Programming with Java (2 Hours)

Java is the first major programming language designed for network applications from the start. This seminar teaches you all about client-side network programming in Java with a particular emphasis on the World Wide Web, HTML, and HTTP. You'll see how to use Java's InetAddress, URL, and URLConnection classes to download data and content from Internet servers. You'll learn how the URL and URLConnection classes are integrated with Java's content and protocol handlers. You'll also learn how you can use these classes to communicate with CGI programs on a web server. Possible applications include web spiders, link checker robots, and persistent server-side storage. Finally, we'll talk about HTML, one of the most common and yet most non-standard data formats on the Web. You'll learn how to use Swing to display HTML. Possible applications include web browsers, robots, spiders, search engines and similar tools.

Outline:

Prerequisites:

Attendees should be familiar with basic Java and object oriented programming techniques. They should also have done at least a little GUI and event driven programming in Java using the AWT or Swing.


Parsing and Displaying HTML with Java (1.5 Hours)

Java 2 contains some powerful little known classes that make building web browsers, robots, spiders, search engines and similar tools extremely simple. In fact it's possible to build a complete HTML 3.2 Web browser in about 40 lines of code! This talk explores Java 2's HTML parsing and display classes. Topics covered include:

Outline:

Prerequisites:

Attendees should be familiar with basic Java and object oriented programming techniques. They should also have done at least a little GUI and event driven programming in Java using the AWT or Swing.


Java Network Programming (3 Hours)

Java is the first major programming language designed for network applications from the start. This tutorial teaches you all about network programming in the Java environment. You'll learn how to write fast, cross-platform, multithreaded clients and servers. You'll see how to use Java's InetAddress, URL, and URLConnection classes to download data and content from Internet servers. You'll learn how the URL and URLConnection classes are integrated with Java's content and protocol handlers. You'll also learn how you can use these classes to communicate with CGI programs on a web server. Possible applications include web spiders, link checker robots, and persistent server-side storage.

You'll also learn about Java's low-level socket classes for more intimate contact with the network. You'll learn to take advantage of Java's Socket and ServerSocket classes to communicate with TCP/IP servers and clients. You'll also learn about the UDP protocol for fast, unreliable data transfer. Possible applications include both standard protocols for email, ftp, and news, and custom protocols for networked multiplayer games, interactive chat, white boards, and more.

Outline:

Prerequisites:

This talk assumes attendees are familiar with basic Java programming including input and output streams, and have a user's view of the Internet. (e.g. they can send email and browse the web.)


Java Network Programming (1 Day Tutorial)

Java is the first major programming language designed for network applications from the start. This tutorial teaches you all about network programming in the Java environment. You'll learn how to write fast, cross-platform, multithreaded clients and servers.

The course begins with a discussion of the basic I/O libraries that form the foundation for network programming in Java. You'll learn how input and output streams are meant to be used. You'll learn to use the Reader and Writer classes to handle text without assuming that everything is ASCII. And you'll learn to take advantage of filter streams to make text and data processing simpler.

Next you'll see how to use Java's InetAddress, URL, and URLConnection classes to download data and content from Internet servers. You'll learn how the URL and URLConnection classes are integrated with Java's content and protocol handlers. You'll also learn how you can use these classes to communicate with CGI programs on a web server. Possible applications include web spiders, link checker robots, and persistent server-side storage.

You'll also learn about Java's low-level socket classes for more intimate contact with the network. You'll learn to take advantage of Java's Socket and ServerSocket classes to communicate with TCP/IP servers and clients. You'll also learn about the UDP protocol for fast, unreliable data transfer. Possible applications include both standard protocols for email, ftp, and news, and custom protocols for networked multiplayer games, interactive chat, white boards, and more.

Finally, we'll talk about HTML, one of the most common and yet most non-standard data formats on the Web. You'll learn how to use Swing to both parse and display HTML. Possible applications include web browsers, robots, spiders, search engines and similar tools.

Outline:

Prerequisites:

This course assumes attendees are familiar with basic Java programming and have a user's view of the Internet. (e.g. they know how to surf the Web, publish HTML, and send email).


[ Cafe Au Lait | Mailing Lists | FAQ | Tutorial | Course Notes | User Groups ]

Copyright 2000 Elliotte Rusty Harold
elharo@metalab.unc.edu
Last Modified July 29, 2000