teaching kids programming using the intentional method

56
with The Intentional Method By Lynn Langit & Llewellyn Falco

Upload: lynn-langit

Post on 08-May-2015

403 views

Category:

Technology


1 download

DESCRIPTION

Curriculum design for TKP Java courseware

TRANSCRIPT

Page 1: Teaching Kids Programming using the Intentional Method

with The Intentional Method

By Lynn Langit & Llewellyn Falco

Page 2: 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 3: 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 4: Teaching Kids Programming using the Intentional Method

Where is TKP?

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

Page 5: Teaching Kids Programming using the Intentional Method

SetupTeaching Programming

Traditional Long Setup Manual Deploy

Agile Immediate Setup Single Click Deploy

Page 6: 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) Enrichment– 30-45 minutes7) Worksheet – 15 minutes

Page 7: Teaching Kids Programming using the Intentional Method

Experience 1: Recipe

Demo

Page 8: Teaching Kids Programming using the Intentional Method

Experience 1:RecipeExecuting their 1st program within 2 minutes

Page 9: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Conceptual Lecture Full-blown Product

Agile Engage & See Minimum Marketable Feature

Experience 1:RecipeExecuting their 1st program within 2 minutes

Page 10: Teaching Kids Programming using the Intentional Method

Experience 1: RecipeCollaborative Learning

Page 11: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Individual Learning Isolated Working

Agile Pairing Pairing

Experience 1:RecipeCollaborative Learning

Page 12: 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 13: Teaching Kids Programming using the Intentional Method

Types of learning

Explicit Experience Fluency

Awareness

Inspiration

Confidence

Abstraction

Problem Solving

Page 14: 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 15: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Big Exercises Test After

Agile 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 16: Teaching Kids Programming using the Intentional Method

Experience 1: RecipeVirtual Proctor

Page 17: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Turn in your Project Feedback Releases

Agile Rapid Feedback Onsite Costumer

Experience 1:RecipeVirtual Proctor

Page 18: Teaching Kids Programming using the Intentional Method

Experience 2: Recap

Demo

Page 19: Teaching Kids Programming using the Intentional Method

Experience 2: Recap

Exploring what we did

Page 20: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Conceptual First Expert Staff

Agile Recap Retrospectives

Experience 2:RecapExploring what we did

Page 21: Teaching Kids Programming using the Intentional Method

Experience 2: Recap

Exploring Mistakes

Page 22: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Follow Directions Don’t Make Mistakes

Agile Explore Learn from your Mistakes

Experience 2:RecapExploring Mistakes

Page 23: Teaching Kids Programming using the Intentional Method

Experience 2: Recap

Discovering Patterns

Page 24: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Lecture & Listen Architecture

Agile Emergent Concepts Emergent Design

Experience 2:RecapDiscovering Patterns

Page 25: Teaching Kids Programming using the Intentional Method

Experience 2: Recap

Learning to use your IDE

Page 26: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Don’t use calculators

Tool is powerful

Agile Master your tools Craftsmanship

Experience 2:RecapLearning to use your IDE

Page 27: Teaching Kids Programming using the Intentional Method

Experience 3: Variation

Demo

Page 28: Teaching Kids Programming using the Intentional Method

Experience 3: Variation

You can do the same thing with different code

Page 29: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

There is 1 right way Repurposing

Agile Refactoring Refactoring

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

Page 30: Teaching Kids Programming using the Intentional Method

Experience 3: Variations

Joy, ownership

Page 31: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Learning is Serious Resources

Agile Learning is Joyful People

Joy, ownership

Experience 2:Variation

Page 32: Teaching Kids Programming using the Intentional Method

Experience 3: Variation

Page 33: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Teach whole concept Big Upfront Design

Agile Iterative Learning Incremental & Iterative

Experience 3:VariationVariations

Page 34: Teaching Kids Programming using the Intentional Method

Experience 3: VariationCoding is Joy

Page 35: Teaching Kids Programming using the Intentional Method

Experience 4: Quiz

Demo

Page 36: Teaching Kids Programming using the Intentional Method

Experience 4: QuizTeaching from the back of the room

Page 37: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Lecture, Lab Assist, Grader

Specialist

Agile Facilitator & Teacher Cross Functional Team

Experience 4:QuizTeaching from the back of the room

Page 38: Teaching Kids Programming using the Intentional Method

Experience 4: Quiz½ way done

Page 39: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Grades tomorrow QA

Agile Red…Green Red…Green

Experience 4:Quiz½ way done

Page 40: Teaching Kids Programming using the Intentional Method

Experience 4: Quiz

100% of pairs get 100% right

Page 41: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Quizzes show what you didn’t learn

Release Criteria

Agile Quizzes show what you did learn

Continuous Intergration

Experience 4:Quiz100% pass rate

Page 42: Teaching Kids Programming using the Intentional Method

Experience 4: QuizQuizzes are rewards

Page 43: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Quizzes suck! Death March

Agile Learning rocks! Happiness Matters

Experience 4:QuizQuizzes are rewards

Page 44: Teaching Kids Programming using the Intentional Method

Experience 5: Enrichment

Demo

Page 45: Teaching Kids Programming using the Intentional Method

Experience 5: Deep Dive

Group learning

Page 46: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional

Solo Solo

Agile Randori Mobbing

Experience 5: Deep DiveGroup Learning

Page 47: Teaching Kids Programming using the Intentional Method

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

Page 48: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional Time is fixed, mastery will vary

Fixed Scope

Agile Mastery is fixed, time will vary

Potentially Shippable

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

Page 49: Teaching Kids Programming using the Intentional Method

Teaching Programming

Traditional Lecture on concepts before hands-on labs

Read all requirements then design, then code

Agile Experiential learning with conceptual understanding AFTER labs

Code one story at a time, retrospect after coding

Experience 6: WorksheetWritten exercise to verify conceptual

understanding

Page 50: Teaching Kids Programming using the Intentional Method

Worksheet example

Page 51: 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 52: Teaching Kids Programming using the Intentional Method

Next Steps For TeachersTry out the content – do the recipes

Page 53: Teaching Kids Programming using the Intentional Method

GitHub

lfal.co/tkpjava

Page 54: 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 Developme

nt

Page 55: Teaching Kids Programming using the Intentional Method

Get started teachingGo to the Teachers section of the TKP site

Download the free lesson plans

Page 56: Teaching Kids Programming using the Intentional Method

@Llewellyn Falcowww.ApprovalTests.com

@LynnLangitwww.lynnlangit.com