This book is for novices If you have never done any programming before - if you are a complete novice - this book is for you. This book assumes no prior knowledge of programming. It starts from scratch. It is written in a simple, direct style for maximum clarity. It is aimed at first level students at universities and colleges, but it is also suitable for novices studying alone. The approach of this book We explain how to use objects early in this book. Our approach is to start with the ideas of variables, assignment and methods, then introduce the use of objects created from library classes. Next we explain how to use control structures for selection and looping. Then comes the treatment of how to write your own classes. We wanted to make sure that the fun element of programming was paramount, so we use graphics right from the start. We think graphics is fun, interesting and clearly demonstrates all the important principles of programming. But we haven't ignored programs that input and output text - they are also included. The programs we present use many of the features of a graphical user interfaces (GUIs), such as buttons, scroll bars and text boxes. But we also explain how to write console programs in Java. We introduce new ideas carefully one-at-a-time, rather than all at once. So, for example, there is a single chapter on writing methods. We introduce simple ideas early and more sophisticated ideas later on.