2016-2017 Computer Programming 2 Syllabus
2016-2017 Computer Programming 2 Syllabus
CR3 The course teaches students to select appropriate algorithms and data 17, 19, 20
structures to solve problems.
CR4 The course teaches students to code fluently in an object-oriented 10, 11, 14, 15, 17, 19, 20
paradigm using the programming language Java.
CR5 The course teaches students of the standard Java library from the AP Java 5, 7, 8, 9, 13, 14, 20
subset in Appendix A of the AP Computer Science A Course Description.
CR6 The course includes a structured lab component comprised of a minimum of 1
20 hours of hands-on lab experiences.
CR7 The course teaches students to recognize the ethical and social implications 2, 3, 9, 16, 20
of computer use.
Texts
Schram, Leon. Exposure Java 2014. Royse City, TX: Leon Schram, 2014
http://www.schram.org
College Board. AP Computer Science Course Description 2014. New York: College Entrance Examination Board, 2014.
http://apcentral.collegeboard.com
Schram, Leon. Multiple-Choice & Free-Response Questions in Preparation for the AP Computer Science Examination
9th Ed. New York: D&S Marketing, 2015
http://www.dsmarketing.com
Syllabus at a Glance
Semester 1 Semester 2
I - Introduction to Computer Science XII - One-Dimensional Dynamic Arrays with ArrayList
II - Introduction to Programming in Java XIII - Interfaces, Concrete Classes and Abstract Classes
III - Java Primitive Data Types and String XIV - Focus on OOP, Polymorphism
IV - Using Methods and Parameters XV - Two-Dimensional Arrays with the Picture AP Lab
V - Control Structures and Boolean Logic XVI - Focus on OOP, Object Oriented Design
VI - Using Class Methods and Object Methods XVII - Recursion
VII - Creating Class Methods XVIII- Algorithms and Informal Algorithmic Analysis
VIII - The String Class and the AP Magpie Chatbot Lab XIX - Preparation for the AP Computer Science Exam
IX - Focus on OOP, Encapsulation XX - Post AP Exam I, Sequential Files
X - Focus on OOP, Inheritance & Composition XXI - Post AP Exam II, Advanced Graphics Project
XI - One-Dimensional Static Arrays
Students complete 24 Lab Assignments in the course prior to the AP Exam. Students know that they will not have
sufficient time to complete any major lab assignments during scheduled school lab time. About 8 lab assignments are
minor and can be finished in 1-Hour. The remaining 16 major lab assignments take a minimum of 2-Hours and half the
major assignments will require 3-4 hours for completion. A conservative estimate is that students devote a minimum of 20
hours in hands-on labs during scheduled class-time and roughly 30 hours in hands-on labs outside school hours for a
total minimum of 50 hours hands-on lab time.
Class Tasks, Students perform calculations at the desk in different number systems.
They also come forward in groups of 8, representing a byte in the computer.
Lab Students use a card showing 0 and 1 and then represent different decimal numbers in binary.
Assignments
The first unit has no program lab assignments.
This first unit is very depended on the knowledge of incoming students. Most students should have
received training in computer history and computer applications prior to enrolling in AP Computer
Teaching Science. At the same time, the manner in which a computer stores information, processes information, the
Strategies, concept of programming and networks is usually not taught.
Best The Pirates of Silicon Valley is an interesting story and a good introduction discussing the abuse of
Practices copyright and the start of ethical concerns like Software Piracy, Patent Abuse long before today's concern
with Identity Theft and the implications of using Social Media.
It is important that the pace of the course is established in the first two weeks. There are many topics to
be covered. Every class starts with a DYRT quiz. This means Did You Read This? The quizzes are
presented as multiple-choice, timed Power Point slides. The quiz starts one minute after class starts.
This type of quiz sets the "tone" of the class immediately and avoids wasted time at the start of class.
A fun exercise with students is for the teacher to be a "robot" who follows a precise program of
instructions to pick up chalk or marker and draw a circle on the board. It is even more fun with putting
peanut butter on a slice of bread. Another exercise is to line up eight students, representing a byte. Each
student is a bit with a place hold value. Students are "on" facing the class and "off" with their back
turned. Use the student "byte" to represent base-10 numbers in binary memory.
Curriculum
Requirements CR #7
Students download Java software from the Internet. They learn how to recognize when software is free,
when it is a trial version and when payment is required. Issues of copyright, software piracy are
Class Tasks, discussed. Students learn to install the JDK, JRE and an IDE like jGrasp.
Lab
Students do their first Lab Assignment, which requires copying, altering and creating different program
Assignments output showing knowledge of using the IDE and the Java's print and println methods.
The main purpose of this unit is to teach students how to use the Java JDK and an IDE to write programs.
The intent at this stage is to learn the mechanics of working with the software and understanding the
Teaching compiling and executing process. In particular, students will learn the difference between compiler and
Strategies, interpreter translators. Once this is clear, students then learn how Java uses both translators.
Best The responsible use of the computer is taught throughout the year as good teachable moments arise. Unit
Practices 2 lends itself quite well for a discussion after the Unit 1 introduction. Students are shown how to
download the Java software and jGrasp. Both downloads are free and it is shown on the web site that the
software is free. From this stepping stone of what is free, what is shared and what must be paid motivates
a discussion into general issues of the ethical use of the computer.
Curriculum
Requirements CR#1, CR#7
Resources, Exposure Java, Chapter 3, Java Primitive Data Types and String
The introduction of new programming features in Java are presented in "Lab Lectures" that have students
examine program code on their own computers and alter code to observe execution changes. Students can
Class Tasks, also quickly perform brief, non-graded lab-experiments to gain better hands-on experience.
Lab
Inches to Feet & Miles and Seconds to Minutes and Hours Lab Assignment
Assignments Students complete a lab assignment that involves knowledge of Java primitive data types and binary
operations by dividing inches into feet & miles and also seconds into minutes & hours.
Unit 3 is where students start to learn the concept of writing a program. At this stage all program writing
is done in the main method. Students are provided with a program template. The String class is included
Teaching in this chapter. It is included without teaching methods or instantiation.
Strategies,
Students need to appreciate that the mathematical reality they have learned does not always apply to a
Best computer. There are round-off errors, imprecise representations of floating point numbers and they need
Practices to understand what happens when a number is stored that is too large for its memory location.
The course material is not taught in a teacher lectures and students listen style. The presentation is a lab
lecture. Students follow the discussion/demonstration with their computers, do certain experiments as
appropriate and try out program concerns and confusion and they have questions.
Curriculum
Requirements CR#1
Students are doing desk exercises on paper learning interest computations that must be translated into Java
program statements for a later lab assignment.
Class Tasks,
Lab Mortgage Payment & Amortization Table Lab Assignment
Students complete a lab assignment that uses Math class methods and binary operations to compute
Assignments mortgage payments and amortization schedules.
Unit 4 introduces methods and parameters. This is hardly a complete unit on OOP. Students do learn
some fundamental OOP terminology and realize the importance of using code that has already been
Teaching written. In this case students use methods of several provided classes.
Strategies,
The Mortgage Payment assignment is a good lab assignment to write a program that involves binary
Best operations and Math class methods. It is also an assignment in the context of teaching students about
Practices monthly payments for house mortgages, amortization schedule and comprehending interest better. Ask
students the expected monthly payment of their choice. They are very surprised when they see how much
higher the cost is than they expected.
Graphics is intentionally introduced early. The use of graphics is optional in an AP course, and as such it
is not tested. The reality is that students like graphics programs and are far more motivated to work on lab
assignments with graphics output. There are other benefits. Calling graphics methods gives students
excellent practice with methods that use multiple parameters.
Curriculum
Requirements CR#1, CR#5
In Unit V for the first time students perform output exercises in class, on paper. It gets them in the habit
to think like a computer and create a variable trace to follow the program execution and the values of the
Class Tasks, variables. This is a skill that they need to debug their programs and answer multiple-choice questions.
Lab
Turning Many Graphics Straight Lines Into Curves Lab Assignment
Assignments Students complete a single, challenging lab assignment. The assignment creates a graphics picture that
displays many curves, yet all the lines are straight. The illusion is achieved with many straight lines that
are displayed in many loops and follow compound conditions of Boolean logic to achieve the correct
result. For extra credit the pattern repeats itself; it becomes smaller, but shows the same appearance.
In this unit all control structures start with single conditions. This is followed by several sections that
explain Boolean logic and compound conditions. Additional control structures follow that now show how
Teaching to use compound conditions. Special emphasis is placed on showing the concept of short circuiting.
Strategies,
The lab assignment continues the graphics theme started in unit 4. Students use control structures to draw
Best hundreds of straight lines. The end result is an interesting graphics design.
Practices
This unit also introduces students to variable tracing. Worked out exercises are provided for students to
teach them to "play computer" and learn how to determine program output without using a computer.
Curriculum
Requirements CR#1,
Resources, Exposure Java, Chapter 6, Using Class Methods and Object Methods
Evaluations 2 Reading Quizzes, 1 Lab Assignment and 1 Multiple-Choice Chapter Test.
Students do several class exercises creating Java statements that generate a specified random range.
Conversely they do exercises with program statements and determine the random range.
Class Tasks, Students complete a sequence of timed output exercises.
Lab
Random Objects With Random Colors Lab Assignment
Assignments Students complete a lab assignment with 8 graphics cells. Each cell feature a group of randomly colored
objects, such as lines, circles, squares, etc. All randomness generated is done with Math.random.
Unit six teaches students to use many classes that use object methods. It is now necessary to define an
object with the new operator before any of the object methods can be called.
Teaching
Strategies, This unit teaches that methods of the Graphics class are called with a Graphics object that appears to
exist without the use of the new operator. This is an illusion, because the Graphics object is constructed
Best in the background and then passed to the Graphics object parameter of the paint method.
Practices
Wrapper classes are introduced and will be important for future topics where data structures are only
capable of storing objects.
Curriculum
Requirements CR#1, CR#5
Students are introduced to doing Free-Response quizzes in a time limit for the first time.
The questions and quizzes in the first semester are not yet at the AP Exam, free-response level.
Class Tasks, Students participate in an output class exercise.
Lab
The Geometric Functions Lab Assignment
Assignments Students complete a Geometry program which computes the circumferences, areas and volumes of many
geometric objects. Students are expected to create a Geometry class and write all the class methods.
The chapter starts with the idea of modular programming and the syntax required to create your own
classes and methods. Students learn only to create classes with static or class methods. This allows an
Teaching easier introduction than creating classes with constructors and object methods.
Strategies,
The Payroll case study presents a very, very poorly designed program where every confusing program
Best statement is shoved into the main method. The case study then demonstrates step-by-step how to improve
Practices the poorly designed program.
This case study is not yet a good example of Object Oriented Programming. It is a good start to teach
important programming design concepts. As additional concepts are taught so will additional features of
program design get introduced.
This unit introduces the new "write-a-method" Free-Response quiz style of evaluation. This style of quiz
will steadily increase in frequency and help prepare students for the free response section of the AP
Computer Science Examination.
Curriculum
Requirements CR#1, CR#5
2 Reading Quizzes, 2 Free-Response Quizzes, 1 Lab Assignment and 1 Multiple-Choice Chapter Test.
Students perform multiple classroom lab exercises with the AP Magpie Chatbot program. These are not
yet lab assignments, but short lab exercises where students make changes in the existing program to
Class Tasks, observe the consequences or try to create improvement for undesirable executions.
Lab
The Palindrome and Almost-Palindrome Lab Assignment
Assignments Students complete a String manipulation lab assignment. In this assignment a string is entered and
students must write method isPalindrome. Additionally, after determining that the string is not a
palindrome other methods must determine if it is almost a palindrome. This is done by removing all
characters, punctuation and altering the string to upper-case.
The three AP Labs are used in this syllabus not as complete stand-alone units. Different segments of the
labs are introduced at the point when prerequisite knowledge is adequate and at such a time that the AP
Teaching Labs assist in teaching the main concepts of the unit. For instance, students have performed various
Strategies, assignments, but they have not yet needed to consider cases. The AP Magpie lab does a great job for that
skill. One type of Chatbot response is based on finding the string no in an answer. Initially, that may
Best seem simple. Students quickly learn that no is also found in words like know, notice and north.
Practices Additionally, there are differences between no in the middle of a sentence, at the beginning of a sentence,
at the end of a sentence or no strictly by itself. This creates a great opportunity for learning "cases."
Later during the free-response section of the AP Computer Science Examination, students need to
complete many methods. Most students loose a considerable amount of points, because their solutions are
incomplete. Frequently, the solution is correct, but as it does not consider all the possible cases that can
happen, points are lost.
Curriculum
Requirements CR#1, CR#5, CR#7
2 Reading Quizzes, 2 Free-Response Quizzes, 2 Lab Assignments and 1 Multiple-Choice Chapter Test.
Students participate in a "Do You Understand Methods and Parameters" output exercise.
With the official start of the Focus on OOP chapters students need to get serious about program writing.
All OOP Program Design revolves around program reliability. The first OOP feature of encapsulation
Teaching insure reliability by encapsulating all the data and the methods that access the data inside the same
Strategies, container. All members of the class container are declared to insure that only proper access is allowed.
Best The Card class is used to teach encapsulation. It is not yet identified as another AP Lab. At this stage the
Practices class is so far removed from the Elevens card game, that it may not register properly. When students
learn about arrays, the Card class is revisited as it is used to create an array of Card objects.
The Rational class lab assignment is rather dull, certainly compared to graphics programs, but it a classic
program that does a very good job using encapsulation.
Curriculum
Requirements CR#1, CR#4
Re-using existing classes with has-a composition using the Tree class
o Creating a Point class to store graphics coordinates
Topics, o Create a Trunk class, which has-a Point object member
Sub-Topics, o Create a Leaves class, which has-a Point object member
o Create a Tree class, which has-a Trunk object and has-a Leaves object
Details Re-using existing classes with is-a inheritance using the Tree superclass
to be o Use inheritance with a PineTree class, which is-a Tree, so PineTree extends Tree
Covered o Use inheritance with a XmasTree class, which is-a PineTree, so XmasTree extends PineTree
Using super to pass information to higher class levels
o Implied use of the super method with no-parameter superclass constructors
o Using the super method to pass information to a superclass constructor
o Using the super method to pass information to multiple superclass levels
o Using super to execute a superclass method and then continue with the subclass method
Understanding the Object class
o Original definitions of the toString and equals methods in the Object class
o Re-defining the toString method
o Using the toString method to display attribute state for debugging purposes
o Re-defining the equals method
Resources, Exposure Java, Chapter 10, Focus on OOP, Interaction with Inheritance & Composition
D&S Marketing APCS Prep, Chapter 5, OOP, Inheritance
Evaluations D&S Marketing APCS Prep, Chapter 10, OOP, Composition
2 Reading Quizzes, 2 Free-Response Quizzes, 1 Lab Assignment and 1 Multiple-Choice Chapter Test.
The JackOLantern example, done correctly would receive a low score, since it only demonstrates one
example of composition and one example of inheritance. Students are expected to have multiple classes
Teaching with two or more examples of composition and inheritance.
Strategies,
This unit shows that composition is taught first. Sequence of topics is often debated and ultimately it is
Best the teacher's choice. It can be effective both ways. The issue is to use tested existing classes. When large
Practices programs are designed, it is often the creation of simple classes, such as the Card class that is done first.
With the initial class there is yet no relationship and the initial class gets tested. Later the Card class can
become part of an array that is kept in a Deck class. That is composition.
A hospital class may start with a Person class that store and manage all personal information. This class
can then be extended with a Patient class and then used inside a Hospital class. The sequence is not the
true importance. The importance is that both is-a and has-a relationships are thoroughly taught and used
in lab assignments.
Curriculum
Requirements CR#1, CR#4
2 Reading Quizzes, 2 Free-Response Quizzes, 2 Lab Assignments and 1 Multiple-Choice Chapter Test.
Students participate in a classroom exercise where a sorted sequence of students is "shuffled" using
random swapping and random inserting.
Class Tasks, Students participate in an output class exercise.
Lab
The Sieve of Eratosthenes Prime Number Lab Assignment
Assignments Students complete a program that creates prime numbers. This assignment uses an array of consecutive
integers that use the "Sieve of Eratosthenes" algorithm to compute prime numbers.
Teaching Whenever possible use students physically in the classroom. For the shuffle exercise line them up in
alphabetical order. Then have them decide they can be shuffled. Conclude by showing the "swap" and
Strategies, "insert" approach, if they did not decided that themselves.
Best
This chapter continues with the Elevens AP Lab. The actual card game is still not apparent, but students
Practices are learning the tools of the future card game over a series of chapters. In the process of slowly
developing the AP Lab, it is used as a teaching tool for computer science concepts.
Curriculum
Requirements CR#1, CR#2a, CR#2b
Resources, Exposure Java, Chapter 12, One-Dimensional Dynamic Arrays with ArrayList
College Board AP Elevens Lab Materials
Evaluations College Board AP Magpie Chatbot Lab Materials
D&S Marketing APCS Prep, Chapter 9, Dynamic Arrays
2 Reading Quizzes, 2 Free-Response Quizzes, 2 Lab Assignment and 1 Multiple-Choice Chapter Test.
Class Tasks, Students participate in a classroom exercise where a sorted sequence of students is "shuffled" using
random swapping and random inserting.
Lab
Assignments Improving the Magpie Chatbot Program Lab Assignment
Students make two changes to the earlier version of the Magpie Chatbot program. First, they need to
alter the family response from a single response to multiple random responses that are stored in a static
one-dimensional array. Second they need to create additional general random responses and store them in
a dynamic array.
Teaching A common teacher mistake is to think that "covering a topic" means understanding for their students.
Repetition is beneficial in computer science as it is in sports. The same algorithmic logic is repeated in
Strategies, this unit's lab assignment as the last chapter, but there are key differences in how dynamic and static
Best arrays handle the same process. This will increase their knowledge and comfort level.
Practices In this chapter students are first introduced to generics in a class. They have not yet learned how to create
a generics class, which comes in the next chapter. In this chapter it is strictly a matter of using generics.
Curriculum
Requirements CR#1, CR#2a, CR#2b, CR#5
Resources, Exposure Java, Chapter 13, Interfaces, Concrete Classes and Abstract Classes
D&S Marketing APCS Prep, Chapter 12, Interfaces and Abstract Classes
Evaluations
2 Reading Quizzes, 2 Free-Response Quizzes, 1 Lab Assignment and 1 Multiple-Choice Chapter Test.
Class Tasks, Students are divided into teams and discuss how to put a man on the moon as President Kennedy stated
back in 1961. The class exercise is expected to focus on the abstract nature of the assignment without any
Lab concern of the implementation of all the required tasks to accomplish the mission.
Assignments
Open-Ended Two-Person Interface, Abstract Class & Concrete Class Lab Assignment
Students complete an open-ended lab assignment with a partner. For this assignment they need to take the
HighSchool case study as a model and create their own program that includes practical examples of using
an interface, an abstract class to implement common methods and concrete classes.
Teaching This unit needs to start in the context of everyday life. The example used is the flight to the Moon. In the
initial stage of the mission there was no concern with implementation details. This helps students
Strategies, understand the benefits of talking about ideas without concern how to implement the ideas, which is the
Best essence of abstraction.
Practices This chapter puts emphasis on the proper use of an abstract class. Since it has the unique properties of
implementing some abstract methods, but not all, an ideal use is as a bridge class. In the HighSchool case
study there are 12 abstract methods in the interface. Four concrete classes are needed for each grade level.
It is also found that 7 methods are identical for each grade level. The abstract class is ideal to implement
these 7 methods and then allow the concrete classes to take care of the remaining 5.
The details of the Collection classes, like LinkedList, HashSet and TreeSet are not covered. The Java
Collection classes are presented to teach the List subinterface and the ArrayList concrete class in
context. It also helps in explaining why the add method of ArrayList is a boolean return method.
Curriculum
Requirements CR#1, CR#2b, CR#4, CR#5
This chapter starts with a Language interface. This is followed with concrete classes of four languages
and methods of their greetings. It is a simple example of using polymorphism and in this case with an
Teaching interface. Later in the train case study it starts with a RailCar and a drawCar method that draws the
Strategies, basic outline of every type car in the program. Subclasses of RailCar re-define method drawCar, but not
from scratch. First super.drawCar is called to starts the drawing and then the subclass drawCar finishes
Best by adding the unique features of the subclass. The two sets of programs are intentionally selected to
Practices show the difference in using polymorphism with an interface and a superclass.
The same set of train classes shown in the chapter are used for the second lab assignment. Using these
classes with proper program design is part of the lab assignment. Students are also expected to create an
overloaded addCar method that inserts a new car at a specified location. Considerable changes must be
made to every class to accomplish this requirement. This is quite a challenging program and will involve
knowledge of encapsulation, inheritance, composition and polymorphism all in one assignment.
Curriculum
Requirements CR#1, CR#2b, CR#4
2 Reading Quizzes, 2 Free-Response Quizzes, 2 Lab Assignments and 1 Multiple-Choice Chapter Test.
Teaching Students will rapidly learn that lab assignments are not a matter of creating Java program code. First and
foremost is step 1: Understand the Problem. Class exercises on paper are very beneficial to insure that
Strategies, the problem is understood and the steps necessary to solve the problem are known.
Best
Students may struggle with the proper use of length until they truly understand the concept that a 2D
Practices Array is a 1D Array of arrays. It helps to demonstrate the program that displays a "triangular ragged"
array. This is not tested on the AP Exam, but it really help to clarify the proper use of length.
Curriculum
Requirements CR#1, CR#2a, CR#2b, CR#7
Resources, Exposure Java, Chapter 16, Focus on OOP, Object Oriented Design
College Board AP Elevens Lab Materials
Evaluations D&S Marketing APCS Prep, Chapter 13, Program Design
2 Reading Quizzes, 2 Free-Response Quizzes, 2 Lab Assignments and 1 Multiple-Choice Chapter Test.
Multiple Class exercises showing how the Deck class can be used in the AP Elevens card game.
Teaching Teaching program design can easily turn into very boring, dry class lectures. Students have already been
doing Object Oriented Design of quite a number of chapters. It may not have been a focused unit, but
Strategies, students have already done many program design features.
Best
The AP Elevens Lab has done much work for students and has provided excellent example of proper
Practices program design. Students now can look at a second program where less work is done for them and they
need to use the lessons already learned to complete the assignment. The completion of the "Dutch
Solitaire" program is a combination of class exercises and group work.
Curriculum
CR#1. CR#2a, CR#2b, CR#3, CR#4
AP Computer Science (A) 2016-2017 Syllabus Page 17
Requirements
Unit XVII Recursion - 1 Week
General Students will learn how the computer's internal stack can facilitate a form of iteration that is called
recursion. Students will examine the significance of the base case in recursion and how to handle double
Objectives recursive calls in a single statement. Students will also learn when recursion can actually be simpler for
implementing certain algorithms over non-recursive control structures.
Recursion definition
Recursion requires an exit with a "base" case
Topics, Recursion fundamental rules
Sub-Topics, Understanding the difference between pre-recursion and post-recursion (tail-recursion)
Details Tracing through existing recursive methods
o Recursive void method examples
to be o Recursive return method examples
Covered o Evaluate recursive methods with two recursive calls in one statement
o Use the "bottom-up" evaluate technique
o Show the efficiency penalty of double recursive calls with Fibonacci
Manipulate parameters of recursive methods
Examples of multiple recursive statements in one method
o The "Tower of Hanoi" problem
o The "Alter Black/White" Grid" problem
When is recursion preferred over iterative control structures?
Students must start by understanding the difference between pre-recursion and post-recursion. Two
program examples are shown with counting methods. When the method first display the number and then
Teaching makes a recursive call, the output is in sequence from smaller to larger. When the method starts with a
Strategies, recursive call, unfinished business and values are stored on the stack, and this is completed in LIFO
sequence resulting in reverse output.
Best
Practices Students struggle with output of methods that have two recursive calls in one program statement. This
process becomes simpler by starting with the base-case value and then working in reverse up to the start to
computer the returned value. The Fibonacci sequence is a good example of such a problem.
Curriculum
Requirements CR#1, CR#2a
Resources, Exposure Java, Chapter 18, Algorithms and Informal Algorithmic Analysis
D&S Marketing APCS Prep, Chapter 15, Algorithms
Evaluations
2 Reading Quizzes, 2 Free-Response Quizzes, 1 Lab Assignment and 1 Multiple-Choice Chapter Test.
Students will learn how to use a special Time class. This class enables precise measurement of algorithm
duration. Students will use this class on many algorithms to perform informal algorithmic analysis.
Class Tasks,
Lab The King High School Data Processing Lab Assignment
Students will work with a team member to complete a large data processing program. Students are
Assignments provided with a program that already has a functional class and methods to import a large file student
data. Students can work with this program and enhance the program, even if they have no file structure
knowledge. This is a good example of information hiding. Students need to complete all the methods
and then test the program with the provided data file for such as Selecting the Valedictorian, Compute
class standing, Display a required student record, Print a student list alphabetically, Print a student rank
list by GPA. The file handling is done for the students, but students must select appropriate algorithms and
data structures to make the program functional.
Teaching This is one of the few second-semester lab assignments where program design is not an issue. The
complete program is designed. Students need to implement multiple methods multiple ways and tests
Strategies, each one of the implementation to make conclusions about the effectiveness of the different algorithms.
Best
The lab assignment is preceded by students using a program that generates a large number of numbers in
Practices random, ordered and reverse order to test algorithms. The Time class is very accurate and uses
System.nanoTime to measure the elapsed time of algorithm processing. It will really surprise students
when they start to measure the quadratic sorts first and then go to Merge Sort with a large quantity of
random numbers. The differences are very dramatic.
Curriculum
Requirements CR#1, CR#2a, CR#2b, CR#3, CR#4
Resources, Exposure Java, Chapter 19, Preparing for the AP Computer Science Examination
D&S Marketing APCS Prep, Chapter 18, Snooker Questions
Evaluations D&S Marketing APCS Prep, Chapter 20, Sample APCS Exam I
D&S Marketing APCS Prep, Chapter 20, Sample APCS Exam II
D&S Marketing APCS Prep, Chapter 20, Sample APCS Exam III
Class Tasks, Over a number of review periods students take multiple-choice snooker-style questions to learn to pay
attention to details and learn techniques for certain topics.
Lab
Assignments Sample AP exams are given partially at home and partially in class depending on available time.
A standard review where teachers drone on from one subject to the next is deadly for the teacher, worse
for the student and may lower students' scores dramatically. Students need to realize that a given topic is
Teaching worth reviewing. The snooker questions are ideal. Most snooker questions are missed by 75% of the
Strategies, students. Questions are missed because: 1) The topic is misunderstood. 2) The student made an silly
mistake. 3) The student was snookered. Review on the topic of questions that most students miss is very
Best effective.
Practices
If possible students come on a Saturday to take a complete sample AP Exam. This simulates the real
conditions the best. If this is not possible. The sample exams are broken up between home and school
and sometimes an entire exam may be taken at home.
Curriculum
Requirements CR#1, CR#2a, CR#2b, CR#3, CR#4, CR#5, CR#7
Teaching
This is an optional topic that is optional, because it is not tested. However, it is an important topic for
Strategies, student who will continue in computer science at the college-level and receive credit for the first semester.
Best
Practices
Curriculum
Requirements Not Applicable; After AP Exam
Class Tasks,
The End-Of-Semester Advanced Graphics Team Project
Lab Students work with a team on this large graphics assignment. There are no quizzes at this time. There is
Assignments no homework or chapter tests. Student devote all their time to this project creating some graphics project
like a video game.
Teaching Students enjoy working on this graphics project and information about the project is already distributed at
the first class of the second semester.
Strategies,
Best Students work on this assignment at the conclusion of chapter tests or lab assignment during the4 school
year. For this project up to four students may work together.
Practices
Curriculum
Requirements Not Applicable; After AP Exam