AP® Computer Science A Syllabus Overview of AP® Computer Science A Texts Litvin, Maria and Litvin, Gary. Java Methods: Object Oriented Programming and Data Structures. Skylight Publishing, 2011. http://www.skylight.com AP Computer Science “A” – Java Course Objectives: Understand the main principles of object-oriented software design and programming Learn to code fluently in Java in a well-structured fashion and in good style; learn to pay attention to code clarity and documentation Learn to use Java library packages and classes within the scope of the AP/A Java subset Understand the concept of an algorithm; implement algorithms in Java using conditional and iterative control structures and recursion Learn common sorting and searching algorithms: Sequential Search and Binary Search, and Selection Sort, Insertion Sort, and Mergesort Understand one- and two-dimensional arrays and the ArrayList class Acquire skills in designing object-oriented software solutions to problems from various application areas Discuss ethical and social issues related to the use of computers Experience over 100 hours of lab work including AP Comp. Sci. labs Prepare for the A-level AP exam in computer science. Teaching Strategies: The course is taught in a manner which embodies the ideals behind the creation of AP courses. Students are encouraged to explore and discover concepts beyond the basic objectives of the course. Students are given projects which can be enhanced and developed to any extent the student pleases past the scope of the teacher’s requirements. Therefore, the course provides students of any ability a rewarding experience. Exceptional students will be challenged and non-traditional computer science students will be afforded the opportunity to learn abstract concepts in an applied setting. Spiral learning is integrated into the program by assigning students applications which require the use of any previously learned skills. There is a general time line for each chapter but many of the concepts are applied throughout the entirety of the course. Each topic is presented in a similar format. Students will preview the material through reading their text and outlining important content. Each topic will include a teacher directed coding sample similar to their assignment related topic. Each chapter of their text has exercises which will be teacher selected and assigned. Each chapter will also have labs which will be longer in nature than the sort exercises of the text. Many of the labs will be coded and then modified throughout the course. Students will complete individual learning labs and be a part of cooperative work groups. The AP lab components of Magpie, Picturelabs, and Elevenlabs will be completed at the appropriate times within the class year. Students will become familiar with the libraries and objects as the course progresses. The “black box” approach will be used through-out the entirety of the course. The fundamental theme for the entire course is to understand how objects communicate with each other. The course is taught in a lab setting where students can program on a daily basis which is necessary for the development of advanced programming skills. Every topic or chapter will have a written exam. Exams may consist of multiple choice, true or false, short answer or writing code by hand. The ultimate goal of the course is preparation for the Computer Science A-level exam. However the course is not considered to be complete at the time of the AP exam. After the AP exam, students will program a major project which will represent the accumulation of their skills. All course content is in alignment with the AP computer science, computer science teachers association and common core standards. As an appendix in this syllabus, the computer science standards are mapped to the common core standards. Syllabus- General Time Line General Topic Intro to Java Data Types, Calculations Decisions and Conditions Iterative Statements Implementing Classes Strings Class Hierarchies Arrays and Array List Searching and Sorting Graphics GUI Components Images Magpie Lab PictureLab ElevensLabs Review Final Project Chapter 1,2,3,4,5 6 7 8 9 10 11 12 13 15 16 17 7 12 Week of School Year 1-5 6-7 8-9 10-12 1-Final Exam 18-22 18-22 13-18 19-22 8-Final Exam 1-Final Exam 8-Final Exam 8-9 13-18 Throughout course 28-30 31- Final Exam Course Organization: Organized by topics Topic: Introducing Java Course Planner: Chapters: 1, 2, 3, 4, 5 C4, C5, C6, C8 (see Appendix) Objectives: Hardware Overview Software design overview Representation of Information in Computer Memory Recognizing the strengths of the Java programming language Understanding the uses of Java for applets and applications Use the import statement to incorporated Java Packages Classes and objects Creating the Applet Class Using comments to document code Declare and add components to an interface Running and Applet Locate and correct errors in Java applet. Planning a project Properties of Algorithms Iterations Recursion Assignments/Labs Outline Chapters 1, 2, 3, 4, 5 Selected exercises from each chapter- text provided problems Hello-World Mailing Label Program Organizing components in a grid Layout Topic: Data Types, Variables and Constants Chapter: 6 Course Planner: C6, C8 Objectives: Reserved Words Declaring Fields and Local Variables Primitive Data Types Scope of Variables Assignment Operators Use multiple forms of constructors Add buttons and text fields to an interface Use variables to store information Input data into a text field Display multiple lines of output in a text Area Capture user actions with a listener Add event handling for a button and a text field Assignments/Labs Outline Chapter 6 Selected exercises from chapter 6- text provided problems Payroll Applet Body Mass Index Car Rental Topic: Performing Calculations Chapter: 6 Course Planner: C6, C8 Objectives: Perform calculations using the arithmetic operators Calculate and assign the result using assignment operators Add and subtract using the increment and decrement operators Perform multiple calculations correctly based on the precedence of operators Braces and blocks Retrieve string data from the screen and convert to numeric for calculations Convert between data types both implicitly and explicitly Format output Catch input and calculation errors by using exception handling. Declare variables based on the numeric wrapper classes and perform operations using the methods of the classes Assignments/Labs Selected exercises from chapter 6- text provided problems Payroll Applet Body Mass Index Car Rental Book Sales Program Leap Year Program Test Score Program Topic: Creating Classes, OOP Concepts and Design Chapters: 3, 11 Course Planner: C6, C8 Objectives: Understand more thoroughly the characteristics of object-oriented programming Know when to appropriately use public and private variables and methods Creating Classes Writing Methods that return values and accept input values Inheritance and class hierarchies Encapsulation and Information Hiding Polymorphism Assignments/Labs Outline Chapters 3, 11 Selected exercises from each chapter- text provided problems Payroll Applet Body Mass Index Car Rental Book Sales Program Leap Year Program Interest Applet /Lab Test Score Program T-Shirt program Dice program Topic: Decisions and Conditions Course Planner: Chapter: 7 C5 Objectives: Use if-else statements to control the flow of logic Boolean Expressions Understand and use nested ifs Evaluate conditions using the relational operators Combine conditions using the logical operators Perform validation on numeric fields Understand the precedence and relationship of assignment, arithmetic, logical and relational operators. Short-Circuit Evaluation Switch statement Assignments/Labs AP Magpie computer science labs – minimum 4hours labs Outline Chapter 7 Selected exercises from chapter 7- text provided problems Truth Table Assignment Dice program Craps Program N! Program Topic: Iterative Statements Course Planner: Objectives: C4, C5 Chapter: 8 Create program loops using do, while, and for statements Use the increment and decrement operators Break and return in loops Detect and correct common errors with iterative statements Creating task controlled loops Nested loops Preventing infinite loops Logic errors in loops Assignments/Labs Outline Chapter 8 Selected exercises from chapter 8- text provided problems T-Shirt program Dice program Craps Program N! Program Shapes Program Topic: Arrays and ArrayLists Chapter: 12 Course Planner: C3, C4, C5, C6 Objectives: One-dimensional arrays Establish an array of variables and refer to individual elements in the array with variable subscripts Use a “for” loop to step through an array. Use a loop to look up a matching value in an array. Accumulate totals using array elements. Store data in multi-dimensional arrays. Create and use and array of objects The ArrayList Class ArrayList’s Constructors and Methods Assignments/Labs AP Picturelabs computer science labs – minimum 6 hours labs Outline Chapter 12 Selected exercises from chapter 12- text provided problems Histogram with test scores Test Score Program re-done with Arrays Aquarium Simulation 1-D Tic-Tac-Toe 2-D Aquarium Simulation 2-D Knight’s Tour String Program using string methods Black Jack Chess Topic: Searching, Sorting and other Array algorithms Course Planner: C3, C4, C5, C6 Objectives: Sequential and Binary Search Inserting a new element into an array Selection sort Insertion sort Mergesort Assignments/Labs Outline Chapter 13 Selected exercises from chapter 13- text provided problems Palindrome sort Fruit and vegetable merge and sort Mailing Label Sort Topic: Multimedia in Java Chapter: 15 Course Planner: C3, C6 Objectives: Load an image file into a project Create animation using multiple images and moving images Paint, paintComponent, repaint Coordinates Colors Drawing Shapes Keyboard Events Assignments/Labs Outline Chapter 15 Selected exercises from chapter 15- text provided problems Slot Machine Aquarium Simulation Chess Ball Bounce Tank Final Project Video Game Topic: Interfaces Chapter: 11 Course Planner: C3, C4, C5 Chapter: 13 Objectives: Using interfaces Intercommunicating Object Inheritance Creating interfaces Assignments/Labs Outline Chapter 11 Selected exercises from chapter 11- text provided problems Bouncing Ball Program Appendix A Course Planner 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.