AP Computer Science A - G-PISD
AP Computer Science A
Syllabus
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.
Texts
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
|Unit |Title, Topics, Student Objectives |Strategies and Assessments |
|(Weeks) | | |
|1 |Title: Computer Systems |Strategies: |
|(1-3) | |Discuss the parts of a computer system and the different types of |
| |Topics: [c3][c8][c9] |software |
| |Hardware |Describe how software communicates with hardware. Introduce |
| |Software |ASCII, binary and hexadecimal. |
| |Memory |Discuss the network and associated software |
| |Networking |Discuss school AUP; restrictions and consequences |
| |Programming steps |Discuss algorithms showing examples of each |
| |Algorithms |Discuss the parts of a program using a well documented program |
| |Computer Ethics |Assessments: |
| |Basic programming parts |Assign labeling computer system and I/O devices |
| |Objectives: |Assign decimal, binary, and hexadecimal conversion activity |
| |Explore how all the different parts of the computer work |Write algorithm to determine the larger of two numbers using |
| |together; CPU, memory, peripheral devices |pseudocode and flowchart |
| |Understand how hardware components execute programs and manage |Write algorithm for averaging 5 numbers |
| |data in primary and secondary memory |Write algorithm for calculating net pay based on hours worked and |
| |Understand OS,compiler, IDE, JVM |rate of pay |
| |Describe the importance of the Internet, World Wide Web, and |Create basic output program |
| |intranets |Tests are disbursed throughout the unit to ensure students are |
| |Understand the guidelines for creating an Acceptable Use |absorbing material |
| |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 | |
|Unit |Title, Topics, Student Objectives |Strategies and Assessments |
|(Weeks) | | |
|2 |Title: Objects and Primitive Data |Strategies: |
|(4-9) | |Discuss all primitive data types and how to declare variables; |
| |Topics: [c3][c4][c5][c6] |show how they are represented in memory; state the formal and |
| |primitive data |informal rules governing the declaration of variables and |
| |objects |constants |
| |declare variables |Show how to perform mathematical computations in programming |
| |mathematical computations |statements paying careful attention to modulus division, integer |
| |assignment statement |division and typecasting |
| |typecasting |Discuss the instantiation of objects and how to invoke methods |
| |Math class methods |pertaining to those objects both with or without parameters |
| |Scanner class methods |Give examples of data input and output with proper formatting |
| |String class methods |focusing on the Scanner class and printf |
| |Random class methods |Discuss the methods associated with the String class (concat, |
| |Objectives: |indexOf, length, substring, etc), Random class, and Math class for|
| |Describe the different primitive data types |use in programming assignments |
| |Understand the difference between objects and primitive data |Assessments: |
| |types |Assign program with data output |
| |Learn how to declare variables and constants |Assign program using variables, constants and data output |
| |Learn the symbols used in mathematical computations and the |Assign program to calculate the average of 5 numbers with proper |
| |proper order of operations |formatting |
| |Understand integer division and the use of typecasting |Assign program to calculate the hours and minutes given a certain |
| |Explore invoking methods in general and especially those in |number of minutes |
| |Math, Scanner, String, and Random class |Assign program to calculate the hypotenuse of a triangle given the|
| |Understand the use of printf to format output |leg lengths |
| |Describe the different types of errors – compile time, run |Assign program that will randomly generate two die |
| |time, and logic errors. |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 |
|Unit |Title, Topics, Student Objectives |Strategies and Assessments |
|(Weeks) | | |
|3 |Title: Program Statements |Strategies: |
|(10-15) | |Discuss the if statement; if/else statement; compound statements |
| |Topics: [c3][c6] |Discuss extended if and nested if |
| |if statement |Show truth tables to explain logical operators; work through |
| |logical operators |several examples |
| |increment/decrement operator |Discuss the comparison of Strings using the compareTo method |
| |switch statement |Discuss the three basic constructs of a loop and how they can lead|
| |while statement |to infinite loops |
| |for statement |Show students how to total numerical values while getting data in |
| |do/while statement |a loop |
| |program development |Discuss helpful debugging techniques to find errors in a loop such|
| |Objectives: |as hand tracing and also inserting extra print statements to help |
| |Understand the logic of an if statement |trace what program segment is doing |
| |Understand the logic of an if/else statement along with |Address each loop separately describing how it is either a pretest|
| |compound statements |of posttest loop |
| |Understand the logic of extended and nested if statements |Show the use of priming reads and the different ways to use |
| |Understand the logic of switch statements |sentinel values to terminate a loop; prompting for a “yes/no”, |
| |Understand the use of logical operators to perform comparisons |using value to end loop, and the use of Boolean sentinel values |
| |Explore the basic constructs of any loop and how they affect |Explain the importance of testing all aspects of the program with |
| |the outcome of the loop – infinite vs. finite |both good and bad data. |
| |Learn how to use various methods to obtain sentinel values |Assessments: |
| |Describe the differences between loops – pretest vs. posttest |Assign program to determine if a number is a divisor of another |
| |Calculate statement execution counts (how many time loop |Assign program to calculate foreign currency exchange based on |
| |executed) |menu options to choose foreign currency desired |
| |Explore various debugging techniques |Assign program to determine the percentile rank for each student |
| |Understand steps of program development and various testing |in a list based on their rank in a particular class |
| |formats; isolation, boundary, integration |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 |
|Unit |Title, Topics, Student Objectives |Strategies and Assessments |
|(Weeks) | | |
|4 |Title: Writing classes |Strategies: |
|(16-19) | |Use the example of a bank account to show how to create |
| |Topics: [c4][c5][c6][c7] |constructors and methods that withdraw, deposit, transfer money |
| |anatomy of a class |and print the object using a toString |
| |constructors |Begin reading the manual for the case study; focus on the |
| |mutator method |attributes and methods of the class |
| |accessor method |Assessments: |
| |Introduce GridWorld Case Study |Assign program to create a class that represents a triangle; |
| |Objectives: |create method to calculate area of triangle |
| |Understand how to define a class |Assign program to create a class that represents a product in a |
| |Understand encapsulation (private and public) |store; create methods to change the price by a certain amount and |
| |Describe data abstraction (client program vs. class code) |print the object |
| |Explore details of method declarations; concise and meaningful;|Assign program to create a class that represents a die; create |
| |pre and post conditions; assertions |methods to roll die, get face value, and print object. Client |
| |Review invoking methods and parameter passing |program will compare two face values and determine how many rolls |
| |Describe relationships between objects |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 |
|Unit |Title, Topics, Student Objectives |Strategies and Assessments |
|(Weeks) | | |
|5 |Title: Arrays |Strategies: |
|(20-24) | |Explain how arrays store data in memory and the use of |
| |Topics: [c4][c5][c6][c7] |indexing/subscripting |
| |one dimensional arrays |Give examples of array declarations, storing data in arrays using |
| |two dimensional arrays |loops, retrieving data from arrays |
| |arrays of objects |Explain the declaration and accessing of two dimensional arrays |
| |ArrayList class |Discuss how arrays can hold objects |
| |GridWorld Case Study |Describe the linear search |
| |Objectives: |Describe the selection sort, and insertion sort |
| |Define and use arrays |Explain the binary search |
| |Describe how arrays and array elements are passed as parameters|Describe the instantiation of an ArrayList and the methods |
| |Explore how arrays and other objects can be combined to manage |associated with this class (add, set, get, remove, size, iterator)|
| |complex information |Explore the GridWorld Case Study to see the use of arrays – run |
| |Explore searching and sorting with arrays |case study and analyze output |
| |Learn to us multidimensional arrays |Assessments: |
| |Examine the ArrayList class |Assign program to sum an array or check amounts. Swap the 1st and|
| |Examine possible exceptions that may arise |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 |
|Unit |Title, Topics, Student Objectives |Strategies and Assessments |
|(Weeks) | | |
|6 |Title: GridWorld (Part 1-3) |Strategies: |
|(25-26) | |Thoroughly read the manual for the case study |
| |Topics: [c6][c7] |Be familiar with all the classes and interfaces discussed |
| |working with large program |Assessments: |
| |using classes |Students work through the exercises within the in case study |
| |modifying classes | |
| |Objectives: | |
| |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 | |
|Unit |Title, Topics, Student Objectives |Strategies and Assessments |
|(Weeks) | | |
|7 |Title: Classes, Inheritance, Interfaces |Strategies: |
|(27-28) | |Define new vocabulary by using an example that uses a class that |
| |Topics: [c5][c6] |describes a student and then goes on to declare a postgrad student|
| |classes |and pregrad students; show students how methods of parent class |
| |inheritance |are accessible to subclasses. |
| |abstract classes |Assessments: |
| |interfaces |Assign program that has student extend a previous coin class to |
| |Objectives: |allow a coin to store is value. Utilize the same methods as the |
| |Derive new classes from existing ones |original coin class |
| |Explain how inheritance supports software reuse |Assign program that creates a worker class; include subclasses |
| |Add and modify methods in child classes |hourly worker and salary worker; include method to calculate |
| |Discuss how to design class hierarchies |weekly pay that is accessed by both workers |
| |Define polymorphism and how it can be done | |
| |Implement an interface | |
|Unit |Title, Topics, Student Objectives |Strategies and Assessments |
|(Weeks) | | |
|8 |Title: GridWorld (Part 4) |Strategies: |
|(29-31) | |Examine the case study thoroughly focusing on critter development |
| |Topics: [c6][c7] |Assessments: |
| |inheritance |Students work through the exercises and analysis provided in case |
| |Objectives: |study |
| |Use inheritance to extend the Critter Class by making new types|Create different kinds of Critters |
| |of Critters | |
| | | |
|Unit |Title, Topics, Student Objectives |Strategies and Assessments |
|(Weeks) | | |
|9 |Title: Recursion (and Merge Sort) |Strategies: |
|(32-34) | |Explain and “show” how recursion works; use a small maze program |
| |Topics: [c4][c5][c6] |to show recursion |
| |recursion |Assessments: |
| |merge sort |Assign factorial program |
| |Objectives: |Examine and rewrite loop programs using recursion |
| |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 | |
|Unit |Title, Topics, Student Objectives |Strategies and Assessments |
|(Weeks) | | |
|10 |Title: AP Review |Strategies: |
|(35-36) | |Examine free-response questions from AP Central |
| |Topics: |Assessments: |
| |Review AP Computer Science A topics |Practice Exams |
| |Objectives: | |
| |Prepare for the AP CS Exam | |
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.
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.