Ap computer Science A

Download 66.57 Kb.
Size66.57 Kb.
AP Computer Science A

Course Overview

AP Computer Science is a comprehensive programming course using the computer language - JAVA. This course is an excellent foundation for students planning to study technical fields, engineering, physics and many other areas that require a computer science course in their curriculum. In addition, it is an excellent opportunity to develop sound problem solving and logical thinking skills. The emphasis of the course is to study object-oriented programming methodology, algorithm development, data structures, design and abstraction. Throughout the course, students will develop solutions to programming problems in a variety of application areas as well as work with a large case study program that will demonstrate the concepts of computer programming. The course curriculum and case study will be tested on the AP Computer Science Test.


Lewis, John, William Loftus, and Cara Cocking. Java Software Solutions for AP Computer Science. 2nd ed. Upper Saddle River, NJ: Prentice Hall, 2004.

Horstmann, Cay. Big Java. 2nd ed. Hoboken, NJ: Wiley, 2006.

College Board. AP GridWorld Case Study. New York: College Entrance Examination Board, 2006.

Course Outline [c2] curricular requirements can be referenced at the end of the outline


Title, Topics, Student Objectives

Strategies and Assessments


Title: Computer Systems

Topics: [c3][c8][c9]

  • Hardware

  • Software

  • Memory

  • Networking

  • Programming steps

  • Algorithms

  • Computer Ethics

  • Basic programming parts


  • Explore how all the different parts of the computer work together; CPU, memory, peripheral devices

  • Understand how hardware components execute programs and manage data in primary and secondary memory

  • Understand OS,compiler, IDE, JVM

  • Describe the importance of the Internet, World Wide Web, and intranets

  • Understand the guidelines for creating an Acceptable Use Policy; copyright, intellectual property, freeware, shareware, downloading music

  • Learn how to design algorithms using pseudocode, structure chart, and flowchart in a top-down design approach

  • Define parts of a program

  • Compile and run a simple program in Java

Understand the System.out using print and println


  • Discuss the parts of a computer system and the different types of software

  • Describe how software communicates with hardware. Introduce ASCII, binary and hexadecimal.

  • Discuss the network and associated software

  • Discuss school AUP; restrictions and consequences

  • Discuss algorithms showing examples of each

  • Discuss the parts of a program using a well documented program


  • Assign labeling computer system and I/O devices

  • Assign decimal, binary, and hexadecimal conversion activity

  • Write algorithm to determine the larger of two numbers using pseudocode and flowchart

  • Write algorithm for averaging 5 numbers

  • Write algorithm for calculating net pay based on hours worked and rate of pay

  • Create basic output program

  • Tests are disbursed throughout the unit to ensure students are absorbing material


Title, Topics, Student Objectives

Strategies and Assessments


Title: Objects and Primitive Data

Topics: [c3][c4][c5][c6]

  • primitive data

  • objects

  • declare variables

  • mathematical computations

  • assignment statement

  • typecasting

  • Math class methods

  • Scanner class methods

  • String class methods

  • Random class methods


  • Describe the different primitive data types

  • Understand the difference between objects and primitive data types

  • Learn how to declare variables and constants

  • Learn the symbols used in mathematical computations and the proper order of operations

  • Understand integer division and the use of typecasting

  • Explore invoking methods in general and especially those in Math, Scanner, String, and Random class

  • Understand the use of printf to format output

  • Describe the different types of errors – compile time, run time, and logic errors.


  • Discuss all primitive data types and how to declare variables; show how they are represented in memory; state the formal and informal rules governing the declaration of variables and constants

  • Show how to perform mathematical computations in programming statements paying careful attention to modulus division, integer division and typecasting

  • Discuss the instantiation of objects and how to invoke methods pertaining to those objects both with or without parameters

  • Give examples of data input and output with proper formatting focusing on the Scanner class and printf

  • Discuss the methods associated with the String class (concat, indexOf, length, substring, etc), Random class, and Math class for use in programming assignments


  • Assign program with data output

  • Assign program using variables, constants and data output

  • Assign program to calculate the average of 5 numbers with proper formatting

  • Assign program to calculate the hours and minutes given a certain number of minutes

  • Assign program to calculate the hypotenuse of a triangle given the leg lengths

  • Assign program that will randomly generate two die

  • Assign program that will generate 10 random numbers and then calculate the square root, cube root, and percent for each.

  • Assign program to break down name using string methods


Title, Topics, Student Objectives

Strategies and Assessments


Title: Program Statements

Topics: [c3][c6]

  • if statement

  • logical operators

  • increment/decrement operator

  • switch statement

  • while statement

  • for statement

  • do/while statement

  • program development


  • Understand the logic of an if statement

  • Understand the logic of an if/else statement along with compound statements

  • Understand the logic of extended and nested if statements

  • Understand the logic of switch statements

  • Understand the use of logical operators to perform comparisons

  • Explore the basic constructs of any loop and how they affect the outcome of the loop – infinite vs. finite

  • Learn how to use various methods to obtain sentinel values

  • Describe the differences between loops – pretest vs. posttest

  • Calculate statement execution counts (how many time loop executed)

  • Explore various debugging techniques

  • Understand steps of program development and various testing formats; isolation, boundary, integration


  • Discuss the if statement; if/else statement; compound statements

  • Discuss extended if and nested if

  • Show truth tables to explain logical operators; work through several examples

  • Discuss the comparison of Strings using the compareTo method

  • Discuss the three basic constructs of a loop and how they can lead to infinite loops

  • Show students how to total numerical values while getting data in a loop

  • Discuss helpful debugging techniques to find errors in a loop such as hand tracing and also inserting extra print statements to help trace what program segment is doing

  • Address each loop separately describing how it is either a pretest of posttest loop

  • Show the use of priming reads and the different ways to use sentinel values to terminate a loop; prompting for a “yes/no”, using value to end loop, and the use of Boolean sentinel values

  • Explain the importance of testing all aspects of the program with both good and bad data.


  • Assign program to determine if a number is a divisor of another

  • Assign program to calculate foreign currency exchange based on menu options to choose foreign currency desired

  • Assign program to determine the percentile rank for each student in a list based on their rank in a particular class

  • Assign program to alphabetize 3 words

  • Assign program to average 10 numbers using loop to retrieve data

  • Assign program to calculate interest on a certificate of deposit after a certain number of years

  • Assign program to calculate the average for each student a class based on 5 grades. In addition, determine the highest average in the class

  • Assign program to produce the multiples of 5 from -50 to 50 and display the square and cube of each


Title, Topics, Student Objectives

Strategies and Assessments


Title: Writing classes

Topics: [c4][c5][c6][c7]

  • anatomy of a class

  • constructors

  • mutator method

  • accessor method

  • Introduce GridWorld Case Study


  • Understand how to define a class

  • Understand encapsulation (private and public)

  • Describe data abstraction (client program vs. class code)

  • Explore details of method declarations; concise and meaningful; pre and post conditions; assertions

  • Review invoking methods and parameter passing

  • Describe relationships between objects


  • Use the example of a bank account to show how to create constructors and methods that withdraw, deposit, transfer money and print the object using a toString

  • Begin reading the manual for the case study; focus on the attributes and methods of the class


  • Assign program to create a class that represents a triangle; create method to calculate area of triangle

  • Assign program to create a class that represents a product in a store; create methods to change the price by a certain amount and print the object

  • Assign program to create a class that represents a die; create methods to roll die, get face value, and print object. Client program will compare two face values and determine how many rolls it took for them to be the same

  • Assign program to create “own” object; must have at least 3 attributes, 1 constructor, and an accessor and mutator method


Title, Topics, Student Objectives

Strategies and Assessments


Title: Arrays

Topics: [c4][c5][c6][c7]

  • one dimensional arrays

  • two dimensional arrays

  • arrays of objects

  • ArrayList class

  • GridWorld Case Study


  • Define and use arrays

  • Describe how arrays and array elements are passed as parameters

  • Explore how arrays and other objects can be combined to manage complex information

  • Explore searching and sorting with arrays

  • Learn to us multidimensional arrays

  • Examine the ArrayList class

  • Examine possible exceptions that may arise


  • Explain how arrays store data in memory and the use of indexing/subscripting

  • Give examples of array declarations, storing data in arrays using loops, retrieving data from arrays

  • Explain the declaration and accessing of two dimensional arrays

  • Discuss how arrays can hold objects

  • Describe the linear search

  • Describe the selection sort, and insertion sort

  • Explain the binary search

  • Describe the instantiation of an ArrayList and the methods associated with this class (add, set, get, remove, size, iterator)

  • Explore the GridWorld Case Study to see the use of arrays – run case study and analyze output


  • Assign program to sum an array or check amounts. Swap the 1st and last check amount

  • Assign program to create a class that represents an array. Methods will be developed to add contents to an even array and an odd array based on data entry from a user.

  • Assign program to create a two dimensional array that holds numerical data. Sum the data in the columns and rows.

  • Assign program to create a class about a baseball player. Client program will create an array of objects and methods will be used to update stats of baseball player

  • Assign programs to apply all the sorting methods

  • Assign programs to apply all search methods

  • Assign program to create “own” array of objects and store in ArrayList. Provide a menu for client to add objects, remove objects based on search, print a single object, print entire object list in specified order


Title, Topics, Student Objectives

Strategies and Assessments


Title: GridWorld (Part 1-3)

Topics: [c6][c7]

  • working with large program

  • using classes

  • modifying classes


  • Run the case study and analyze output

  • Understand the development of a large program

  • Observe and experiment with the GridWorld case study

  • Understand the Bug class, Runner class, Grid Interface

  • Extend the Bug class by creating a specialized bug to meet some new type of but requirement


  • Thoroughly read the manual for the case study

  • Be familiar with all the classes and interfaces discussed


  • Students work through the exercises within the in case study


Title, Topics, Student Objectives

Strategies and Assessments


Title: Classes, Inheritance, Interfaces

Topics: [c5][c6]

  • classes

  • inheritance

  • abstract classes

  • interfaces


  • Derive new classes from existing ones

  • Explain how inheritance supports software reuse

  • Add and modify methods in child classes

  • Discuss how to design class hierarchies

  • Define polymorphism and how it can be done

  • Implement an interface


  • Define new vocabulary by using an example that uses a class that describes a student and then goes on to declare a postgrad student and pregrad students; show students how methods of parent class are accessible to subclasses.


  • Assign program that has student extend a previous coin class to allow a coin to store is value. Utilize the same methods as the original coin class

  • Assign program that creates a worker class; include subclasses hourly worker and salary worker; include method to calculate weekly pay that is accessed by both workers


Title, Topics, Student Objectives

Strategies and Assessments


Title: GridWorld (Part 4)

Topics: [c6][c7]

  • inheritance


  • Use inheritance to extend the Critter Class by making new types of Critters


  • Examine the case study thoroughly focusing on critter development


  • Students work through the exercises and analysis provided in case study

  • Create different kinds of Critters


Title, Topics, Student Objectives

Strategies and Assessments


Title: Recursion (and Merge Sort)

Topics: [c4][c5][c6]

  • recursion

  • merge sort


  • Create a recursive method to solve a problem

  • Understand the difference between recursive and iterative solutions to a problem

  • Understand the Merge Sort

  • Understand how to calculate the informal runtime of merge sort and compare it’s run time to other sorts already studied


  • Explain and “show” how recursion works; use a small maze program to show recursion


  • Assign factorial program

  • Examine and rewrite loop programs using recursion


Title, Topics, Student Objectives

Strategies and Assessments


Title: AP Review


  • Review AP Computer Science A topics


  • Prepare for the AP CS Exam



  • Practice Exams

Teaching Strategies/Lab Component

My classroom is designed with computers along 3 walls of the room and a traditional classroom setting with desks in the center of the room. Each class begins with the students seated at the desks and any questions are answered that might not have been addressed the previous day. If it is time for new instruction, the students take notes from power point presentations that I have developed to follow the curriculum in this course outline. Example programs may be in the presentation or on handouts. Lengthy discussions follow certain slides to fully explain and “show” how the procedure that is being presented actually works internally. After all new instruction, students are given programming assignments that they must develop based on guidelines that I set up just as a client would refer to a programmer. These programs represent 50% of the student’s grade. Students work on labs approximately 70% of the time.

Curricular Requirements

[c1] The teacher has read the most recent AP Computer Science Course Description, available as a free download on the AP Computer Science A Course Home Page. 

[c2] The course includes all of the topics listed in the "Computer Science A" column of the Topic Outline in the AP Computer Science Course Description.

[c3] The course teaches students to design and implement computer-based solutions to problems in a variety of application areas.

[c4] The course teaches students to use and implement commonly used algorithms and data structures.

[c5] The course teaches students to develop and select appropriate algorithms and data structures to solve problems.

[c6] The course teaches students to code fluently in an object-oriented paradigm using the programming language Java. The course teaches students to use standard Java library classes from the AP Java subset delineated in Appendixes A and B of the AP Computer Science Course Description. (Note: Students who study a language other than Java in AP Computer Science must also be taught to use Java, as specified in the AP Java subset.)

[c7] The course teaches students to read and understand a large program consisting of several classes and interacting objects, and enables students to read and understand the current AP Computer Science Case Study posted on AP Central.

[c8] The course teaches students to identify the major hardware and software components of a computer system, their relationship to one another, and the roles of these components within the system.

[c9] The course teaches students to recognize the ethical and social implications of computer use.
Directory: UserFiles -> Servers
Servers -> Class Schedule Credit Class Schedule
Servers -> Note: Please look through resources very carefully. This is a controversial issue so some sources may have bias. Check carefully for the expertise or background of the writer or contributor
Servers -> Ap united states history mr. Storrs – Room 306 2009-2010 text
Servers -> Ww-p summer Reading List Grades 4-5 2014
Servers -> Delran township board of education school board agenda
Servers -> Clinton-Graceville-Beardsley Schools Course Syllabus
Servers -> Prescott and Russell jp st. Pierre Award
Servers -> West Babylon Junior High School 200 Old Farmingdale Road
Servers -> Note: Please look through resources very carefully. This is a controversial issue so some sources may have bias. Check carefully for the expertise or background of the writer or contributor

Download 66.57 Kb.

Share with your friends:

The database is protected by copyright ©ininet.org 2024
send message

    Main page