Chapter 1 - Computer Systems This chapter discusses the computer system, in terms of the hardware and software components. In terms of hardware system, the discussion centers around -the central processing unit; the primary memory; the input/out devices; the secondary storage devices; and communication devices. For the software system, the discussion centers on the - systems software, processing programs, and the generations of programming languages. The chapter closes with a sneak preview of a Java program. Chapter 2 - Classes and Objects This chapter introduces the concept of object oriented programming through discussion on our everyday experiences. The first half of the chapter focuses purely on observation and discussion, the second half formalizes the discussion into Java codes. Two program development tools are introduced - Unified Modeling Language (UML), and algorithm development. Chapter 3 - Program Development This chapter furthers the discussion on how to analyze problems, design classes that accurately reflect the problem, and develop UML solution before coding the programs. Chapters 4 - Data Types This chapter takes an in-depth look at data types - both primitive types and reference types. It discusses the importance of data types as they relate to writing programs. In relation to the primitive types, the chapter also focuses on the types of arithmetic operations that can be performed on the different numeric types. It also highlights incompatibilities between types, and also ways one type can be converted to another type. With regards to reference types, attention is drawn to the java.lang package, and some of its classes including the wrapper classes. Chapter 5 - Input - Output Operations This chapter discusses various ways of inputting data into a program during its execution. We also use the JOptionPane class to develop a class solely for reading data. To enhance the look and feel of the output, we not only used the class JOptionPane, but we also used the class JTextArea to embed the text, which is the output that is to be displayed. The result of this is embedded into the class JScrollPane, to have a scroll effect, rather than a flat output at the command prompt. Chapter 6 - Selection Statements This chapter focus on relational and logical operations .This involves constructing and evaluating relational and logical expressions. It looks at understanding De Morgan's Law. These concepts are used to understand the if and the switch statements. Chapter 7 - Iterative statements The iterative statements studied in this chapter are the while statement, the do/while statement, and the for statement. The chapter also features the concept of nested loops, and loops with multiple control variables. Chapter 8 - Arrays This chapter considers one-dimensional and multi-dimensional arrays. Examples up to three dimensional arrays are analyzed and coded. The chapter concludes with a study of the enhanced for-loop, (for-each loop), and its application to arrays. Chapter 9 - Sorting and Searching This chapter studies sorting and searching. Three elementary sorting algorithms studied are - the bubble sort, the selection sort, and the insertion sort. With respect to searching, the two algorithms studied are the linear search and the binary search. Chapter 10 ArrayList and its Applications This chapter focuses on a variable size list called ArrayList. It features how to append data to the list, to insert data into the list, remove data from the list, and query the list for information.