Taxonomy of programming environments for novices

Материал из Энциклопедия вычислительного мышлении
Перейти к навигации Перейти к поиску

Статья Программирование/Языки - перечень языков программирования (перечень языков для обучения навыкам программирования и кодирования)

Different types of Taxonmy:

  1. Five levels
  2. What makes programming hard?
  3. Clusters


Five levels

Initial Learning Environments


Level 0
Age range 2-7 years. Drag-and-Drop or simpler. Teaches planning (sequence) only. Requires no abstraction. Contains no significant use of: functions, variables, iteration, indexed data structures, conditional execution.
Examples: Daisy the Dinosaur, LightbotJR, ScratchJR, Piktomir
Level 1
Age range 5-10 years. Drag-and-Drop. Requires no abstraction (or small amounts). Contains none or few of: functions, variables, iteration, indexed data structures, conditional execution.
Examples: ScratchJR, Piktomir, Lightbot, Kodu, Blockly, Hopscotch, Scratch, Tynker
Level 2
Age range 8-14 years. Drag-and-Drop or textbased. Includes some abstraction. Contains some or most of: functions, variables, iteration, indexed data structures, conditional execution.
Examples: Kodu, Blockly, Hopscotch, Scratch, Tynker, NetLogo, Alice, AppInventor, Looking Glass, Snap!
Level 3
Ages 12 years and up. Drag-and-Drop or textbased. Includes abstraction. Contains all of: functions, variables, iteration, indexed data structures, conditional execution.
Examples: Scratch, Tynker, NetLogo, StarLogo Nova, Snap!, Alice, AppInventor, Looking Glass, StarLogo Nova, BlueJ, KidsRuby
Level 4
Ages 14 years and up. Teaches an industry-level. Turing-complete programming language. Advanced, with extensions available. Contains all of: functions, variables, iteration, indexed data structures, conditional execution.
Examples: Squeak, Codecademy

What makes programming hard?

Mark Guzdial believes that each novice programming environment (or family of environments) is attempting to answer the question, "What makes programming hard?". In his article "Programming Environments for Novices" Guzdial focuses on three families that have been particularly influential in the development of modern environments:

  1. The Logo family of programming environments, that began as an off-shoot of the AI-programming language Lisp
  2. The rule-based family of programming environments, that drew from both Logo and Smalltalk-72, but even more directly, Prolog.
  3. The traditional programming language family of novice programming environments, which tried not to change the language, but instead provide new student-centered supports for existing programming languages.

Logo family

The answer to the question of "What makes programming hard?" for the Logo developers was another question. When Logo was first being developed, people didn't know that programming was going to be so hard for so many. Programming was still a curiosity, an activity practiced only by the few who had access to the still-rare machines. The Logo developers asked instead "Why should students program?"

fd29a0017bdd35be58c84d388b3101d2.png


Family of novice programming environments based on supporting traditional programming languages

Why novices need to program? Novice Programming Systems and Languages Taxonomy

Lowering the Barriers to Programming
a survey of programming environments and languages for novice programmers
Caitlin Kelleher and Randy Pausch, 2005

21f9dd49466a137bd6f1072242789a99.png


A Framework for Categorizing Block-based Affordances (Weintrop & Wilensky)

{{#ask Block-based Affordances |format=embedded }}