"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 of school, location, demographics)
    3. Have you taught APCS or any programming class before? How many years?
    4. Goal(s) for the workshop?
    5. Your favorite dessert?
  2. Administrative Items
    1. Daily Schedule (start/end, breaks, lunch)
    2. Daily sign-in sheet / certificates
    3. College credit/units
    4. Parking
    5. Restrooms
    6. Cell phones
    7. Books from publishers (sets and singletons)
    8. Handouts - AP FRQs, Rubrics, Sample Exam Questions, & AP Labs
    9. Laptops/WiFi
    10. Sharing files via Dropbox
    11. Workshop Source Code will be archived under "References" tab
  3. What do we want to teach? - Seinfeld says...
  4. Intelligence Model
    • "Crystallized" and "Fluid" Intelligence
    • "Left Brain/Right Brain" AND "Up Brain/Down Brain"
  5. Let's start here...
    1. APCentral (for all things AP)
      1. Course Home Pages
      2. Released Exams
      3. AP Audit Online
      4. AP Scores Online
      5. AP Score Breakpoints
      6. Advances in AP
      7. AP Report to the Nation
      8. AP Credit Policy Who gives AP Credit?
      9. AP Summary Reports 2012
      10. AP Computer Science Principles Course
      11. Equity Issues in Computer Science
    2. Stanford Rethinks CS Core Curriculum
    3. Why study Computer Science?
    4. Project 2020: A study on the future of Computational Science
    5. Teaching Methodologies / Strategies (a link to the "Pedagogy" page)
“I hear, I know. I see, I remember. I do, I understand.”
- Confucius
  1. "The Super Eight" (The "Big Ideas")
    1. Fundamentals
    2. Class Design
    3. Class Methods (algorithms)
    4. Class Composition
    5. 2D Arrays
    6. AP Programs
    7. Inheritance and Abstract Classes
    8. Interfaces
  2. Starting BlueJ
  3. Big Idea 1: Fundamentals (HW Set 1)
    1. Let's write our first program
    2. Primitives (int, double, and boolean)
    3. Strings and the "new" operator
      1. "lew" recommends "new"
      2. It reinforces that String is an object
      3. It reinforces that String has methods (API) that can be used
    4. 1D Array[] of ints
    5. 1D Array[] of Strings
    6. "How low can you go..?" Testing the bounds of primitives and the "clock effect"
    7. if statements and the "password program"
    8. for loops
  4. Big Idea 2: The Class Model (HW Set 2)
    1. The "MySong" class
    2. The "Big 3" (instance variables, constructors, toString()
    3. The "Dynamic Duo" (getter and setter methods)
    4. The "Brain" (processor methods)
  5. Big Idea 3: Class Methods (HW Set 3)
  6. "Where's Waldo?" Where's the class design error?
  7. AP Exam problem: 2010 #2 - APLine
  8. Grading 2010 #2 - APLine
  9. Teaching point: Which instance variables do we really need?
  10. Algorithmic Programming ideas: Project Euler
  11. Checkpoint 1: Mid-October
    1. Primitives: int, double, boolean, String
    2. 1D Arrays
    3. if statements/for loops
    4. The "Class Model"

“An expert is a person who has made all the mistakes that can made in a very narrow field.”
- Neils Bohr, Danish Physicist and Nobel Prize winner
  1. AP Summer Institute Workshop Survey by Fran Trees
  2. Algorithms at work: Filtering Bubbles
  3. Big Idea 4: The Class Composition Model (HW Set 4)
  4. ArrayLists
    1. Creating ArrayLists of Integers (Wrapper Classes - Ironman!)
    2. Introduce "for-each" loops
    3. Creating ArrayLists of Strings
    4. The ArrayList "for loop removal problem"
  5. MySong with Arrays and ArrayLists
    1. Arrays of MySongs
    2. ArrayList of MySongs
    3. MyPod of MySongs
  6. How'd they make an ArrayList anyway? (docjar website)
  7. In class project - 2011 FRQ1 Sound
    1. Whiteboard problem definition
    2. Creation of SoundDriver
  8. Grading 2011 FRQ1 Sound
  9. AP Lab 1: Magpie (Strings and Algorithms)
  10. Magpie Chatbot Lab Student Manual (pdf)
    MagPie Lab BlueJ Projects (link to gotJava)
    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
"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. Algorithms, milliseconds, and the US Stock Market (aired: March 2014)
  2. Big Idea 5: 2D Arrays (HW Set 5)
    1. Creating 2D Arrays: RC Cola! (row, column; not x, y)
    2. Traversing 2D Arrays with "nested for loops"
    3. 2D Multiplication Table MultiplicationTable.html Solution (updated: 30 Nov 13)
    4. 2D Array of MySongs - "Jukebox"
    5. 2D Parity Check - Data Error Detection/Correction
    6. 2D Car Simulation - traversing rows in reverse
    7. 2D WordSearch Filler
    8. 2D Tic-Tac-Toe
    9. QR Codes (encoding/decoding)
    10. 2D Memory Game
    11. Warehouse Robots...2D Array of Robots?
    12. AP Program 2013 FRQ4 - SkyView
    13. Grading 2013 FRQ4 SkyView
  3. "Nine Algorithms That Changed The Future"
  4. Big Idea 6: Putting it all together...Solving AP Problems (HW Set 6)
  5. In class project - 2010 A1 CookieOrder
    1. Whiteboard problem definition
    2. Creation of WordListDriver
  6. Grading 2010 A1 CookieOrder
  7. The grading or "reading" process
    1. Applying to be a reader
    2. Reflections of an AP Reader
    3. Rubrics/Canonical (standard) solutions @ APCentral!
  8. AP Free Response Questions (FRQ) Index xls  pdf
  9. AP Exam format
    1. 4 Free Response Questions (FRQ): 1:45 min (26 min/question)
    2. 40 MC questions: 1:15 min
    3. No deduction for guessing on MC
    4. FRQ and MC equally weighted
  10. Excel Based Grading Rubrics (.zip)
  11. Scaling Test Scores
  12. Here is the an Excel based worksheet to convert grades received on an AP exam question to a class grade. (pdf)  (xls)
  13. Checkpoint 2: Mid-November
    1. 2D Arrays
    2. Class Composition

“Only those who are asleep make no mistakes”
- Ingvar Kamprad, founder of IKEA, world’s largest furniture brand
  1. Let's review what we know so far...
    1. The "Class Model"
    2. The "Class Composition Model"
  2. Big Idea 7: Inheritance and Abstract Classes
  3. The next model: The "Inheritance Model"
  4. Inheritance Project Progression "MyDevice" BlueJ Project (zip)
  5. Key Teaching Points
    1. "factor out" common elements
    2. "extends", "super", "super.MethodCall()"
    3. Subclasses must pass "is-a" test (MyDevices progression)
    4. Abstract Classes (classes that act as "placeholders" in the inheritance hierarchy)
    5. Polymorphism (refering to a subclass object with a superclass reference)
    6. Interfaces (a collection of abstract method(s) that a class MUST implement; classes implementing interface must pass the "does-a" test)
  6. In class project 2004 A2 Pet
    1. Whiteboarding problem
    2. Teaching Points
      1. super() call in constructors (must be first line in constructor)
      2. super.methodCall()
      3. Polymorphism
    3. super.super.methodCall()...NOT!
    4. Constructor call order (top-down)
    5. Method call order (bottom - up)
    6. Abstract classes / abstract methods
  7. AP Grading: 2004 A2 Pet
  8. Big Idea 8: Interfaces
  9. AP 2012 #3 Horse
  10. AP 2012 #3 Horse Solution
  11. Key teaching point: Concrete class, abstract classes, AND interfaces can be used as object references, argument types for methods, and return types for methods!
  12. Checkpoint 3: Early Mid-December
    1. Inheritance
    2. Abstract Classes
    3. Interfaces
    4. Polymorphism
    5. 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 Lab 2: Picture (Focus: 2D Arrays with Inheritance/Interfaces)
  2. Picture Lab Student Manual (pdf)
    Picture Lab BlueJ Projects (link to gotJava)
    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 (
  3. Picture Project idea: Data Compression

"Make things as simple as possible, but no simpler."
    - Albert Einstein
  1. AP Lab 3: Elevens (Inheritance and Abstract Classes)
  2. Elevens Lab Student Manual (pdf)
    Elevens Lab BlueJ Projects (link to gotJava)
    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
    Activity 10: Thirteens Board (optional)
    Activity 11: Simulation of Elevens (optional)
  3. MyPod with MyApps! (Chatbot, Picture(Editor), and Elevens Game)
“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. Searching and Sorting Algorithms
    1. Sequential Search - Brute Force: traverse array element by element
    2. Binary Search - Array must be sorted
    3. Sequential Sort - "Triple S" ("Search for the smallest and swap")
    4. Insertion Sort - Insert the smallest and "bump"
    5. Merge Sort - Recursive Sort
  2. Sorting Animation
  3. Role Plays - Let students teach the lesson
  4. Lew's Searching/Sorting Project
  5. Search/Sort Rubric (pdf)  (xls)
  6. Search/Sort Project Samples (zip)
  7. What time is it? (by Ben Chun) System.CurrentTimeMillis ( or System.nanoTime() )
  8. Number Systems: Counting down the days until the AP Exam in dec, oct, hex, bin!
  9. Recursion/Exceptions - Barron's Book
  10. The Top Ten (Pedagogy / Content) List
  11. 10. Daily Planner
    9. APCS Course Description (P.61)
    8. Major test areas (Class Design, Algorithms with ArrayList / 1D & 2D arrays, Inheritance/Polymorphism)
    7. Acorn Book (AP Computer Science Teacher reference)
    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!!
  12. Evaluations
  13. Certificates
  14. Final words
  15. Thanks for coming!!
“As to methods there may be a million and then some, but principles are few. The man who grasps principles can successfully select his own methods. The man who tries methods, ignoring principles, is sure to have trouble.”
- Ralph Waldo Emerson

  1. APCentral site
  2. APCS Exam Questions (from the APCentral site)
  3. AP Computer Science Subset (with GridWorld)
  4. AP Computer Science Subset (with AP Labs)
  5. APCS API (with GridWorld - 2013 Exam)
  6. APCS API (with AP Labs - 2014 Exam)
  7. The complete Java API (html)
  8. gotJava: Head First Java Resources
  9. Mike's class website

Summer Institute Source Code

Silver State



curriculum   gotjava  

*AP is a registered trademark of the College Board.
© 2008-2014 Michael Lew