COURSE SYLLABUS: AP* Computer Science A
Pacifica High School ~ Instructor: Mr. Scoles ~ Room: B-34
Course Overview: The purpose of this class is to introduce the student to the object oriented programming paradigm
using the Java language. Concepts such as classes, objects, inheritance, polymorphism, and code reusability will be
covered. Individual hands-on laboratory work will help solidify each concept taught. Students will complete a long-term
programming project and will create a formal presentation demonstrating the project.
Course Resources:
 Java Software Solutions for AP* Computer Science, A. J. Lewis, W. Loftus, and C. Cocking
 Barron’s Review Book for AP Computer Science
 CodingBat account (free)
 AP* Case Study
 B-34 Computer Lab with Dell PCs
 BlueJ (free compiler)
 Java Development Kit (freeware)
Course Objectives: After completing this course, students will be able to
1. develop an understanding of the concept of a class and an object.
2. develop an understanding of how objects model real world objects.
3. implement inheritance to construct an object inheritance hierarchy.
4. implement polymorphism to process collections of objects.
5. study and extend the case study project.
6. design and implement a long-term programming project and formally present the project.
Homework & Notebook: Homework will be posted by 4:00 each day unless otherwise stated in class. Expect to do about
twenty minutes of homework per day. Homework will be graded the following day in class. If not shown at time of
grading, homework will receive a zero. Students should purchase an AP Computer Science designated single subject
notebook storing course documents and taking notes.
Classwork & Assessments: Instruction in this class is given through lecture, class discussions, handouts, and
demonstrations. We use the gradual release of responsibility model of me demonstrating key concepts, to us coding
together, to students coding independently. The introduction is only a small component, as students spend about 70% of
class time working independently. This allows time for them to complete assignments and gives me the opportunity to
formatively assess their progress. I believe that programming has to be learned primarily by doing, which is why I strive
to give students as much time working as possible. I give assignments that challenge students to develop problem-solving
skills as they work individually, or in groups. There is additional time offered after school for students to receive extra
help or simply spend more time programming. All assignments descriptions and resources are on the network drive.
Students can print all resources and study guides to take home and study. Most coding assignments will be completed in
class while simple prep work will often be assigned as homework. One exam will be given at the end of each unit.
Attendance: Attendance is very important, as most work will be done in class. Students who are absent have twenty-four
hours to make up work/assessments. Students are required to notify Mr. Scoles via email at [email protected], and then
stop in at the beginning of 0-period to make up work. After twenty-four hours, any work not made up will be entered into
the gradebook as a zero.
Teacher Availability: Please feel free to contact me (Mr. Scoles) at Pacifica High School with any questions or concerns.
The school phone number is (714) 663-6515. You can also contact me by e-mail at [email protected]
Portfolio: Each student will be required to develop and organize an electronic portfolio on the student password protected
drive. It is recommended that the portfolio be backed up using Google Drive. At the end of the school year, students
should retrieve all files and take them home using Google Drive or a flash drive.
Computer Lab Rules:
1. No food, drink, gum, or candy is allowed in the laboratory. Water bottles, etc. may be left on the cart in the front
2. Arrive on time. Students who arrive late are marked tardy.
3. Walk in quietly and sit in designated seat immediately.
4. Remain seated while in class.
5. Sit quietly during instruction.
6. Only touch the keyboard and mouse. If the computer does not seem to be working correctly, ask the instructor for
7. Only open computer programs that the instructor says to open.
8. The GGUSD Internet usage policy is in place. Accessing inappropriate content will result in disciplinary actions
9. Leave workspace clean and neat.
10. Do not log out of computers until the bell rings.
Optional Lab Donation: We are asking for $10 donations to help buy classroom supplies for students to use during the
school year. We use donations to purchase supplemental upgrades, and technologies enhancing the student experience in
B-34 beyond state requirements. Student grades are not affected whatsoever by a donation or non-donation.
Grade Allocation:
30% - Classwork/Homework (done in class with teacher guidance / prep, review, and reinforcement done as homework)
10% - Quizzes (20 question definition-style multiple-choice formative. 30 seconds per question)
60% - Exams - 20 question AP* Style multiple-choice (2.25 min per question) & 1 FRQ (22.5 min)
Classwork/Homework Grading Rubric:
= 1 point
Not done
= 0 points
- Any assignments/folders named incorrectly or in the wrong format have a .5-point deduction.
Grading Scale:
90-100% = A
80-89.9% = B
70-79.9% = C
60-69.9%= D
59.9% and below = F
Unit 1: Introduction to the Computer and the Java Programming Environment | Weeks 1-3 | Sept 8-25
Become familiar with the lab, login, customizing account, and classroom procedures
Learn about computer hardware, software, operating systems, and networks
 Computer laws and ethics
 Experience the programming environment in BlueJ and create a basic class to print text in the system window
 Use arithmetic expressions with primitive data types
 Variables
 The String class
 java.lang.Double, java.lang.Integer, java.lang.Math
 Lewis, Loftus, Cocking Chapter 1: Computer Systems
 Lewis, Loftus, Cocking Chapter 2: Objects and Primitive Data
 Barron’s Review Book Chapter 1: Intro Java Language Features
 Barron’s Review Book Chapter 2: Classes and Objects
Sample Labs and Projects:
 Ideal weight (calculate ideal weight based on a formula)
 Roll of dice (random number generation for two dice)
 String manipulation (use various String methods to measure and modify a String)
Unit 2: Conditionals and Repetition | Weeks 4-6 | Sept 28-Oct 16
 if, if-else
 Relational Operators
 Comparing objects
 For and while loops
 Lewis, Loftus, Cocking Chapter 3: Program Statements
Sample Labs:
 Rock-Paper-Scissors (randomly choose rock, paper, or scissors for two players, then display which player wins; or
loop if there’s a tie)
 Slot Machine (use a loop to choose 3 random numbers, then evaluate the numbers to see if they are the same)
Unit 3: Class Design | Weeks 7-9 | Oct 19-Nov 6
 Understanding how a class works
 Writing classes
 Instance data
 Encapsulation
 Lewis, Loftus, Cocking Chapter 4: Writing Classes
 Barron’s Review Book Chapter 5: Program Design and Analysis
Sample Labs:
 Names (create a class that stores full names; then create methods to call for the full name, first name, or last name)
Unit 4: Class Methods | Weeks 10-13 | Nov 9-Dec 11
 Methods
 Returning values
 Parameters
 Lewis, Loftus, Cocking Chapter 5: Enhancing Classes
 Barron’s Review Book Chapter 4: Some Standard Classes
Sample Labs:
 Student grades (create a class to manage student names and grades, then create a driver to create students and show
their grades)
 College Board Magpie Lab Case Study
Unit 5: Arrays and ArrayLists | Weeks 14-17 | Dec 14-Jan 22
 Declare and use arrays
 Storing numbers and objects in arrays
 Searching and Sorting
 Two-Dimensional Arrays
 ArrayList
 Passing arrays to methods
 Lewis, Loftus, Cocking Chapter 6.0: Arrays and ArrayLists
 Barron’s Review Book Chapter 6: Arrays and ArrayLists
Sample Labs:
 Quiz (create an array of quiz answers, then compare sample answers to the array to calculate percentage
 Car Removal (create an ArrayList of car names, then remove items from the ArrayList if they are of a specified
Unit 6: 2D Arrays | Weeks 18-22 | Jan 25-Feb 26
 Declare and use 2D arrays
 Populate and process data in 2D arrays
 Apply concepts to 2D array case study
 Solve FRQ 2D array problems
 Lewis, Loftus, Cocking Chapter 6.3: 2D Arrays
 Barron’s Review Book Chapter 6: 2D Arrays
Sample Labs:
 Multiplication table (create a 2D array and populate it with a multiplication table)
 Jukebox (create a 2D array and populate it with songs)
 College Board Picture Lab Case Study
Unit 7: Inheritance | Weeks 23-26 | Feb 29-March 25
 Inheritance
 .Super
 Overriding methods
 Abstract classes
 Polymorphism
 Interfaces
 Lewis, Loftus, Cocking Chapter 7: Inheritance
 Barron’s Review Book Chapter 3: Inheritance and Polymorphism
Sample Labs:
 Animals (create an animal class with characteristics of many animals; then create classes for individual animals
to override methods where appropriate, or use the methods of the class above)
 College Board Elevens Lab Case Study
Unit 8: Recursion | Weeks 27-28 | March 27-April 8
 Base case
 Non-base case
 Tracing recursive methods
 Lewis, Loftus, Cocking Chapter 11: Recursion
 Barron’s Review Book Chapter 7: Recursion
 Trace a series of recursive methods
Unit 9: Sorting and Searching | Weeks 29-30 | April 18-29
 Selection Sort
 Insertion Sort
 Merge Sort
 Quick Sort
 Sequential Search
 Binary Search
 Lewis, Loftus, Cocking Chapter 6.2: Sorting and Searching
 Barron’s Review Book Chapter 8: Sorting and Searching
 Label a set of cups with numbers. Organize the cups using the sorting methods
Unit 10: AP Exam Prep | Week 31 | May 2
 Complete practice tests
 Develop study guide
 Review course topics
 Entire Barron’s Review Book
Sample Labs:
 Students complete real time AP Practice Exams
Unit 11: Further Programming Topics | Weeks 32-37 | May 16-June17
 JFrame/JPanel
 Input/output
 Graphical User Interfaces
 Drawing
 Design Game
 Lewis, Loftus, Cocking - Various sections of chapters