]
>
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