This course is a year-long course that covers the basics of programming using the Java programming language.
Duration: 150-175 hours
Grades: 9th-12th
Level: Intermediate
About this course
Students will learn about the fundamentals of computer science (CS) and how it is used in real world applications with Java. They will learn the fundamentals of object oriented programming methodology using hands-on exercises and projects. Then they will practice building algorithms and learn best practices for writing Java applications. Finally, students will focus on the ethics of computing and implications of the code they have created.
Students will learn:
Programming logic using conditionals and loops
Object Oriented design principles
Data storage and processing with Java
Algorithm design and implementation
How this course is structured
The course is divided into 10 units, each consisting of several lessons. Each lesson consists of steps. Each step consists of an instructional video as well as a practice activity for the student. Each step is designed to take no longer than 8-10 minutes to complete and each lesson is designed to take no more than 60 minutes to complete.
Additionally, there are projects after every 2-3 units, which allow students to build an application tying together concepts they have learned so far.
Course Syllabus
Unit 1: Data in Java
Lesson 1: Printing
Lesson 2: Variables and Data Types
Lesson 3: Adding and Concatenating
Lesson 4: Input and Output
Lesson 5: Data Storage
Lesson 6: Bugs and Debugging
Unit 2: Objects
Lesson 1: Intro to Methods
Lesson 2: Strings!
Lesson 3: Math in Java
Lesson 4: Intro to Graphics
Lesson 5: Graphics and Methods
Unit 3: Programming Logic: Loops and Conditionals
Lesson 1: Booleans
Lesson 2: Conditionals
Lesson 3: While Loops
Lesson 4: For Loops
Lesson 5: Data Under the Hood
Unit 4: Classes
Lesson 1: Anatomy of a Class
Lesson 2: Constructors and Attributes
Lesson 3: Adding Methods
Lesson 4: Static Deep Dive
Unit 5: Arrays
Lesson 1: Arrays and Iterating
Lesson 2: Adding and Removing from Arrays
Lesson 3: Algorithms for Arrays
Lesson 4: Special Loops for Arrays
Unit 6: ArrayLists
Lesson 1: ArrayLists
Lesson 2: Traversing ArrayLists
Lesson 3: Searching ArrayLists
Unit 7: 2D Arrays
Lesson 1: 2D Arrays
Lesson 2: Traversing 2D Arrays
Lesson 3: Algorithms for 2D Arrays
Unit 8: Advanced OOP
Lesson 1: Inheritance
Lesson 2: Polymorphism
Lesson 3: Using OOP
Unit 9: Recursion and Algorithms
Lesson 1: Search and Sort Algorithms
Lesson 2: More Search and Sort!
Lesson 3: Recursive Search and Sort
Unit 10: Exam Prep
Lesson 1: What is the Exam?
Lesson 2: Strings
Lesson 3: Booleans
Lesson 4: Control Structures
Lesson 5: Inheritance and Polymorphism
Lesson 6: Search and Sort
Lesson 7: Recursion
FRQ 1: Methods and Control Structures
FRQ 2: Classes
FRQ 3: arrays/ArrayList
FRQ 4: 2D Arrays