AP Computer Science A Syllabus Curricular Requirements CR 1 CR 2a CR 2b CR 3 CR 4 CR 5 CR 6 CR 7 The course teaches students to design and implement computer based solutions to problems. The course teaches students to use and implement commonly used algorithms. The course teaches students to use commonly used data structures. The course teaches students to select appropriate algorithms and data structures to solve problems. The course teaches students to code fluently in an object oriented paradigm using the programming language Java. The course teaches students to use elements of the standard Java library from the AP Java subset in Appendix A of the AP Computer Science A Course Description. The course includes a structured lab component comprised of a minimum of 20 hours of hands on lab experiences. The course teaches students to recognize the ethical and social implications of computer use. Course Overview Page(s) 3, 4, 5, 6, 8 4, 6, 7, 8 4 6, 7 3, 4, 5, 6, 8 3, 4, 7, 8 3, 4, 6, 8 3, 6, 7, 8 Course Philosophy Students enter AP Computer Science A with varying backgrounds and live goals. In this class I will be consistently trying to make connections with real world situations and the vast world of Computer Science. I will also be trying to make connections with my student s needs, interests and plans too many different aspects of Computer science. This class has a requirement of an Introduction to the Java language and in most cases students will have already also taking an Intro to Programming course using the Processing Language. Class periods are 42 minutes long and meet every day. This is a lab driven class so the vast majority of the time students will be coding. Over 20 hours of this coding will be using suggested labs from the CollegeBoard AP web resources and the student guides that are supplied. Computer Facilities: Our computer lab has computers around the outer edges of the class with we find this to be very conducive to learning. We have our computers around the outside of the room, with the center set up 1
in a traditional classroom fashion. Our lab and the labs around campus are managed and maintained by a full time tech staff. My science classroom with it s projector and electronic whiteboard will be used for testing and times when standardized testing takes place in the computer lab. Texts: Horstmann, Cay: Java Concepts, Early Objects, 7th ed. Hoboken, NJ: Wiley and Sons Inc. Publishing, 2014. Horstmann, Cay: Computing Concepts with Java Essentials 3rd ed. Hoboken, NJ: Wiley and Sons Inc. Publishing, 2003. Horstmann, Cay: Computing Concepts with Java Essentials 3rd ed. Advanced Placement Computer Science Study Guide. Hoboken, NJ: Wiley and Sons Inc. Publishing, 2003. Litvin, Maria, and Litvin, Gary: Be Prepared for the AP Computer Science Exam in Java. 6th ed. Andover, MA: Skylight Publishing, 2014. Online Resources: Parlante, Nick. CodingBat. http://codingbat.com/java. The xsortlab Applet from Hobart and William Smith College http://math.hws.edu/tmcm/java/xsortlab/ Syllabus at a Glance Semester 1: Semester 2: Introduction to AP Computer Science and review of basic computer language structure and objects. Revisiting 1st year Banking Program Objects and classes, Variables, Accessor and Mutator Methods, Encapsulation, Logical Operators and Conditional Statements, Iteration, Input and Output. Recursion with Towers of Hanoi and Factorial Programs Algorithms, Sorting and Searching with Random Number Generator Program and Spell Checker Programs Review for AP Exam with Elevens Lab and modifications Review for AP Exam with practice exams and example code. 2D arrays, Inheritance and Hierarchies with Picture Lab Polymorphism, Abstract classes and interfaces with Mammal Program 2
Unit 1 Introduce expectations of course and reviewing basic coding and programming structure using Java. Differences in using Blue J over Eclipse Object Oriented Programming and top down design [CR4] Basic class structure including instance variables, local variables, parameter passing, scope, public/private visibility [CR5] Logical operators and conditional statements [CR5] Iterations [CR5] java.lang.math and java.lang.string [CR5] Design, code, analyze and test software [CR1] Review School Acceptable Use Policy [CR7] Coding and commenting requirements in financial businesses [CR7] My instructional focus in my classroom is on coding examples. I use many of the small sample example code from the textbook (Horstmann, 2014). In the first unit the students revisit a banking program similar to work from the previous year. Doing this program will have students review aspects of Classes, objects, mutator and accessor methods, encapsulation, fundamental data types, logical operators and conditional statements, iteration, input and output. Students are given general requirements with descriptions of the desired output. Students work independently but are expected to research information and collaborate. I find that when their individuality and creativity is encouraged the results are more thoughtful, and the students are more eager to complete the assignment to a higher level. During this section I relate the coding and commenting requirements examples that my old roommate showed me with his involvement in the mortgage industry. [CR7] Horstmann,2014 using chapters 1 6 CodingBat.com Warm Up 1 and Warm Up 2 Create a project that simulates controlling a savings and checking bank account for multiple customers. [CR1, 4 6] Horstmann,2014 chapters 1 6 sample coding examples, exercises and problems CodingBat.com Warm Up 1 and Warm up 2 3
Unit 2 1D and 2D arrays, Inheritances and Hierarchies Declaring, construction, initializing, and indexing arrays/arraylists [CR2b] Storing primitives and objects in arrays/arraylists [CR2b] Traversing, inserting, deleting array/arraylist elements [CR2a] Passing arrays/arraylists to methods [CR2b] java.util.list [CR5] Inheritance and Hierarchies [CR4] The focus in this unit is using arrays and ArrayLists in 1 and 2 dimensions with large data sets.. Students will also use both primitive variables and objects in their arrays. They will be introduced to searching using sequential searches. Students will use the student guide for the Picture Lab that is supplied by the AP CollegeBoard. I require my students to do extensive commenting of their programs to aid in reinforcing their understanding of the concepts used. These comments are in addition to the commenting for JavaDocs. The Picture Lab is an excellent tool for students to study the use of the concepts that are the focus of this unit s.objectives. The book (Horstman, 2014) is used as a resource and for additional problems and exercises. Horstmann, 2014 using chapters 7 9 CodingBat Array2 and Array3 Multiplication table lab one with arrays and the other using ArrayLists [CR1,2b,6] Horstmann,2014 chapters 7 9 sample coding examples, exercises and problems Picture Lab with activities and enrichments. [CR2,4 6] CodingBat.com Array2 and Array3 4
Unit 3 Polymorphism, Abstract classes and interfaces Polymorphism [CR4] Abstract classes [CR4] Inheritance and Hierarchies [CR4] overriding methods [CR4] Interfaces [CR4] This unit takes many of the concepts that students worked with and commented in the Picture Lab and has them develop their own project that utilizes all the concepts in this unit. Students construct a superclass called Mammal and then make classes for humans, dogs and whales. These classes are to be used to demonstrate use for the unit s objectives. The lab for this unit is totally student derived and constructed. As I stated in Unit 1 I find that having students work in this way leads to more creativity and more of an effort to achieve. I require students to share their individual strategies from time to time with each other and this has the benefit in that they learn from each other when they present to each other. In this unit I start assigning materials from the study guides and center class discussions around these AP review units and questions. Horstmann,2014 using chapters 8 10 Litvin, 2013 Chapter 3 Horstmann, 2003 AP Study Guide (extra resource) Mammal Lab [CR1, 4, 6] Horstmann,2014 chapters 8 10 sample coding examples, exercises and problems 5
Unit 4 Recursion Recursion [CR4] Understand history and effect computers have had on society [CR7] Many students struggle with this new concept and I will be spending more time than usual working through the concepts of recursion with the students. I use CodingBat.com examples. The class will also watch Derek Banas YouTube video Java Recursion. I will lead a class discussion on possible uses of recursion algorithms. [CR3] Students will simulate recursion for triangular numbers on paper. The two small programs that students will code are to calculate factorials and to solve the Towers of Hanoi puzzle. In this unit we will watch and discuss the first video from the Triumph of the Nerds We will continue to use actual AP questions about recursion for review and study of this unit. Horstmann,2014 using chapters 13 CodingBat.com Recusion 1 and Recusion 2 YouTube.com Derek Banas Java Recursion CodingBat.com Recusion 1 and Recusion 2 Factorial Lab [CR1,2a, 4, 6] Tower of Hanoi Lab [CR1,2a, 4, 6] Horstmann,2014 chapters 13 sample coding examples, exercises and problems 6
Unit 5 Algorithms, Sorting and Searching Sorting (selection, insertion, merge) [CR2a, 3] Searching (sequential, binary search) [CR2a, 3] java.lang.list [CR5] Understand history and effect computers have had on society [CR7] I use a few YouTube.com videos on sorting to introduce the concept and use the sorting demo app on the Hobart and William Smith Colleges website to further help students visualize the different sorting algorithms. I also have my students use playing cards as a manipulative for students to demonstrate different methods of sorting. I will introduce the concept of the big Oh notation and how that applies to evaluating sorting methods. I hand out the AP College Board s Appendix C Sample search and sort algorithms to have as a reference for their programing code. I will lead a class discussion on how to determine if and how recursion should be used in sorting [CR3] The students will design and code a program that will test at least 3 different sorting algorithms and record the time, number of comparisons, and exchanges. The program must then be able to run and test with randomly generated number arrays of different lengths. The second student designed program for this unit will have students check spelling of words that are entered into the program against a large dictionary list. This will lead to discussions on more effective methods with extremely large searches. In this unit we will watch and discuss the second video from the Triumph of the Nerds We will continue to use actual AP questions about sorting and searching for review and study of this unit. Horstmann,2014 using chapters 14 http://math.hws.edu/tmcm/java/xsortlab/ Litvin, 2013 Chapter 4 7
AP College Board s Appendix C Sample search and sort algorithms Horstmann, 2003 AP Study Guide (extra resource) Sorting cards demonstration Measuring and comparing sorting methods Lab [CR1, 2a, 4, 5, 6] Spell check Lab [CR1, 2a, 4, 5, 6] Horstmann,2014 chapters 14 sample coding examples, exercises and problems Unit 6 Review for AP Exam Review for the AP Exam Model View Controller programming and portability Understand history and effect computers have had on society [CR7] I will be doing complete sections of AP practice exams in class. I will spend time reviewing basic test taking strategies. Students will complete the activities from the Student Guide of the Elevens Game. In this unit we will watch and discuss the third video from the Triumph of the Nerds We will continue to use actual AP questions about sorting and searching for review and study of this unit. Horstmann,2014 Litvin, 2013 Practice AP exams CodingBat.com AP 1 Elevens Lab [CR1, 4, 5, 6] Practice AP Exams 8