> ## Introduction to Programming Using Java
> Version 3.1, February 2001

> #### Author: David J. Eck (eck@hws.edu)

> WELCOME TO Introduction to Programming Using Java, an on-line textbook on introductory programming, which uses Java as the language of instruction. This text has more than enough material for a one-semester course, and it also suitable for individuals who want to learn programming on their own. This is the third edition of the text. (Version 3.1 is a minor upgrade of Version 3.0, which was released in May, 2000. Version 3.1 incorporates a few changes and corrections, and it is released under the Open Publication License.) The third edition covers more material and has more examples than the second edition. It also adds end-of-chapter quizzes and solved programming exercises. Previous editions have been used in a course, Computer Science 124: Introductory Programming, at Hobart and William Smith Colleges. (The title of the previous editions included a reference to this course.) This textbook covers Java 1.1. Most of the applets that are contained in the text require Java 1.1 or higher.

> Links for downloading copies of this text can be found at the bottom of this page. To learn more about this on-line text, please read its preface.

> ### Search this Text:

> Although this book does not have a conventional index, you can search it for terms that interest you. Note that this searches the version of the text book at its main site, at math.hws.edu.

> Search Introdution to Programming Using Java for pages...

> ## Short Table of Contents:

> - Full Table of Contents
> - Preface
> - Preface to the Second Edition
> - Chapter 1: Overview: The Mental Landscape
> - Chapter 2: Programming in the Small I: Names and Things
> - Chapter 3: Programming in the Small II: Control
> - Chapter 4: Programming in the Large I: Subroutines
> - Chapter 5: Programming in the Large II: Objects and Classes
> - Chapter 6: Applets, HTML, and GUI's
> - Chapter 7: Components and Events
> - Chapter 8: Arrays
> - Chapter 9: Correctness and Robustness
> - Chapter 10: Advanced Input/Output
> - Chapter 11: Linked Data Structures and Recursion
> - Appendix 1: From Java to C++
> - Appendix 2: Some Notes on Java Programming Environments
> - Appendix 3: Source code for all examples in the text
> - News and Errata

> This is a free textbook. As of Version 3.1, it is published under the terms of the Open Publication License, Version 1.0. The latest edition is always available, at no charge, for downloading and for on-line use at the Web address http://math.hws.edu/javanotes/. This edition, the third, is also permanently archived at the address http://math.hws.edu/eck/cs124/javanotes3/. A copy can also be found at Andamooka.org, where readers can post annotations and read other user's annotations.

> ## Downloading Links

> Use one of the following direct links to download a compressed archive of this entire textbook. You can use this material on your own computer. You can also re-post it on any Web server. See the preface for more information on usage restrictions and for full downloading instructions. A PDF file that can be used for printing the textbook is also available there.

> - http://math.hws.edu/eck/cs124/downloads/javanotes3.zip (1.6 MB), for Windows.
> - http://math.hws.edu/eck/cs124/downloads/javanotes3.sit.hqx (2.1 MB), for Macintosh.
> - http://math.hws.edu/eck/cs124/downloads/javanotes3.tar.Z (1.8 MB), for Linux/UNIX.

> David Eck (eck@hws.edu)
> Version 3.0, May 2000
> Version 3.1, with minor changes, February 2001