AP Computer Science A: Syllabus
AP Computer Science A: Syllabus
Syllabus
Course Overview
AP Computer Science A is both a college-prep course for potential computer science majors and a
foundation course for students planning to study in other technical fields such as engineering, physics,
chemistry, and geology. The course emphasizes programming methodology, procedural abstraction, an in-
depth study of algorithms, data structures, and data abstractions, as well as a detailed examination of a
large case study program. Instruction includes preparation for the AP Computer Science A Exam. In
teaching this course, my reward comes when students can apply the programming tools they have learned
to real-life examples on their own. Computer science is more than just programming. Students should
leave my class with a clear understanding of Java and the ability to adapt to any new programming
language that they are taught in college. I want them to have the confidence to tackle any problem-solving
obstacles they encounter.
Major Texts
College Board. AP GridWorld Case Study. New York: College Entrance Examination Board, 2006.
Horstmann, Cay. Big Java 2nd Edition. Hoboken, N.J.: Wiley, 2006.
Litvin, Maria & Litvin, Gary. 175 Multiple Choice Questions in Java. Andover, Main: Skylight Publishing, 2005
Other Resources
“Big Java 2nd Edition Online Lab Manual.” Wiley.com. John Wiley and Sons, Inc.
http://bcs.wiley.com/he-bcs/Books?action=resource&bcsId=2292&itemId=0471697036&resourceId=5165
(Made available to students via their EdLine accounts)
Teaching Strategies
I have always envisioned my classroom to be an open learning environment where the students can feel
completely at ease with asking me questions or to move across the room and discuss the problem with a
fellow student. I try not to position myself as the only source of information in the room and encourage
everyone to search for their answers from all available resources before coming to me. I believe that
students should learn to be dependent on themselves and become “free thinkers” instead of becoming
dependent on the teacher to give them the answers they need.
We also work in a volunteer paired programming environment where the students can follow the rules and
protocols of paired programming if they choose to do so. They are also allowed to change partners at any
time.
Due to the stress and complexity of the material, I make myself available for tutoring every morning, an
hour before their first class, and after school on an appointment basis. Tutoring is also available on
Saturdays upon request and students may contact me at any time via email or the instant messaging
program, AIM.
Lab Component
Students work on programs about 70% of the time and they can access the lab every morning at 7am and
after school if they make an appointment with me. The lab is also available to them on Saturday mornings
for 2.5 hours if an appointment is made as well. Each chapter will have multiple programming exercises
assigned and perhaps a single large project. An exercise can usually be completed within one or two 46
minute periods. All computers have BlueJ installed on them and they all receive instructions on how to
download and install it at home.
Course Planner
The resources list includes the following text references: Big Java (BJ), AP GirdWorld Case Study (GWCS),
Big Java Lab Manual (BJLM), and 175 Multiple Choice Questions in Java (MCQ)
Objectives:
• Become familiar with the graphical interface of
GridWorld
• Analyze the output
• Understand the Bug class and the “runner” classes
• Extend the Bug class with a new bug requirement
• Create a corresponding “runner” class
• To learn about inheritance
• To be able to invoke superclass constructors
• To learn about protected and package access control
• To understand the common superclass Object and
how to override its toString and equals methods
• To understand how to inherit superclass methods
21 and 22 Interface and Polymorphism Resource:
BJ: Chapter 11
Topics: Assessment:
• Using interfaces for code reuse • PE11.1 – Measurable interface
• Converting between class and interface type • PE11.6 – Measurer interface
• Polymorphism • PE11.10 – Comparable interface
• Using interfaces for callbacks Strategies:
• Inner classes • Examine several interface examples
• Processing timer events • Practice implementing interfaces
• Accessing surrounding variables
Objectives:
• To learn about interfaces
• To be able to convert between class and interface
references
• To understand the concept of polymorphism and how
it can relate to inheritance
• To appreciate how interfaces can be used to decouple
classes
• To learn how to implement helper classes as inner
classes
• To understand how inner classes access variables
from the surrounding scope
• To implement event listeners for timer events