"I not only use all the brains that I have, but all that I can borrow."
- Woodrow Wilson
- Introduction (interview your neighbor)
- School (name of school, location, demographics)
- Have you taught APCS or any programming class before? How many years?
- Goal(s) for the workshop?
- Your favorite dessert?
- Daily Schedule (start/end, breaks, lunch)
- Daily sign-in sheet / certificates
- College credit/units
- Cell phones
- Books from publishers (sets and singletons)
- Handouts - AP FRQs, Rubrics, Sample Exam Questions, & AP Labs
- Sharing files via Dropbox
- Workshop Source Code will be archived under "References" tab
- What do we want to teach? - Seinfeld says...
- Intelligence Model
Let's start here...
- "Crystallized" and "Fluid" Intelligence
- "Left Brain/Right Brain" AND "Up Brain/Down Brain"
- APCentral (for all things AP)
- Course Home Pages
- Released Exams
- AP Audit Online
- AP Scores Online
- AP Score Breakpoints
- Advances in AP
- AP Report to the Nation
- AP Credit Policy Who gives AP Credit?
- AP Summary Reports 2012
- AP Computer Science Principles Course
- Equity Issues in Computer Science
- Stanford Rethinks CS Core Curriculum
- Why study Computer Science?
- Project 2020: A study on the future of Computational Science
- Teaching Methodologies / Strategies (a link to the "Pedagogy" page)
“I hear, I know. I see, I remember. I do, I understand.”
- "The Super Eight" (The "Big Ideas")
- Class Design
- Class Methods (algorithms)
- Class Composition
- 2D Arrays
- AP Programs
- Inheritance and Abstract Classes
- Starting BlueJ
- Big Idea 1: Fundamentals (HW Set 1)
- Let's write our first program
- Primitives (int, double, and boolean)
- Strings and the "new" operator
- "lew" recommends "new"
- It reinforces that String is an object
- It reinforces that String has methods (API) that can be used
- 1D Array of ints
- 1D Array of Strings
- "How low can you go..?" Testing the bounds of primitives and the "clock effect"
- if statements and the "password program"
- for loops
- Big Idea 2: The Class Model (HW Set 2)
- The "MySong" class
- The "Big 3" (instance variables, constructors, toString()
- The "Dynamic Duo" (getter and setter methods)
- The "Brain" (processor methods)
- Big Idea 3: Class Methods (HW Set 3)
- "Where's Waldo?" Where's the class design error?
- AP Exam problem: 2010 #2 - APLine
- Grading 2010 #2 - APLine
- Teaching point: Which instance variables do we really need?
- Algorithmic Programming ideas: Project Euler
- Checkpoint 1: Mid-October
- Primitives: int, double, boolean, String
- 1D Arrays
- if statements/for loops
- 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
- AP Summer Institute Workshop Survey by Fran Trees
- Algorithms at work: Filtering Bubbles
- Big Idea 4: The Class Composition Model (HW Set 4)
- Creating ArrayLists of Integers (Wrapper Classes - Ironman!)
- Introduce "for-each" loops
- Creating ArrayLists of Strings
- The ArrayList "for loop removal problem"
- MySong with Arrays and ArrayLists
- Arrays of MySongs
- ArrayList of MySongs
- MyPod of MySongs
- How'd they make an ArrayList anyway? (docjar website)
- In class project - 2011 FRQ1 Sound
- Whiteboard problem definition
- Creation of SoundDriver
- Grading 2011 FRQ1 Sound
- AP Lab 1: Magpie (Strings and Algorithms)
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"
- Algorithms, milliseconds, and the US Stock Market (aired: March 2014)
- Big Idea 5: 2D Arrays (HW Set 5)
- Creating 2D Arrays: RC Cola! (row, column; not x, y)
- Traversing 2D Arrays with "nested for loops"
- 2D Multiplication Table MultiplicationTable.html Solution (updated: 30 Nov 13)
- 2D Array of MySongs - "Jukebox"
- 2D Parity Check - Data Error Detection/Correction
- 2D Car Simulation - traversing rows in reverse
- 2D WordSearch Filler
- 2D Tic-Tac-Toe
- QR Codes (encoding/decoding)
- 2D Memory Game
- Warehouse Robots...2D Array of Robots?
- AP Program 2013 FRQ4 - SkyView
- Grading 2013 FRQ4 SkyView
- "Nine Algorithms That Changed The Future"
- Big Idea 6: Putting it all together...Solving AP Problems (HW Set 6)
- In class project - 2010 A1 CookieOrder
- Whiteboard problem definition
- Creation of WordListDriver
- Grading 2010 A1 CookieOrder
- The grading or "reading" process
- Applying to be a reader
- Reflections of an AP Reader
- Rubrics/Canonical (standard) solutions @ APCentral!
- AP Free Response Questions (FRQ) Index
- AP Exam format
- 4 Free Response Questions (FRQ): 1:45 min (26 min/question)
- 40 MC questions: 1:15 min
- No deduction for guessing on MC
- FRQ and MC equally weighted
- Excel Based Grading Rubrics (.zip)
- Scaling Test Scores
Here is the an Excel based worksheet to convert grades received on an AP exam question to a class grade.
- Checkpoint 2: Mid-November
- 2D Arrays
- Class Composition
“Only those who are asleep make no mistakes”
- Ingvar Kamprad, founder of IKEA, world’s largest furniture brand
- Let's review what we know so far...
- The "Class Model"
- The "Class Composition Model"
- Big Idea 7: Inheritance and Abstract Classes
- The next model: The "Inheritance Model"
- Inheritance Project Progression "MyDevice" BlueJ Project (zip)
- Key Teaching Points
- "factor out" common elements
- "extends", "super", "super.MethodCall()"
- Subclasses must pass "is-a" test (MyDevices progression)
- Abstract Classes (classes that act as "placeholders" in the inheritance hierarchy)
- Polymorphism (refering to a subclass object with a superclass reference)
- Interfaces (a collection of abstract method(s) that a class MUST implement; classes implementing interface must pass the "does-a" test)
- In class project 2004 A2 Pet
- Whiteboarding problem
- Teaching Points
- super() call in constructors (must be first line in constructor)
- Constructor call order (top-down)
- Method call order (bottom - up)
- Abstract classes / abstract methods
- AP Grading: 2004 A2 Pet
- Big Idea 8: Interfaces
- AP 2012 #3 Horse
- AP 2012 #3 Horse Solution
- Key teaching point: Concrete class, abstract classes, AND interfaces can be used as object references, argument types for methods, and return types for methods!
- Checkpoint 3: Early Mid-December
- Abstract Classes
- 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)
- AP Lab 2: Picture (Focus: 2D Arrays with Inheritance/Interfaces)
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
- Picture Project idea: Data Compression
"Make things as simple as possible, but no simpler."
- Albert Einstein
- AP Lab 3: Elevens (Inheritance and Abstract Classes)
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)
- 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
- Searching and Sorting Algorithms
- Sequential Search - Brute Force: traverse array element by element
- Binary Search - Array must be sorted
- Sequential Sort - "Triple S" ("Search for the smallest and swap")
- Insertion Sort - Insert the smallest and "bump"
- Merge Sort - Recursive Sort
- Sorting Animation
- Role Plays - Let students teach the lesson
- Lew's Searching/Sorting Project
- Search/Sort Rubric (pdf) (xls)
- Search/Sort Project Samples (zip)
- What time is it? (by Ben Chun) System.CurrentTimeMillis ( or System.nanoTime() )
- Number Systems: Counting down the days until the AP Exam in dec, oct, hex, bin!
- Recursion/Exceptions - Barron's Book
- The Top Ten (Pedagogy / Content) List
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!!
- Final words
- Thanks for coming!!