Vous êtes sur la page 1sur 6

AP® Computer Science A

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)

Key to notations in the assessments lists:


PE1.1: Programming Exercise 1.1
PP1.1: Programming Project 1.1
(Note: All projects and exercises that are listed are from the Big Java text.)

Resources, Assessment, and


Weeks Title, Topics, and Student Objectives
Strategies
1 and 2 Becoming Familiar with The Computer Resource:
BJ: Chapter 1
Topics: Assessment:
• Class introductions, expectations and rules • PE1.3 – Tic Tac Toe Board
• What is programming? What is Java? • PE1.5 – Compute Sum
• Anatomy of a computer • PE1.6 – Sum of Reciprocals
• The compilation process Strategies:
• Types of errors • Introduce and discuss what
programming is and what
Objectives: misconceptions they might have
• Understand terminology: • Model the creation process for any
CPU, system and application software, primary and program
secondary memory, JVM, LAN, WAN, hard disk, CD- • Have them follow along in many small
ROM, compiler, run-time, syntax class exercises
• Understand computer ethics such as acceptable use
policies, privacy, copyright
• Understand how all the different parts of the
computer works together
• Edit, compile and run a simple Java program
• Understand the different type of errors: compile time,
runtime, and logic
• Use output with System.out using print and println.
• Understand the difference between floating-point
numbers and whole numbers.
3 and 4 Using Objects Resource:
BJ: Chapter 2
Topics: Assessment:
• Defining, using, and understanding variables • PE2.1 thru 2.4 – Manipulating
• Number types Rectangle objects
• Comments • PE2.7 – Generating random numbers
• The relationship between classes and objects • PE2.9 – Manipulating String objects
• Constructing objects • PE2.10 - Manipulating String objects
• Using methods • PP2.1 – Using GregorianCalendar
• String class Strategies:
• API Documentation • Have students practice creating
• Object References variables of different number types
• Present small programs with syntax
Objectives: errors and have students correct them
• Understand terminology: • Have students practice constructing
Types, variables, class, object, parameter, return objects
values, accessors, mutators, object references
• Declare and use variables of various number types in
arithmetic expressions
• Use the assignment operator correctly
• Understand how a variable stores a reference
• Become familiar with manipulating String objects.
5 thru 7 Implementing Classes Resource:
BJ: Chapter 3
Topics: Assessment:
• Black boxes • PE3.1 thru 3.5 – Creating simple
• Designing and commenting the public interface of a methods
class • PE3.8 – Product class
• Instance fields • PE3.12 – RoachPopulation class
• Implementing constructors and methods • PP3.1 – Enhancing the BankAccount
• Testing a class with BlueJ class
• Categories of variables Strategies:
• Implicit and explicit method parameters • Read and discuss several examples of
classes
Objectives: • Discuss and design the public
• To become familiar with the process of implementing interfaces for all PEs and PPs with the
classes class
• To be able to implement simple methods • Students must submit source code as
• To understand the purpose and use of constructors well as the API documentation for the
• To understand how to access instance fields and local classes
variables
• To appreciate the importance of documentation
comments
8 and 9 Fundamental Data Types Resource:
BJ: Chapter 4
Topics: Assessment:
• Number types – ranges and sizes • PE4.3 – PowerGenerator class
• Converting binary numbers • PE4.5 and PE4.6 – DataSet class
• Constants • PE4.12 – DigitExtractor class
• Assignment, increment, and decrement • PE4.13 – QuadraticEquation class
• Arithmetic operations and mathematical functions • PE4.18 – EasterSunday class
• Calling static methods • PP4.1 – Triangle class
• Strings – Concatenation, parsing, substring, character Strategies:
positions within the string, escape sequences, char • Practice using different number types
type together
• Reading Input (Scanner class) • Drills and worksheets to practice
converting decimal numbers to binary
Objectives: and vice versa
• To understand integer and floating-point numbers • Model different examples
• To recognize the limitations of the numeric types
• To become aware of causes for overflow and roundoff
errors
• To understand the proper use of constants
• To write arithmetic expressions in Java
• To use the String type to define and manipulate
character strings
• To learn how to read program input and produce
formatted output
10 and 11 Decisions Resource:
BJ: Chapter 6
Topics: Assessment:
• if Statement • PE6.4 – Sorting user-inputted values
• Comparing values • PE6.8 – Grade class, converts numeric
• Using boolean expressions grade to letter grade
• PE6.10 – Arranging strings
Objectives: lexicographically
• To be able to implement decisions using if statements • PE6.11 – TaxReturn class
• To understand how to group statements into blocks • PE6.18 – Line class, working with
• To learn how to compare integers, floating-point points
numbers, strings, and objects • PP6.1 - CombinationLock class
• To recognize the correct ordering of decisions in Strategies:
multiple branches • Model different examples of if and
• To program conditions using Boolean operators and if-else statements
variables • Practice writing if statements in
different situations
• Practice comparing numerical values
and objects
12 thru 14 Iteration Resource:
BJ: Chapter 7
Topics: Assessment:
• while and do-while loops • PE7.1 – Currency conversion
• for loops • PE7.2 – Simulating random movement
• Nested loops on a grid
• Processing sentinel values • PE7.5 – Fibonacci sequence
• Symmetric and Asymmetric bounds • PE7.11 – Prime numbers
• Random numbers and simulations • PE7.15 – Generating numbers
• Using the Scanner class with different sources of • PP7.1 - Flesch Readability Index
input Strategies:
• Model different loop examples
Objectives: • Observe how the Scanner class can
• To be able to program loops with the while, for, and work with sources besides System.in
do-while statements • Practice writing different loops in
• To avoid infinite loops and off-by-one errors several scenarios
• To understand nested loops
• To learn how to process input
• To implement simulations
15 thru 17 Arrays and Array Lists Resource:
BJ: Chapter 8
Topics: Assessment:
• Arrays • PE8.10 – Alternating sum in an array
• Array lists • PE8.2 thru PE8.6 - Purse class,
• Wrappers and Auto-boxing manipulating array lists in different
• The enhanced for loop scenarios
• Simple array algorithms • PP8.1 – Video Poker Simulator
• Copying arrays Strategies:
• Discuss the advantages and
Objectives: disadvantage of both arrays and array
• To become familiar with using arrays and array lists lists
• To learn about wrapper classes, auto-boxing, and the • Model how to use both data structures
enhances for loop • Practice creating and manipulating
• To study common array algorithms: counting both data structures
matches, finding a value, finding the maximum and
minimum value
• To understand when to choose array lists and arrays
• To implement partially filled arrays
18 thru 20 Introduction of AP GridWorld Case Study (Parts 1 Resource:
and 2) GWCS: Introduction, Part 1, and Part 2
BJ: Chapter 13
Topics: Assessment:
• Observing and experimenting with GridWorld • PE13.4 – Creating a superclass and 2
• Defines Bug variations subclasses
• Introduction to inheritance • PP13.1 - Navigating a maze
• Inheritance hierarchies • Exercises from within the case study
• Inheriting instance fields and methods Strategies:
• Subclass construction • Observe and discuss the behavior of
• Converting between subclass and superclass types the Bug class
• Access control • Practice extending the Bug class
• Object: The Cosmic Superclass • Study and become familiar with the
various methods of the Object class

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

23 and 24 AP GridWorld Case Study (Part 3) Resource:


GWCS: Part 3
Topics: Assessment:
• GridWorld classes and interfaces • Exercises from the text
• Jumper and the JumperRunner class
Objectives: Strategies:
• To become familiar with the Location class • Analyze the classes provided by the
• To become familiar with the Grid interface text
• To become familiar with the Actor class
25 and 26 AP GridWorld Case Study (Part 4) Resource:
GWCS: Part 4
Topics: Assessment:
• Interacting objects • Exercises from the text
Strategies:
Objectives: • Examine the ChameleonCritter class
• To become familiar with the Critter class • Examine the CrabCritter class
• To learn how to extend the Critter class • Practice extending the Critter class
27 and 28 Recursion Resource:
BJ: Chapter 18
Topics: Assessment:
• Triangle numbers • PE18.1 - Reversing a sentence
• Permutations • PE18.6 – Find the largest element in an
• Recursive helper methods array
• The efficiency of recursion • PE18.13 - Towers of Hanoi
• Mutual Recursion Strategies:
• Show examples of old projects redone
Objectives: with recursive methods
• To learn about the method of recursion • Practice examining recursive problems
• To understand the relationship between recursion to learn to think recursively
and iteration • Practice writing recursive methods
• To analyze problems that are much easier to solve by
recursion than by iteration
• To learn to “think recursively”
• To be able to use recursive helper methods
• To understand when the use of recursion affects the
efficiency of an algorithm
29 and 30 Sorting and Searching Resource:
BJ: Chapter 19
Topics: Assessment:
• Selection sort • PE19.1 – Sort an array of integers,
• Profiling the selection sort algorithm selection sort
• Analyzing the performance of the selection sort • PE19.4 – Sort an array of strings in
algorithm lexicographic order, merge sort
• Merge sort • PE19.7 – Sort an array list
• Analyzing the merge sort algorithm • PE19.5 – Telephone lookup program
• Insertion sort with a binary search
• Searching • PE19.7 – Measure the performance of
• Sequential and binary search an insertion sort algorithm
• Sorting real data Strategies:
• Practice tracing sorts and searches
Objectives:
• To study several sorting and searching algorithm
• To appreciate that algorithms for the same task can
differ widely in performance
31 and 32 Review Resource:
• Previous free-response questions
Topics: • MCQ – All Sections
• Review AP Computer Science A topics Assessment:
• Practice exams
Objectives:
• Prepare for the AP CS A Exam by reviewing material
and taking practice exams