Fundamentals of Java: Introductory Course

 

Annotated Table of Contents

 

 

Lesson 1 Background

Presents a concise overview of the history of computing, computer hardware and software, binary representation of information, programming languages, the software development process, and an intuitive overview of OOP.

 

Lesson 2 First Java Programs

Presents an overview of the JVM and byte code, the edit/compile/execute cycle, a hello world program, a temperature conversion program, and a simple turtle graphics program. Students learn to send messages to objects in each program, thus becoming familiar with the use of objects, methods, actual parameters and returned values.

 

Lesson 3 Syntax, Errors, and Debugging

Presents an overview of the syntax and semantics of basic language elements such as imports, variables, object instantiation, expressions, random numbers.  Presents an introduction to strings and their operations.  Illustrates syntax, run-time, and logic errors and debugging.  Presents the first two case studies.

 

Lesson 4 Introduction to Control Statements

Presents selection and iteration using the if-else statement, the while and for statements, and nested if statements. Includes coverage of relational operators, increment and decrement operators, and the math and random methods.  Provides an overview of testing and debugging loops.

 

Lesson 5 Introduction to User-Defined Classes

Presents an overview of interfaces and a template for defining classes, instance variables and methods, constructors, accessors, and mutators.  Primary focus is on encapsulation, object state and identity.  Secondary focus is on methods, scope and lifetime of variables, and parameter passing.  At least two case studies illustrate the development of cooperating classes by modifying existing classes.

 

Lesson 6 More Operators and Control Statements

Provides an overview of other useful operators and control statements, including the logical operators and nested loops.

 

Lesson 7 Improving the User Interface

Introduces graphical user interfaces and contrasts them with terminal-based interfaces.  The use of GUIs provides many new opportunities to send messages to objects.

 

Lesson 8 Introduction to Arrays

Presents an overview of the use of arrays.  Includes declaration, instantiation, indexing, use with loops and methods, linear search, manipulation of partially full arrays, parallel arrays, and two-dimensional arrays.

 

Lesson 9 More on Classes

Discusses additional aspects of classes and objects, including the use of preconditions and postconditions, exceptions, static variables and methods, equals vs ==, comparing objects, copying objects, polymorphism, inheritance, abstract classes, and casting.

 

Lesson 10 More on Arrays

Presents advanced manipulations of arrays, including linear search, binary search, selection sort, insertions, removals, and resizing.  Also introduces the use of Java's ArrayList class.

 

Lesson 11 Recursion, Complexity, Searching, and Sorting

Presents an overview of recursive problem solving with interesting examples.  Introduces big-O notation, binary search, and nlogn sorting algorithms.

 

Lesson 12 Simple Two-Dimensional Graphics

Presents the basics of graphics programs in Java.  Coordinate systems, drawing primitives, the transient image problem, use of panels, handling mouse events, bar graphs and pie charts.

 

Lesson 13 Files

Presents the use of file streams, text files, and object serialization.

 

Lesson 14 Introduction to HTML and Applets

Presents an overview of HTML and applets using BreezySwing.

 

Lesson 15 Swing

Presents an overview of Swing.