"I not only use all the brains that I have, but all that I can borrow."
- Woodrow Wilson
  1. Introduction (interview your neighbor)
    1. Name
    2. School (name/location of school)
    3. How long have you taught? Subject(s) taught?
    4. Goal(s) for the workshop?
    5. Your favorite food?
  2. Downloads for the week...
    1. BlueJ download
    2. Greenfoot download
  3. Administrative Items
    1. Daily Schedule (start/end, breaks, lunch)
    2. Daily sign-in sheet
    3. Name placards
    4. Certificates (reduced hour certificates if necessary)
    5. College credit/units
    6. Parking
    7. Restrooms
    8. Books from publishers (sets and singletons)
    9. Handouts - AP FRQs and Sample Exam Questions+Rubrics
    10. Laptops/WiFi
    11. Sharing files via Dropbox
    12. Questions/sharing ideas (Dropbox folder)
  4. What do we want to teach? - Seinfeld says...
  5. Intelligence Model ("Crystallized" and "Fluid" Intelligence)
  6. Let's start here...
    1. APCentral (course home pages, exam questions, and the kitchen sink...)
    2. AP Audit Online
      1. Agreement to teach AP Computer Science content
      2. Teacher submits Audit Syllabus (can "adopt" a colleague's syllabus - minor changes are OK)
      3. Once audit is reviewed and approved, teacher can download sample exams and released multiple choice questions
      4. Can check students AP scores by mid-July
    3. AP Teacher Community (EDG) (login using AP Audit username/password)
    4. AP Report to the Nation
    5. AP Credit Policy Who gives AP Credit?
    6. Equity in AP...
      1. Equity Issues in Computer Science
      2. Raising Awareness
  7. Why study Computer Science?
  8. Teaching Methodologies / Strategies
“I hear, I know. I see, I remember. I do, I understand.”
- Confucius
  1. Why is "x" the unknown variable?
  2. "Pick Six" (The 6 Big Ideas)
    1. Fundamentals
    2. Class Design
    3. Class Methods (algorithms)
    4. Class Composition
    5. Inheritance (featuring Abstract Classes/Interfaces)
    6. 2D Arrays
  3. Starting BlueJ
  4. Big Idea 1: The Fundamentals  (blank) (HW Set 1)
    1. Example Program 1 (primitives: int, double, boolean & class String)
    2. Strings and the "new" operator
      1. "lew" recommends "new" (at least initially)
      2. Using "new" reinforces that String is an object
      3. Reinforces that Strings can be set to "null" like any other object
      4. Strings should be compared to other Strings with the .equals() method (and not == which are used with primitives)
      5. It reinforces that String has methods (API) that can be used
    3. if statements and the "password program"
    4. for loops
    5. while loops
    6. 1D Array[] of ints
    7. 1D Array[] of Strings
  5. Big Idea 2: The Class Model  (blank) (HW Set 2)
    1. The "Song" class
    2. The "Big 3" - instance variables, constructors (initialArtist, initialTitle), toString()
  6. Example Program 1: Song class with one/multi-arg constructor (artist = initialArtist)
  7. Example Program 2: Song with toString()
  8. Example Program 3: "The Big 3" with Spaceships and Greenfoot
  9. Checkpoint 1: Mid-October
    1. Primitives: int, double, boolean
    2. Class String
    3. if statements/for loops
    4. Relational Operators (>,<, >=, <=, ==, !=)
    5. Boolean Operators (&&, || )
    6. 1D Arrays (declaration, population, and traversal)
    7. The Class Model ("The Big 3")

“An expert is a person who has made all the mistakes that can made in a very narrow field.”
- Niels Bohr, Danish Physicist and Nobel Prize winner
  1. Algorithms at work: Filtering Bubbles
  2. Big Idea 3: The Class Method Model  (blank) (HW Set 3)
  3. Example Program 1: "The "Dynamics Duo" - Song with getters/setters (artist = newArtist)
  4. Example Program 2: "The "Brain" - applyDiscount()
  5. AP Exam Question: 2010 FRQ2 - "APLine" (Class Design)
  6. Teaching point: What instance variables do we really need?
  7. Albert Einstein and static methods (bluej zip file)
  8. The AP Computer Science Exam and Reading
  9. APCS Exam Index (pdf)   (xls)
  10. Where can I find released "Free Response Questions" (FRQs)?
    • (answer: apcentral website...see link at bottom of page)
  11. AP Score Breakpoints
  12. AP Grading Scale Converter (pdf)   (xls)
  13. AP Magpie Lab: Strings and Algorithms: String algorithms, conditionals, iteration
    (see gotJava link at bottom of page)
  14. Activity 1: Getting acquainted with Chatbots
    Activity 2: Introduction to the Magpie Class
    Activity 3: Better Keyword Detection
    Activity 4: Responses that Transform Statements
    Activity 5: Arrays and the Magpie
  15. Algorithmic Programming ideas: Project Euler
  16. Algorithmic Programming ideas: Project Rosalind
  17. "Nine Algorithms That Changed The Future"
"The first 90% of code is responsible for the first 90% of debugging, the last 10% of code is responsible for the other 90% of debugging"
- Unknown
  1. NASA and Google: Quantum Computing
  2. Big Idea 4: The Class Composition Model  (blank) (HW Set 4)
  3. Example Program 1: MyPhone "has" an array of Songs
  4. Example Program 2: MyPhone (upgrade) "has" an ArrayList of Songs (introduce for-each loop)
  5. Example Program 3: The "for-loop" removal problem
  6. How'd they make an ArrayList anyway? (docjar website)
  7. AP Exam Question: 2010 FRQ1 - "CookieOrder" (Class Composition)
  8. AP Exam Question: 2017 FRQ1 - "Digits" (Class Composition)
  9. AP Elevens Lab: Class Composition / Inheritance
  10. Activity 1: Design and create Card Class
    Activity 2: Initial Design of a Deck Class
    Activity 3: Shuffling Cards in a Deck
    Activity 4: Adding a Shuffle method to the Deck Class
    Activity 5: Testing with Assertions (optional)
    Activity 6: Playing Elevens
    Activity 7: Elevens Board Class Design
    Activity 8: Using an Abstract Board Class
    Activity 9: Implementing the Elevens Board (look for "11 pairs" or "JQK triplets")
    Activity 10: Thirteens Board (optional)
    Activity 11: Simulation of Elevens (optional)

“Only those who are asleep make no mistakes”
- Ingvar Kamprad, founder of IKEA, world’s largest furniture brand
  1. Michael Lewis: Is the Stock Market Rigged?
  2. Big Idea 5: Inheritance and Abstract Classes
  3. Inheritance Project Progression Inheritance (
  4. Inheritance Project Progression Diagrams Inheritance Progression Diagrams (.pdf)
  5. Program Progression
    1. Inheritance 1: Setup motivation for an inheritance hierarchy
    2. Inheritance 2: Setting up an inheritance Hierarchy
    3. Inheritance 3: Multi-level inheritance hierarchies
    4. Inheritance 4: Abstract Classes and methods and motivation for interfaces
    5. Inheritance 5: Interfaces
  6. The next model: The "Inheritance Model"  (blank)
  7. Key Teaching Points
    1. "factor out" common elements
    2. "extends", "super()", "super.methodCall()"
    3. Constructor call order (top-down)
    4. Method call order (bottom - up)
    5. Subclasses must pass "is-a" test (MyDevices progression)
    6. Abstract Classes (classes that act as "placeholders" in the inheritance hierarchy)
    7. Polymorphism (reference to a subclass object using a superclass reference)
    8. Key teaching point: Concrete class, abstract classes, AND interfaces can be used as object references, argument types for methods, and return types for methods!
    9. Cannot declare instance varibles in an interface
    10. Class Composition("has-a"), Inheritance("is-a"), Interface ("is-a / does-a")
  8. Checkpoint 2: Mid-December
    1. Class Composition
    2. Inheritance
    3. Abstract Classes
    4. Interfaces
    5. Polymorphism
    6. Project Proposals
“Perfection is not when there is no more to add, but no more to take away.”
- Antione De Saint-Exupery, pioneer of international postal flight and author of Le Petit Prince (The Little Prince)
  1. AP Exam Question: 2017 FRQ2 - "StudyPractice" (Inheritance/Interface)
  2. AP Exam Question: 2015 FRQ4 - "NumberGroup" (Inheritance)
  3. AP Exam Question: 2014 FRQ4 - "Trio" (Inheritance)
  4. AP Exam Question: 2012 FRQ3 - "Horse" (Inheritance)

"Make things as simple as possible, but no simpler."
    - Albert Einstein
  1. Amazon Kiva Robots
  2. Big Idea 6: 2D Arrays (HW Set 6)
  3. Example Program 1: Multiplication Table (nested for loops, nested for-each loops)
  4. The 2D Array Model  (blank) (HW Set 6)
  5. Programming Ideas
    1. 2D Array of MySongs - "Jukebox"
    2. 2D Parity Check - Data Error Detection/Correction
    3. 2D Car Simulation - traversing rows in reverse
    4. 2D WordSearch Filler
    5. 2D Tic-Tac-Toe
    6. Minesweeper
    7. 2D Memory Game
  6. AP Exam Question: 2013 FRQ4 - "SkyView" (2D Arrays)
  7. AP Exam Question: 2017 FRQ4 - "Position" (Class Composition/static methods)
  8. AP Exam Question: 2015 FRQ1 - "DiverseArray" (Array Analysis/static methods)
  9. AP Exam Question: 2014 FRQ3 - "SeatingChart" (2D Arrays/Class Composition)
  10. AP Exam Question: 2016 FRQ3 - "Crossword" (2D Arrays/Class Composition)
  11. AP Exam Question: 2015 FRQ3 - "SparseArray" (Class Composition)
  12. AP Picture Lab: 2D Arrays
  13. Activity 1: Introduction to digital pictures and color
    Activity 2: Picking a color (
    Activity 3: Exploring a picture (
    Activity 4: 2D Arrays in Java (
    Activity 5: Modifying a picture (
    Activity 6: Mirroring pictures (
    Activity 7: Mirroring part of a picture (
    Activity 8: Creating collages (
    Activity 9: Simple edge detection (
“The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency.”
- Bill Gates
  1. A review of the 2015 Released MC Exam (pdf)   (xls)
  2. Algorithm Analysis Presentations and Role Plays
    1. Sequential Search - Brute Force: traverse array element by element
    2. Binary Search - Array must be sorted: Divide Array into two
    3. Sequential Sort - "Triple S" ("Search for the smallest and swap")
    4. Insertion Sort - Insert the smallest and "bump"
    5. Merge Sort - Recursive Sort: divide into single elements
    6. Searching and Sorting - Barron's Book examples & BlueJ project (zip)
    7. Number Systems - decimal, octal, hexadecimal, binary
    8. Recursion - Barron's Book examples & BlueJ project (zip)
      Schram Recursion Exercises
    9. Exceptions - Barron's Book examples
    10. Loop Analysis - for loop/if statement combo
    11. Loop Analysis - nested for loop/if statement combo
    12. Boolean Expression Analysis - Truth Tables
  3. Lew's Searching/Sorting Project
  4. Search/Sort Rubric (pdf)  (xls)
  5. Search/Sort Project Samples (zip)
  6. Sorting Animations
  7. 15 Sorting Algorithms in 6 minutes
  8. The Top Ten (Pedagogy / Content) List
  9. 10. Daily Planner
    9. APCS Course Description (P.61)
    8. Major test areas (Class Design, Algorithms with ArrayLists / 1D & 2D arrays, Class Composition, Inheritance/Polymorphism)
    7. Stick to the AP API
    6. Emphasize Fundamentals
    5. Crystallized vs. Fluid Intelligence (Java syntax vs. algorithmic analysis)
    4. Formative Assessment (lots of it!)
    3. Large-Scale Project
    2. Mind, Body, Soul
    1. HAVE FUN!!
  10. Evaluations
  11. Certificates
  12. Final words
  13. Thanks for coming!!

apcentral frqs   ap quick reference
curriculum 2.0students   gotjava 2.0teachers

*AP is a registered trademark of the College Board.
© 2003-2018 Michael Lew