Upload
lynn-langit
View
273
Download
0
Embed Size (px)
DESCRIPTION
TKP, Teaching Kids Programming using the Intentional Method - presented at the Strange Loop Conference in St. Louis, MO Sept 2015
Citation preview
SetupYellow – PC
Orange – Mac & Linux
1. Install Java
2. Install Eclipse1. The eclipse directory Matters.
1. Mac: /Applications/eclipse
2. Linux: /Applications/eclipse
3. PC: c:\eclipse
3. Unzip TeachingKidsProgramming.Java-
master
4. click on the TKP_Launcher.jar
Important
make sure there are
no spaces
in the path to the launcher
When you’re done it should look like this
with The Intentional Method
By Lynn Langit & Llewellyn Falco
Lynn Langit Llewellyn Falco
[.Net, Node, Java, Objective-C, Lua, Python, C++, Perl, Ruby,
Php]
Mob Programming
What is TKP?• US-based non-profit run by
volunteer professional developers• Co-founders have been
teaching kids for 7 years
• Offers free and open-source courseware and teacher-training materials in Java• Designed for kids ages 11-17• Introduces core programming concepts• Used throughout the US and also world-wide
Core Principals
Free & Open Source
Fun for Girls and Boys
Java with a customized IDE
Implements XP technical practices
Where is TKP?
Co-founders have personally taught more than 2,000 kids
SetupTeaching Programming
Traditional Long Setup Manual Deploy
Modern Immediate Setup Single Click Deploy
Experience Areas
1) Setup – 0-15 minutes for 30 students
2) Recipe – 15-20 minutes3) Recap – 5-10 minutes4) Variation – 10-15 minutes5) Quiz – 10-15 minutes6) Deep Dive– 30-45 minutes7) Worksheet – 15 minutes
Experience 1: Recipe
Demo
Experience 1:RecipeExecuting their 1st program within 2 minutes
Teaching Programming
Traditional
Conceptual Lecture Full-blown Product
Modern Engage & See Minimum Marketable Feature
Experience 1:RecipeExecuting their 1st program within 2 minutes
Experience 1: RecipeCollaborative Learning
Teaching Programming
Traditional
Individual Learning Isolated Working
Modern Pairing Pairing
Experience 1:RecipeCollaborative Learning
5 Rules of Accelerated Learning
O KEEP IT ALIVEO HUNT FLUENCYO START OBVIOUSO STAY FOCUSEDO ADAPT THE SETTING
Types of learning
Explicit Experience Fluency
Awareness
Inspiration
Confidence
Abstraction
Problem Solving
Experience 1: Recipe1 line English = 1 verifiable line code
i.e. lines 1,5,3, NOT 1, 2, 3
Teaching Programming
Traditional
Big Exercises Test After
Modern Small Feedback Loop
Test First
Experience 1:Recipe1 line English = 1 verifiable line code
i.e. lines 1,5,3, NOT 1, 2, 3
Experience 1: RecipeVirtual Proctor
Teaching Programming
Traditional
Turn in your Project Feedback Releases
Modern Rapid Feedback Onsite Costumer
Experience 1:RecipeVirtual Proctor
Experience 2: Recap
Demo
Experience 2: Recap
Exploring what we did
Teaching Programming
Traditional
Conceptual First Expert Staff
Modern Recap Retrospectives
Experience 2:RecapExploring what we did
Experience 2: Recap
Exploring Mistakes
Teaching Programming
Traditional
Follow Directions Don’t Make Mistakes
Modern Explore Learn from your Mistakes
Experience 2:RecapExploring Mistakes
Experience 2: Recap
Discovering Patterns
Teaching Programming
Traditional
Lecture & Listen Architecture
Modern Emergent Concepts Emergent Design
Experience 2:RecapDiscovering Patterns
Experience 2: Recap
Learning to use your IDE
Teaching Programming
Traditional
Don’t use calculators
Tool is powerful
Modern Master your tools Craftsmanship
Experience 2:RecapLearning to use your IDE
Experience 3: Variation
Demo
Experience 3: Variation
You can do the same thing with different code
Teaching Programming
Traditional
There is 1 right way Repurposing
Modern Refactoring Refactoring
Experience 2:VariationYou can do the same thing with different code
Experience 3: Variations
Joy, ownership
Teaching Programming
Traditional
Learning is Serious Resources
Modern Learning is Joyful People
Joy, ownership
Experience 2:Variation
Experience 3: Variation
Teaching Programming
Traditional
Teach whole concept Big Upfront Design
Modern Iterative Learning Incremental & Iterative
Experience 3:VariationVariations
Experience 3: VariationCoding is Joy
Experience 4: Quiz
Demo
Experience 4: QuizTeaching from the back of the room
Teaching Programming
Traditional
Lecture, Lab Assist, Grader
Specialist
Modern Facilitator & Teacher Cross Functional Team
Experience 4:QuizTeaching from the back of the room
Experience 4: Quiz½ way done
Teaching Programming
Traditional
Grades tomorrow QA
Modern Red…Green Red…Green
Experience 4:Quiz½ way done
Experience 4: Quiz
100% of pairs get 100% right
Teaching Programming
Traditional
Quizzes show what you didn’t learn
Release Criteria
Modern Quizzes show what you did learn
Continuous Intergration
Experience 4:Quiz100% pass rate
Experience 4: QuizQuizzes are rewards
Teaching Programming
Traditional
Quizzes suck! Death March
Modern Learning rocks! Happiness Matters
Experience 4:QuizQuizzes are rewards
Experience 5: Enrichment
Demo
Experience 5: Deep Dive
Group learning
Teaching Programming
Traditional
Solo Solo
Modern Randori Mobbing
Experience 5: Deep DiveGroup Learning
Experience 5: Deep DiveExperiment, run and try (again) good hacking!
Teaching Programming
Traditional Time is fixed, mastery will vary
Fixed Scope
Modern Mastery is fixed, time will vary
Potentially Shippable
Experience 5: Deep DiveExperiment, run and try (again) good hacking!
Teaching Programming
Traditional 1) Abstract Concepts 2) Labs
1) Architecture2) Code
Modern 1) Labs2) Recognize
Abstractions
1) Code2) Emergent Design
Experience 6: WorksheetWritten exercise to verify conceptual
understanding
Worksheet example
Experience 7: ExtrasO Mini recipesO Warm-ups or fill-ins if pairs finish earlyO Could also be done alone to verify mastery of concepts
Next Steps For TeachersTry out the content – do the recipes
GitHub
lfal.co/tkpjava
TKP Java CoursesUsing Objects,
Methods & For Loops
Creating Methods
If statements
Code Mastery
Recursion
Model View Controller
EventsTest Driven
Development
Get started teachingGo to the Teachers section of the TKP site
Download the free lesson plans
@Llewellyn Falcowww.ApprovalTests.com
@LynnLangitwww.lynnlangit.com