Fundamentals of Java: Comprehensive Course
Annotated Table of Contents
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.
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.
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.
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.
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.
Provides an overview of other useful operators and control statements, including the logical operators and nested loops.
Introduces graphical user interfaces and contrasts them with terminal-based interfaces. The use of GUIs provides many new opportunities to send messages to objects.
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.
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.
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.
Presents an overview of recursive problem solving with interesting examples. Introduces big-O notation, binary search, and nlogn sorting algorithms.
Presents an overview of basic concepts and tools, including UML, for analysis and design of classes and objects.
Presents a conceptual overview of collections. Introduces the list interface and its two implementing classes from the client's perspective. Includes an introduction to the use of iterators.
Introduces the stack, queue, and priority queue collections from a client's perspective.
Introduces the set and map collections from a client's perspective.
Presents array-based and link-based implementations of lists, stacks, and queues and discusses their tradeoffs.
Presents the implementation of sets and maps.
Presents the implementation of binary trees and priority queues.
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.
Presents the use of file streams, text files, and object serialization.
Presents an overview of HTML and applets using BreezySwing.
Presents an overview of Swing.