Java in Two Semesters
Abstract
As with previous editions, this book is designed for university students taking a
first module in software development or programming, followed by a second, more
advanced module. This book uses Java as the vehicle for the teaching of programming
concepts—design concepts are explained using the UML notation. The
topic is taught from first principles and assumes no prior knowledge of the subject.
This book is organized so as to support two twelve-week, one-semester modules,
which might typically comprise a two-hour lecture, a one-hour seminar, and a oneor
two-hour laboratory session. The outcomes at the start of each chapter highlight
its key learning objectives, the self-test questions at the end of each chapter ensure
that the learning objectives for that chapter have been met, while the programming
exercises that follow allow these learning objectives to be applied to complete
programs. In addition to these exercises and questions, a case study is developed in
each semester to illustrate the use of the techniques covered in the text to develop a
non-trivial application. Lecturers who teach on modules that run for fewer than
twelve weeks in a semester could treat these case studies as a self-directed student
learning experience, rather than as taught topics.
The approach taken in this book is ideal for all students including those entering
university with little or no background in the subject matter, perhaps coming from
pre-degree courses in other disciplines, or perhaps returning to study after long
periods away from formal education. It is the authors’ experience that such students
have enormous difficulties in grasping the fundamental programming concepts the
first time round and therefore require a simpler and gentler introduction to the
subject that is presented in most standard texts.
This book takes an integrated approach to software development by covering
such topics as basic design principles and standards, testing methodologies, and the
user interface, as well as looking at detailed implementation topics.
In the first semester, considerable time is spent concentrating on the fundamental
programming concepts such as declarations of variables and basic control structures,
methods and arrays, prior to introducing students to classes and objects,
inheritance, graphics, and event-driven programming.