AP® Computer Science A - Pascack Valley Regional School District

advertisement
PASCACK VALLEY REGIONAL HIGH SCHOOL DISTRICT
PASCACK VALLEY REGIONAL HIGH SCHOOL DISTRICTG
Pascack Hills High School, Montvale, New Jersey
Pascack Valley High School, Hillsdale, New Jersey
Course Name:
ADVANCED PLACEMENT COMPUTER­SCIENCE A
Prepared By:
Nancy Ricca
AP® Computer Science A Course Overview
The purpose of this class is to introduce the student to the object­oriented programming paradigm using the Java language. This course emphasizes object­oriented methodology with a concentration on problem­solving and algorithm development. This course will follow the outline recommended by the AP® Computer Science Curriculum, Exam A. Concepts such as classes, objects, inheritance, polymorphism, and code reusability are studied. It also includes algorithms, data structures, and data abstraction. Hands­on laboratory work helps solidify each concept. In addition, students complete a long­term programming project that they must demonstrate in a formal presentation. Texts College Board. AP GridWorld Case Study. New York: College Entrance Examination Board, 2006. Horstmann, Cay. Java Concepts. 4th ed. Hoboken, N.J.: Wiley, 2006. Trees, Frances P. AP Computer Science Study Guide to Accompany Java Concepts. 4th ed. Hoboken, N.J.: Wiley, 2006.
Course Outline [C2]
References to the following are abbreviated as follows: (SG) ­Study Guide
(TB)­ Text Book (P)­Programs Curricular Requirements
[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 Appendices 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.
Chapter in Horstmann Textbook
(Weeks)
1 (1)
Introduction
Topics and Student Objectives
Topics and Objectives: • Introduction to Computer Science and the Java Programming Language. Understand the activity of programming. • The anatomy of a computer. Learn about the architecture of Computers, including hardware and software components
• Hardware/Software
• Learn about machine code and high­level Assignments
and Labs
Resources and Tests
Selected exercises [C3] [C4] [C5] [C6] [C8] [C9]
from textbook (TB)
Text:
Read information • Ch1: about the ENIAC Introduction
and the Dawn of Computing (page Study Guide:
7 in TB)
• Ch1: Introduction
Read Chapter 2 in • Ch2: Hardware (SG): and Software
Introduction to Hardware and Software. Then, Chapter 1 Quiz
answer Multiple Choice and Free Response Questions in Study Guide (SG)
•
•
•
•
•
programming languages
Become familiar with Eclipse and the Computing environment
Errors
The Compilation Process: Compile and run programs
Recognize syntax and logic errors
Understand the file system and have a Backup Strategy
Look at and discuss the school’s acceptable use policy.
Expanded Coverage: Read the “General Moral Imperatives” from ACM’s Code of Ethics. http://www.acm.o
rg/constitution/co
de.html
Read and display “The Ten Commandments of Computer Ethics” from brookings.edu. additional information found on page 12 in SG
Blog about computer ethics and rights. 2 (2­3)
Using Objects
Topics: • Learn about the types and variables
• The assignment operator
• Classes. [C3] [C4] [C5] [C6] Selected exercises [C8]
from TB
Multiple Choice in (SG)
Text:
• Ch2: An Introduction to 3 (4­5)
Implementing Classes
4 (6­7)
Fundamental Data Types
Understand the concepts of classes and objects.
• Be able to call methods.
• Learn about parameters and return values.
• Accessor and mutator methods
• API documentation
• Object References
Topics:
• Black boxes
• Public interfaces
• Instance fields
• Implementing constructors and methods
• Testing a class
• Implicit and explicit method parameters
• Understand the importance of comments
Topics:
• Number Types
• Recognize the importance of the numeric types
• Assignment, increment, and decrement
• Constants
Read about Mainframes (TB pg.55)
Programs:
P2.1­2.2 P2.9
Objects and Classes
Study Guide:
• Ch3: Using Objects
Tests: Chapter 1& 2
Selected exercises [C3] [C4] [C5] [C6] from TB
Text:
Multiple Choice • Ch3: and Free Implementing Response in (SG)
Classes
Study Guide:
• Ch4: An Programs:
Introduction to P3.6, P3.7, P3.12
Objects and (Write small Classes.
classes from scratch, choosing Tests: Quiz 3.1­3.4 and appropriate data Chapter 3 Test
representation.)
[C4] [C5] [C6] Selected exercises from TB
Text:
• Ch4: Multiple Choice Fundamental and Free Data Types
Response in (SG) Study Guide:
Programs:
•
Ch5: Fundamental •
•
•
6 (8­9)
Decisions
Arithmetic and Mathematical Functions
Calling Static Methods
Strings
Topics:
• if statement
• comparing values
• Multiple Alternatives
• Boolean expressions
Assign small Data Types
programs that illustrate different Tests: Quiz and Test types of input and output. Also
P4.4­4.6 (DataSet)
P4.12 (Digit Extractor)
Selected exercises [C3] [C4] [C5] from TB
Text:
Multiple Choice • Ch6: Decisions
and Free Study Guide:
Response in (SG)
• Ch6: Decisions
Read Random Fact page 160: The Evolution of the Internet Tests: Quiz and Test Programs:
P6.4, P6.10,P6.14
7 (10­12)
Iteration
Topics:
• while loops
• for loops
• Nested loops
• Avoid infinite loops and off­by­
one errors
• Processing sentinel values
• Random Numbers and Simulation
Selected exercises [C3] [C4] [C5] from TB
Text:
Multiple Choice • Ch7: Iteration
and Free Study Guide:
Response in (SG)
• Ch7: Iteration
Find errors.
Programs:
Roulette Program in SG, FunNumber Tests: Quiz and Test Program , P7.15
Project 7.2 (NIM) GridWorld Case Topics:
Study Part 1
• Experimenting (13)
with a large program
• Using classes
• Observe the attributes and the behavior of the actors
8 (14­16)
Arrays and ArrayLists
Topics: • Arrays and ArrayLists
• Wrappers and Auto­Boxing
• The generalized for loop
• Study common Array Algorithms
• Copying arrays
• Understand when to choose the appropriate data structure in your programs. Arrays vs. array lists.
Exercises from within the case study GridWorld Case Study Part 1
Discuss GNU licensing.
Cumulative Review in SG
[C6] [C7] GridWorld Case Study Part 1
Study Guide:
• Cumulative Review
Selected exercises [C6] from TB
Text:
• Ch8: Arrays and Multiple Choice Array Lists
and Free Study Guide:
Response in (SG)
• Ch8: Arrays and Read “An Early Internet Worm” page 310(TB)
Read about efficiency of arrays and array lists in (TB) and (SG)
Outline Simple Array Algorithms in (SG) pg. 132
Programs:
Array Lists
Tests: Quiz and Test P8.2­8.4,P8.10,
Project 8.1 (Poker)
(P) Concentration
9
(17­19)
Designing Classes
Topics:
• Choosing appropriate classes
• Cohesion and coupling
• Accessors, mutators, and immutable classes
• Side effects
• Preconditions • Static methods
• Static fields
• Scope
• packages
Selected exercises [C6] from TB
Text:
Multiple Choice • Ch9: Designing and Free Classes
Response in (SG) Study Guide:
•
Ch9: Designing Classes
Read “The Explosive Growth of Personal Tests: Quiz and Test Computers” pg.358 (TB)
Programs:
Create classes from scratch, choosing appropriate data structures.
Project 9.2 (Bar Codes/Zip Codes)
10
(20)
Testing and Debugging
Topics:
• Carry out unit tests
• Understand the principles of test case selection and evaluation
• Learn strategies for effective debugging
• Testing and Debugging
[C3] [C4] [C5] [C6] Selected exercises from TB
Text:
• Ch10: Testing Outline the 6 and Debugging
steps in Study Guide:
Debugging • Ch10: Testing pg.398
and Debugging
Read “The First Bug” and ”The Therac­25 Tests: Multiple Choice Test incidents” (TB)
Multiple Choice and Free Response in (SG)
11
(21­22)
Interfaces and Polymorphism
Topics:
• Using interfaces for code reuse
• Converting between class and interface types
• Understand the concept of Polymorphism
• Appreciate how interfaces can be used to decouple classes.
• Abstract classes
Selected exercises [C5] [C6] from TB
Text:
Multiple Choice • Ch11: and Free Interfaces and Response in (SG)
Polymorphism
Study Guide:
Outline • Ch11: information about Interfaces and Operating Polymorphism
Systems. Pg.433 (TB)
Tests: Quiz and Test Programs:
P11.2 –P11.5(Die Class w/ Measurable Interface)
Group Project11.2:
Design a general program for managing board games with 2 players. Write algorithm and choose appropriate data structures.
GridWorld Case Topics:
Study Part 2­3
• Experimenting (23­24)
with a large program
• Defines Bug variations
• Explores the Code that is needed to understand and create actors
13
(25­26)
Inheritance
Topics:
• Inheritance
Exercises from within the case study GridWorld Case Study Parts 2 and 3
[C6] [C7] GridWorld Case Study Parts 2 and 3
Role Play Activity
Experiment with code as per Case Study
Selected exercises [C5] [C6] from TB
Text:
Discuss different • Ch13: types of Inheritance
programming Study Guide:
languages. pg. • Ch12: 460 (TB)
Inheritance
Multiple Choice and Free Response in (SG)
Tests: Quiz and Test Programs:
P13.3,P13.4
GridWorld Case Topics:
Study Part 4
• Defines classes that (27)
extend the Critter Class
• Inheritance
[C6] [C7] Exercises from within the case GridWorld Case Study study GridWorld Parts 4
Case Study Part 4 Create different kinds of Critters.
Select and design data structures and algorithms on their own.
Experiment with code as per Case Study
15
(28)
Exception Handling
Topics:
• Understand the exceptions that occur when their programs contain errors
[C3] Selected exercises from TB
Text:
• Ch15: Discuss the Exception Araine Rocket Handling
Incident (TB)
Study Guide:
Discuss Encryption Algorithms(CH 16 TB) •
Ch13: Exception Handling
Tests: Quiz Multiple Choice in (SG)
17
Topics: (29)
• Encapsulation
Object­Oriented • Is­a and has­a Design
inheritance relationships
• Identify inheritance, aggregation, and dependency relationships between classes
• Learn about the Software life cycle
• Design and implement a class according to given specifications
Selected exercises [C5] [C6] from TB
Text:
Multiple Choice • Ch17: Object­
and Free Oriented Design
Response in (SG) Study Guide:
• Ch14: Object­
Cumulative Oriented Design
Review 2 (SG)
Programs:
Project 17.2 (Design and implement Tic­
Tac­Toe)
Tests: Test
Topics:
• Thinking Recursively
• Permutations
• Tracing Through Recursive Methods
• Analyze problems that are much easier to solve by recursion than by iteration.
• Understand when the use of recursion affects the efficiency of an algorithm. Selected exercises [C4][C5] [C6] from TB (Outline recursive Text:
solutions)
• Ch18: Recursion
Multiple Choice Study Guide:
and Free • Ch15: Response in (SG)
Recursion
19
(31­32)
Sorting and Searching
Topics:
• Study several sorting and searching algorithms.
• Traversals, Insertions and Deletions
• Selection Sort
• Insertion Sort
• Merge Sort
• Sequential Search
• Binary Search
• Learn how to estimate and compare the efficiency of algorithms. Selected exercises [C3][C5] [C6] from TB
Text:
Multiple Choice • Ch19: Sorting and Free and Searching
Response in (SG) Study Guide:
• Ch16: Sorting The First and Searching
Programmer (TB) Tests: Test
Programs:
P19.1­19.4, 19.11
Review
(33­end)
Topics:
• Review AP 18
(30)
Recursion
Programs:
P18.1, Towers of Hanoi Activity
Tests: Test
[C7]
Free Response •
Computer Science A topics.
Work on Final Project
Questions from AP Central
Final Project Presentations
Practice Exams
Final Project
Examples of Teaching Strategies
Final Project and Student Presentations
Students are required to do a 20­30 minute presentation in June on their final project. There are three parts to the final project. Students are required to research a topic not taught in the AP A curriculum, such as advanced data structures. They are to produce a paper on that topic. Then teach the class the topic using power­point presentations and examples. A large­scale group programming project is the third component. The presentation will also detail the design and implementation of the large­scale program that students have proposed, planned, designed, and written. After each presentation, time is allotted for questions from me and other students in the class.
Lab Component
I give at least one program per chapter, and students work on their programs about 60 percent of the time. Each student has a laptop with the necessary software installed. Students can work on programs at home and in class. They work independently and with a partner when appropriate.
Download