AP® Computer Science A

Syllabus

Curricular Requirements / Pages(s)
CR1 The course teaches students to design and implement computer based solutions to problems. / 4,5,6,7,9
CR2a The course teaches students to use and implement commonly used algorithms / 8,9
CR2b The course teaches students to use commonly used data structures. / 8,9
CR3 The course teaches students to select appropriate algorithms and data structures to solve problems. / 5,8,9
CR4 The course teaches students to code fluently in an object-oriented paradigm using the programming language Java. / 5,6,7,8
CR5 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 / 4,7,8
CR6 The course includes a structured lab component comprised of a minimum of 20 hours of hands-on lab experiences / 11
CR7 The course teaches students to recognize the ethical and social implications of computer use. / 9

Course Overview

AP® Computer Science A is a college-prep class designed to introduce students to computer science. Students will learn to apply logic, problem-solving, abstraction and mathematical abilities to programming modern computers. Java will be the introductory language this course will employ. Java will provide the basic skills necessary in object-oriented programming that can later be adapted to languages that students will go on to learn in college such as C++, C#, .net and others. My goal in teaching this class is to prepare students to be successful on the AP® Computer Exam, while providing them strategies for success in college and their future careers. The course will use a variety of texts, web resources and practice exams to achieve this goal.

I expect all my students to take the AP Computer Science A Examination. The students and I work hard during the year to assure that every student has an opportunity to achieve a qualifying score on the exam. Students’ course grades correlate strongly with their AP Examination grades.

By the end of the year students will be proficient in all of the following objectives stated by the College Board:

·  Design and implement computer-based solutions to problems by writing, running and debugging computer programs.

·  Use and implement commonly used algorithms and data structures.

·  Select appropriate algorithms and data structures to solve problems.

·  Code fluently in an object-oriented paradigm using the programming language java.

·  Students are expected to use standard Java library classes from the AP Java subset.

·  Have a structured-lab component of a minimum of 20 hours of hands-on lab experiences.

·  Read and understand a large program consisting of several classes and interacting objects. Students should be able to read and understand a description of the design and development process leading to such a program.

·  Recognize the ethical and social implications of computer use.

Texts

Lewis, John, Ph.D. Java Software Solutions for AP Computer Science. Pearson Education, Inc, 2004.

Abelson, Ledeen, and Lewis. Blown to Bits: Your Life, Liberty, and Happiness After the Digital Explosion. Crawfordsville, Indiana. Addison-Wesley Professional, 2008. http://www.bitsbook.com/wp-content/uploads/2008/12/B2B_3.pdf

Web Resources

Java Development Kit (JDK):

JDk (Compiler for Java from Oracle): It is free from the web site of Oracle: http://www.oracle.com/technetwork/java/javase/downloads/index.html . The version you want to download is labeled: Java Platform (JDK) 8u11. This website offers a download of both the JDK and NetBeans together in one installation.

NetBeans:

NetBeans is most commonly recognized as the original free Java IDE. The NetBeans IDE provides support for several languages and frameworks, which allows you to keep the same interface as you learn new languages. NetBeans has released NetBeans IDE 8.0 to keep up to date with the latest Java 8 technologies. However the AP Computer Science Examination will not cover the updates associated with Java 8 and will be based on Java 7. While you may find it easier to download NetBeans 8.0, it is strongly recommended that you install NetBeans 7.4. It can be found at https://netbeans.org/downloads/7.4/ . You only need to install the Java SE Edition.

Please install the Java JDK before installing NetBeans. You will not be able to install NetBeans without it.

Java API:

The Java API is a useful website that provides descriptions of the packages and classes provided for Java. We will only be using a few of the packages in this class, but this is a necessary reference tool. It can be found at: http://docs.oracle.com/javase/7/docs/api/

Google Classroom:

This course will use Google Classroom as a way to distribute assignments, announcements, and for turning work in. Students will be given access to the classroom account within the first week. Everything will be submitted and graded through Google Classroom. To log in go to: https://www.google.com/edu/classroom/

Course Outline

Unit (Weeks) / Title, Topics and Exercises / Texts, Assessments, and Labs
1
(1-2) / Title: Computer Systems
Topics:
·  Numerical Representations
·  Number Bases and Conversions
·  Hardware Components
·  Programming
·  Programming Languages
Exercises:
·  Java Software Solutions, Self-Review Questions 1.1,1.3-1.7,1.13-1.17
·  Base Conversions Worksheet [CR1]
·  Java Software Solutions, Multiple Choice 1.1-1.8; True/False 1.1-1.3, 1.5,1.7-1.10; Short Answer 1.2-1.4, 1.7-1.8 / Texts:
·  Java Software Solutions: Ch. 1
Sections 1.0,1.1,1.3-1.5; Summary of Key Concepts
Labs:
·  Java Software Solutions, Programming Project 1.1 (Implement and test a simple application program) [CR1]
·  Java Software Solutions, Programming Project 1.2 (Test a simple application after introducing specific errors)
·  Correcting Syntax Errors Lab
·  Extra: Java Software Solutions, Programming Project 1.6
Assessments:
·  Computer Systems Assessment
2
(3-4) / Title: Objects & Primitive Data
Topics:
·  Objects
·  Console Output(System.out.print/println)
·  Declarations (variables and constant)
·  Primitive Data Types (int , boolean, double, char)
·  Assignment and Arithmetic Expressions
·  Using Classes to Create Objects
·  Java Library Classes and Packages (String, Integer, Double, Math, Scanner) [CR5]
·  Creating Random Numbers
Exercises:
·  Java Software Solutions, Self-Review Questions 2.1-2.14, 2.16-2.20.
·  Declaration, Assignment and Arithmetic Expression Worksheets.
·  Java Software Solutions, Multiple Choice 2.1-2.10; True/False 2.1-2.7; Short Answer 2.1-2.7, 2.9-2.11; AP-Style Multiple Choice 2.1-2.3 / Texts:
·  Java Software Solutions: Ch. 2
Sections 2.0-2.5, 2.7 (except auto boxing), 2.8 (except random class), 2.9 ; Summary of Key Concepts
Labs:
·  Student Grades Lab – Implement and test a program to print a table using escape sequences. [CR1]
·  Java Software Solutions, Programming Project 2.5 (Implement a program that converts miles to kilometers) [CR1]
·  Extra: Java Software Solutions, Programming Project 2.10
Assessments:
·  Objects & Primitive Data Assessment
3
(5-6) / Title: Program Statements- Conditional
Topics:
·  Program Development
·  Control Flow
·  If Statements
·  Boolean Expressions
·  Truth Tables
·  More Operators (increment, decrement, assignment)
Exercises:
·  Java Software Solutions, Self-Review Questions 3.1-3.11
·  Boolean Expression and Decision Making Statement Worksheets
·  Java Software Solutions, Multiple Choice 3.1-3.3, 3.9, 3.10; True/False 3.1-3.6, 3.8-3.9; Short Answer 3.2-3.6; AP-Style Multiple Choice 3.2, 3.6 / Texts:
·  Java Software Solutions: Ch. 3
Sections 3.0-3.4; Summary of Key Concepts
·  Magpie Introduction and Activities 1-4 (APCS A Labs)
Labs:
·  Java Software Solutions, Programming Project 3.2 – Design, implement, and test a program that determines if a given year is a leap year. [CR1]
·  Magpie Activities 1-4 (APCS A Labs) [CR4]
Assessments:
·  Program Statements Conditional Assessment
4
(7-9) / Title: Program Statements- Iteration
Topics:
·  Control flow (Iteration)
·  Using while and for statements
·  Program Development Revisited
·  Analysis of Algorithms (informal comparisons of running times and exact calculation of statement execution counts). [CR3]
Exercises:
·  Java Software Solutions, Self-Review Questions 3.12-3.13
·  Loops Worksheets
·  Java Software Solutions, Multiple Choice 3.4-3.8; True/False 3.7; Short Answer 3.7-3.11; AP-Style Multiple Choice 3.1, 3.3-3.5 / Texts:
·  Java Software Solutions: Ch. 3
Sections 3.5, 3.7-3.8; Summary of Key Concepts
Labs:
·  Java Software Solutions, Programming Project 3.6 – Design implement, and test a program to count odd/even/zero digits. [CR1]
·  Java Software Solutions, Programming Project 3.10 –Design, implement, and test a hi-lo guessing game program. [CR1]
·  Java Software Solutions, Programming Project 3.12 – Design, implement and test a program that prints two-dimensional patterns of asterisks. [CR1]
·  Java Software Solutions, Programming Project 3.14 – Design implement, and test a program that plays a Rock Paper Scissors game with the user. [CR1]
Assessments:
·  Program Statements Iteration Assessment
5
(10-11) / Title: Writing Classes
Topics:
·  Objects Revisited
·  Anatomy of Classes, Constructors, and Methods
·  Declarations (class, interface, instance variable, method and parameter)
·  Method Overloading
·  Method Decomposition
·  Object Relationships
·  Data abstraction and encapsulation
Exercises
·  Java Software Solutions, Self-Review Questions 4.1-4.12
·  Java Software Solutions, Multiple Choice 4.1-4.10; True/False 4.1-4.10; Short Answer 4.1-4.17; AP-Style Multiple Choice 4.1-4.6 / Texts:
·  Java Software Solutions: Ch. 4
Sections 4.0-4.5; Summary of Key Concepts
·  Elevens Introduction and Activity 1 (APCS A Labs)
Labs:
·  Elevens Activity 1 – Card Class (APCS A Labs) [CR4]
·  Pongtastic Lab – Implement, and test three new classes that complete an OOP Pong game. [CR1] See http://nifty.stanford.edu/2003/pong/
Assessments:
·  Writing Classes Assessment
Week 12 / Trimester Review and Finals
6
(13-15) / Title: Enhancing Classes
Topics:
·  References, Exceptions, and Class Design
·  == vs. equals
·  Object Parameter Passing
·  Statics
·  Error Handling (runtime exceptions, throwing runtime exceptions)
·  Interfaces and Abstract Classes
·  Java library classes (Comparable and List interfaces) [CR5]
·  Identifying reusable components from existing code using classes and class libraries
Exercises
·  Java Software Solutions, Self-Review Questions 5.1-5.6
·  Parameter Passing Worksheet
·  Java Software Solutions, Multiple Choice 5.1-5.10; True/False 5.1-5.10; Short Answer 5.1-5.5; AP-Style Multiple Choice 5.1-5.6 / Texts:
·  Java Software Solutions: Ch. 5
Sections 5.0-5.4; Summary of Key Concepts
Labs:
·  Java Software Solutions, Programming Project 5.2 – Modify an existing Rational class to change its definition of equals and to make it Comparable; test the modified Rational class. [CR1]
·  Java Software Solutions, Programming Project 5.6 – Design and implement a Lockable interface; modify a Coin class to make it Lockable; test modified Coin class. [CR1]
Assessments:
·  Enhancing Classes Assessment
7
(16-19) / Title: 1D Arrays/ 2D Arrays / Searching [CR2a] [CR2b]
Topics:
·  One- and Two Dimensional Arrays (creation, insertions, deletions, traversals, algorithms)
·  Searching Algorithms and comparison (sequential and binary)
·  Choosing appropriate data representation and algorithms.
Exercises
·  Java Software Solutions, Self-Review Questions 6.1-6.9.
·  Array Worksheets
·  Create Working Solutions for 10 CodingBat Array- 2 Problems at http://codingbat.com/java/Array-2
·  Java Software Solutions, Multiple Choice 6.1-6.5, 6.8; True/False 6.1-6.7; Short Answer 6.1-6.4; AP-Style Multiple Choice 6.1-6.5 / Texts:
·  Java Software Solutions: Ch. 6
Sections 6.0-6.2, 6.6; Summary of Key Concepts
·  PictureLab Introduction and Activities 1-9 (APCS A Labs)
·  CodingBat Java Arrays and Loops at http://codingbat.com/doc/java-array-loops.html
Programs:
·  Java Software Solutions, Programming Project 6.4 Design, implement, and test a program that inputs integers and produces a histogram. [CR1]
·  Picture Lab Activities 1-9 (APCS A Labs) [CR4]
Assessments:
·  1D Arrays/ 2D Arrays / Searching Assessment
8
(20-22) / Title: Lists /ArrayLists / Selection and Insertion Sorts
Topics:
·  Lists and ArrayLists (creation, insertions, deletions, traversals, and algorithms) [CR2b] [CR5]
·  Sorting Algorithms and comparison (selection and insertion) [CR2a] [CR3]
·  Choosing appropriate data representation and algorithms. [CR3]
Exercises
·  Java Software Solutions, Self-Review Questions 6.10, 6.12
·  List/ArrayList Worksheets
·  Java Software Solutions, Multiple Choice 6.6-6.7, 6.9; True/False 6.8, 6.10; Short Answer 6.7-6.9; AP-Style Multiple Choice 6.6 / Texts:
·  Java Software Solutions: Ch. 6
Sections 6.3-6.4, 6.7; Summary of Key Concepts
·  Elevens Activities 2-4 (APCS A Labs)
Programs:
·  Elevens Activities 2-4 – Deck Class(APCS A Labs) [CR4]
Assessments:
·  Lists /ArrayLists / Selection and Insertion Sorts Assessment
9
(23-25) / Title: Inheritance
Topics:
·  Inheritance (subclasses, overriding, hierarchies, using class members, polymorphism, and class hierarch design)
·  Interfaces and Abstract classes
·  Java library classes (Object) [CR5]
·  Reading and understanding class specifications and relationships among classes(“is-a” and “has-a”)
·  Understanding and implementing a given class hierarch
·  Extending a given class using inheritance
·  Applying functional decomposition
Exercises
·  Java Software Solutions, Self-Review Questions 7.1-7.12
·  Java Software Solutions, Multiple Choice 7.1-7.10; True/False 7.1-7.10; Short Answer 7.1-7.5; AP-Style Multiple Choice 7.1-7.6 / Texts:
·  Java Software Solutions: Ch. 7
Sections 7.0-7.7; Summary of Key Concepts
·  Elevens Activities 6-9 (APCS A Labs)
Programs:
·  Elevens Activities 6-9 – Board and AbstractBoard Classes(APCS A Labs) [CR4]
Assessments:
·  Inheritance Assessment
Week 26 / Trimester Review and Finals
10
(28-30) / Title: Recursion / Merge and Quick Sorts
Topics:
·  Recursive Thinking, Programming and Sorting
·  Flow of Control (recursion)
·  Sorting Algorithms(merge [CR2a] and quick)
·  Comparing Sorting Methods [CR3]
Exercises
·  Java Software Solutions, Self-Review Questions 8.1-8.9
·  Tracing Recursion Worksheet
·  Java Software Solutions, Multiple Choice 8.1- 8.10; True/False 8.1-8.10; AP-Style Multiple Choice 8.1-8.6 / Texts:
·  Java Software Solutions: Ch. 8
Sections 8.0-8.3; Summary of Key Concepts
Programs:
·  Java Software Solutions, Programming Projects 8.2 – Design, implement and test a program that finds the greatest common divisor of two positive numbers using Euclid’s algorithm. [CR1]
·  Prime Factors Lab
Assessments:
·  Recursion / Merge and Quick Sorts Assessment
11
(31-33) / Title: AP Test Practice Exam/ AP Review
Topics:
·  AP Computer Science Exam (practice, content, materials, timing, tips)
·  Sample Tests
Exercises:
·  Create working solutions for all 21 CodingBat AP-1. Problems at http://codingbat.com/java/AP-1 / Assessments:
·  Daily assessments of sample multiple choice questions.
·  AP Practice Examination
12
(34) / Title: Ethical and Social Implications of Computer Use; AP Examination
Topics:
·  Responsible use of computer systems (system reliability, privacy, intellectual property, legal issues, and social and ethical ramifications of computer use) [CR7]
Exam
AP Exam Thursday May 7th 8am / Texts:
·  One student-chosen chapter of Blown to Bits
Assignment
·  Prepare a one-page summary of the chapter and participate in a classroom discussion of it. [CR7]
(35-38) / Title: Post AP Project
Topics:
·  Cooperative Programming
·  Research
·  Reading code
·  Comparing strategies and algorithms / Texts:
·  Robocode website- http://robocode.sourceforge.net/
Programs:
·  Work in pairs to design, implement, and test a competitive Robocode robot.
38-39 / Review and Finals

Teaching Strategies