58
Setup Yellow – PC Orange – Mac & Linux 1. Install Java 2. Install Eclipse 1. The eclipse directory Matters. 1. Mac: /Applications/eclipse 2. Linux: /Applications/eclipse 3. PC: c:\eclipse 3. Unzip TeachingKidsProgramming.Jav a-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

Teaching Kids Programming using the Intentional Method

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

Page 1: Teaching Kids Programming using the Intentional Method

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

Page 2: Teaching Kids Programming using the Intentional Method

with The Intentional Method

By Lynn Langit & Llewellyn Falco

Page 3: Teaching Kids Programming using the Intentional Method

Lynn Langit Llewellyn Falco

[.Net, Node, Java, Objective-C, Lua, Python, C++, Perl, Ruby,

Php]

Mob Programming

Page 4: Teaching Kids Programming using the Intentional Method

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

Page 5: Teaching Kids Programming using the Intentional Method

Core Principals

Free & Open Source

Fun for Girls and Boys

Java with a customized IDE

Implements XP technical practices

Page 6: Teaching Kids Programming using the Intentional Method

Where is TKP?

Co-founders have personally taught more than 2,000 kids

Page 7: Teaching Kids Programming using the Intentional Method

SetupTeaching Programming

Traditional Long Setup Manual Deploy

Modern Immediate Setup Single Click Deploy

Page 8: Teaching Kids Programming using the Intentional Method

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

Page 9: Teaching Kids Programming using the Intentional Method

Experience 1: Recipe

Demo

Page 10: Teaching Kids Programming using the Intentional Method

Experience 1:RecipeExecuting their 1st program within 2 minutes

Page 11: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Conceptual Lecture Full-blown Product

Modern Engage & See Minimum Marketable Feature

Experience 1:RecipeExecuting their 1st program within 2 minutes

Page 12: Teaching Kids Programming using the Intentional Method

Experience 1: RecipeCollaborative Learning

Page 13: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Individual Learning Isolated Working

Modern Pairing Pairing

Experience 1:RecipeCollaborative Learning

Page 14: Teaching Kids Programming using the Intentional Method

5 Rules of Accelerated Learning

O KEEP IT ALIVEO HUNT FLUENCYO START OBVIOUSO STAY FOCUSEDO ADAPT THE SETTING

Page 15: Teaching Kids Programming using the Intentional Method

Types of learning

Explicit Experience Fluency

Awareness

Inspiration

Confidence

Abstraction

Problem Solving

Page 16: Teaching Kids Programming using the Intentional Method

Experience 1: Recipe1 line English = 1 verifiable line code

i.e. lines 1,5,3, NOT 1, 2, 3

Page 17: Teaching Kids Programming using the Intentional Method

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

Page 18: Teaching Kids Programming using the Intentional Method

Experience 1: RecipeVirtual Proctor

Page 19: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Turn in your Project Feedback Releases

Modern Rapid Feedback Onsite Costumer

Experience 1:RecipeVirtual Proctor

Page 20: Teaching Kids Programming using the Intentional Method

Experience 2: Recap

Demo

Page 21: Teaching Kids Programming using the Intentional Method

Experience 2: Recap

Exploring what we did

Page 22: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Conceptual First Expert Staff

Modern Recap Retrospectives

Experience 2:RecapExploring what we did

Page 23: Teaching Kids Programming using the Intentional Method

Experience 2: Recap

Exploring Mistakes

Page 24: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Follow Directions Don’t Make Mistakes

Modern Explore Learn from your Mistakes

Experience 2:RecapExploring Mistakes

Page 25: Teaching Kids Programming using the Intentional Method

Experience 2: Recap

Discovering Patterns

Page 26: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Lecture & Listen Architecture

Modern Emergent Concepts Emergent Design

Experience 2:RecapDiscovering Patterns

Page 27: Teaching Kids Programming using the Intentional Method

Experience 2: Recap

Learning to use your IDE

Page 28: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Don’t use calculators

Tool is powerful

Modern Master your tools Craftsmanship

Experience 2:RecapLearning to use your IDE

Page 29: Teaching Kids Programming using the Intentional Method

Experience 3: Variation

Demo

Page 30: Teaching Kids Programming using the Intentional Method

Experience 3: Variation

You can do the same thing with different code

Page 31: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

There is 1 right way Repurposing

Modern Refactoring Refactoring

Experience 2:VariationYou can do the same thing with different code

Page 32: Teaching Kids Programming using the Intentional Method

Experience 3: Variations

Joy, ownership

Page 33: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Learning is Serious Resources

Modern Learning is Joyful People

Joy, ownership

Experience 2:Variation

Page 34: Teaching Kids Programming using the Intentional Method

Experience 3: Variation

Page 35: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Teach whole concept Big Upfront Design

Modern Iterative Learning Incremental & Iterative

Experience 3:VariationVariations

Page 36: Teaching Kids Programming using the Intentional Method

Experience 3: VariationCoding is Joy

Page 37: Teaching Kids Programming using the Intentional Method

Experience 4: Quiz

Demo

Page 38: Teaching Kids Programming using the Intentional Method

Experience 4: QuizTeaching from the back of the room

Page 39: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Lecture, Lab Assist, Grader

Specialist

Modern Facilitator & Teacher Cross Functional Team

Experience 4:QuizTeaching from the back of the room

Page 40: Teaching Kids Programming using the Intentional Method

Experience 4: Quiz½ way done

Page 41: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Grades tomorrow QA

Modern Red…Green Red…Green

Experience 4:Quiz½ way done

Page 42: Teaching Kids Programming using the Intentional Method

Experience 4: Quiz

100% of pairs get 100% right

Page 43: Teaching Kids Programming using the Intentional Method

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

Page 44: Teaching Kids Programming using the Intentional Method

Experience 4: QuizQuizzes are rewards

Page 45: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Quizzes suck! Death March

Modern Learning rocks! Happiness Matters

Experience 4:QuizQuizzes are rewards

Page 46: Teaching Kids Programming using the Intentional Method

Experience 5: Enrichment

Demo

Page 47: Teaching Kids Programming using the Intentional Method

Experience 5: Deep Dive

Group learning

Page 48: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Solo Solo

Modern Randori Mobbing

Experience 5: Deep DiveGroup Learning

Page 49: Teaching Kids Programming using the Intentional Method

Experience 5: Deep DiveExperiment, run and try (again) good hacking!

Page 50: Teaching Kids Programming using the Intentional Method

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!

Page 51: Teaching Kids Programming using the Intentional Method

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

Page 52: Teaching Kids Programming using the Intentional Method

Worksheet example

Page 53: Teaching Kids Programming using the Intentional Method

Experience 7: ExtrasO Mini recipesO Warm-ups or fill-ins if pairs finish earlyO Could also be done alone to verify mastery of concepts

Page 54: Teaching Kids Programming using the Intentional Method

Next Steps For TeachersTry out the content – do the recipes

Page 55: Teaching Kids Programming using the Intentional Method

GitHub

lfal.co/tkpjava

Page 56: Teaching Kids Programming using the Intentional Method

TKP Java CoursesUsing Objects,

Methods & For Loops

Creating Methods

If statements

Code Mastery

Recursion

Model View Controller

EventsTest Driven

Development

Page 57: Teaching Kids Programming using the Intentional Method

Get started teachingGo to the Teachers section of the TKP site

Download the free lesson plans

Page 58: Teaching Kids Programming using the Intentional Method

@Llewellyn Falcowww.ApprovalTests.com

@LynnLangitwww.lynnlangit.com