
AP CS A Java Course¶
Welcome to CS Awesome! It’s time to start your journey to learn how to program with Java. A shortcut way to get to this course is to type in the url: course.csawesome.org
This course is adapted from the Runestone Java Review course to follow the 2019 College Board unit ordering and learning objectives. If you are a teacher using this curriculum, please join the teaching CSAwesome group which will give you access to teacher resources at csawesome.org.
To make sure the site saves your answers on questions, please click on the person icon at the top to register or login to your course. As you complete lessons, click the “Mark as completed” button at the bottom. Enjoy the course!
- Unit 1 Getting Started and Primitive Types
- Unit 2 Using Objects
- Unit 3 If Statements
- Unit 4 Iteration/Loops
- Unit 5 Writing Classes
- Unit 6 Arrays
- Unit 7 ArrayLists
- Unit 8 2D Arrays
- Unit 9 Inheritance
- Unit 10 Recursion
- Practice units: 11, 12, 13, 14, 15
Table of Contents¶
- 1. Getting Started and Primitive Types
- 1.1. Getting Started
- 1.2. Why Programming? Why Java?
- 1.3. Variables and Data Types
- 1.4. Expressions and Assignment Statements
- 1.5. Compound Assignment Operators
- 1.6. Casting and Ranges of Variables
- 1.7. Unit 1 Summary
- 1.8. Unit 1 Mixed Up Code Practice
- 1.9. Unit 1 Coding Practice
- 1.10. Multiple Choice Exercises
- 2. Using Objects
- 2.1. Objects - Instances of Classes
- 2.2. Creating and Initializing Objects: Constructors
- 2.3. Calling Methods Without Parameters
- 2.4. Calling Methods With Parameters
- 2.5. Calling Methods that Return Values
- 2.6. Strings
- 2.7. String Methods
- 2.8. Wrapper Classes - Integer and Double
- 2.9. Using the Math Class
- 2.10. Unit 2 Summary
- 2.11. Mixed Up Code Practice
- 2.12. Coding Practice
- 2.13. Practice Test for Objects (2.1-2.5)
- 2.14. Multiple Choice Exercises
- 2.15. Java Swing GUIs (optional)
- 3. Boolean Expressions and If Statements
- 3.1. Boolean Expressions
- 3.2. if Statements and Control Flow
- 3.3. Two-way Selection: if-else Statements
- 3.4. Multi-Selection: else-if Statements
- 3.5. Compound Boolean Expressions
- 3.6. Equivalent Boolean Expressions (De Morgan’s Laws)
- 3.7. Comparing Objects
- 3.8. Unit 3 - Summary
- 3.9. Mixed Up Code Practice
- 3.10. Coding Practice
- 3.11. Multiple Choice Exercises
- 3.12. Magpie Chatbot Lab
- 4. Iteration (Loops)
- 4.1. While Loops
- 4.2. For Loops
- 4.3. Loops and Strings
- 4.4. Nested For Loops
- 4.5. Loop Analysis
- 4.6. Unit 4 Summary
- 4.7. Mixed Up Code Practice
- 4.8. Coding Practice with Loops
- 4.9. Multiple Choice Exercises
- 4.10. Free Response Questions (FRQs) for Control Structures
- 4.11. Free Response - Self Divisor A
- 4.12. Free Response - String Scramble A
- 4.13. Consumer Review Lab
- 5. Writing Classes
- 5.1. Anatomy of a Java Class
- 5.2. Writing Constructors
- 5.3. Comments and Conditions
- 5.4. Accessor Methods
- 5.5. Mutator Methods
- 5.6. Writing Methods
- 5.7. Static Variables and Methods
- 5.8. Scope and Access
- 5.9. this Keyword
- 5.10. Social Impacts of CS
- 5.11. Unit 5 Summary
- 5.12. Exercises
- 5.13. Free Response Question (FRQ) for Classes
- 5.14. Free Response Question - Time
- 5.15. Free Response Question - APLine
- 5.16. Midterm Test
- 5.17. College Board Celebrity and Data Labs
- 6. Arrays
- 7. ArrayList
- 7.1. Intro to ArrayLists
- 7.2. ArrayList Methods
- 7.3. Traversing ArrayLists with Loops
- 7.4. ArrayList Algorithms
- 7.4.1. Free Response - String Scramble B
- 7.4.2. Free Response - Climbing Club A
- 7.4.3. Free Response - Climbing Club B
- 7.4.4. Free Response - Climbing Club C
- 7.4.5. Free Response - CookieOrder A
- 7.4.6. Free Response - CookieOrder B
- 7.4.7. Free Response - StringFormatter A
- 7.4.8. Free Response - StringFormatter B
- 7.4.9. Free Response - Delimiters A
- 7.4.10. Free Response - Delimiters B
- 7.4.11. Free Response - Grid World A (Not Complete)
- 7.5. Searching Algorithms
- 7.6. Sorting Algorithms
- 7.7. Ethics of Data Collection and Data Privacy
- 7.8. ArrayList Summary
- 7.9. Mixed Up Code Practice
- 7.10. Code Practice with ArrayLists
- 7.11. Multiple-Choice Exercises
- 7.12. College Board Celebrity and Data Labs
- 8. 2D Arrays
- 8.1. Two-dimensional (2D) Arrays
- 8.1.1. 2D Arrays (Day 1)
- 8.1.2. Array Storage
- 8.1.3. How Java Stores 2D Arrays
- 8.1.4. Declaring 2D Arrays
- 8.1.5. Set Value(s) in a 2D Array (Day 2)
- 8.1.6. Initializer Lists for 2D Arrays
- 8.1.7. Get a Value from a 2D Array
- 8.1.8. Programming Challenge : ASCII Art
- 8.1.9. Summary
- 8.1.10. 2D Arrays Game
- 8.2. Traversing 2D Arrays (nested loops)
- 8.3. 2D Arrays Summary
- 8.4. Mixed Up Code Practice
- 8.5. Code Practice with 2D Arrays
- 8.6. Free Response Questions
- 8.7. Multiple-Choice Exercises
- 8.8. College Board Labs for 2D Arrays
- 8.1. Two-dimensional (2D) Arrays
- 9. Inheritance
- 9.1. Inheritance, Superclass, Subclass
- 9.2. Inheritance and Constructors
- 9.3. Overriding Methods
- 9.4. super Keyword
- 9.5. Inheritance Hierarchies
- 9.6. Polymorphism
- 9.7. Object Superclass
- 9.8. Inheritance Summary
- 9.9. Free Response Questions
- 9.10. Mixed Up Code Practice
- 9.11. Code Practice with Object Oriented Concepts
- 9.12. Multiple-Choice Exercises
- 9.13. College Board Celebrity Lab
- 10. Recursion
- 11. Post Test and Survey
- 12. Preparing for the Exam
- 13. Timed Multiple-Choice Exams
- 14. Mixed Up Code - Free Response Practice
- 15. Free Response Practice
- 15.1. RandomStringChooser - Part A
- 15.2. RandomStringChooser - Part B
- 15.3. StringCoder - Part A
- 15.4. StringCoder - Part B
- 15.5. StudentAnswerSheet - Part A
- 15.6. StudentAnswerSheet - Part B
- 15.7. SkyView - Part A
- 15.8. SkyView - Part B
- 15.9. Hidden Word - Write Class
- 15.10. ArrayTester - Part A
- 15.11. ArrayTester - Part B
- 15.12. NumberGroup - Part B
- 15.13. NumberGroup - Part C
- 15.14. Exercises
Index¶
If you see errors or bugs, please report them with this errors form. If you are a teacher who is interested in CS Awesome PDs or community, please fill out this PD interest form and join the teaching CSAwesome group which will give you access to lesson plans at csawesome.org.
(last revised 1/21/2021)
© Copyright 2015 Barb Ericson, Univ. Michigan, 2019 revised by Beryl Hoffman (Elms College). Created using Runestone.