Teaching Kids Programming using the Intentional Method

Preview:

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

Recommended