] > lecture notes

[exit lecture notes]

1 Getting Started
 1.1 Introduction
 1.2 Our Computing Environment
  1.2.1 Platform: Unix Solaris
  1.2.2 Login Information
  1.2.3 Unix Commands
  1.2.4 Text Editor: emacs
  1.2.5 Working with emacs
  1.2.6 A Text-Based Browser: lynx
  1.2.7 Making Java Work
  1.2.8 The Making of Basic Java Programs
  1.2.9 Code Readability
 Assignment 1: Getting Started—Control Characters, ASCII Art, and ANSI Art (Due: Tu, Oct 7)
Computation Oriented Programming
2 Data Types and Expressions
 2.1 Data Types
 2.2 Type-Oriented Operators
 2.3 Type Conversions
 2.4 Number Bases
 2.5 Encoding Schemes
 2.6 Bitwise Operators
 2.7 Operator Precedence
3 Flow of Control
 3.1 Selectors
 3.2 Iterators
 3.3 Break and Continue Statements
4 A Peek at Input and Output
 4.1 Standard Output
 4.2 Standard Input
 Assignment 2: A Table of Unicode Characters (Due: Th, Oct 16)
5 Arrays
 5.1 Linear Arrays
 5.2 Two-Dimensional Arrays
 5.3 The Memory of Arrays
 5.4 Initialized Arrays
 Assignment 3: Colored Arrays (Due: Th, Oct 23)
Working with Library Classes
6 Using Static Fields
 6.1 Core Java APIs
 6.2 Static Math Fields
 6.3 Static Fields Related to Primitive Data Types
 6.4 Static Calendar Fields and Access to Packages
 6.5 Type Values and String Values
7 Using Static Methods
 7.1 Static Parameterless Methods Without Returned Values
 7.2 Static Value Returning Parameterless Methods
 7.3 Types of Values Returned by Methods
 7.4 Parametric Methods
8 Object-Centric Computations
 8.1 Data Objects
 8.2 Creating Objects
 8.3 Instance Methods
Useful Basic Library Classes
9 Low Level Computations
 9.1 Methods for Basic Numeric Operations (java.lang.Math)
 Assignment 4: Loan Calculations (Due: Th, Oct 30)
 9.2 Strings of Characters (java.lang.String)
 9.3 Integer Representations (java.lang.Integer)
10 Input and Output
 10.1 Standard Output
 10.2 Standard Input
 10.3 Writing into Files
 10.4 Reading from Files
 10.5 Reading from the Web
 Assignment 5: Extracting Information from the Web (Due: Th, Nov 6)
11 Library Classes for Data Structures
 11.1 Methods for Manipulating Arrays (java.util.Arrays)
  11.1.1 String Representation
  11.1.2 Sorting and Searching
 11.2 Uniform Data Access (java.util.ArrayList)
  11.2.1 Recording Data
  11.2.2 Accessing and Modifying Data
 11.3 Behavior-Based Data Access
  11.3.1 Last-In-First-Out Memory (java.util.Stacks)
  11.3.2 Deques (java.util: ArrayDeque, LinkedList)
  11.3.3 Priority Queues
 11.4 Hash-Based Data Access
  11.4.1 Hash Sets
  11.4.2 Hash Maps
 Assignment 6: Inverse a Dictionary (Due: Th, Nov 13)
Writing Classes
12 Fundamental Features
 12.1 Class Declarations
 12.2 Static Methods
 12.3 Constructors and Instance Methods
 12.4 Implicit Features
 12.5 Fields
 12.6 String Representation for Objects
13 Making Sense of Class Features
 13.1 Types and Values
 13.2 Instance and Static Members
 13.3 Divide and Conquer
 13.4 The Variable ‘this’
 Assignment 7: Programing SVG Pictures for the WEB (Due: Th, Nov 20)
14 Inheritance
 14.1 Extended Classes
 14.2 Members Overriding
 14.3 Available Constructors
 14.4 Polymorphism
Deeper into Java
15 Code Arrangements
 15.1 Access Control
 15.2 Packages
 15.3 Files Bundling
16 Coding Contracts
 16.1 Interfaces
 16.2 Abstract Classes
 Assignment 8: Photo Manipulation (Due: Th, Dec 4)
17 Exception Handling
 17.1 Background
 17.2 Exception Catching
 17.3 Exception Forwarding
 17.4 Exception Throwing
 17.5 Exception Classes
18 Loose Ends
 18.1 The ‘final’ Modifier
 18.2 Initialization Blocks
 18.3 Anonymous Classes
 18.4 Control Transfer to Labels