Agile Java (5 days)

Audience: new programmers. Teaches you how to build professional software using Java and TDD, based on the highly-acclaimed book Agile Java. Learn to program the right way, the first time!

Class size: 10 to 16
Prerequisites: none

Learn to program the right way, the first time! Upon completion of this course, students will be able to craft solid and professional applications using the core Java programming language. Students learn the Java language through brief lectures, demos, extensive hands-on coding, and group discussions. Students will learn Java through use of Test-Driven Development (TDD), a technique that helps students learn basic language concepts more rapidly and with stronger retention.

This course is based on Jeff Langr's book, Agile Java.

A version of this course is available for J2SE 1.4 and 1.5.

Course Schedule

This is not an exhaustive list of all language features that will be taught. Students will learn virtually all core language features.

Day 1

Morning
Getting Started: Compiler, IDE, Hello!
Objects, What is OO?
UML
What is Test-Driven Design?
Writing Tests With JUnit
Language Basics
Refactoring

Afternoon
Working With Ints
Test suites
java.util.ArrayList
Parameterized types (1.5)
API documentation
Constants

Day 2

Morning
Packages
Date and Calendar Classes
Constructors
Factory method
Comments; javadoc

Afternoon
Characters and Strings
System properties
Looping (5.0: for loop; 1.4: iterators)
Single Responsibility Principle
Simple IO
Access modifiers
Statics
Simple design
Utility methods
Booleans
Initialization
Reading Exceptions

Day 3

Morning
Triangulation
Sorting
Programming by intention
Interfaces
Comparable
Control Statements
Floats
enum (5.0)
Polymorphism; Strategy pattern

Afternoon
HashMaps
Inheritance
Wrappers, boxing (5.0)
Writing your Own Iterators (5.0)
Classic Loops
Arrays
Exceptions

Day 4

Morning
Equality; Hash Code
Mathematics
Basic IO

Afternoon
Anonymous inner classes
Reflections
Annotations (5.0)
Garbage Collection

Day 5

Morning
Multi-threading

Afternoon
OO Design Principles Overview Wrap-up

Pricing / Details