Samples of Evidence to Satisfy the AP Computer Science AB Curricular Requirements What s here? This table presents samples of evidence that address the curricular requirements for AP Computer Science AB. For each curricular requirement, there are three separate samples of evidence provided. Each sample either fully or partially satisfies its requirement. The samples are taken from three distinct sample syllabi published in their entirety elsewhere on AP Central. The far-left column of the table presents each of the curricular requirements. In some cases, complex requirements have been broken down into their component parts. The columns to the right present the three evidence samples. How can I use this information? Use these samples to become familiar with both the nature of evidence and the variety of formats in which evidence can be presented. For any one curricular requirement, the ways in which evidence is both described and presented can vary considerably from course to course. No single format is preferred over any other. Narrative text, tables, bulleted lists, and other formats that clearly convey the content of your course are all acceptable. The most important consideration is that your syllabus (the evidence) clearly and explicitly satisfies the curricular requirements in their entirety. Curricular Requirements The course includes all of the topics listed in the Computer Science AB column of the Topic Outline in the AP Computer Science Course Description. Unit #1 Basic Programming Structures Students learn about the components of a computer system, networks and the Internet. We explore basic programming structures. Topics include conditionals (if, ifelse), repetition (for, while, do while), design and creation of objects, arrays and ArrayLists. III. Program Analysis A. Testing 1. Test classes and libraries Unit #1 in isolation. 2. Identify boundary cases Unit #1 and generate appropriate test data. 3. Perform integration Unit #1 testing. B. Debugging 1. Categorize errors: Unit #1 and 2 compile-time, run-time, logic. 2. Identify and correct errors. Unit #1 and 2 3. Employ techniques such Unit #1 and 2 as using a debugger, adding extra output statements, or hand-tracing code. 5 th Six s Topic: Java LinkedList class and iterators (1 week) Understand the List interface and the LinkedList implementation Perform basic operations on a LinkedList object: traversals, insertions, deletions, iterators Understand the difference between an iterator and a list iterator 1 2 Revisit Hardware System, Responsible use of computer systems (system reliability, privacy, legal issues and intellectual property, social and ethical ramifications of computer use). Review - Writing Classes Writing methods in classes; Using objects; Iteration. NOTE: Because each of the evidence samples above refer to only a portion of the topics to be taught as delineated in the Computer Science A Topic Outline in the AP Computer Science Course Description, these samples only partially satisfy the Requirement. Additional evidence for the other topics, elsewhere in the syllabus, would serve to completely satisfy the Requirement. In sample 1, the author chose to also show a correlation of the Computer Science AB Topic Outline to the Learning Units that would be used during the course. These samples vary in how they show time frames for each set of topics.
Curricular Requirements design and implement computer-based solutions to problems in a variety of application areas. Unit #2 Efficiency of Algorithms Students learn how to evaluate the efficiency of algorithms. They evaluate expressions using prefix, infix and postfix notation. Students will use Big-Oh to classify and compare algorithms. They will also implement recursion and various sorting (insertion sort, selection sort, merge sort, quick sort, heap sort, bubble sort, shaker sort and shell sort) and searching (linear and binary) algorithms. 3 rd Six s Topic: Linked Lists using ListNode class (4 weeks) Create a LList class using ListNode class Build a linked list like a stack, queue, or inorder using a recursive helper method Implement Operations on LList object to perform traversals, insertions, and deletions Reimplement Stack, Queue, and PriorityQueue interfaces using LList class s 10-12 13 14 Java Collections Framework (JCF) Java Collections Framework interfaces and classes (Collection, List, ArrayList, LinkedList, Set, TreeSet, HashSet, Map, TreeMap, HashMap, Stack, Queue, PriorityQueue, Iterator, ListIterator); Choose appropriate advanced data structures and algorithms. Lists and Iterators Implementation (using ListNode) and use of linked lists (singly, doubly, and circular); Traversals, insertions, deletions, iterators. 15 16 Stacks and Queues Implementation and use of stacks and queues (traversals, insertions, deletions, iterators); Review of JCF Stack and Queue. Unit #2 Efficiency of Algorithms 5 th Six s Students learn how to evaluate the efficiency of algorithms. They evaluate expressions using prefix, infix and postfix notation. Topic: Sorting, Searching, and Big-Oh Perform complexity analysis of algorithms using Big-Oh notation Recognize typical Big-Oh functions and be able to order them in order of increasing growth rate: 9 Big-Oh Analysis of Algorithms Worst-case and average-case time and space analysis of algorithms using Big-Oh notation; Review of sorts (selection, insertion, mergesort, and quicksort). use and implement commonly used algorithms and data structures. c log N N NlogN N 2 N 3 2 N Understand the following Sorting Algorithms: Merge, Selection, Heap, Quick, and Insertion Understand the following Searching Algorithms: Sequential and Binary Understand the Big-Oh analysis for the above sorting and searching algorithms, worst-case, average-case time and space analysis
Curricular Requirements develop and select appropriate algorithms and data structures to solve problems. Unit #2 Efficiency of Algorithms Students will use Big-Oh to classify and compare algorithms. They will also implement recursion and various sorting (insertion sort, selection sort, merge sort, quick sort, heap sort, bubble sort, shaker sort and shell sort) and searching (linear and binary) algorithms. 1 st Six s Topic: Stacks Understand the behavior of a stack and identify situations where a stack is the appropriate data structure to use Operations on Stacks: traversals, insertions, deletions 19 20 21 22 Recursion Understanding and implementing structural and procedural recursion. Binary Search Trees Implementation (using TreeNode) and use of Binary Search Trees (traversals, insertions, deletions, iterators); Review of JCF Set, Map, TreeSet, TreeMap. 23 24 Look-up Tables and Hashing Implementation and use of look-up tables and hash tables (traversals, insertions, deletions, iterators); hashcode method; Review of JCF Set, Map, HashSet, HashMap. code fluently in an objectoriented paradigm using the programming language Java. 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.) Unit #3 Abstract Data Students work with advanced Java data structures. Topics include trees, heaps, stacks, queues, sets, maps, hashing and linked lists. II. Program Implementation The overall goals of program implementation parallel those of program design. Classes that fill common needs should be built so that they can be reused easily in other programs. Object-oriented design is an important part of program implementation. C. Java library classes (included in the AB-level Java Subset) Unit #1 and 3 2 nd Six s Topic: GridWorld Case Study Parts 1 4 Review Testing Class modification Inheritance Reference/Readings: GridWorld Narrative, Parts 1-4 Programs: Write BlusterCritter and KingCrab classes that extend given GridWorld classes 5 Classes Hierarchies, Abstract Classes, and Interfaces Inheritance; Polymorphism using classes and interfaces; Specify the purpose and goals for a problem; Decompose a problem into classes, define relationships and responsibilities of those classes; Design and implement a set of interacting classes; Design an interface.
Curricular Requirements 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. Unit #4 GridWorld Case Study Students work on Parts One, Two, Three and Four of the GridWorld Case Study and study Part Five. 4 th Six s Topic: Grid World Case Study Parts 1-4 Understand the Grid Interface Consider alternate implementations of a BoundedGrid Consider and code at least one implementation of an UnboundedGrid GridWorld Case Study: Students visit the first four parts of the case study for review of Java and inheritance. Part 5 suggests several implementations for the UnboundedGrid. Students will code alternative UnboundedGrid implementations using lists, a sparse matrix, and a hash map or tree map. 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. Unit #1 Basic Programming Structures Students learn about the components of a computer system, networks and the Internet. We explore basic programming structures. Topics include conditionals (if, ifelse), repetition (for, while, do while), design and creation of objects, arrays and ArrayLists. Topic: Reintroduce Programming Interactions of hardware and software components in the lab User responsibility of computer systems and legality of district use of the network 1 2 Revisit Hardware System, Responsible use of computer systems (system reliability, privacy, legal issues and intellectual property, social and ethical ramifications of computer use). Review - Writing Classes Writing methods in classes; Using objects; Iteration. recognize the ethical and social implications of computer use. Unit #5 The Computer and Society Students explore how the computer has affected society through various assignments. They look at case studies and a variety of issues pertaining to environmental concerns, hardware and software, careers, computer crimes and miscellaneous items. Students will investigate and analyze careers created by the introduction of computers to society and examine the impact of rapid technology changes on local businesses. They will also have opportunities to reflect on whether they would choose a computer science related career and create a code of computing ethics. Topic: Reintroduce Programming Interactions of hardware and software components in the lab User responsibility of computer systems and legality of district use of the network 1 2 Revisit Hardware System, Responsible use of computer systems (system reliability, privacy, legal issues and intellectual property, social and ethical ramifications of computer use). Review - Writing Classes Writing methods in classes; Using objects; Iteration.
Samples of Evidence that Address Multiple Requirements What s here? This table presents samples of evidence that each address several Curricular Requirements for AP Computer Science AB. For each sample provided in the left column, the corresponding Curricular Requirements are provided to the right. Note that each sample may only partially satisfy one or another requirement, and additional evidence would need to be provided elsewhere in the syllabus to address the requirement(s) with complete satisfaction. These samples were taken from three distinct sample syllabi that are published elsewhere on AP Central in their entirety. How can I use this information? Use these samples to become familiar with ways in which numerous Curricular Requirements can be addressed (either partially or completely) within the description of one unit, lesson, or activity, or by describing a recurring theme or process in your course. Integrated Evidence from Selected Syllabi Requirements Addressed (Partially or Fully) by Integrated Evidence Bold text indicates the portion(s) of the requirement that are demonstrated. 1 st Six s Topic: Reintroduce Programming o o Interactions of hardware and software components in the lab User responsibility of computer systems and legality of district use of the network Make connections to previous knowledge and program techniques Develop and implement a set of interacting classes (Java) Readings: Big Java Chapters 2,3,5,6,7,9,11,13 Programs: Lottery: Write a set of classes that models a lottery machine similar to the lottery drawing seen on TV. Sieve of Eratosthenes: Write a class that will produce an array of prime numbers in a given range of 1 to n. Wordlist: Implement a set of classes that stores a searchable list of words code fluently in an object-oriented paradigm using the programming language Java. 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.) 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 recognize the ethical and social implications of computer use. Unit #1 Basic Programming Structures Students learn about the components of a computer system, networks and the Internet. We explore basic programming structures. Topics include conditionals (if, if-else), repetition (for, while, do while), design and creation of objects, arrays and ArrayLists. use and implement commonly used algorithms and data structures 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.
Integrated Evidence from Selected Syllabi Unit 1 What Are Data Structures? What Are Algorithms? Review of Java and OOP o Language Features o Classes, Encapsulation, Abstract Data Types Decompose into classes o Inheritance, Polymorphism and Dynamic Binding o Interfaces o JavaDocs, Specifications, Pre-/Post-Conditions Arrays and ArrayLists Review of Linear Traversal Patterns Parts 1 4 of GridWorld Case Study Requirements Addressed (Partially or Fully) by Integrated Evidence Bold text indicates the portion(s) of the requirement that are demonstrated. use and implement commonly used algorithms and data structures code fluently in an object-oriented paradigm using the programming language Java. 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.) 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.