Download AP COMPUTER SCIENCE A QSI (Quality Schools International

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
AP COMPUTER SCIENCE A
QSI (Quality Schools International) Shekou, Shenzhen, PRC (Peoples Republic China)
Instructor: Tim Winterfeld, MS Computer Science, University of Oregon
SYLLABUS
Course Overview:
The purpose of this course is to introduce the students to an object-oriented programming language
(OOP). We will use the language Java that is required for the AP computer science A exam. The
students will use the program BlueJ an integrated development environment to complete their lab
exercises.
All the students (6 this first year), have little or no programming experience. The challenge for the
instructor will be to develop enthusiastic students for programming, whose main topic is problemsolving, by making them active learners and critical thinkers. The course teaches the significance of
object-oriented programming, the keywords and constructs of the Java programming language, and
the steps required to create simple Java technology programs. Students have already acquired facility
in written and oral communication before entering this course.
Course resourses:

Java Software Solutions for AP Computer Science, 2nd edition
J. Lewis, W. Loftus, C. Cocking

Instructor’s Resource Manual to accompany Java Software Solutions
J. Lewis, W. Loftus, C. Cocking

AP Grid World Case Study
Computer Facilities:
We are an International School in Shenzhen, China. Our school has 950 students from K-12. The total
number of students in high school is 150. The AP computer science will enroll 6 students this year.
We have two computer labs with 17 computers and many other computers located around the
campus. Both computer labs have identical teacher computers and projection units. All Secondary
School student and teacher computers are new, Fall 2009. These are Dell desktop computers and
have Intel chips as well as 4 gig of RAM standard as well as 250 gig HD, DVD’s with both read and
write capabilities. These are mated to 17 inch flat screen displays. AP students have the in addition of
a single computer in a small AP student study hall room. Students also all have personal or laptop
computers at home they can choose to use when at home. School Facilities and Computers are open
for students from 7:30 a.m. to 9:00 p.m. Monday through Friday.
Page 1 of 9
Class Meeting:
The class will meet 3 days per week on a modified block schedule, Monday and Wednesday for 94
minutes each period and approximately 44 minutes on Friday for a total of 232 minutes a week of
class instructional time. This allows for sufficient class time for instruction and guided practice.
Students will be expected to put additional time in to compete assignments and homework. This will
be between 3 and 6 hours weekly depending on student abilities and specific assignments.
Course Planner
Unit 1 C9, C2, C3
Introduction to computer systems and
networks.
Computer systems:
 Hardware(CPU, I/O devices,
main memory, second memory
devices)
 Software(operating systems and
applications)
 Binary numbers (storage
capacity)
 Network connections(LAN,
WAN)
 WAN: Internet(TCP/IP, WWW,
browser, IP address, URL)
activity
Study chapter one Lewis
Self review questions, multiple choice, true/false, short
answer questions (chapter 1 Lewis).
Social and ethical impact of computing:
Discuss different opinions, research information on
internet and hand in research paper.
Write first program from scratch and learn about
compiling and interpreting and the whole environment,
which is necessary to run a java program.
Assignments chapter 1 (book Lewis)
Especially the social and ethical
implications of internet.
Introduction to programming languages:
 Language levels
 Compilers and interpreters
 Environments: like Java
Development Kit, Java Virtual
Machine and other programs
which support the development
of Java Programs, like Eclipse,
BlueJ.
Recourses: Lewis, Loftus, Cocking: Chapter one
Head First : page 18, 19
Object Oriented programming: Chapter one and two
Unit 2 C3, C4, C5,C6, C7
Introduction to objects and primitive
data. Students will understand and give
examples how to create objects from
reality, the fundamentals of .They will
start with arithmetic expressions and
their operators.
activity
Use of physical objects like car, radio. You don’t know
the inner workings (from different cars to basic
car=abstraction) and you don’t see the inner parts
(=encapsulation).
Self review questions, multiple choice, true/false, short
answer questions (chapter 2 Lewis).
Page 2 of 9
The students will use the import
Some programming projects chapter 2 Lewis (included
declaration of the Java standard class
the use of the graphic class and applets).
library to implement:
 the random class: random,
nextDouble, nextInt
 the math class:int and double
abs, pow,sqrt
 the String class: compareTo,
equals, indexOf, length,
substring(int from, int to)
substring (int from)

The students will use the wrapper
classes of the Java library:
 Integer class
 Double class
(integer/ double, compareTo, equals,
int/doubleValue, toString)
Resources: Lewis, Loftus, Cocking: Chapter two
Unit 3 C3, C4, C5
activity
Students will apply the structured
Self-review questions, multiple choice, true/false, short
statements of OOP on how to solve
answer questions (chapter 3 Lewis).
problems: sequences, selections
Some programming projects chapter 3 Lewis (included
(conditional: If-else statement and
the use of the graphic class and applets).
nested if statements), iterations (loop:
comparing while and for statements).
The students will study and implement:
 The use of the class java.lang.
Object /Integer/Double
 The use of relational operators
and logical operators in Boolean
expressions.
 The use of the class
java.lang.String (the equals
method to compare String
objects, the compare To method
to put strings in lexicographic
order)
 Comparing floating point
values(use the math absolute
method and a tolerance level)
From Appendix B (AP CS A)
Resources: Lewis, Loftus, Cocking: Chapter three
Unit 4 C3, C4, C5, C6
Classes, objects and methods.
Students will discover and apply how to
design classes (=blueprint for an object),
how to put an object (=constructor) in a
class and how to create methods. They
activity
Use the counter example and the testerCounter ( the
main program) from Jan Beurghs chapter 4.
Use the Coin Class and modifying the Coin Class from
Lewis chapter 4.
Method overloading:
Page 3 of 9
will construct a tester class in which they
can create and access objects of the new
class type with passing parameters.
An introduction to encapsulation (the
scope of variables and objects with the
visibility modifiers: public and private) .
And they will demonstrate how and why
to use method overloading.
Use the Bank Account Class and Die Class from Lewis
chapter 4.
Study page 38 – 40 from Head First
Study page 80 – 81 from Head First
Assignments “Be the Compiler” from chapter 2 Head
First.
Some programming projects (including one graphic
project) and self review, multiple choice questions from
Lewis chapter 4
Resources:
Lewis, Loftus, Cocking: Chapter four
Head First: Chapter two
Object Oriented Programming: Chapter four
Unit 5 C7, C3, C4, C5
activity
Introduction to the Grid World Case
Study page 50-58 from Head First. (primitives and
Study.(show , explain and demonstrate
references)
inheritance and polymorphism)
Study Parameter Passing and program project 5.1 from
Students will learn to understand the use Lewis.
of the primitive and reference variables
Explore the case study part one and introduce
(location of memory), passing objects as
inheritance and polymorphism.
parameters, the null reference, static
Study page 273-314 (static variables and static methods)
variables and static methods.
from Head First
They will understand why to create and
Self-review, multiple choices, true/false, short answer
use interfaces and their class
questions from Lewis chapter 5.
implementations.
Several programming projects about dialog boxes and
The students will learn to use the
graphical user interface from Lewis chapter 5.
comparable interface from the java class
library .(compareTo (Object obj))
They will show how to create dialog
boxes and basic graphical user interfaces.
Appendix B from AP CS A
Resources:
Lewis, Loftus, Cocking: Chapter five
Head First : Chapter three and ten
Object Oriented Programming: Chapter four
Object Oriented Programming: Chapter eleven
Unit 6 C3, C4, C5, C6
Students will define and use one-dimensional
and two-dimensional rectangular arrays of
primitive types and objects.
They will learn to initialize named arrays.
They will declare and use arrays, arrays of
objects and passing an array as a parameter.
They will study how to fill arrays and arrays of
objects and implement operations on arrays
like counting or reversing.
They will discover how to search in arrays and
activity
Page 59-69, 83 reading and doing from Head
First.(arrays)
Searching and sorting from Lewis (page 298 –
332)
Page 133-150 reading and doing from Head First
(ArrayList)
Study bumper cars: the arena from Lewis
Arrays and graphics , buttons from Lewis
Self- review, multiple choice, true/false, short
Page 4 of 9
use and implement the 2 different methods for
searching :
 The sequential or linear search
 The binary search in ordered arrays.
The students will discover how to sort arrays
and use and implement the 2 different methods
for sorting:
 The selection sort (find the smallest
value or the biggest value and sawpit to
its final position.)
 The insertion sort (insert each time a
new value and put the value in the
proper place)
The students will use the compareTo method to
implement sorting.
The students will explore how to compare
algorithms, especially sorting algorithms in
time efficiency and space efficiency.
answer and programming projects from Lewis
chapter 6.
They will know how to implement the ArrayList
class and some methods of the ArrayList class:
(add, set, get, remove, size)
Appendix B from AP CS A
Resources:
Lewis, Loftus, Cocking: Chapter six
Head First
Unit 7 C3, C4, C5, C6 , C7
Students will discover the concepts behind
inherited classes.
Students will discuss how to design class
hierarchies and define and understand
polymorphism.
Students will understand why we use interfaces
(abstract classes).
They will practice with the use of inheritance in
java GUI framework and the Java GUI
component.
activity
Self-review multiple choice, true/false, short
answer and programming projects from Lewis
chapter 7.
Some examples and assignments from chapter 7
and 8 from Head First (is a –has a)
Grid World case study part two.
Resources:
Lewis, Loftus, Cocking: Chapter seven
Head First
Grid World Case Study
Unit 8 C4, C5, C6, C7
Students will examine recursive methods and
processing steps.
They will understand when recursion should and
should not be used. They will demonstrate the
activity
Self-review, multiple choice, true/false, short
answer and programming projects from Lewis
chapter 8.
Page 5 of 9
use of recursion to solve problems and the use
of recursion in sorting:
 merge sort (divide the list and
recursively sort the two sub lists )
 quick sort (divide the list into two sub
lists by sorting the values already into
low and high values)
They will continue with the study of Grid World
Case Study
Resources:
Lewis, Loftus, Cocking: Chapter eight
Grid World Case Study
Grid World Case Study part three
Unit 9 C7, C4, C5
Students will comprehend how to handle with
errors:
Logical errors
Compile-time errors
Run-time errors.
activity
Grid World Case Study part four
They will show how to debug.
They will recognize exception handling (throw
exception-try/catch block)
Grid World Case Study part four
Use the examples of chapter 19 from Beurghs.
Reading and doing chapter 11 Head First
They will finish the Grid World Case Study.
Resources:
Head First chapter 11
Object Oriented Programming chapter 19
Grid World Case Study
Unit 10 C9
Students will review their research papers from
the first unit and discuss again the ethical and
social implications of the computer/internet.
Students will make conclusions and see if they
changed opinions and find new issues about
internet. (privacy, vulnerable websites, second
life games)
Extend the research paper with the new issues.
Prepare for AP exam.
activity
Research on internet about social and ethical
issues on computer use, especially the internet.
Review:
Practice multiple choice
Practice free-response questions
Review Grid world Case Study.
Page 6 of 9
Correlation to AP Topic Outline:
A. Object –Oriented Program Design
A. Program design
1. Read and understand a problem description,
purpose and goals.
2. Apply data abstraction and encapsulation.
3. Read and understand class specifications and
relationships among the classes (“is-a”, “has-a”
relationships)
4. Understand and implement a given class
hierarchy.
5. Identify reusable components from existing
code using classes and class libraries.
B. Class design
1. Design and implement a class
2. Choose appropriate data representation and
algorithms.
3. Apply functional decomposition
4. Extend a given class using inheritance
II.
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
I.
Primitive data vs. objects
II.
Declaration
a. Constant declaration
b. Variable declaration
c. Class declaration
d. Interface declaration
e. Method declaration
f. Parameter declarations
III.
Console output (System.out.print/println)
4. Control
a. Methods
b. Sequential
c. Conditional
d. Iteration
e. Understand and evaluate recursive
methods.
C. Java library classes
Page 7 of 9
Unit 2 and 3
Unit 2 and 4
Unit 7
Unit 7
Unit 7
Unit 5
Unit 4 and 5
Unit 4
Unit 7
Unit 2
Unit 2
Unit 4
Unit 4
Unit 2
Unit 5
Unit 2
Unit 2
Unit 7
Unit 4
Unit 4
Unit 1
Unit 3
Unit 3
Unit 3
Unit 3
Unit 8
Unit 2 and 6
III.
Program Analysis
A. Testing
1. Test classes and libraries in isolation.
2. Identify boundary cases and generate appropriate
test data.
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.
C. Understand and modify existing code.
D. Extend existing code using inheritance.
E. Understand error handling
1. understand runtime exceptions.
F. Reason about programs
1. Pre- and post conditions
2. assertions
G. Analyses of algorithms
1. Informal comparisons of running times
2. Exact calculation of statement execution counts
H. Numerical representations and limits
I. Representations of numbers in different bases
J. Limitations of finite representations (e.g. integer bounds,
imprecision of floating-point representations, and roundoff error)
IV.
Standard Data Structures
1. Simple data types (int, Boolean,
doubles)
2. Classes
3. One-dimensional arrays
V.
Standard Algorithms
A. Operations on A level data structures
previously listed
1. Traversals
2. Insertions
3. Deletions
Unit 2
Unit 4 and 5
Unit 6
Unit 6 and 8
Unit 6 and 8
Unit 6 and 8
Page 8 of 9
Unit 4 and 5
Unit 5
Unit 5
Unit 9
Unit 9
Unit 9
Unit 4 and 5 and 7
Unit 7
Unit 9
Unit 4 and 5
Unit 4 and 5
Unit 3 and 6
Unit 3 and 6
Unit 3 and 6
Unit 3 and 6
Unit 2, 3 and 6
B. Searching
1. Sequential
2. Binary
C. Sorting
1. Selection
2. Insertion
3. Mergesort
VI.
A.
B.
C.
Unit 6
Unit 6
Unit 6
Unit 6
Unit 8
Computing in Context
System reliability.
Privacy.
Legal issues and intellectual
property.
D. Social and ethical ramifications of
computer use.
Unit 1 an 9
Unit 1 an 9
Unit 1 an 9
Unit 1 an 9
Page 9 of 9