- Target audience:
- potential software developers
- 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), an exciting 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, which features Java 2 Standard Edition (J2SE) 5.0.
A version of this course is available for J2SE 1.4.
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