AP Computer Science Syllabus - Denton Independent School District

advertisement
AP Computer Science A
Course Number:
Credits: 1
Pre-requisites: Pre-AP Computer Science or permission of instructor
Instructor: Adrian Ott
E-Mail Address: aott@dentonisd.org
Conference Periods: 5th Block on A & B days
Phone: 940-369-3165
Tutorials: 8:00 to 8:35 Monday through Thursdays
Course Objectives and Goals: To learn the basics of Java Programming and prepare for the AP Computer
Science A Exam.
Textbook (provided): Big Java, 2nd or 3rd Edition by Cay Horstmann
Rules/Class Procedures:
Classroom Rules
1. All school rules will be enforced in our classroom.
2. Be in your seat and ready to work when the bell rings.
3. Everyone is expected to have a notebook, paper and writing utensil every day.
4. You cannot disrupt others from learning.
5. You cannot disrupt the teacher from teaching.
6. It is the responsibility of the student to obtain notes/materials when he or she is absent.
7. Have respect for yourself, others and the teacher at all times.
Specific Procedures
1. Computers are for instructional use only; that means no games, no chatting, no listening to music and no
‘surfing the net’.
2. Clean up your area last 2 minutes of class
a. Push in your chair when you leave the classroom.
b. Put all litter in a trash receptacle.
c. Put away any supplies you borrowed.
d. Teacher will dismiss class; do not line up at door.
3. Treat all school property with respect.
a. Food and drink must be left on the table by the door.
b. Do not write on desks, computers or any other classroom equipment.
c. Use only the computer assigned to you.
4. Log off from the computer when finished
5. Sharpening of pencils, throwing away of trash, getting supplies, etc. can be done whenever the teacher is
not talking to the whole class.
6. Cell phones, MP3 players, cameras, and all other electronic devices must not be visible in our
classroom. If these items are visible, they will be picked up and turned into the administration.
7. Leaving the classroom:
a. Restrooms are close by, so grab the vest and go.
b. Anywhere else requires your ID, your student planner, and the vest.
c. If someone is out, you must wait until they return.
8. Heading papers: Put your name, date and assignment title on every paper you turn in to me.
9. Turning papers in: Your ON TIME assignment needs to be put in the tray labeled with your block
number. If you have a LATE assignment it must be turned in before school.
10. Asking for help: You have the responsibility of asking for help from me.
Supplies/Materials: (required materials other than text)
1. Binder with pockets
2. Pencil and eraser
Grading Policy: (As listed in the Student Code of Conduct)
District Grading Scale: Denton ISD uses numerical grades in reporting student achievement for grades 2-12.
Letter equivalents are provided for reference only (transfer students, etc.). The grading scale in middle school
and high school is : 90 - 100 Excellent (A) 80 - 89 Good (B) 70 - 79 Fair, Average (C) 69 or below Failing (F)
Written Tests 20%
Homework/Quizzes 30%
Programs & Lab Tests 50%
Late Work: Late work will be accepted at anytime during the first 5 weeks of a grading period. You must hand
in late work in person before school (8 to 8:35). This way you will know that it has been entered in Gradespeed.
Late work will NOT be accepted during the last week of any grading period.
Re-Test: Any student who obtains less than an 80 on any test or quiz may request a re-test. The re-test will not
be the same test as the original but will test the same objectives as the original. Requesting tutoring and/or retest
is students the responsibility of the student. If a student’s score on the re-test is higher, then the new score will
replace the old one. Retests must be done before school on any day or after school on Tuesday.
Important Dates:
AP Study Sessions: will be announced in the spring
AP Practice Exam: Tuesday, April 16th, 2013
AP Testing dates: Tuesday May 7th, 2013
Scope and Sequence: The scope & sequence will be covered in a separate document.
The Denton Independent School District does not discriminate on the basis of sex, handicap, race, color, and or national origins in its educational programs. Admission
to career programs is based on age, grade, interest, aptitude and ability. Lack of English language skills will not be a barrier to admissions and participation in any
educational programs.
Please sign, detach, and return the bottom portion of this form.

“I, _____________________________, parent/guardian of ____________________ have read
and understand the syllabus for Computer Science A “
Parent/Guardian:____________________________________
Signature
Student:___________________________________________
Signature
_______________________
Date
_______________________
Date
AP® Computer Science
Course Overview
At our school AP® Computer Science is offered through a three year program.
The first year in the program students take Pre-AP Computer Science. This course is an introduction into the
development of computer programming techniques using the Java language. Emphasis is placed on learning and
applying good object-oriented programming techniques. This course covers a portion of the AP Computer
Science A curriculum.
AP Computer Science A is offered in the second year of study which focuses on the remainder of the A
curriculum. This course emphasizes the object-oriented programming methodology introduced in the Pre-AP
course with a concentration on problem solving and algorithm development. This course also includes a major
focus on the AP Computer Science GridWorld Case Study. Students who have completed the AP Computer
Science A course can then opt to take AP Computer Science AB.
The AP Computer Science AB course extends the concepts of AP Computer Science A with an emphasis on
designing and implementing interacting classes and interfaces. Other topics studied in this course include the
Java library classes included in the AB-Level Java Subset, advanced data structures (including stacks, queues,
trees, linked lists, sets, and maps), advanced sorting and searching algorithms, and algorithmic analysis (Big-Oh
notation).
Teacher Resources
Lewis, John, William Loftus, and Cara Cocking. Java Software Solutions for AP Computer Science, 1st Edition.
Addison Wesley Longman, 2004.
Lambert, Ken, and Martin Osborne. Fundamentals of Java Comprehensive Course, 2nd Edition. Boston:
Thomson Course Technology, 2003.
Teukolsky, Roselyn. Barron's AP Computer Science, 2007-2008: Levels A and AB (Barron's How to Prepare
for the Ap Computer Science Advanced Placement Examination), 3rd edition. Hauppauge, N.Y.: Barron’s
Educational Series, 2006.
The College Board. AP GridWorld Case Study. New York: College Entrance Examination Board, 2006
Karel J. Robot and many other related ideas at the author’s site.
http://csis.pace.edu/~bergin/KarelJava2ed/Karel++JavaEdition.html
Units of Study
Pre-AP® Computer Science
Unit/Weeks
Topics and Objectives
Resources and Assignments
Unit 1
(0-2)
Unit 2
(3-7)
Computer Systems
Topics:
 Computer Systems / Networks
 Programming Languages
 Numerical Representation
 Computer Ethics
Objectives:
 Describe the relationship between
hardware and software
 Identify basic computer hardware
and explain what it does
 Define various types of software and
how they are used
 Understand numerical
representations and limits
 Understand computer ethics such as
acceptable use policies, copyright,
and intellectual properties
Jeroo (Karel J Robot)
Topics:
 Jeroo Basics
 Jeroo Methods
 Jeroo Control Structures
Objectives:
 Learn to create Jeroo objects and
send messages to the objects
 Learn to create new methods
 Learn how to use control structures
Unit 3
(8-9)
Java Basics
Topics:
 Variables and Data Types
 Operators
Objectives:
 Identify the primitive data types
 Declare and use variables
 Perform mathematical computations
 Use operators to modify the contents
of variables
Unit 4
(10-13)
Classes and Objects
Topics:
 Scanner Class
 Math Class
 String Class
Objectives:
 Define the difference between
primitive data and objects
 Create objects and use them
 Explore several predefined classes
Lewis 1.0, 1.1, 1.2, 1.4
Lambert 1.1 – 1.6
1.1.1 Introduction to Computer Science
1.1.2 Numerical Representation
1.1.3 Computer Ethics
2.1.1 Jeroo Basics
2.1.2 Algorithm Development
2.1.3 Simple Jeroo Program
2.2.1 Initials
2.2.2 Lake Island
2.2.3 Homeward Angel
2.2.4 The Relay
2.2.5 Scavenger Hunt
2.2.6 Skinny Island
2.2.7 Not in a Row
2.2.8 Relay Race Island
2.2.9 CrossStripes
2.2.10 StairSteps
2.2.11 Two Friends Meet
2.2.12 Circle the Ring
2.2.13 Flowers in the Net
2.2.14 Hurdles
2.2.15 Minesweeper
2.2.16 TheBetrothal
Lewis 2.3, 2.4, 2.5, 3.4
Lambert 2.1 – 2.5, 3.1 – 3.6
3.1.1 Java Basics
3.2.1 StudentInfo
Lewis 2.8, 2.6
Lambert 4.2
4.1.1 Variables and DataTypes
4.1.2 Operators
4.2.1 Fruit
4.2.2 Conversion
4.2.3 Arithmetic
4.2.4 Mystery Number
4.2.5 Grades
4.2.6 Baseball
4.2.7 Rectangles
4.2.8 Powers
4.2.9 Money
4.2.10 Pythagorean Theorem
4.2.11 MinMax
4.2.12 QuickPick
4.2.13 RandomRange
4.2.14 FullName
4.2.15 Substrings
4.2.16 Mixup
Unit 5
(14)
Unit 6
(15-16)
Unit 7
(17-21)
Applets
Lewis 2.10, 2.11
Topics:
 Applets
 Graphics
Objectives:
 Explore the difference between a
Java application and Java applet
 Create an applet
 Create graphical programs that draw
shapes
Conditional Statements
5.2.1 HTML Practice
5.2.2 Modified Snowman
5.2.3 Smiley Face
Topics:
 if statement
 if/else statement
 switch statement
Objectives:
 Learn to use an if statement
 Learn to use an if/else statement
 Learn to use a switch statement
 Learn to use nested conditional
statements
Looping Statements (Iteration)
Topics:
 while statement
 do/while statement
 for statement
Objectives:
 Learn to use a while statement
 Learn to use a do/while statement
 Learn to use a for statement
 Compare and contrast the different
looping structures
Unit 8
(22)
Nested Loops
Topics:
 Nested for loop
 printf statement
Objectives:
 Learn to use a nested looping
structure
Lewis 3.0, 3.1, 3.2, 3.3
Lambert 4.5
6.1.1 Selection
6.2.1 Compare
6.2.2 Richter
6.2.3 Triangle
6.2.4 LetterGrade
6.2.5 Fraction
6.2.6 Applet – Shapes1
6.2.7 Applet – Shapes2
6.2.8 Menu
6.2.9 Planets
Lewis 3.5, 3.6
Lambert 4.6-4.7
7.2.1 whilePractice
7.2.2 RepeatWords
7.2.3 ExamScores
7.2.4 Averages
7.2.5 Applet - RandomLines
7.2.6 Applet - Circles
7.2.7 dowhilePractice
7.2.8 RepeatMenu
7.2.9 Table
7.2.10 Largest
7.2.11 Applet - Starburst
7.2.12 Applet – Spiral
7.2.13 forPractice
7.2.14 VerticalString
7.2.15 FibonnaciSequence
7.2.16 GradeDistribution
7.2.17 Applet - Gradient
Lewis 3.5
Lambert 4.8
8.2.1 printfPractice
8.2.2 TacoBueno
8.2.3 SemesterAvg
8.2.4 Patterns
8.2.5 TimesTable

Unit 9
(23-26)
Unit 10
(27-32)
Unit 11
(33-34)
Unit 12
(35-36)
Learn to format output using the
printf statement
8.2.6 Christmas
8.2.7 Applet - Checkerboard
Lewis 6.0, 6.1
Lambert 8.1-8.5
Arrays
Topics:
 Arrays
 File Input
Objectives:
 Define and use arrays
 Explore how arrays and other objects
can be combined to manage complex
information
 Learn to use the Scanner class for
text file input
Writing Classes
9.2.1 ArrayPractice
9.2.2 Reverses
9.2.3 ChangeCase
9.2.4 SportsEvent
9.2.5 HighLow
9.2.6 readInts
9.2.7 GettysburgAddress
9.2.8 RandomStates
Topics:
 Anatomy of a class
 Constructors
 Multiple classes
 Applets
Objectives:
 Identify the elements of a class
 Explain encapsulation and Java
modifiers
 Explain method overloading
 Explore the details of method
declaration
 Design and implement a class
Animation
10.2.1 PiggyBank
10.2.2 Compas
10.2.3 SlotMachine
10.2.4 BasketballPlayer
10.2.5 FarmAnimals
10.2.6 States
10.2.7 Favorites
10.2.8 Rectangle
10.2.9 Assignment
10.2.10 Television
Topics:
 Double buffering
 Timers
Objectives:
 Define double buffering
 Write a program that animates a
graphics object
Game Programming
Topics:
 Game Engine (Classes)
 Inheritance
Objectives:
 Write a program that plays a simple
game using the classes of the game
engine
Lewis 4.0-4.4, 4.7
Lambert 5.1-5.5
11.2.1 BouncingBall
11.2.2 BouncingBalls
11.2.3 Rocket
12.2.1 Train1
12.2.2 Train2
12.2.3 Train3
12.2.4 Tank1
12.2.5 Tank2
12.2.6 Tank3
12.2.7 Tank4
12.2.8 Tank5
AP® Computer Science A
Unit/Weeks
Unit 1
(0-2)
Topics and Objectives
Java Basics Review
Topics:
 Objects and Primitive Data
Resources and Assignments
Lewis Chapters 1-3
Lambert Units 1 and 2
Unit 2
(3-4)
 Control Structures
Objectives:
 Write a program that uses the basic
Java control structures
Writing Classes Review
Topics:
 Writing Classes
Objectives:
 Implement methods in classes
 Design and implement classes
Unit 3
(5)
Systems Life Cycle and Software
Development
Topics:




Unit 4
(6)
Unit 5
(7-8)
Unit 6
(9-10)
Systems Life Cycle
Systems Analysis
Systems Design
Social significance and
implications of computer systems
 Software Life Cycle
 Software Design
 Documentation
GridWorld: Part 1 - Experimenting
Topics:
 Running the Demo
 Exploring Actor State and Behavior
 GUI interface
Objectives:
 Observe the attributes and behavior
of the actors
Enhancing Classes
Topics:
 References Revisited
 Static modifier
 Exceptions
 Nested classes / inner classes
 GUI - Swing
Objectives:
 Explore passing object references
as parameters
 Learn to use the static modifier
 Define formal interfaces and their
class implementations
 Define nested classes and inner
classes
 Learn about basic graphical user
interfaces
Arrays Revisited
Topics:
 Review arrays
Objectives:
 Define and use arrays
1.2.1 ControlStructuresPractice
1.2.2 MethodsPractice
1.2.3 Hotel
Lewis Chapter 4
Lambert 5.1-5.6
2.2.1 Box
2.2.2 Car
2.2.3 SockHop
2.2.4 Hopital
2.2.5 ATM
Lewis 3.0
Lambert 1.5
3.1.1 Design
GridWorld Part 1
Lewis 5.0-5.6
Lambert 9.1-9.8
5.2.1 Label
5.2.2 Button1
5.2.3 Button2
5.2.4 Button3
5.2.5 BorderLayout
5.2.6 FlowLayout
5.2.7 GridLayout
Lewis Chapter 6
Lambert 8.1-8.9
6.2.1 Numbers
6.2.2 Vowels
6.2.3 Tardies
6.2.4 Survey
6.2.5 GirlScouts
Unit 7
(11-12)
Two-Dimensional Arrays
Topics:
 Two-dimensional arrays
Objectives:
 Learn to use two-dimensional
arrays
Unit 8
(13-14)
Unit 9
(15-18)
GridWorld: Part 2 – Bug Variations
Topics:
 Methods of the Bug Class
 Extending the Bug Class
 Runner Classes
Objectives:
 Define Bug Variations
ArrayLists
Topics:
 ArrayList class
Objectives:
 Examine the ArrayList class
 Implement classes that use the
ArrayList class
Unit 10
(19-20)
Unit 11
(21-23)
GridWorld: Part 3 – Classes and
Interfaces
Topics:
 Grid interface
 Actor class
 Extending the Actor class
 Rock class, Flower class, Bug class
Objectives:
 Explorer the code that is needed to
understand and create actors
Inheritance
Topics:
 Inheritance
 Abstract Classes
 Interfaces
Objectives:
 Derive new classes from existing
classes
 Explain how inheritance supports
software reuse
 Add and modify methods in child
classes
 Define polymorphism and how it
can be done
Lewis 6.6
Lambert 8.7
7.2.1 LessThan100
7.2.2 Transpose
7.2.3 StoreLargest
7.2.4 SumMatrix
7.2.5 Airline
GridWorld Part 2
Lewis 6.7
Lambert 10.7
9.2.1 ArrayListPractice
9.2.2 PhoneList
9.2.3 Diet
9.2.4 NationalPark
9.3.1 SchoolRoster (FR 99-1)
9.3.2 Reservation (FR 05-1)
9.3.3 WordList (FR 04-1)
9.3.4 Retirement (FR 03-2)
9.3.5 Grocery (FR 02-2)
9.3.6 GasStation (FR 01-1)
9.3.7 Statistics (FR 02-1)
GridWorld Part 3
Lewis 7.0 -7.5
Lambert 9.1-9-9.8
11.2.1 CombinationLock
11.2.2 RaceHorse
11.2.3 Scheduler
11.2.4 SportsTeam
11.2.5 Vacation
11.2.6 Photographer
11.2.7 Donation
11.2.8 Employee
11.2.9 Area
11.2.10 Quiz
11.3.1 DepartmentStore (FR)
11.3.2 Pet (FR 04-2)
11.3.3 Ticket (FR 05-2)
11.3.4 Hotel (FR)
11.3.5 Warehouse (FR)
11.3.6 College (FR 03-1)
11.3.7 Employee (FR 03-2)
Unit 12
(24-25)
Unit 13
(26-27)
Unit 14
(28-29)
Unit 15
(30-31)
GridWorld: Part 4 - Inheritance in Case
Study
Topics:
 Critter class
 Extending Critter class
Objectives:
 Define classes that extend the
Critter class
Searching
Topics:
 Linear search
 Binary search
Objectives:
 Explore searching using arrays and
ArrayLists
 Informal comparison of running
times
Sorting
Topics:
 Selection sort
 Insertion sort
Objectives:
 Explore sorting with arrays and
ArrayLists
 Informal comparison of running
times
Recursion
Topics:
 Recursive thinking
 Recursive programming
 Merge sort
Unit 16
(32-34)
Unit 17
(35-36)
Objectives:
 Examine recursive methods and
processing steps
 Define infinite recursion and
discuss ways to avoid it
 Explain when recursion should and
should not be used
 Examine the use of recursion in
sorting
AP Exam Review
Post AP Exam Project
GridWorld Part 4
Lewis 6.2
Lambert 10.2, 11.3
13.2.1 SpellCheck
13.2.2 States
13.3.1 Books (FR 01-2)
13.3.2 Garage (FR)
Lewis 6.3
Lambert 10.3
14.2.1 SortNames
14.2.2 SortStates
Lewis 8.0 - 8.3
Lambert 11.1
15.2.1 Factorial
15.2.2 CountDown
15.2.3 Song
15.2.4 FibonnaciSequence
15.2.5 ReverseString
15.2.6 Palindrome
15.2.7 GCD
15.2.8 CompoundInterest
Teukolsky
Correlation to AP Topic Outline
I. Object-Oriented Program Design
The overall goal for designing a piece of software (a computer program) is to correctly solve the given problem. At the same time, this
goal should encompass specifying and designing a program that is understandable, can be adapted to changing circumstances, and has
the potential to be reused in whole or in part. The design process needs to be based on a thorough understanding of the problem to be
solved.
A. Program design
1. Specify the purpose and goals for a problem.
2. Apply data abstraction and encapsulation.
3. Decompose a problem into classes; define relationships and responsibilities of those classes.
Unit # 3A
Unit # 3A
Unit # 3A
4. Understand and implement a given class hierarchy.
5. Identify reusable components from existing code using classes and class libraries.
Unit # 3A
Unit #
B. Class design
1. Design and implement a set of interacting classes.
2. Design an interface.
3. Choose appropriate advanced data structures and algorithms.
Unit # 2A
Unit # 4A
Unit # 1A
4. Apply functional decomposition.
5. Extend a given class using inheritance.
Unit #
Unit # 11
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.
A. Implementation techniques
1. Methodology
a. Object-oriented development
b. Top-down development
c. Encapsulation and information hiding
d. Procedural abstraction
B. Programming constructs
1. Primitive types vs. objects
2. Declaration
a. Constant declarations
b. Variable declarations
c. Class declarations
d. Interface declarations
e. Method declarations
f. Parameter declarations
3. Console output (System.out.print/println)
4. Control
a. Methods
b. Sequential
c. Conditional
d. Iteration
e. Recursion
C. Java library classes (included in the AB-level Java Subset)
Unit # 1A
Unit # 3A
Unit #
Unit #
Unit # 1A
Unit # 1A
Unit # 1A
Unit # 2A
Unit # 4A
Unit # 2A
Unit #
Unit #
Unit # 2A
Unit #
Unit # 6PAP
Unit # 7PAP
Unit # 15
Unit # 6AB
III. Program Analysis
The analysis of programs includes examining and testing programs to determine whether they correctly meet their specifications. It
also includes the analysis of programs or algorithms in order to understand their time and space requirements when applied to different
data sets.
A. Testing
1. Test classes and libraries in isolation.
2. Identify boundary cases and generate appropriate test data.
Unit #
Unit #
3. Perform integration testing.
B. Debugging
1. Categorize errors: compile-time, run-time, logic.
2. Identify and correct errors.
3. Employ techniques such as using a debugger, adding extra output statements, or hand-tracing code.
Unit #
C. Understand and modify existing code
D. Extend existing code using inheritance
E. Understand error handling
1. Understand runtime exceptions.
2. Throw runtime exceptions
F. Reason about programs
1. Pre- and post-conditions
2. Assertions
G. Analysis of algorithms
1. Informal comparisons of running times
2. Exact calculation of statement execution counts
3. Big-Oh notation
4. Worst-case and average-case time and space analysis
H. Numerical representations and limits
1. Representations of numbers in different bases
2. Limitations of finite representations (e.g., integer bounds, imprecision of floating-point representations, and round-off error)
Unit #
Unit #
Unit #
Unit #
Unit #
Unit #
Unit #
Unit #
Unit #
Unit #
Unit #
Unit # 5AB
Unit #
Unit # 1PAP
Unit # 4PAP
IV. Standard Data Structures
Data structures are used to represent information within a program. Abstraction is an important theme in the development and application of data
structures.
A. Simple data types (int, boolean, double)
B. Classes
C. One-dimensional arrays
D. Two-dimensional arrays
E. Linked lists (singly, doubly, circular)
F. Stacks
G. Queues
H. Trees
I. Heaps
J. Priority queues
K. Sets
L. Maps
Unit # 3PAP
Unit # 4PAP
Unit # 9PAP
Unit #6A
Unit #6AB
Unit #8AB
Unit #8AB
Unit # 6AB
Unit # 6AB
Unit # 6AB
Unit # 6AB
Unit # 6AB
V. Standard Algorithms
Standard algorithms serve as examples of good solutions to standard problems. Many are intertwined with standard data structures.
These algorithms provide examples for analysis of program efficiency.
A. Operations on AB-level data
1. Traversals
2. Insertions
3. Deletions
4. Iterators
B. Searching
1. Sequential
2. Binary
3. Hashing
C. Sorting
1. Selection
2. Insertion
3. Mergesort
4. Quicksort
5. Heapsort
Unit # 7AB
Unit # 7AB
Unit # 7AB
Unit # 7AB
Unit # 13A
Unit #13A
Unit # 6AB
Unit # 14A
Unit # 14A
Unit # 15A
Unit #
Unit #
VI. Computing in Context
A working knowledge of the major hardware and software components of computer systems is necessary for the study of computer
science, as is the awareness of the ethical and social implications of computing systems. These topics need not be covered in detail but
should be considered throughout the course.
A. Major hardware components
1. Primary and secondary memory
2. Processors
3. Peripherals
B. System software
1. Language translators/compilers
2. Virtual machines
3. Operating systems
C. Types of systems
1. Single-user systems
2. Networks
D. Responsible use of computer systems
1. System reliability
2. Privacy
3. Legal issues and intellectual property
4. Social and ethical ramifications of computer use
Unit # 1PAP
Unit # 1PAP
Unit # 1PAP
Unit # 1PAP
Unit # 1PAP
Unit # 1PAP
Unit # 1PAP
Unit # 1PAP
Unit #
Unit #
Unit #
Unit #
1PAP
1PAP
1PAP
1PAP
Download