AP Computer Science-A
Mathematics Curriculum
(Full Year - 1.0 Credit) 4180 - Level 1
Prerequisites: Previously or concurrently taking Algebra 2
The course introduces students to computer science with fundamental topics that include problem solving, design strategies and methodologies, organization of data (data structures), approaches to processing data (algorithms), analysis of potential solutions, and the ethical and social implications of computing. The course emphasizes both object-oriented and imperative problem solving and design using Java language. These techniques represent proven approaches for developing solutions that can scale up from small, simple problems to large, complex problems. The AP Computer Science A course curriculum is compatible with many CS1 courses in colleges and universities. (From the Advanced Placement Program Handbook).
Click here for more information about GHS Computer Science Courses.
Unit 1: Introduction to Computer Programming through Java
Enduring Understanding
Computers can be used to solve problems which can be broken down into an algorithm.
Focus Questions
What makes up a computer program?
What’s the difference between digital and analog data?
What are the three basic steps of the coding process?
What are the three types of errors in a program and what catches them?
Unit 2: Introduction to Control Statements (Conditionals and Loops) and Advanced Operations on Strings
Enduring Understandings
Algorithms can be enhanced by splitting them into multiple paths and repetition.
Focus Questions
What is the “order of operations” for comparison operators?
What are the different ways I can count in a loop?
How can I leave a loop other than conditions and counts?
What kind of errors are common in loops?
How can random numbers be generated between some integer constraints m and n?
How can someone test to see if the loop they built is working correctly?
What is a nested if statement?
How can I create a new string that’s part of an existing string?
Unit 3: Defining and Writing Classes
Enduring Understandings
Data and functionality can be “bundled” and protected through encapsulation in a class
Focus Questions
What is the difference between and object and a class?
What is the deference between primitive and reference data types?
How can I create a new object?
What is the lifetime of a variable?
Unit 4: Introduction to Arrays (1D and 2D) and Lists
Enduring Understandings
Groups of data and objects are best combined in a single array.
Focus Questions
How do you access elements in an array?
What are the bounds of an array?
What can the size of an array be change?
How can a specific element in an array be found?
How can an array be shuffled?
When should a list be used instead of an array?
How can you create a list of integers?
Unit 5: Enhancing Classes using Abstract Classes, Inheritance and Polymorphism
Enduring Understandings
Code can be reused if precise rules are set on how to access it.
Focus Questions
How can a new class be created based on an older class?
What variables should be static?
How can polymorphism be used to reduce amount of code necessary to write?
How is error handling organized in a large mixture of interacting classes?
How can two objects be compared if they are polymorphic?
What type of exceptions can be thrown in a class?
Unit 6: Searching and Sorting Algorithms for 1D and 2D Arrays
Enduring Understandings
Elements in an array need to be organized for it to be useful
Focus Questions
How can the searching algorithms be used to search for objects?
How can an item be inserted into an array?
What type of data lists are more suited for insertion vs selection sort?
How can a sorting algorithm be tested and debugged?
Unit 7: Recursion, Complexity and Merge and Quicksort
Enduring Understanding
For algorithms to be practical they need to be both correct and efficient.
Focus Questions
How do local variables behave in a recursive method?
When would a recursive method better than a loop?
What is the BigO of the insertion and selection sorting algorithms?
When will the BigO be constant?
Is O(n) always faster than O(n2)
How can you use multiple sorting algorithms to improve efficiency.
Review: Practice AP test Exams/ Review MC Problems
Unit 8: Post AP Test Projects
Final Exam