Programming Principles in Java: Architectures and Interfaces

David Schmidt, Kansas State University

This web page contains the latest draft of my CS1 course text. The text is perpetually under development, and contents are subject to change without warning.

This material is intended for the use of the CIS students and staff at Kansas State University and should not be copied or distributed beyond KSU without my permission. (Please send me an email if you want to use these notes for personal study or for a course you are teaching---it won't cost you anything; I just want to know who is using the text.)

Copyright on these materials belongs to Scott/Jones Publishers, who will publish the text Some Year Real Soon Now.

January 2003 Version

This version improves the exposition in Chapters 9-11.

Here are the individual chapters, in both html and pdf format. I suggest that you use the html-files to quickly scan the chapters, cut-and-paste the chapters' source code into your edit window, and view the color graphics. The pdf is recommended if you wish to download, study, and print a chapter.

There is also a Postscript version, which can be downloaded via ftp:


Cover pages pdf
Table of Contents html | pdf
Preface html | pdf

  1. Computers and Programming html | pdf
  2. Simple Java Applications html | pdf
  3. Arithmetic and Variables html | pdf
  4. Input, Output, and State html | pdf
  5. Component Structure: Method and Class Building html | pdf
  6. Control Structure: Conditional Statements html | pdf
  7. Patterns of Repetition: Iteration and Recursion html | pdf
  8. Data Structure: Arrays html | pdf
  9. Programming to Interfaces html | pdf
  10. Graphical User Interfaces and Event-Driven Programming html | pdf
  11. Text and File Processing html | pdf
  12. There was once a chapter on data structures, but it desperately needs rewriting.
Appendices html | pdf
Index html | pdf
Solutions to exercises html (Sorry-no pdf)

If you locate typos or have comments regarding content or layout, send me email at schmidt at

---Dave Schmidt