This text provides an objects first introduction to software design and construction using the programming language Java. The emphasis throughout is on problem modeling using fundamental software engineering principles and concepts. Although Java is introduced and used throughout the text, this is not primarily a text about Java and the UML is used, very informally, for denoting objects, object relationships, and system dynamics.
This text is an introductory text on programming, intended for first year, computer science undergraduates. No specific previous programm ing experience is assumed.