AP Computer Science A Syllabus Course Overview AP Computer Science A is a course that takes an object oriented and problem solving approach to developing Java programs. It emphasizes object oriented concepts and designing/ analyzing algorithms and data structures. Three labs, that are provided by the college board, will be integrated into the curriculum. These labs include: Magpie Lab (string processing & conditionals), Picture Lab (2D array manipulation of an image), and Elevens Lab (card game using object oriented concept). The course is taught in 18 weeks, each class period is 90 minutes long. Computer Lab The Computer Science Laboratory has 29 networked Dell Optiplex computers. The Lab has an overhead LCD projector, 1 Lexmark 644 black & white printer, 1 Document Camera, 1 HP Laserjet 3800dn color printer. Each computer has Java 1.7 SDK, Eclipse IDE and internet access. All students have accounts on a networked server where they can store their files. The lab is open during all lunch periods and after school for 60 minutes. On Mondays, the Lab is open for 1&1/2 hours after school. Textbook Resources: Hostmann, Cay Big Java 4nd edition, Hoboken, N. J. : Wiley 2010 Trees, Frances P. Advanced Placement Computer Science Study Guide 4th edition, Hoboken, N.J. : Wiley 2006 Teukolsky, Roselyn. Barron’s AP Computer Science A 6th edition, N.Y. :Barron’s Educational Series 2013 Schram, Leon. Multiple Choice & Free Response Questions in Preparation for the AP CS Exam, D&S Marketing Systems, 2014 Lambert, Ken and Osborne, Martin. Fundamentals of Java AP Computer Science Essentials 4th edition, Cengage, 2011 1 CR1 -The course Topic Topic: History of Computer Hardware and Software, Binary & Octal Numbers, Code of Ethics [CR7] (Day 1-3) Objective: Computer Hardware and Software, Binary Representation of Information, Evolution of Programming Languages, Computer Ethics, Number System Reading: Fundamentals of Java Chapter 1 1.1-1.5 Fundamentals of Java Appendix E (Number Systems-Binary,Decimal,Octal,Hexadecimal) Read ACM Code of Ethics at website: http://www.acm.org/constitution/code.html Assignment: Complete Exercises 1.1-1.5 and write paper that summarizes and gives your opinion about the following ACM code of ethics points: 1.1 Contribute to society and human well-being. and 1.2 Avoid harm to others; Complete Number System Conversion Worksheets; play Cisco Binary game Topic: Become familiar with Eclipse IDE, Run & Compile first Java program [CR1] (Day 4-5) Objective: Overview of Java (JVM, Compilation process), Benefits of Java over other languages, Running & Compiling first Java program Reading: Big Java Chapter 1 Assignment: Complete Big Java Chapter 1 Review Exercises R1.1, R1.2, R1,4, R1,5, R1.7, R1.12 and Programming Exercises P1.2, P1.4 and P1.8; Pretty Print Lab- Implement and test a program to print a table using escape characters Topics: Classes, Objects, Object Reference, methods (accessor and mutator), constructing objects, instance fields [CR1] [CR5] (Week 2) Assessment: Chapter 1 Test Objective: Learn about variables, understand the concepts of classes and objects, call methods, learn about parameters and return values, how to use API documentation, difference between object and object references Reading: Big Java Chapter 2 Study Guide Chapter 3 Assignment: Complete Big Java Chapter 2 Review Exercises R2.1, R2.3-R2.6, R2.9, R2.13 and Programming Exercises P2.1, P2.3, P2.10 and Proj 2.1; 2 teaches students to design and implement computer-based solutions to problems in a variety of application areas CR4-The course teaches students to code fluently in an objectoriented paradigm using the programming language Java. Course Description. CR7-The course teaches students to recognize the ethical and social implications of computer use. CR2-The course teaches students to use and implement commonly used algorithms and data structures. CR3-The course teaches students to select appropriate algorithms and data structures to solve problems CR5- . The course teaches students to use elements of the standard Java library classes from the AP Java subset in Appendixes A of the AP Computer Science Course Description. Assessment: Chapter 2 Test CR6- The course Topic: Implementing Classes, Constructors, Methods, Instance Fields, Implicit & Explicit Method Parameters, [CR1] [CR4] (Week 3) Objective: Designing a public interface of a class, commenting the public interface, encapsulation, declaring instance fields, implementing constructors and methods, testing a class, implicit and explicit method parameters. Reading: Big Java Chapter 3 Barron’s Chapter 1 Assignment: Complete Big Java Chapter 3 Review Exercises R3.1, R3.2, R3.5, R3.11, R3.12, R3.14 and Programming Exercises P3.1, P3.2, P3.6, P3.8, P3.9; Barron’s Ch1 ex 1-23 (skip 20), D&S Marketing Ch2 ex 1-23 in groups; Complete Base Conversion Assignment using classes that converts a base 10 number to a 4 digit number of base b; Central Connecticut State University programmedlessons.org website Ch25 object, classes and constructors interactive lesson; Lucidachart.com triple Venn Diagram comparing local, instance and parameter variables Assessment: Chapter 3 Test Topic: Primitive types(int,double), arithmetic expressions, String type, reading input [CR1] [CR4][CR5] (Week 4) Objective: Learn about number types, Constants, Assignment, Decrement and Increment Operators, Arithmetic Operations and Mathematical Functions, Calling Static Methods, Reading Input Reading: Big Java Chapter 4 D&S Marketing Chapter 6 Assignment: Complete Big Java Chapter 4 Review Exercises R4.1(2&4 only), R4.5, R4.6, R4.10, R4.15, R4.17 and Programming Exercises P4.1, P4.2, P4.4, P4.8; Project 4.2; D&S Marketing Chapter 6 ex 1-12 in groups Assessment: Chapter 4 Test 3 includes a structured lab component comprised of a minimum of 20 hours of hands-on-lab experience. Topic: If Statements, Switch Statements, = = operator [CR1] [CR2] [CR4] [CR6] Objective: Implement Decisions with if statements, Comparing values, recognize when if statement ordering matters, conditions using Boolean operators and variables; (Week 5) Reading: Big Java Chapter 5 D&S Marketing Chapter 3 Assignment: Complete Big Java Chapter 5 Review Exercises R5.1, R5.2, R5.7, R5.16, R5.17, R5.19, R5.23 and Programming Exercises P5.1, P5.3, P5.13; Project 5.2; D&S Marketing Chapter 3 ex 1-12 in groups; Magpie Lab Assessment: Chapter 5 Test Topic: While, for and do loops, abstraction, encapsulation, Testing(Boundary Conditions), nested loops [CR1] [CR2] [CR4] (Week 6) Objective: Be able to program loops with the while, for and do statements, avoid infinite loops and off-byone errors, testing boundary conditions in loops, understand nested loops, how to process input, implement simulations Reading: Big Java Chapter 6 Barron’s Chapter 4 D&S Marketing Chapter 1 Assignment: Complete Big Java Chapter 7 Review Exercises R6.2-R6.4, R6.5, R6.10, R6.13 and Programming Exercises P6.3 & P6.6; D&S Marketing Chapter 1 ex 1-12; Barron’s Chapter 4 exercises 1-23 (skip 20); Hangman Project using classes that includes string manipulation Assessment: Chapter 7 Test Topic: Designing Classes, Cohesion and Coupling Accessor and Mutator methods, side effects, scope, static methods and fields, assertions, package creation, pre and post conditions [CR1] [CR4] Objective: Learn how to choose appropriate classes to implement, concepts of cohesion and coupling, minimize the use of side effects, difference between instance methods and static methods, static fields, scope of local and instance variables, assertions, package creation, pre and post conditions Reading: Big Java Chapter 8 D&S Marketing Chapter 14 Barron’s Chapter 6 (Week 7) 4 Assignments: Complete Big Java Review Questions R8.1, R8.2, R8.9, R8.12, R8.25, R8.30 and Programming Exercises P8.1-P8.3, P8.5; D&S Marketing Chapter 14 ex 1-12 in groups; Barron’s Chapter 6 ex 21-28, 38, 39 Assessment: Chapter 8 Test Topic: one and two dimensional arrays, array algorithm, wrapper classes[CR1] [CR2] [CR3] [CR4][CR5][CR6] (Week 8) Objective: Become familiar with using arrays and array lists, learn about wrapper classes and enhanced for loop, common array algorithms, learn how to use two-dimensional arrays, using arrays and array lists in your programs Reading: Big Java Chapter 7 D&S Marketing Chapters 5 & 8 Barron’s Book Chapter 6 Assignments: Complete Big Java Review Questions R7.1, R7.2, R7.4, R7.18 and Programming Exercises P7.1, P7.2, P7.4, P7.5, P7.13; D&S Marketing Chapter 5 ex 1-8 in groups; D&S Marketing Chapter 8 ex 1-12; Picture Lab; Barron’s Book Chapter 6 ex 1-20; Use Lucidachart online app to create a Venn Diagram of arrays and arraylists; Have students practice CodingBat.com array problems; In groups, have students use Finch robot (finchrobot.com) to collect sensor data (such as accelerometer data) and then scale the data and play it back through LED, buzzer or motors; Create and test Java code for 2008 Free Response Flight Question #1 in groups; Have students explain how an item is added and removed from an array and then how an object is added and removed from an arraylist; Give students different scenarios (for an appointment app for example) and ask them if they would recommend using an array or arraylist Assessment: Chapter 8 Test Topic: Inheritance, superclass constructors, protected and package access control [CR1] [CR2] [CR3] [CR4] [CR5] (Week 9&10) Objective: Learn about inheritance, understand how to inherit and override superclass methods, invoke superclass constructors, protected and package access control Reading: Big Java Chapter 10 D&S Marketing Chapter 4 & 6 5 Barron’s Chapter 3 Assignments: Complete Big Java Review Questions R10.1-10.5, R10.8, R10.10 and Programming Exercises P10.1, P10.11, P10.12; PC Game and Cylinder Inheritance programs; D&S Marketing Chapter 4 ex 1-12 in groups; D&S Marketing Chapter 6 ex 1-12; Barron’s Chapter 3 ex 1-26; Complete PracticeIt website Marketer inheritance program; In groups have the students write and test Java code for 2005 Free Response Ticket Question #2 which involves 2 levels of inheritance: Ticket<- Advance<StudentAdvance Assessment: Chapter 13 Test Topic: interfaces, polymorphism, Inner Classes [CR1] [CR2] [CR4] [CR6] Objective: Learn about interfaces, convert between class and interface references, understand polymorphism, how interfaces can be used to decouple classes, using helper classes as inner classes (Week 11&12) Reading: Big Java Chapter 9 D&S Marketing Chapter 13 Assignments: Complete Big Java Review Questions R9.1-R9.4, R9.9 and Programming Exercises P9.2, P9.4, P9.13, P9.14; D&S Marketing Chapter 13 ex 112; PracticeIt website minToFront method; Elevens Lab Assessment: Chapter 9 Test 6 Topic: Exceptions,Throwing an Exception [CR7] Objective: Understand common exceptions that are thrown Reading: (Week 13 Day 1) Big Java Chapter 11 Learn about All Students are expected to understand exceptions that occur when their programs contain errors: NullPointerException, ArrayIndexOutOfBoundsException, ArithemticException, ClassCastException, IllegalArgumentException Topic: Recursion [CR1] [CR2] [CR3] [CR4] [CR5] Objective: Learn about recursion, understand the relationship between recursion and iteration, analyze problems that are much easier to solve by recursion than by iteration (Week 13) Reading: Big Java Chapter 13 D&S Marketing Ch9 Barron’s Chapter 7 Assignments: Complete Big Java Review Questions R13.1, R13.2, R13.3, R13.6 and Programming Exercises P13.1, P13.4, P13.5, P13.6; D&S Marketing Ch9 ex 1-12 in groups; Barron’s Book chapter 7 exercises; Have students act out recursive method by using method call sheets, CodingBat.com Recursion problems; Implement and test a recursive program which solves Numbrix puzzles (http://www.parade.com/numbrix); Compare fibonnaci series runtime/execution counts for iterative versus recursive approach Assessment: Chapter 13 Test Topic: Selection, Merge, Quick and Insertion Sorts, Linear and Binary Searching, Comparable Interface [CR1] [CR2] [CR3] [CR4] [CR5][CR6] Objective: Learn about several sorting and searching algorithms, understand performance differences between the different algorithms, how to estimate and compare the performance of algorithms, insert-deletetraverse sorting algorithms, Comparable Interface Reading: 7 (Week 14-15) Big Java Chapter 14 D&S Marketing Chapter 12 Barron’s Book Chapter 12 Assignments: Complete Big Java Review Questions R14.1, R14.3, R14.6-R14.8 and Programming Exercises P14.1, P14.2, P14.4, P14.6; D&S Marketing Ch12 ex 1-12 in groups; Barron’s Book Chapter 12 ex 1-31 (skip 14, 19, 21,23,28); Use Lucidachart online app to create a triple Venn Diagram of any three sorting algorithms: selection, merge, quick and insertion sorts; Create your own utility class that includes all searching and sorting algorithms (display the number of comparisons for the sorting algorithms) and then use this utility class to graph the number of comparisons for 3 different sized arrays; Have students watch various gypsy/Romanian sorting dance videos and then have them write the steps to sort a simple list; Have each student hold up a number such as 3, 35, 17, 24, 42 and then sort themselves using different sorting algorithms Assessment: Chapter 14 Test Topic: Review Old AP Exams & Complete Practice Questions (Week 16) Barb Ericson Georgia Tech ICE website with sample AP questions Maria Litvin Released Exam Free Response Websitehttp://www.skylit.com/beprepared/fr.html Barron’s Book Practice A level exams questions “175 Multiple-Choice Questions in Java” book by Maria Litvin AP Computer Science course description 25 Multiple Choice questions and 4 Free Response Questions College Board’s AP Computer Science Released Practice Test Multiple Choice & Free Response Questions in Preparation for the AP CS Exam by Leon Schram Teaching Strategies 8 I begin the semester by talking with students about the valuable skills they’ll learn in the course and clearly explain the expectations for an AP course. In addition, my school has an AP contract that all AP students and parents sign which provides them with an overview of behavior and academic expectations for AP classes. I start each unit with a reading assignment followed by an interactive presentation. We go over the topic during the presentation. The presentation includes formative assessment multiple choice questions that gauges students understanding. This is followed by classroom discussion, textbook review and programming problems, D&S Marketing group assignment questions, Barron’s Book reinforcement and homework practice. Finally, I give Unit Tests that include multiple choice questions, programming problem(s) and short answer question(s). Writing computer programs is critical to understanding the course material. The textbook programming assignments are completed on an individual basis. I use a program to randomly assign students to a computer each day. This encourages collaboration among a variety of students, which at the same time discouraging copying among a few. For some units I assign old AP exam Free Response questions that the students code and test in Java. The students complete the programming assignments during class, which minimizes cheating incidents since there are lots of coding solutions online. I have integrated the AP Computer Science A Labs into my course at appropriate times based on their content, which account for a minimum of 20 hours of hand-on lab work (eg four hours on Magpie labs, six hours on Picturelab Lab and ten hours on the Elevens lab) The week before the AP exam I have the students practice sample questions from various resources shown above (for week 16). I also administer the College Board’s AP Computer Science released practice test. We go over the practice test together. I also review testing taking tips. Differentiated Instruction I understand the different students learn in different ways. I use various teaching techniques including role-plays, group work, formative warm-up activities, student presentations and various multiple response strategies to engage students. I have various review books and online resources to extend learning for students who finish early. I also provide tutoring and extra support for students who may be struggling. AP Bowl Competition During the 14th week, I encourage all students to participate in the Georgia Tech AP Computer Science Bowl competition. This is a great competition because it helps prepare students for the real AP exam by giving them 40 AP level multiple choice questions to answer, which is the same number of Multiple Choice questions on the AP exam. All of the students say this competition is a fantastic experience and it helps them get ready for the real exam. 9