We often get asked ‘what are the influences’ for TKP courseware? TKP courseware includes TKPJava, TKPSmallBasic and new courseware around Data Science and IoT concepts.
In addition to to the work of the TKP team that has created TKPJava courseware, the team is inspired by many other influences. These influences are varied and many (and listed below), in particular the ideas in this book inspire many of our lesson concepts:
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