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.