Course title
AP Computer Science Principles APre-requisite
Algebra ICourse description
AP Computer Science A is equivalent to a first semester college level course in computer science. 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 ethical and social implications of computing. The course emphasizes both object-oriented and imperative problem solving 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.
AP Computer Science Principles 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; and 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.
Course Objectives
The goals of the course are to help students:
• understand the basics of computer hardware and software
• understand the principles of object-oriented programming (OOP) and be able to develop classes and
projects using these OOP principles in an inheritance hierarchy
• learn Java syntax and good programming style; writing clear and efficient code
• understand a variety of algorithms and their efficiencies
• design and develop object-oriented solutions to problems
• understand the design and implementation of a large case study
Week 1:
Karel J Robot
Topics: Objects • Classes • Looping • Conditionals
Objectives:
Write and use simple classes with
Learn the basics of conditionals
and looping
Week 2:
Java Basics
Topics: Java basics• Using the compiler • Input and output
Objectives:
Understand terminology: compiler; IDE; JVM
Edit; compile; and run a simple Program in Java
Understand the different compile time errors; runtime errors; and logic errors
Use BufferedReader for input
Use output with System.out and format output to look nice
Week 3:
Defining Variables; Arithmetic
Expressions
Topics: • Using and understanding variables • Comments • Arithmetic expressions in Java programs
Objectives:
Understand terminology: comments; variables; constants; reserved words; literals
Declare and initialize variables and constants in Java
Understand mathematical expressions in Java and their precedence
Use casting to make their data more accurate
Use the assignment operator correctly
Week 4:
Introduction to Classes and OOP
Topics: Creating and using classes
Objectives:
Understand terminology: constructor; accessor; mutator; instance variable; and more
Understand the difference between public and private access in a class • Use and comprehend the
Decimal Format class and the Random class
Write classes from scratch
Week 5:
Conditionals and Looping
Topics: if; if-else; while; for
Objectives:
Understand terminology: control statements; counter; infinite loop; iteration; nested loops; logical
operators; truth tables
Construct syntactically correct loops
and conditional statements •
Understand the different errors that
may occur with loops
Use logical operators to make programs more robust
Construct truth tables
Week 6:
The String Class
Topic: String class
Objectives:
Instantiate String objects
Understand that Strings are immutable
Use appropriate String methods to solve problems
Week 7:
Array List
Topic:
Using Array List class
Objective:
Use the Array List methods
Week 8:
Arrays
Topics:
• Declaring and initializing arrays • Manipulating arrays with loops • Creating parallel arrays
Objectives: Understand terminology: array; element; index; logical size; physical size; parallel arrays •
Declare one-dimensional arrays in Java
Use initializer lists when declaring arrays
Manipulate arrays using loops and array indices
Use the physical and logical size of an array together to guarantee they do not go beyond the bounds of their array Understand how parallel arrays can be useful when processing certain types of data
Work with arrays of primitive data types as well as arrays of objects
Week 9:
Searching and Sorting Arrays
Topics: Bubble; Selection; Insertion sorts • Sequential and Binary searches
Objectives:
Write a method for searching an array
Perform insertions and deletions at given positions in arrays
Trace through sorting and searching algorithms
Understand the algorithms behind each of the following searching and sorting techniques: bubble; selection;
and insertion sorts; sequential search and binary search
Understand the efficiency of each sort and search and when it is desirable to use each one
Week 10:
MBS (chapters 1–3)
Topics: Experimenting with a large program • Using classes • Modifying classes
Objectives:
Run the case study and analyze output
Experiment with the Simulation
Understand the Fish Class; Simulation Class; and the Environment Interface
Modify the Fish Class
Week 11:
More on Classes; Inheritance; Interfaces
Topics: Classes • Inheritance • Abstract classes • Interfaces
Objectives:
Demonstrate inheritance by extending a class
Understand polymorphism and know when it is appropriate to override methods in a super class
Create and extend an abstract class
Implement an interface
Week 12:
Topic: Inheritance
Objective:
Use inheritance to extend the Fish Class
Week 13:
Recursion (and Merge Sort)
Topics: Recursion • Merge Sort
Objectives:
Create a recursive method to solve a problem
Understand the difference between recursive and iterative solutions to a problem
Understand and use the Merge Sort.
Week 14:
Review
Topics: Review AP Computer Science A topics
Objective: Prepare for the AP CS A Exam by reviewing material and taking practice exams
Assessments:
Teacher Observation
Daily quizzes
Aligned formative assessments
Laboratory work
Student Projects
The AP Computer Science Exams are three hours long and consist of two sections:
Percent of Grade Number and Type of Questions Minutes Allotted
Section I 50 40 multiple choice 75
Section II 50 4 free response 105
Both sections of the exams require students to demonstrate their ability to design; write; analyze; and document programs and subprograms. The exams emphasize programming methodology
(including recursion); programming in Java; and procedural abstraction. They also cover algorithms; data structures; and data abstraction. Five to 10 multiple-choice questions and one free-response question are based on the current case study.
All questions involving code should be answered in Java.
Resources:
Bergin; Joseph et al. Karel J Robot: A Gentle Introduction to the Art of Object-Oriented Programming
in Java. Redwood City; Calif.: Dreamsongs Press; 2005. http://csis.pace.edu/~bergin/KarelJava2ed/
Karel%2B%2BJavaEdition.html. Introduces objects and inheritance.
College Board. AP Marine Biology Simulation Case Study. New York: College Entrance Examination
Board; 2002. Download from the Course Home Pages: apcentral.collegeboard.com/compscia or
apcentral.collegeboard.com/compsciab.
Horstmann; Cay. Big Java. Hoboken; N.J.: Wiley; 2002.
Lambert; Ken; and Martin Osborne. Fundamentals of Java; Comprehensive Course. 2nd ed. Boston: Course
Technology; 2002
.
Possible Teacher Resources:
College Board. AP Computer Science Course Description. New York: College Entrance Examination Board. Download the latest version from the Course Home Pages: apcentral.collegeboard.com/compscia or apcentral.collegeboard.com/compsciab.
College Board. AP Marine Biology Simulation Case Study Teacher’s Manual. New York: College Entrance Examination Board; 2003. Download from the Course Home Pages: see URLs above.
College Board. Computer Science A: Exam Questions. AP Central. apcentral.collegeboard.com/
examquestions
Teukolsky; Roselyn. Barron’s How to Prepare for the AP Computer Science Advanced Placement
Examination (Java Version). 2nd ed. Hauppauge; N.Y.: Barron’s Educational Series; 2003.
School Country
United StatesSchool state
ArizonaSchool city
GlendaleSchool Address
6330 W. Thunderbird Rd.School zip code
85308Requested competency code
CTEDate submitted
Approved
YesApproved competency code
- CTE
- Career and technical education