AP Computer Science Syllabus and Pacing Guide

advertisement
AP Computer Science A
Course Syllabus
Textbook: Litvin, Maria and Litvin, Gary. Java Methods: Object-Oriented
Programming and Data Structures. Skylight Publishing, 2011
http://www.skylit.com
Course Description: AP Computer Science A introduces students to computer programming,
methods, and the use of the Java language. The course is intended for students planning to study
computer science or other technical majors in college.
The course introduces to programming techniques, methodology, algorithms, and data structures.
There is a detailed examination of the Grid-World Case study which is currently used on the AP
exam. Extension of programming techniques, methods, and algorithms will be applied to various
platforms beyond the desktop including handheld media such as cell phones and tablets as well as
robotics microcontrollers.
Instructional Strategies:
Teacher Presentations, discussions, and modeling: Class lectures and discussions will be held
one to two hours a week. Students will be required to discuss with the class various content,
scenarios, proposed solutions, and coding techniques.
Student discussion and presentations: Students will discuss and/or present solutions to
homework questions at least once a week.
Computer Lab Component: Students will work independently one to hours a week coding
solutions to their homework. The instructor will rotate around the class helping as needed.
Students will need to partner up occasionally to provide feedback on each other’s programs.
List of Units of Study
Unit: Introduction to Programming (2 weeks) – [C1, C8]
Topic
Introduce Computer
Science
Hardware / Software /
Communications
Compilers and Interpreters
Input / Output
Object Oriented
Instructional Lessons
Assessment
Lecture and discussion of Computer Science vs
programming vs hacking. Ethical and social implications
within the context of the class, school and academia, and
society as a whole. Intellectual property, copyright laws,
privacy and public/consumer safety are explored. Students
present on a current topic highlighting these issues.
Lecture and discussion. Problem sets relating memory
sizes and base numbers, boolean logic, input devices,
output devices, basic network terminology.
Installation, setup, and environment overview. Hello world
compiled in different ways
Lab and discussion of how to manage input and output
using Java syntax.
Class
Discussion
and
presentations
Lecture and discussion of procedural programming vs
1
Worksheet
Lab
Class
discussion
and Lab
Class
Programming
objected oriented programming, hierarchy, classes, and
inheritance.
Variable types, arithmetic
operators, If/Else
statements, conditionals
Student discussion of program examples utilizing basic
software algorithms. Students practice coding in the IDE
using these basic approaches. Students modify existing
Java programs to utilize keyboard input, making a simple
calculator, and create basic banners and graphics.
Discussion
and
Test
Lab and
student
presentations,
Unit Test
Unit: Gridworld Case Study and Java Library Subset (2 weeks) – [C1, C6, C7]
Topic
Activity
Classes, definitions and
declarations
Lecture and Lab. Introduce the GridWorld package.
Students follow Part 1 of the GridWorld Student Manual
Objects, instance
variables/fields,
constructors, and methods
Introduce Inheritance
Lab and discussion. Students follow Part 2 of the Grid
World student manual. Students modify BugRunner to
create and modifying Actors and their attributes.
Students apply inheritance techniques to create a
UTurnBug, BoxBug, RandomBug.
Students examine the Java Library subset of classes as
outlined in the AP Computer Science Quick Reference
Guide.
Java Library
Assessment
Lecture
Presentation
and Lab
Lab,
homework
Lab and
discussion
Lab,
discussion
and Unit Test
Unit: Arithmetic and Algorithms (3 weeks) – [C1, C2, C4, C6]
Objective
Activity
Operators,
compound/increment
operators (+, -, *, /, %, +=,
-=*=, /=, %=, ++, --)
Iterations and recursions
Students are presented with an overview of operators and
examples of use. Students learn how to use flowcharts and
pseudocode.
Lecture and
discussion,
homework
Students write code to determine the greatest common
factor, exponential power, binomial expansion, and the
golden ratio.
Students explore the File Manager case study and how to
count the number of files in a folder.
Lab and
discussion
Binary searching and Lists
Assessment
Lab and
discussion,
Unit Test
Unit: Syntax, Data Types, and Variables (3 weeks) – [C1, C2, C5, C6]
Objective
Comments and
documentation, Syntax vs.
Style
Primitive data types and
memory allocations
Variables: Fields, Local
variables, and parameters
Activity
Assessment
Students are presented with examples of code that is well
documented and commented vs. code without it. Students
practice commenting on uncommented code and present to
class. Students fix syntax errors in several example
programs.
Students discuss various data types, scope, and size.
Students create a program to compute the roots of a
polynomial equation using the quadratic formula.
Students are presented descriptions and examples of
variables. Students are to use fields, local variables, and
parameters to create a program that draws a rainbow with
different colored arcs.
Lecture,
Student
presentations,
homework
2
Lab and
discussion
Lecture and
Lab
Strings and Constants
Students are introduced to Strings and how they can be
converted. Students create a program to conduct a Poll
and then display the results of the Poll on a pie chart.
Lecture and
Lab, Unit
Test
Unit: Control loops (3 weeks) – [C1, C2, C4, C5, C6]
Objective
Activity
Boolean Expressions, IfElse, Conditional operators
(<, >, <=, >=, ==, !=),
Logical operators (&&, ||,
!)
Students are presented an overview of conditional/relational
operators and the basics of conditional programming.
Students use if-else statements to create a program that
calculates the absolute value of a number. Students use ifelse statements to create a program that plays a game of
“Dice”
Students are presented the uses of Switch/case statements.
Students rewrite their “Dice” program to utilize
switch/case.
Students discuss the uses of While and For loops. Students
create a program that calculates the factorial of a number.
Use a control loop to determine the first four “perfect”
numbers.
Switch statement
While and For loops, DoWhile loops
Assessment
Lecture and
Lab,
Homework
Lecture and
Lab
Discussion
and Lab, Unit
Test
Unit: Classes and Implementation (3 weeks) – [C1, C2, C5, C6]
Objective
Public and Private features
of a Class
Constructors
Methods
Activity
Students write a program to add and multiply fractions
(numerator and denominator) using public and private
classes.
Students write a program to convert Celsius to Fahrenheit
using constructors
Students are presented multiple ways of calling methods
and accessing fields. Overloading methods is explored.
Students explore the Snack Bar Case Study in which a
program keeps an inventory of snacks in Vending
Machines. Students modify the program to determine the
net daily sales from all the machines.
Assessment
Lab and
discussion
Lab and
discussion
Lecture,
discussion,
Lab. Unit
Test
Unit: Strings (2 weeks) – [C1, C2, C6]
Objective
Activity
Literal Strings, Syntax, and
Constructors
Students review basic string syntax and common
constructors. Students are presented the idea of
immutability and memory management. Students use
various approaches to write a program to change a character
within a string.
Students are presented with the commonly used String
methods. Students re-write their previous program to
utilize these new methods.
Students write a program to validate an ISBN number of a
book.
Students explore the character method in more depth.
Students write a program to determine whether a word is a
palindrome. Students write a program to play a game of
hangman.
String Methods
Numbers to Strings and
Strings to Numbers.
Character Method and
StringBuffer Class
3
Assessment
Lecture and
Lab
Lecture and
Lab
Lab
Lab, Unit
Test
Unit: Class Hierarchy and Interfaces (3 weeks) – [C1, C2, C5, C6, C7]
Objective
Activity
Inheritance, polymorphism,
and superclasses.
Students are presented examples of inheritance and
applicable terminology. Students modify the GridWorld
Actor class to include a Rolling Rock subclass.
Students examine the use of abstract classes and write their
own abstract class for Poems that includes subclasses
Limerick, poem, and Haiku.
Students are presented with examples of superclass
constructors and methods. Students examine the
GridWorld case Study involving dancing bugs as outlined
in Part 2, 3 and 4 of the GridWorld student manual.
Students write a new class for GridWorld called SlowBug
using just two constructors and one act method.
Students implement a Dance interface using a concrete
class.
Abstract classes
Superclass Constructors
and methods
Interfaces
Assessment
Lecture and
Lab
Discussion
and Lab
Lecture and
Lab
Lab. Unit
Test.
Unit: Arrays (4 weeks) – [C1, C2, C3, C4, C6, C7]
Objective
Array types and
dimensions
Two dimensional Arrays
Iterations for handling
arrays and lists
Inserting and removing
elements
ArrayList’s constructors
and Methods
Activity
Students are presented with an introduction to Arrays,
elements, and their uses. Students write a simple fortune
telling applet using an array of strings
Students explore the Chomp Game case study and the use
of 2-d Arrays within it. Students write a method to generate
Pascal’s triangle in a 2-D array.
Students are presented with the technique of for-each to
conduct traversal procedures. Students create a polynomial
class that returns the degree of the polynomial.
Students create a polynomial multiply method to return the
product of two polynomials
Students create a document index utilizing ArrayList.
Students examine the GridWorld case study and its Critter
subclasses as outlined in Part 3 of the GridWorld student
manual. Students create a cow and mosquito classes with
unique attributes.
Assessment
Lecture and
Lab
Lab
Lecure and
Lab
Lab
Lab, and Unit
Test
Unit: Searching and Sorting Arrays (3 weeks) – [C1, C2, C3, C4, C6]
Objective
Comparing objects
Sequential and Binary
Search
Sorting algorithms
Activity
Assessment
Students are introduced to the equals, compareTo, and
compare methods. Students write a program to compare
countries by population.
Students write a program to sort a word list alphabetically.
Lecture and
Lab
Students are presented with a variety of algorithms to
conduct selection, insertion, merge, and quick sorting.
Students write a benchmark testing program that creates an
array of random numbers and sorts them using a variety of
algorithms.
Lab and Unit
Test
4
Lab
Unit: Streams and files systems (2 weeks) – [C1,C3,C5]
Objective
Java.io.File class and
Scanner
PrintWriter class
Activity
Students use Java.util scanner methods to read a text file.
Students write a program that scans a source file to check if
the braces within it are balanced.
Students use PrintWriter to create a text file. Students write
a program to merge two sorted files into one sorted file.
Assessment
Lab
Lab and Unit
Test
Unit: Review (4 weeks) – [C6, C7]
Objective
Review GridWorld Case
Study
Review Released AP
Computer Science Exams
Student Activity
Students Review all classes and methods in GridWorld and
review the Grid World student manual
Students take previously released AP Computer Science
exams as practice.
5
Assessment
Discussion
and Lab
AP Exam
Download