"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. Download for the week...
    1. Greenfoot download
  3. Administrative Items
    1. Daily Schedule (start/end, breaks, lunch)
    2. Daily sign-in sheet
    3. Certificates (reduced hour certificates if necessary)
    4. College credit/units
    5. Parking
    6. Restrooms
    7. Books from publishers (sets and singletons)
    8. Handouts - AP FRQs and Sample Exam Questions+Rubrics
    9. Laptops/WiFi
    10. Sharing files via Dropbox
    11. Questions/sharing ideas
  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 more!)
      1. What's new for APCS in 2015 and beyond...
        1. New AP API Quick Reference (what students get during the exam)
        2. "Out with GridWorld, in with AP Labs" (content tested, not lab specifics)
        3. AP Audit
          1. Attest to knowledge of AP Labs and download AP Labs (from audit site), OR
          2. Resubmit Audit Syllabus (can "adopt" a colleague's syllabus - minor changes are OK)
      2. AP Audit Online
      3. AP Teacher Community (EDG) (login using AP Audit username/password)
      4. Advances in AP
      5. AP Report to the Nation
      6. AP Credit Policy Who gives AP Credit?
      7. AP Summary Reports 2013
      8. AP Computer Science Principles' "Seven Big Ideas"
        1. Computing is a creative human activity that engenders innovation and promotes exploration
        2. Abstraction reduces information and detail to focus on concepts relevent to understanding and solving problems
        3. Data and information facilitate the creation of knowledge
        4. Algorithms are tools for developing and expressing solutions to computational problems
        5. Programming is a creative process that produces computational artifacts
        6. Digital devices, systems, and the networks that interconnect them enable and foster computational approaches to solving problems
        7. Computing enables innovation in other fields including science, social science, humanities, arts, medicine, engineering business
      9. AP Computer Science Principles Course
      10. More on the APCS Principles Course
      11. Equity in AP...
        1. Equity Issues in Computer Science
        2. Raising Awareness
    2. Why study Computer Science?
    3. Project 2020: A study on the future of Computational Science
  7. Teaching Methodologies / Strategies
“I hear, I know. I see, I remember. I do, I understand.”
- Confucius
  1. Why is "x" the unknown variable?
  2. "The Super Eight" (8 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
  3. Starting BlueJ
  4. Big Idea 1: Fundamentals (HW Set 1)
    1. Example Program 1 (primitives: int, double, boolean & class String)
    2. 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
    3. "How low can you go..?" Testing the bounds of primitives and the "clock effect"
    4. if statements and the "password program"
    5. for loops
    6. 1D Array[] of ints
    7. 1D Array[] of Strings
    8. Budget Array Manipulatives
  5. Big Idea 2: The Class Model (HW Set 2)
    1. The "MySong" class
    2. The "Big 3" - instance variables, constructors (initialArtist, initialTitle), toString()
    3. The "Dynamic Duo" (getter and setter methods)
  6. Example Program 1: MySong class with one/multi-arg constructor (artist = initialArtist)
  7. Example Program 2: MySong with getters/setters (artist = newArtist)
  8. Example Program 3: MySong with toString()
  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 and traversal)
    7. The "Class Model"

“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: Class Methods (HW Set 3 - Focus: Algorithmic Processing - "The Brain" )
  3. MySong Example (minutes & seconds to totalSeconds)
  4. AP Exam problem: 2010 FRQ2 - APLine
  5. Grading 2010 FRQ2 - APLine
  6. Teaching point: What instance variables do we really need?
  7. The AP Exam
  8. APCS Exam Index (pdf)   (xls)
  9. AP Exams 1999-2015
  10. AP Score Breakpoints
  11. APCS Excel-based Grading Rubrics (.zip)
  12. AP Grading Scale Converter (pdf)   (xls)
  13. AP Lab 1: Magpie: Strings and 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"
  18. Big Idea 4: The Class Composition Model (HW Set 4)
  19. ArrayLists
    1. Creating ArrayLists of Strings
    2. Introduce "for-each" loops
    3. ArrayLists and the "for loop removal problem"
  20. MySong with Arrays and ArrayLists
    1. Arrays of MySongs
    2. ArrayList of MySongs
    3. MyPod of MySongs
  21. In class project - 2011 FRQ1 Sound
  22. Grading 2011 FRQ1 Sound
  23. "Where's Waldo?" Where's the class design error?
"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. Aussie School Voicemail...
  2. Big Idea 5: 2D Arrays (HW Set 5)
    1. 2D Array "LewTube" Tutorial
    2. 2D arrays are "arrays of arrays" (use for-each loop with 2D arrays)
    3. Creating 2D Arrays: RC Cola! (row, column; not x, y)
    4. Traversing 2D Arrays with "nested for loops"
    5. 2D Multiplication Table MultiplicationTable.html Solution (updated: 30 Nov 13)
    6. 2D Array of MySongs - "Jukebox"
    7. 2D Parity Check - Data Error Detection/Correction
    8. 2D Car Simulation - traversing rows in reverse
    9. 2D WordSearch Filler
    10. 2D Tic-Tac-Toe
    11. QR Codes
    12. 2D Memory Game
    13. Warehouse Robots...2D Array of Robots?
  3. Big Idea 6: Putting it all together...Solving AP Problems (HW Set 6)
  4. In class project - 2014 FRQ3 "SeatingChart"
  5. Grading 2014 FRQ3 "SeatingChart" (page 7)
  6. Checkpoint 2: Mid-November
    1. Class Composition
    2. 2D Arrays

“Only those who are asleep make no mistakes”
- Ingvar Kamprad, founder of IKEA, world’s largest furniture brand
  1. Algorithms, milliseconds, and the US Stock Market (aired: March 2014)
  2. AP Lab 2: Picture: 2D Arrays with Inheritance/Interfaces
    (see gotJava link at bottom of page)
  3. 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 (
  4. Brainstormming time: Picture Project extension ideas? Data compression?
  5. Let's review what we know so far...
    1. The "Class Model"
    2. The "Class Composition Model"
  6. Big Idea 7: Inheritance and Abstract Classes
  7. The next model: The "Inheritance Model"
  8. Inheritance Project Progression "MyDevice" BlueJ Project (zip)
  9. 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)
  10. In class project 2004 A2 Pet
  11. AP Grading: 2004 A2 Pet
“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. Teaching Center
  2. Big Idea 8: Interfaces
  3. Interfaces (a collection of abstract method(s) that a class MUST implement; classes implementing interface must pass the "does-a" test)
  4. Key teaching point: Concrete class, abstract classes, AND interfaces can be used as object references, argument types for methods, and return types for methods!
  5. Class Composition("has-a"), Inheritance("is-a"), Interface ("does-a")
  6. Checkpoint 3: Early Mid-December
    1. Inheritance
    2. Abstract Classes
    3. Interfaces
    4. Polymorphism
    5. Project Proposals

"Make things as simple as possible, but no simpler."
    - Albert Einstein
  1. In class project 2014 A4 MenuItem
  2. Grading 2014 FRQ4 "MenuItem" (page 12)
  3. AP Lab 3: Elevens: Inheritance and Abstract Classes
    (see gotJava link at bottom of page)
  4. 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)
“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 ArrayLists / 1D & 2D arrays, 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!!
  12. Evaluations
  13. Certificates
  14. Final words
  15. Thanks for coming!!

apcentral   ap quick reference   curriculumstudents   gotjavateachers

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