High school boy with backpack

Course Description

In the first course of our AP CS Prep track, students build a foundation in programming using Java. They’ll learn to work with variables, data types, arrays, loops, conditional logic, methods, and more, all while building engaging programs in our project-focused curriculum. The fundamental programming skills they’ll learn in this course will help them to succeed in a traditional AP Computer Science A course. After completing this course, students are ready to tackle Object-Oriented Programming (another essential skill for the AP CS A exam) in our Java 2 course.

High school boy in codewizardshq platform

Learning Objectives

When students complete Java 1, they will be able to:

  • Understand core Java programming concepts such as classes, variables, methods, conditional logic, and looping.
  • Work with Java’s array data structure and understand complex topics such as recursion.
  • Create useful programs and simple games using the Java programming language.
Level I

Prerequisites

No prerequisites for this course. Beginners with no experience are welcome.

Java I Class LessonsExpand All Lessons
  • Java Class 1
    1. Introduction

    In the first lesson of this course, students learn about programming in general and how to write a simple Java program that lists our favorite food. We cover some fundamental ideas behind Java programming, such as creating classes, the importance of the main method, and the syntax and structure of simple statements. 

  • Java Class 2
    2. Data

    In this lesson, students learn how to describe real-world objects by their data and behavior. Programmers use variables to represent data and methods to model behavior. The lesson’s project has the students model a movie review using variables and Java’s essential primitive data types.

  • Java Class 3
    3. Methods

    In this lesson, students use methods to package related code. Using methods reduces repetition and follows the D.R.Y. programming methodology. The day’s project has the students refactor the movie review application from the previous class to use a user-defined method instead of repetitive print statements.

  • Java Class 4
    4. Arithmetic Operators

    In this lesson, students learn how to return data from methods and work with Java’s four fundamental arithmetic operations. We introduce type casting operations to ensure that mathematical expressions return the expected results and review the order of operations as it pertains to Java programs. The day’s project is a “Smart Calculator” app that reinforces the lesson concepts and allows students to build a helpful calculator that they can use outside CWHQ.

  • Java Class 5
    5. Relational Operators

    In this lesson, students learned how to make decisions using conditional statements. They also learn about the different relational operators and how to work with the modulo operator. They’ll put their new skills to work by adding more features to the “Smart Calculator” application from the previous lesson. 

  • Java Class 6
    6. Loops

    In this lesson, students learn two of Java’s looping constructs; the “for” and “while” loops. They’ll learn how loops are used to apply the DRY (Don’t Repeat Yourself) programming principle, and they’ll use loops to reduce repetition in their code and create different arithmetic tables. The final portion of the lesson introduces two ways to interrupt loops; the “break” and “continue” statements. 

  • Java Class 7
    7. Arrays

    In this lesson, students learn about a fundamental data structure in Java, the array. Students will learn how to create and iterate through arrays with loops (which they learned in the previous class). They’ll also be introduced to method overloading, which allows a programmer to create duplicate methods that accept different data but perform the same action. For the final exercise, students learn to use pseudocode to outline an algorithm before writing any Java code.

  • Java Class 8
    8. Multidimensional Arrays

    In this lesson, students learn how to group related arrays into multidimensional arrays. They’ll create and iterate through a few multidimensional arrays in a program that models a shopping list and a log of daily activities. In addition to standard array operations, we introduce the Arrays utility class of the Java standard library to perform common array tasks, such as sorting and searching arrays.

  • Java Class 9
    9. Logical Operators

    In this lesson, students learn about complex conditional statements, which allow your program to make a decision based on multiple situations. They’ll build a simple “Slot Machine” app to test complex conditional statements and learn how to generate random numbers within any range. At the end of class, students learn how to use helper methods to hide the complexity of complex conditional statements and make their code more readable.

  • Java Class 10
    10. Recursion

    In this lesson, students learn how to use recursion in place of repetition. We discuss two types of recursive methods and practice converting looping constructs into recursive ones. This concept is challenging to grasp, so the lesson is packed with examples and graphics to help illustrate the ideas, and the program we write is very minimal and straightforward.

  • Java Class 11
    11. Final Project – Part 1

    In this lesson, students start with an empty project and build a working “Rock, Paper, Scissors” app using what they’ve learned throughout the course. No new concepts are introduced in this lesson, as it is meant to showcase how far the students have come. The students will improve this app for homework and in the course’s final class.

  • Java Class 12
    12. Final Project – Part 2

    In the final lesson of this course, students continue to add features and improve the “Rock, Paper, Scissors” app from the last class using techniques they’ve learned throughout the course. They’ll add a way to run the game multiple times and determine who won a series of games. As a bonus, we learn how to run tie-breaker logic until one player wins.