Introduction to Computer Science using Java

July 2019

Bradley Kjell, Central Connecticut State University

This is a first course in Computer Science using the programming language Java. It is intended for high school AP Computer Science classes, for university level CS-I classes, and for self study.

For maximum benefit, go though these notes interactively, thinking about and answering the question at the bottom of each page. There are about 20 pages per chapter. If you spend about 3 minutes per page each chapter will take about 60 minutes, or longer if you copy and run some of the programs. If you are a beginning programmer, plan on spending more than a month with this.

These notes assume that you have the Java version 7.0 or later from Oracle, Inc. at and a text editor such as Notepad or Notepad++. They may be used with an integrated development environment such as BlueJ, as well. For more about these notes check the frequently asked questions.

Super Easy Way to Run Java: The web site lets you copy-and-paste Java code into a web page text box, then compile and run it completely within your browser. This is ideal for playing with the short example programs in many of these chapters. Another site that does this is

Part 1: Hardware and Software

Chapter 1 Computer Systems Quiz Flash Cards    Review    
Chapter 2 Analog and Binary Signals Quiz Flash Cards    Review
Chapter 3 Computer Memory Quiz Flash Cards Review
Chapter 4 The Processor Quiz Flash Cards Review

Part 2: Running Java Programs

Chapter 5 Introduction to Java Review        
Chapter 6 Small Java Programs Review    
Chapter 7 How to Run the Example Programs Review    

Part 3: Data

Chapter 8 Primitive Data Quiz Exercises Flash Cards
Chapter 9 Variables and the Assignment Statement Quiz Exercises Flash Cards
Chapter 10 Expressions and Arithmetic Operators Quiz Exercises Flash Cards
Chapter 11 Object Data Quiz Exercises  
Chapter 12 Input and Output Review Exercises  
Chapter 13 Floating Point and Math Review Exercises  
Chapter 14 Formatted Output with DecimalFormat Quiz Exercises    
Chapter 15 Formatted Output with printf() Quiz Exercises  

Part 4: Branches and Loops

Chapter 16 The if Statement Quiz Exercises  
Chapter 17 The Single Branch if Statement Quiz Exercises  
Chapter 18 Boolean Expressions Review Exercises Flash Cards
Chapter 19 Loops and the while statement Review Exercises  
Chapter 20 Counting Loops Quiz Exercises  
Chapter 21 Nesting Loops and Ifs Review Exercises  
Chapter 22 Sentinel-controlled Loops Review Exercises  
Chapter 23 Result-controlled Loops Quiz Exercises  
Chapter 24  The for Statement Quiz     Exercises  
Chapter 25  More about the for Statement Quiz     Exercises  

Part 5: More Java Features

Chapter 30 Random Numbers Quiz Exercises Review
Chapter 31  Increment, Decrement, and Assignment Operators Quiz     Exercises  
Chapter 32  Boolean Expressions and Short-circuit Operators Quiz     Exercises Review      
Chapter 33  Truth Tables and De Morgan's Laws Review        
Chapter 34  The Conditional Operator and the switch Statement Quiz     Exercises  
Chapter 35  The do Statement Quiz     Exercises  

Part 6: Object Oriented Programming

Chapter 40  Objects Quiz    
Chapter 41 Object References Quiz    
Chapter 42 More about Objects and Classes Review    
Chapter 43 Method Parameters Review    
Chapter 44 Strings and Object References Quiz Exercises  
Chapter 45 More about Strings Quiz Exercises  
Chapter 46 Defining your own Classes Review Exercises  
Chapter 47 Class Design Example: Cone Review Exercises  
Chapter 49 Class Design Example: Checking Account Review    
Chapter 50 Encapsulation and Visibility Modifiers Quiz Exercises  
Chapter 51 Parameters, Overloading, Local Variables Review    
Chapter 52 Object Parameters Quiz    
Chapter 53 Objects that Contain Objects Review Exercises  
Chapter 54 Static Methods Quiz Exercises  

Part 7: Arrays

Chapter 60  Arrays Quiz     Exercises  
Chapter 61  Useful Array Algorithms Quiz     Exercises  
Chapter 62  Objects that Contain Arrays          
Chapter 63  Arrays as Parameters Review     Exercises  
Chapter 64  Methods that Change Arrays Quiz        
Chapter 65  Arrays of Objects Quiz        
Chapter 66  Linear Search Exercises    
Chapter 67  Two Dimensional Arrays Exercises    
Chapter 68  StringBuffers Quiz     Exercises  

Part 8: File Input and Output

 This section may be started after Part 4
Chapter 70 Files and File Redirection Review Exercises  
Chapter 71 Reading Data with File Redirection Review Exercises  
Chapter 72 I/O using Scanner and PrintWriter Review Exercises  
Chapter 73 File Input Techniques Review Exercises  

Part 9: Advanced Object Oriented Programming

Chapter 80  Inheritance Quiz        
Chapter 81  Abstract Classes and Polymorphism Quiz        
Chapter 82  More about Polymorphism Quiz        
Chapter 83  Interfaces Quiz        
Chapter 84  The Comparable Interface Quiz     Exercises  
Chapter 85  ArrayLists and Iterators Quiz        
Chapter 86  BigInteger Quiz     Exercises  

Part 10: Recursion

Chapter 90  Recursion Quiz     Exercises Adventure  
Chapter 91  Recursion in Java Quiz     Exercises  
Chapter 92  Examples of Recursion Quiz     Exercises  
Chapter 93  More Recursion Quiz     Exercises  
Chapter 94  Recursion with Strings     Exercises  
Chapter 95  Recursion with Graphics     Exercises  
Chapter 96  Classic Fractals          

Part 11: Exceptions

Chapter 100  Exceptions Quiz     Exercises  
Chapter 101  More about Exceptions Quiz     Exercises  
Chapter 102  Scanner, PrintWriter, and Exceptions          
Chapter 103  Input and Output Streams Quiz          
Chapter 104  Writing Binary Files Quiz     Exercises  
Chapter 105  Reading Binary Files Quiz     Exercises  
Chapter 106  The File Class Quiz     Exercises  

Part 12: Sorting

Chapter 110  Selection Sort     Exercises  
Chapter 111  Insertion Sort     Exercises  
Chapter 112  Sorting with Objects          

Part 13: Graphics

 This section may be started after Part 9
Chapter 120  Beginning JavaFX Quiz     Exercises  
Chapter 121  More JavaFX Shapes Quiz     Exercises  

Part 14: Linked Lists

Chapter 130  Beginning Linked Lists   Exercises  
Chapter 131  Unordered Linked List   Exercises  
Chapter 132  Ordered Linked List   Exercises  
Chapter 133  Generic Linked List      



Return to List of Courses Return To List of Courses

Introduction to Computer Science using Java is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Creative Commons License