Topics Covered in 'Introduction to Programming Using
Java (Version 5.0)'
Preface
Chapter 1: The Mental Landscape
• Machine Language
• Asynchronous Events
• The Java Virtual Machine
• Building Blocks of Programs
• Object-oriented Programming
• The Modern User Interface
• The Internet
• Quiz on Chapter 1
Chapter 2: Names and Things
• The Basic Java Application
• Variables and Types (Variables, Types and Literals, Variables in Programs)
• Objects and Subroutines (Built-in Subroutines, Functions, Strings, Enums)
• Text Input and Output (Examples, Output, File I/O)
• Details of Expressions (Operators, Type Casting, Precedence)
• Programming Environments (JDK, Command Line, IDEs, Packages)
• Exercises and Quiz
Chapter 3: Control
• Blocks, Loops, Branches
• Algorithm Development (Pseudocode, Testing, Debugging)
• while and do..while
• for Loops (nested, for-each)
• if and switch Statements
• Exceptions and try..catch
• GUI Programming
• Exercises and Quiz
Chapter 4: Subroutines
• Black Boxes
• Static Subroutines and Variables
• Parameters (Formal vs Actual, Overloading)
• Return Values
• APIs, Packages, and Javadoc
• Program Design (Preconditions, Postconditions)
• Declarations (Initialization, Constants, Scope)
• Exercises and Quiz
Chapter 5: Objects and Classes
• Objects and Instance Methods
• Constructors and Object Initialization
• Programming with Objects (Built-in Classes, Wrapper Classes, Object Class)
• Example: Card, Hand, Deck
• Inheritance and Polymorphism
• this and super
• Interfaces, Nested Classes, Static vs Non-static, Enums as Classes
• Exercises and Quiz
Chapter 6: Introduction to GUI Programming
• Basic GUI Applications (JFrame, JPanel, Layout, Events)
• Applets and HTML
• Graphics and Painting (Coordinates, Colors, Fonts, Shapes, Graphics2D)
• Mouse, Timer, and Keyboard Events
• Basic Components (JButton, JLabel, JCheckBox, JTextField, JComboBox, JSlider)
• Layout Managers and Demos
• Menus, Dialogs, JAR Files
• Exercises and Quiz
Chapter 7: Arrays
• Creating and Using Arrays
• Programming with Arrays (Loops, Arrays of Objects, Random Access)
• Dynamic Arrays and ArrayLists (Vectors, Generics)
• Searching and Sorting (Insertion, Selection)
• Multi-dimensional Arrays (2D Arrays, Checkers Example)
• Exercises and Quiz
Chapter 8: Correctness and Robustness
• Horror Stories, Java’s Safety Features, Remaining Issues
• Writing Correct Programs (Provably Correct Programs, Input Handling)
• Exceptions and try..catch (Exception Classes, Mandatory Handling)
• Assertions
• Threads (Creating, Synchronization, Wait/Notify, Volatile Variables)
• Algorithm Analysis
• Exercises and Quiz
Chapter 9: Linked Data Structures and Recursion
• Recursion (Binary Search, Towers of Hanoi, Recursive Sort, Blob Counting)
• Linked Data Structures (Linked Lists, Insert/Delete, Stacks, Queues, Postfix)
• Binary Trees (Traversal, Sort Trees, Expression Trees)
• Recursive Descent Parser (Backus-Naur Form, Expression Trees)
• Exercises and Quiz
Chapter 10: Generic Programming and Collection Classes
• Generic Programming (Smalltalk, C++, Java)
• Java Collection Framework (Iterators, Comparisons, Wrapper Classes)
• Lists, Sets, Maps (ArrayList, LinkedList, TreeSet, HashSet, EnumSet)
• Programming with Collections (Symbol Tables, Word Counting, Comparator)
• Writing Generic Classes, Methods, Wildcards, Bounded Types
• Exercises and Quiz
Chapter 11: Files and Networking
• Streams, Readers, Writers (PrintWriter, Scanner, Serialized I/O)
• File Handling (Reading/Writing, Dialogs, Persistent Data, Storing Objects)
• Networking (URLs, TCP/IP, Sockets, Client/Server, Chat Program)
• Threads in Network Programming (Threaded GUI, Multi-threaded Server, Distributed Computing)
• XML Basics (DOM, XMLDecoder, XMLEncoder)
• Exercises and Quiz
Chapter 12: Advanced GUI Programming
• Images and Resources (BufferedImages, Pixels, Icons, Image I/O)
• Fancier Graphics (Transparency, Antialiasing, Strokes, Transforms)
• Actions and Buttons (AbstractAction, Toolbars, Radio Buttons)
• Complex Components and MVC (Lists, Tables, Editors, Custom Components)
• Finishing Touches (Mandelbrot Set, Internationalization, Custom Dialogs, Preferences)
• Exercises and Quiz
Appendix: Source Files