Teaching Kids Programming
TKPJava and TKPSmallBasic
Curriculum Directions / Influences
Core Ideas
- Logo programming language - https://www.calormen.com/jslogo/# (example)
- Constructionism - http://en.wikipedia.org/wiki/Constructionism_(learning_theory)
- Turtle Graphics - http://en.wikipedia.org/wiki/Turtle_graphics
- Turtle Geometry - https://mitpress.mit.edu/index.php?q=books/turtle-geometry
- XP Programming Practices - http://xprogramming.com/what-is-extreme-programming/
- Reasons for learning Computational Thinking - http://www.cs.cmu.edu/afs/cs/usr/wing/www/publications/Wing06.pdf
People
- Alan Kay - http://en.wikipedia.org/wiki/Alan_Kay (methods of teaching)
- Brett Victor - http://worrydream.com/#!/InventingOnPrinciple (methods of teaching)
- Seymour Papert - http://en.wikipedia.org/wiki/Seymour_Papert (methods of teaching - constructionism / Logo)
- Carol Dweck - http://en.wikipedia.org/wiki/Carol_Dweck (Mindset book - on learning)
- Linda Reising - http://www.lindarising.org/ (Fearless Change book and materials - Agile mindset)
- Caitlin Kelleher - http://www.cse.wustl.edu/~ckelleher/ (StoryTelling Alice - on teaching computational thinking to girls)
- Kent Beck - http://en.wikipedia.org/wiki/Test-driven_development (Test-driven development and also for XP practices)
- Kathy Sierra - http://en.wikipedia.org/wiki/Kathy_Sierra (creating a series of small and excellent code examples)
- David McCandless -- http://www.davidmccandless.com/ (Information is Beautiful - data visualization)
Languages and Tools
Current (using or exploring)
Standard Programming Languages and Tools
- Java / Eclipse (primary, customized IDE) -- http://www.teachingkidsprogramming.org, customization of Eclipse and Java API as #TKPJava (implements logo-like library for teaching)
- Java / Codenvy (in development) -- http://www.teachingkidsprogramming.org and http://www.codenvy.com - working to create a series of customizations of Codenvy IDE to be used with the TKPJava API
- Java / Android Studio (in development) -- working to create lessons in Android development for middle schoolers -- IDE -- https://en.wikipedia.org/wiki/Android_Studio and courseware -- https://github.com/lynnlangit/TKPAndroid
- C# / Visual Studio Express -- limited subset (1 lesson only) -- http://www.pluralsight.com/courses/teaching-kids-programming using VSExpress and TKPCSharp API
- Exercism.io / -- crowd-sourced coding by @kytrinyx and her team at -- http://exercism.io/
Kid's (Visual) Programming Languages
- SmallBasic / included IDE -- primary -- http://extendsmallbasic.codeplex.com/
- TouchDevelop -- collaboration with MSFT team -- https://www.touchdevelop.com/
- Kodu / included IDE -- primary -- http://www.lynda.com/Kodu-tutorials/Learning-Visual-Programming-Kodu
Data-centric or Math-focused languages and tools
- SQL -- ANSI SQL language - one class (designed for teenaged girls - the boyfriend database and the 'Dating Game' queries)--https://datinggame.codeplex.com/
- Wolfram Language -- working on IoT project -- http://www.wolfram.com/internet-of-things
- Electric Imp Devices -- introducing kids to IoT -- https://electricimp.com/
- Data Science -- testing several possibilities for core data science courseware, probably using R Language -- http://tryr.codeschool.com/ -- also looking at Python libraries which are being used for data science, such as NumPy (http://sourceforge.net/projects/numpy/files/) and SciPy (http://sourceforge.net/projects/scipy/files/)
Past Experiments
(TKP team tested these platforms/languages and decided to focus on other areas at this time)
- Scratch
- Squeak
- Minecraft
- Greenfoot
- KhanAcademy Javascript
- Codecademy
- Alice / Storytelling Alice
- Lego Mindstorms
- Gamemaker
- Java/BlueJ
- Ruby/HacketyHack
- WeScheme
- ProjectSpark
added 's'