"I not only use all the brains that I have, but all that I can borrow."
- Woodrow Wilson
- Introduction (interview your neighbor)
- School (name/location of school)
- How long have you taught? Subject(s) taught?
- Goal(s) for the workshop?
- Your favorite food?
- 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 and Sample Exam Questions+Rubrics
- Sharing files via Dropbox
- Questions/sharing ideas
- What do we want to teach? - Seinfeld says...
- Intelligence Model ("Crystallized" and "Fluid" Intelligence)
Let's start here...
- APCentral (course home pages, exam questions, and more!)
- What's new for APCS in 2014 and beyond...
- New AP API Quick Reference (what students get during the exam)
- "Out with GridWorld, in with AP Labs" (content tested, not lab specifics)
- AP Audit
- Attest to knowledge of AP Labs and download AP Labs (from audit site), OR
- Resubmit Audit Syllabus (can "adopt" a colleague's syllabus - minor changes are OK)
- Clarification: 2D arrays are "arrays of arrays" (use for-each loop with 2D arrays)
- AP Audit Online
- AP Teacher Community (EDG) (login using AP Audit username/password)
- Advances in AP
- AP Report to the Nation
- AP Credit Policy Who gives AP Credit?
- AP Summary Reports 2012
- Equity in AP...
- Equity, Access, Recruitment, and Retention
- Raising Awareness
- Computer Science
- Stanford Rethinks CS Core Curriculum
- Why study Computer Science?
- Project 2020: A study on the future of Computational Science
- Teaching Methodologies / Strategies
“I hear, I know. I see, I remember. I do, I understand.”
- "The Super Eight" (The "Eight 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)
- Example Program 1 (primitives: int, double, boolean; class String)
- 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
- "How low can you go..?" Testing the bounds of primitives and the "clock effect"
- if statements and the "password program"
- for loops
- 1D Array of ints
- 1D Array of Strings
- 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)
- Example Program 2: MySong class with zero-arg constructor
- Example Program 3: MySong class with two-arg constructor + "this.instanceVariable"
- Example Program 4: MySong with getters/setters and "The Brain"
- Why is "x" the unknown variable?
- AP Exam problem: 2010 FRQ2 - APLine
- Teaching point: Which instance variables do we really need?
- Grading 2010 FRQ2 - APLine
- AP Score Breakpoints
- AP Scores Online (ditto with login)
- APCS Excel-based Grading Rubrics (.zip)
- AP Grading Scale Converter (pdf)
- "Where's Waldo?" Where's the class design error?
- 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.”
- Niels Bohr, Danish Physicist and Nobel Prize winner
- AP Summer Institute Workshop Survey by Fran Trees
- Algorithms at work: Filtering Bubbles
- AP Lab 1: Magpie (Strings and Algorithms: conditionals/iteration)
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
- Algorithmic Programming ideas: Project Euler
- "Nine Algorithms That Changed The Future"
- Big Idea 3: Class Methods (HW Set 3 - Focus: Algorithmic Processing - "The Brain" )
- Big Idea 4: The Class Composition Model (HW Set 4)
- Creating ArrayLists of Integers (not ints!)
- Introduce "for-each" loops
- Creating ArrayLists of Strings
- ArrayLists and the "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
- Grading 2011 FRQ1 Sound
"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"
- Aussie School Voicemail...
- Big Idea 5: 2D Arrays (HW Set 5)
- 2D Array "LewTube" Tutorial
- 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?
- Big Idea 6: Putting it all together...Solving AP Problems (HW Set 6)
- In class project - 2014 FRQ3 "SeatingChart"
- Grading 2014 FRQ3 "SeatingChart" (page 7)
- Checkpoint 2: Mid-November
- Class Composition
- 2D Arrays
“Only those who are asleep make no mistakes”
- Ingvar Kamprad, founder of IKEA, world’s largest furniture brand
- Algorithms, milliseconds, and the US Stock Market (aired: March 2014)
- AP Lab 2: Picture (Focus: 2D Arrays with Inheritance/Interfaces)
Activity 1: Introduction to digital pictures and color
Activity 2: Picking a color (ColorChooser.java)
Activity 3: Exploring a picture (PictureExplorer.java)
Activity 4: 2D Arrays in Java (IntArrayWorkerTester.java)
Activity 5: Modifying a picture (PictureTester.java)
Activity 6: Mirroring pictures (PictureTester.java)
Activity 7: Mirroring part of a picture (PictureTester.java)
Activity 8: Creating collages (PictureTester.java)
Activity 9: Simple edge detection (PictureTester.java)
- Brainstormming time: Picture Project extension ideas? Data compression?
- 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 (referring 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
- 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
“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)
- Big Idea 8: Interfaces
- Key teaching point: Concrete class, abstract classes, AND interfaces can be used as object references, argument types for methods, and return types for methods!
- Class Composition("has-a"), Inheritance("is-a"), Interface ("does-a")
- Checkpoint 3: Early Mid-December
- Abstract Classes
- Project Proposals
"Make things as simple as possible, but no simpler."
- Albert Einstein
- In class project 2014 A4 MenuItem
- Grading 2014 FRQ4 "MenuItem" (page 12)
- AP Lab 3: Elevens (Inheritance and Abstract Classes)
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
- 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!!