An Introduction to Programming in Java

Last revised: Tue Jun 11 22:58:51 2002

Copyright (c) 2001 Ben Dugan & UW-CSE

  1. Preface
    1. Goals
    2. Method
    3. Differences
    4. What's missing
  2. Introduction
  3. Programming as Communication
    1. Key concepts
    2. Story
    3. Operational world view
    4. Functional world view
    5. Object-oriented simulation world view
    6. Supporting examples
  4. A World of Objects
    1. Key concepts
    2. Introduction
    3. From Language to Java
    4. Naming Things
    5. Simple objects
    6. Some shapes.
    7. Text Strings
    8. A Collection.
    9. The Interpreter
    10. Patterns we've learned
  5. Expressions, Types, Messages
    1. Key concepts
    2. Story
    3. Expressions and arithmetic operators
    4. Arithmetic operators
    5. Types: Kinds of things
    6. Errors: Syntactic and Semantic
    7. Sending information with messages
    8. Doing a series of things
    9. Input and Output
    10. Patterns we've refined
  6. Defining Simple Objects
    1. Key concepts
    2. Introduction
    3. Objects as Records
  7. Objects that Do Things
    1. Key concepts
    2. Introduction
    3. Simple Methods
    4. Methods with Parameters
    5. Methods that return values
  8. Compiling Java Classes
    1. Key concepts
  9. Object Wrapup
    1. Key concepts
    2. Introduction
    3. Constructors
    4. Rounding out the interface
    5. Information Hiding
    6. Documenting the Interface
  10. Understanding How Methods Work
    1. Key concepts
    2. Substitution
    3. Control Flow
    4. Drawing Pictures
  11. Making Choices
    1. Key concepts
    2. Introduction
    3. Back to the BankAccount
  12. Analysis and Design
    1. Key concepts
    2. Introduction
    3. The Lifecycle
    4. An Extended Example
  13. Reasoning about Programs
    1. Key concepts
    2. Story
  14. Introduction to Collections
    1. Key concepts
    2. Introduction
    3. An Ordered Collection: ArrayList
    4. Rounding out the Music domain: The CompactDisc class
    5. Casting
    6. An Unordered Collection: HashSet
    7. An Unordered Collection: HashMap
  15. Introduction to Iteration
    1. Key Concepts
    2. Introduction
    3. The for loop
    4. The while loop
  16. Building a Software System
    1. Key concepts
    2. Introduction
    3. The Banking Domain: Analysis
    4. Wrapper Objects
    5. The User Interface
    6. Driving the interface
    7. What's missing
    8. The Model-View-Controller Pattern
  17. Iterating Over Collections
    1. Key concepts
    2. Introduction
    3. Ordered Collections
    4. Unordered Collections: The Easy Way
    5. Iteration Abstracted: an Iterator
    6. Common Idioms
  18. Arrays
    1. Key concepts
    2. Introduction
    3. Creating Arrays
    4. Indexed Access
    5. Iterating Over Arrays
    6. Supporting examples
  19. Using Arrays
    1. Key concepts
    2. Motivation
    3. Building our own (simple) ArrayList
  20. Multidimensional Arrays
    1. Key concepts
    2. Introduction
    3. Creating a 2D Array
    4. Supporting examples
  21. Exceptions
    1. Key concepts
    2. Introduction
    3. One approach: Error codes
    4. A Better Approach: Exceptions
    5. Handling Exceptions
    6. Class Design Issues