# Lessons

## Table of Contents

These lessons and assignments are designed to go along with the book Java: An Eventful Approach. They make use of an improved version of the ObjectDraw Library used by the book. It would be helpful for students to read ahead in the book so that they know what is going on by the time they see it in class.

Each lesson here represents two or three new ideas to be mastered. Although it would be possible to go through them at a rate of one per day, it might be more reasonable for an introductory class to take more time for some of the lessons, or to have a day's lesson followed by a day to work on the assignments connected to it.

One of the challenges of teaching an APCS class is that some students understand new concepts almost instantly, while others need to work much harder. This syllabus provides a large number of assignments at a range of difficulties so that those who wish can seek out the fun and challenge of doing the harder assignments, while those who are struggling more can practice the same techniques in an assignment that is more structured or less mathematically complex.## 1. Object Creation

*Reading: Chapter 1*

Lesson 1.1: Getting Started with Java

Lesson 1.2: Creating Objects

Lesson 1.3: Compound Objects

Lesson 1.4: Responding to Events

Lesson 1.5: Understanding Classes## 2. Object Variables

Lesson 2.1: Using Variables

Lesson 2.2: Declaring Variables

Lesson 2.3: Variable Type and Value

Lesson 2.4: Calling Methods

Lesson 2.5: Using Return Values

Lesson 2.6: Tracking References

Lesson 2.7: Method Signatures

Lesson 2.8: Rules for Object References## 3. Numbers

Lesson 3.1: Numbers and Math

Lesson 3.2: Int Variables

Lesson 3.3: Math Expressions

Lesson 3.4: Changing Variable Values

Lesson 3.5: Random Numbers and Constants

Lesson 3.6: Quick-Assignment Operators## 4. Conditionals

## 5. Other Numerical Types

## 6. Methods and Classes

## 7. Control Structures

## 8. Access and Scope

## 9. Active Objects and GUI

## 10. Recursion

## 11. Arrays

## 12. Strings

## 13. Inheritance

## 14. Searching and Sorting