AP Computer Science A
Total Page:16
File Type:pdf, Size:1020Kb
AP Computer Science A Syllabus 2014-15
The overriding goals of this course are to develop students’ ability to solve problems and to provide them with an introductory college level course in object oriented computer programming. This course covers the topics listed in the AP Computer Science A topic outline. The programming language used is Java, version 5.0. Throughout the course, students are required to design computer-based solutions to small scale and larger scale problems presented to them.
This course will be conducted primarily online. Face-to-face meetings will be held periodically (more toward the beginning of the course, fewer as the course progresses). Course content will be disseminated, and student work submitted, through Edmodo.com. Course Resources Eck, David, Introduction to Programming Using Java, 6th ed., (online textbook at http://math.hws.edu/javanotes/index.html )
Lambert, Kenneth and Osborne, Martin Fundamentals of Java, Comprehensive 2 nd Edition, (Thompson, 2003)
Lewis, John and Depasquale, Kenneth Programming With Alice and Java (Pearson, 2009)
Website and workshop materials from Java and Object Oriented Programming (Stonehill College) http://www.stonehill.edu/compsci/NSF_Java/main.htm
AP GridWorld Case Study
Units of Study
Unit 1: Review of Basics (Sept. 18 — Oct. 3) Lambert chapters 1 – 4, 6; Eck chapters 1 - 3
This unit first covers programming basics (variables, conditional statements, looping, data types, input and output, using classes and methods). Students write a few elementary programs. Testing of programs, types of errors, and debugging techniques will be presented in this unit and will be emphasized throughout the course.
Also covered in this unit are computer hardware (in particular, the role of the CPU and memory), software (operating systems and the process of compiling) and the interaction of hardware and software. The unit includes binary number system, flowcharts and pseudocode. Our school’s Acceptable Computer Use policy, which covers ethical use of computers, piracy, and plagiarism, is also reviewed. Topics and Assignments: Hardware, memory, binary numbers Computer languages The programming process Basic Java language features Data types, variables, operators, expressions, keywords, Error checking Syntax, runtime errors, exceptions Algorithms: Flowchars Pseudocode Basic Java programs (FirstProgram, Payroll, Cube) Conditional Statements (updated Payroll, RightTriangle) Loops (GuessingGame(s), PrimeNumbers)
Unit 2: Classes and Methods (Oc. 6 – Oct. 17 ) Lambert chapter 5; Eck chapters 4, 5; GridWorld chapter 1
In this unit, students learn about using and creating classes to represent objects. The encapsulation of an object’s state (instance variables) and behaviors or abilities (methods) is emphasized. After students have designed and implemented a few simple classes, they are introduced to the GridWorld case study. Emphasis is placed on the variety of objects in GridWorld and the parameters of their methods. A major project in this unit is the design and implementation of a system for keeping track of library books and the patrons who borrow those books.
Topics and Assignments:
Manipulating String objects Palindrome program Squares and Picasso classes Television, Door, and Student classes
Unit 3: Arrays and ArrayLists (Oct. 20 – Nov. 7) Lambert chapters 8, 10, 11; Eck chapter 7
This unit introduces one- and two-dimensional arrays of primitives and of objects, lists, and ArrayList. Linear searching is included. .
Topics and Assignments:
Manipulating arrays Arrays of primitives vs. arrays of objects Student class with array of tests ClassOfStudents BaseballPlayer and BaseballTeam classes ArrayList Arrays vs. ArrayList Library program Array of LibraryBook objects Array of LibraryPatron objects Linear searching in arrays
Unit 4: Inheritance and Polymorphism (Nov. 10 – Dec. 23) Text chapter 9, GridWorld chapters 1,2, 3, 4
This unit explores inheritance and interfaces. Abstract classes and abstract methods are included. Students will work thorough the GridWorld case study as well as other projects involving inheritance. Emphasis is placed on designing and implementing class hierarchies and on implementing interfaces.
Topics and Assignments: Cat and Leopard classes Person, TvStar, and MovieStar classes RectangleClass and CubeClass Employee, Manager, Executive, and Company classes Abstract classes: Shape hierarchy Interfaces: Drawable interface Comparable interface Dog hierarchy Add Shapes to hierarchy Add Dogs to hierarchy BlackJackCard extends Card GridWorld, chapters 1, 2, 3, and 4 exercises
Unit 5: Sorting and Searching Algorithms, Recursion (Jan. 5 – Feb. 13)
Searching (linear and binary) and sorting (bubble, selection, insertion) algorithms are explored, including a project that compares sorting algorithms. Insertions and removals from lists are included. Recursion is introduced in this unit as one way to implement a binary search (this is done iteratively as well). Other recursive methods are investigated as well
Sorting Bubble Selection Insertion Sort BaseballTeam Overloading methods (sort by name, average, number) Recursion Binary search Iterative Recursive
Unit 5: Graphics, GUI, Student Project (Feb. 23 – Apr. 3)
Students design and implement a major programming project of their choosing, most often some sort of game. Graphical input and output are covered prior to project selection. Students are encouraged (although not required) to utilize the Grid interface and the Location class from the GridWorld case study in their projects.
Topics and Assignments: Graphics, Swing, GUI Fractals: Mandelbrot, Sierpinski, Dragon Curve Game project: Othello, checkers, Connect Four, etc.
Unit 6: A.P. Exam Preparation (Apr. 6 – May. 5)
Students work through sample AP Exam questions, both multiple choice and free- response. Students also score their free-response questions following the AP scoring guides.
AP EXAM: Tuesday, May 5, 2015