An introduction to building larger software projects, with a heavy emphasis on object-oriented programming in Java. Topics include the software development lifecycle, requirements analysis, GUI development, and structured design. The point is learning how to plan and build software that's organized and easy to maintain.