Course Description AP Computer Science A: College Board APCS-A Course Description 2014

Check Your Grades:  Grades

An in-depth course in Object-Oriented Programming (OOP) using the Java programming language.  
Computer Science concepts including classes, objects, functions, arrays, syntax, error-checking,
and others will be taught in a Java context.  
The class prepares students for the APCS-A Exam.

College Board Research: AP Exam Participation.pdf

Eclipse IDE:  Eclipse Program
To install on your own PC, you'll also need to install the following BEFORE Eclipse:
the Java JDK : jdk-10_windows-x64_bin.exe (for 64-bit)

Eclipse IDE Tutorial (on Youtube).
Eclipse IDE Tutorial (local version).
Remember: you are working in the Navigator view, NOT Package Explorer.


AP-Exams
(Free Response Questions)

Ignore GridWorld Questions
on exams from 2009-2014!
Skylit Annotated Solutions
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018

Table of Assignments:


Unit

BJP Chapter Reading
Topics

Problems, Exercises

1

Ch 1.1 - 1.2
Logistics
Programming/Java definition
println
methods

Ch 1, p. 54
Exercises 1-7

2

Ch 1.4-1.5, 2.1-2.2
Flow control
Expressions
Variables
Coding conventions

Ch 1, p. 55
Exercises 8-13
Ch 2, p. 117
self-check problems 1-4, 7-13

Ch 2, p. 124
Exercise 1

3

Ch 2.3
Definite loops
Nested loops

Ch 2, p. 124
Exercises 2-8, 9-16

4

Ch 2.4-2.5
Nested loops
Pseudocode
Class constants

Ch 2, p. 121-123
self-check problems 23-28
p. 130, problem 6: Space Needle project

5

Ch 3.1 (pp. 132-147)
Scope
Parameters

Ch 3, pp. 177-180
self-check problems 1-3, 7-8

Ch 3, pp. 183-184
Exercises 1-5

Ch 3 pp. 185-186 Programming Project #1:Christmas Trees

6

Ch 3G.1-3G.3
Using objects
DrawingPanel
DrawingPanel.java(place in your src folder)
Procedural decomposition with graphics

Ch 3G, pp. 216-217
self-check problems 1-4

Ch3G Exercises pp. 217-221. 1-9.

Ch3G Projects, pp. 222-225.
#1 (Concentric Circles)
#3 (Checkerboard)
 Use these coordinates:
  x, y, sizeSubFigures, #rows-cols, #Tiles
0, 0, 100, 1, 5
200, 25, 40, 5, 4
20, 120, 15, 10, 3

#5 (Cafe Wall)

7

Ch 3.3, 3.2 pp. 177-181
Interactive programs using Scanner
Packages
Math class
Return statement

self-check problems 4-6, 9-13

Ch 3, pp. 184
Exercises 6-10
Ch 3 pp. 186-187 Programming Projects
#2 Bank Ledger Sheet (should look like this)
#4 Triangle angles from sides
#5 Spherical Distance See SD Calculator. Implement the method on p. 416!

8

Ch 3.2, 4.1, 4.4, 4.5
Conditionals

Ch 4, pp. 289-293, 295-296 
self-check problems 1-11, 22-26
Ch 4, pp. 296-299
Exercises 1-5, 9-12, 16

Ch 4 Projects 
#1 Roman Numerals (p. 299) 
#7 Pascal's Triangle (p. 300; Output 14 rows, n = 0-13)
Ch3G Project #4, p. 224
Set DrawingPanel dimensions to800 x 500.
Velocity = 100 m/sec
Angle = 65 degrees
Steps = 100
Draw a GRID with black major gridlines every 100 pixels and gray minor gridlines every 25 pixels.
Use drawOval() to plot/draw each point. Recall that the first two parameters are the left and top of the point, not its center coordinates (the x and y points that the program calculates).  Therefore, you need to write your code so that it draws each point centered around the actual (x,y) values.
NOTE: Use the code on pp. 174-176 (from the Projectile Trajectory Case Study in Chapter 3.4) to generate about 100 points for the curve. Capture these in an array, and plot each point on your graph. DO NOT use a scanner object. Simply hard-code the values for VELOCITY, ANGLE (degrees), and # STEPS in their corresponding variables.
Your output should look like this:Projectile

9

Ch 4.2
1. Cumulative algorithms
2. Roundoff Error
3. Do not use == with double / float

Ch 4, pp. 293-295 
self-check problems 12-16
Ch 4, pp. 297-298
Exercises 6-8

Ch 4 Projects 
#2 Day of Week (p. 299) 
#4 B-Day (p. 300; in class!)
#6 Checksum (p. 300)

10

Ch 3.3, 4.3
Strings
-As Objects though it behaves like a primitive type)
-0-based indexing
-Exceptions
-As ImmutableObjects

Scanner
Text processing
-the char type
-escape sequencecharacters
-char type variables can be used in a switchstatement
-conversion of char toint
-printf()

Ch 3, pp. 181-182
self-check problems 14-15
Ch 3, pp. 185
Exercises 11-13
Ch 4, pp. 291-295 
self-check problems 7-11, 17-21
Ch 4, p. 299
Exercises 13-15
For Exercise 13, ignore "scanner". printPalindrome(String s) will take a string as an object.
For Exercise 15, use the built-in String methods: split() and replaceAll():
String[] list = s.split("\\s+");
String w = w.replaceAll("[^A-Za-z0-9-]", "")

Ch 5 Projects 
#1 Pig Latin! (p. 371). 

In the Ch4 Exercises and the Ch5 Project, do not use a scanner. Instead create string literals containing your test phrases.

11

Ch 5.1, 5.2
Indefinite loops
Fencepost, sentinel loops

Math.random()
Random Objects

Ch 5, pp. 357-362 
self-check problems 1-13
Ch 5, pp. 368-370
Exercises 1-5,8-11
#5: use the method below to generate a random letter (as a String):
public static String getRandomLetter() {
  String letters = "abcdefghijklmnopqrstuvwxyz";
  int index = (int)(Math.random() * 26);
  String ch = letters.substring(index,index+1);
  return ch;
}


Ch 5 Projects (p. 372)
#3 Guessing Game + Hint
#6 2-D Random Walk using DrawingPanel.  Stop when pixel walker reaches an edge.

12

Ch 6.1-6.4
File reading with Scanner
Line-based file input
(OPTIONAL)

 

13

Ch 6.5
Searching a file
(OPTIONAL)

 

14

Ch 7.1, 7.2
Arrays
pp. 425-460  READ!

Ch 7, pp. 491-492 
self-check problems 1-13
Ch 7, pp. 496
Exercises 1-5,7-17;
#5, 11 & 13 together in class.

15

Ch 7.3, 7.4, 7.5
Reference semantics
Arrays for tallying
2-D Arrays

Ch 7 Projects (p. 499)
#5 Tic-Tac-Toe (Fill array with X's and O's and use print() code p. 474 to display)
Playing Cards Project

16

Ch 5.3, 5.5
Boolean logic
Short-circuit Evaluation
Flags !!
DeMorgan's Laws
Assertions

Ch 5, pp. 362-362, 366-367 
self-check problems 14-22, 27-29
Ch 5, pp. 370-371
Exercises 13-18 (solve 18 both ways: with AND without using a String).

 

 

 

17

Ch 10.1 (pp. 629-646) 
ArrayLists
Basic ArrayList Methods(table p. 634):
add(), clear(), get(), remove(), set(), size()

ArraysToArrayLists.java

Ch 10, pp. 674-675 
Self-check problems 1-17. 
Answers: p. 1081.
Ch 10, pp. 675-677
Exercises 1-8, 13, 15-16
Extremely important exercises! We will go over all problems in in class!

18

Ch 8.1-8.4 (pp. 500-538)
Object-oriented programming
Classes
Constructors
Encapsulation

Ch 10.2 (pp. 646-658)
Comparable, Interface
Object composition

Ch 8, pp. 548-550 
Self-check problems 1-22. 
Answers: pp. 1070-1075.
Ch 8, pp. 550-552
Exercises 1-17
Ch 8 Projects (p. 553-554) 
#1 Rational Number Class: See pp. 264-265 for how to handle writing theIllegalArgumentException.
Ignore "Extra Challenge"

#2 Date Class

#3 GroceryList Class (you'll see s.t. similar on the AP exam)
Ch 10, p. 677 (ArrayLists applied to Classes!)
Exercises 17-19

19

Ch 9.1, 9.2
Inheritance
super-class
super 
equals 
instanceof

Ch 9, pp. 616-617 
Self-check problems 1-3. 
Answers: p. 1076.
Ch 9, pp. 623-626
Exercises 1-11
You will DEFINITELY see a problem like #9 on the AP exam

20

Ch 9.5
Interfaces
Abstract classes

 

21

Ch 9.2, 9.3, 9.6
Super class
Polymorphism

 

22

Ch 13.1-13.3
Complexity
Binary search
Sorts
Recursion