Main Directory / Table of Contents
- Getting Started
- Introduction to This Reference
- Introduction to Program Development Tools
- Installing the Java Tools
- Installing Eclipse
- Setting Up Eclipse
- Program Organization in Java
- Creating a Program
- The concept of Linear Progression, or Sequence
- Sequences in a Program
- Turning a Sequence into a Program
- Making Programs Easier - Making a Square
- Making Programs Easier - Making a Triangle
- Making Programs (Even More) Easier
- Choosing the Right Code
- The Four Step Programming Process
- Introduction to Structured Programming
- Overview of the Four Step Programming Process
- Step One
- Step Two
- Step Three
- Step Four
- Program Input and Output (I/O)
- The Data Stream Concept
- Standard I/O in Java
- Formatted Command-Line I/O
- Data Abstraction
- Using Data in a Program
- Keywords in Java
- Fundamental Data Types
- Data Assignment
- Using Java Constants
- Mathematical Operations
- Integers - Addition and Subtraction
- Integers - Multiplication and Division
- Integers - Modulo Arithmetic
- Floating Point Arithmetic
- Mathematics with Characters
- Mathematics with Strings
(kind of)
- Order of Operations (Precedence)
- Mixed-Mode Mathematics
- Combining Mathematics and Assignment
- Using External Methods
- Program Decision Making
- Computer Logic and Decision Making
- Conditional Operators and Operations
- Boolean Combinations and Logical Operators
- Applications of the Rules - Sports
- Applications of the Rules - Leap Year
- Truth Tables
- Simple Branching
- Boolean Methods
- Selecting from Multiple Options - if
- Nesting if Statements
- Short Circuit Analysis
- Selecting from Multiple Options - switch
- Forcing a Decision, if statement
- Forcing a Decision, switch statement
- Functional Abstraction - Subroutines
- The Concept of Subroutines
- Creating a Method
- Methods as Factories
- Using Methods in Programs
- Methods - Calling and Being Called
- Programming by Contract - Pre Conditions
- Programming by Contract - Post Conditions
- Programming by Contract - Errors and Exceptions
- The main Method
- The Six Step Programming Process
- (Re)Introduction
- Step One, Reviewed
- Step Two, Reviewed
- Step Three - Locating, Identifying, and Designing Methods
- Step Four - Implementing the main Method
- Step Five - Designing the Supporting Method
- Step Six - Implementing the SupportingMethod
- Object Oriented Programming (OOP)
- OOP - The Concept
- OOP as Tool Making
- Static Operations vs Standard Classes
- Scope Considerations with Classes
- From the Beginning - Creating a Class
- Java Class Implementation
- Java Class Inheritance
- Iteration
- The Concept of Looping, or Iteration
- Simple Iteration
- Repeating a Test
- Pre-Test vs Post-Test Loops
- Reflecting on Loops
- The Java while Loop
- The Java for Loop
- The Java do..while Loop
- Nesting Loops
- Good Practice - Using Sentinels and Flags
- Bad Practice - Using break and continue
- Looping without Loops - Recursion
- Data Storage and Retrieval
- The File Stream Metaphor, Revisited
- Starting Out with Text Files
- Simple File Output
- File Output with Loops
- Simple File Input
- File Input with Priming and Sentinels
- Homogenous Data Storage using One Dimensional Arrays
- One Dimensional Array Concepts
- One Dimensional Array Usage
- Adding Data to a One Dimensional Array
- Removing Data from a One Dimensional Array
- Managing Arrays in Classes
- Array Operations - The Bubble Sort and Array References
- Array Operations - The Selection Sort
- Array Operations - The Insertion Sort, References, and Aliasing
- Array Operations - The Binary Search
- Arrays of Arrays: Two-Dimensional Arrays
- Heterogenous Data Storage and Advanced OOP
- Data Class Study
- Generic Class Study
- Advanced Sorting
- Merge Sort
- Quick Sort
- Radix Sort (future)
- Checking Every Possibility: Recursive Backtracking
- Introduction
- The Eight Queens Problem
- The Sudoku Problem (future)
- The Knapsack Problem (future)
- Linked Lists
- Introduction
- Adding Items To A Linked List
- Removing Items From A Linked List
- Other Kinds of Linked Lists
- Binary Search Trees
- Introduction
- Inserting Into A Binary Search Tree (BST)
- Removing From a Binary Search Tree (BST)
- How It Can Go Wrong
- Self Balancing Trees
- Considering Balanced Trees
- The Adelson-Velsky and Landis (AVL) Tree
- The Red Black Tree - Brief
- The Two Three Tree - Brief
- Heap Data Structures
- Introduction to Heaps
- The Heap Insertion Operation
- The Heap Removal Operation
- Hash Tables
- The Hashing Strategy
- Hash Tables That Probe
- Hash Tables With Other Data Structures
- Graphs
- Introduction To Graphs
- Traversing Graphs