Articulo de referencia

Lista de lenguajes de programación educativos

Un lenguaje de programación educativa ( EPL ) es un lenguaje de programación utilizado principalmente como herramienta de aprendizaje y como punto de partida antes de realizar l...

Un lenguaje de programación educativa ( EPL ) es un lenguaje de programación utilizado principalmente como herramienta de aprendizaje y como punto de partida antes de realizar la transición a lenguajes de programación más complejos.

Tipos de lenguajes de programación educativa

Lenguajes ensambladores

Inicialmente, el código de máquina era el único método de programación de computadoras . El lenguaje ensamblador (ASM) introdujo mnemotecnia para reemplazar las instrucciones de bajo nivel, lo que lo convirtió en uno de los lenguajes de programación más antiguos que aún se usan en la actualidad. Existen numerosos dialectos e implementaciones, cada uno adaptado a una arquitectura de procesador de computadora específica . Los lenguajes ensambladores son de bajo nivel y más difíciles de usar, ya que no están tipificados y son rígidos. Con fines educativos, se han desarrollado dialectos simplificados de lenguajes ensambladores para que la codificación sea más accesible para los principiantes.

Los lenguajes ensambladores están diseñados para arquitecturas de procesadores específicas y deben escribirse teniendo en cuenta el hardware correspondiente. A diferencia de los lenguajes de nivel superior , los lenguajes ensambladores educativos requieren una representación de un procesador que puede ser virtual o físico. Estos lenguajes se utilizan a menudo en entornos educativos para demostrar las operaciones fundamentales de un procesador de computadora.

Esta imagen describe la interfaz del programa Little Man Computer (LMC)
Una imagen de la interfaz de Little Man Computer (LMC)
  • Little Man Computer (LMC), (1965) es un modelo instructivo de una computadora simple de arquitectura von Neumann . Incluye las características básicas de las computadoras modernas y puede programarse mediante código de máquina (generalmente en decimal) o ensamblador. El modelo simula un entorno informático utilizando una metáfora visual de una persona (el "Pequeño Hombre") en una habitación con 100 buzones ( memoria ), una calculadora (el acumulador ) y un contador de programas. LMC se utiliza para ayudar a los estudiantes a comprender las funciones básicas del procesador y la gestión de la memoria .
  • MIX (1968) y MMIX (1999) son modelos de ordenador que aparecen enEl arte de programar ordenadores de Donald Knuth . El ordenador MIX está diseñado con fines educativos, para ilustrar cómo funciona un lenguaje de máquina básico. A pesar de su simplicidad, puede manejar tareas complejas típicas de ordenadores de alto rendimiento. MIX permite programar tanto en binario como en decimal, con emuladores de software disponibles para ambos modelos. MMIX, que sustituyó a MIX, es una arquitectura de conjunto de instrucciones RISC de 64 bits, modernizada para la enseñanza de la arquitectura informática contemporánea.
  • DLX (1994) es una arquitectura de procesador de conjunto de instrucciones reducido ( RISC ) creada por los desarrolladores clave de losdiseños MIPS y Berkeley RISC . DLX es una versión simplificada de MIPS , que ofrece una arquitectura de carga/almacenamiento de 32 bits que se utiliza comúnmente en cursos de arquitectura informática de nivel universitario.
  • Next Byte Codes (NBC), (2007) es un lenguaje ensamblador simple que se utiliza para programar bloques programables Lego Mindstorms NXT . El compilador NBC produce código de máquina compatible con NXT y es compatible con Windows, macOS y Linux.
  • Little Computer 3 (LC-3), (2019) es un lenguaje ensamblador con un conjunto de instrucciones simplificado, que permite escribir programas ensambladores moderadamente complejos. Incluye muchas características que se encuentran en lenguajes más avanzados, lo que lo hace útil para enseñar programación básica y arquitectura informática . Se utiliza principalmente en cursos introductorios de informática e ingeniería.

Variantes básicas

BASIC (Beginner's All-purpose Symbolic Instruction Code) se inventó en 1964 para brindar acceso a computadoras a estudiantes no científicos. Se hizo popular en las minicomputadoras durante la década de 1960 y se convirtió en un lenguaje de computación estándar para microcomputadoras a fines de la década de 1970 y principios de la de 1980. Los objetivos de BASIC se centraban en la necesidad de aprender a programar fácilmente y son:

  • Sea fácil de utilizar para principiantes.
  • Sea interactivo.
  • Proporcionar mensajes de error claros y amigables.
  • Responda rápidamente.
  • No requiere conocimientos de hardware de computadoras ni de sistemas operativos.

Lo que hizo que BASIC fuera atractivo para la educación fue el pequeño tamaño de los programas, que podían ilustrar un concepto en una docena de líneas. BASIC sigue siendo frecuentemente autodidacta, con tutoriales e implementaciones.

Véase también: Lista de dialectos BASIC por plataforma

BASIC ofrece una ruta de aprendizaje desde BASIC orientados al aprendizaje como Microsoft Small Basic , BASIC-256 SIMPLE hasta BASIC con más funciones como Visual Basic, NET y Gambas .

Basado en C

Basado en Java

Basado en Lisp

Basado en logotipo

  • Logo es un lenguaje que fue diseñado específicamente para introducir a los niños a la programación. La primera parte del aprendizaje de Logo trata sobre los "gráficos de tortuga" (derivados de los robots tortuga ) utilizados ya en 1969. En las implementaciones modernas, se utiliza un dispositivo de dibujo abstracto, llamado tortuga , para hacer que la programación para los niños sea muy atractiva al concentrarse en hacer gráficos de tortuga . Seymour Papert , uno de los creadores de Logo, fue una figura destacada del construccionismo , una variedad de teorías de aprendizaje constructivistas . Papert argumentó que actividades como la escritura serían aprendidas naturalmente por niños mucho más pequeños siempre que adoptaran una cultura informática. [4] Logo fue diseñado para introducir a los niños a la programación a través de ayudas visuales y conceptos en un plan de estudios centrado en la tecnología. "Más importante que empezar a desarrollar el intelecto desde una edad temprana es evitar un largo período de dependencia durante el cual uno aprende a pensar en el aprendizaje como algo que tiene que impartir un otro más poderoso... Esos niños no se definirían a sí mismos ni permitirían que la sociedad los definiera como intelectualmente indefensos " . [4] Lo han utilizado niños de tan solo 3 años y tiene un historial de 30 años de éxito en la educación. Dado que Logo es en realidad una versión simplificada de Lisp para estudiantes más avanzados, se puede utilizar para introducir los conceptos básicos de la informática e incluso de la inteligencia artificial. Logo está disponible en múltiples plataformas, tanto en versiones gratuitas como comerciales para uso educativo.

Basado en Scala

  • Kojo es un entorno de desarrollo de escritorio interactivo, desarrollado principalmente con fines educativos. La aplicación se ejecuta en Windows , Linux y OS X. Kojo es un entorno de aprendizaje, con muchas características diferentes que ayudan con la exploración, el aprendizaje y la enseñanza de conceptos en programación informática, pensamiento crítico , matemáticas, ciencia, arte, música, pensamiento creativo , alfabetización informática e. [5]

Basado en Smalltalk

Como parte del proyecto One Laptop per Child , se ha desarrollado una secuencia de lenguajes basados ​​en Smalltalk, cada uno diseñado para actuar como una introducción al siguiente. La estructura es Scratch, Etoys , Squeak y cualquier Smalltalk . [6] Cada uno proporciona entornos gráficos que pueden usarse para enseñar no solo conceptos de programación a los niños, sino también simulaciones de física y matemáticas, ejercicios de narración de historias, etc., mediante el uso del aprendizaje constructivo . Smalltalk y Squeak son lenguajes de desarrollo de aplicaciones con todas las funciones que existen y son muy respetados desde hace décadas; Scratch es una herramienta de aprendizaje para niños.

Pascal

  • Pascal es unlenguaje de programación basado en ALGOL diseñado por Niklaus Wirth aproximadamente en 1970 con el objetivo de enseñar programación estructurada . [10] Desde finales de la década de 1970 hasta finales de la de 1980, fue la opción principal en las clases introductorias de informática para enseñar programación a los estudiantes tanto en los EE. UU. como en Europa. Desde entonces, su uso para aplicaciones del mundo real ha aumentado hasta convertirse en un uso generalizado. [11]

Otro

Niños

  • AgentSheets y AgentCubes son dos herramientas de pensamiento computacional para crear juegos y simulaciones en 2D y 3D. La creación se realiza a través de aplicaciones de escritorio o aplicaciones basadas en navegador, y pueden crear juegos en 2D y 3D que se puedan reproducir en navegadores compatibles con HTML5, incluidos los móviles.
  • Alice es un software de programación gratuito diseñado para enseñar programación orientada a objetos (OOP) basada en eventosa niños. Los programadores crean historias interactivas utilizando una interfaz IDE moderna con un estilo de programación de arrastrar y soltar. El público objetivo va desde niños de secundaria hasta estudiantes universitarios. [12] Storytelling Alice es una variante del software Alice diseñada para niños más pequeños, con un mayor énfasis en sus capacidades en términos de narración de historias. [13]
  • Blockly es un lenguaje gráfico de código abierto basado en la web en el que los usuarios pueden arrastrar bloques para crear una aplicación sin necesidad de escribir. Fue desarrollado por Google y permite a los usuarios convertir su código Blockly a otros lenguajes de programación como PHP, Python, etc.
  • CiMPLE era un lenguaje visual para programar kits de robótica diseñados para niños. Fue creado sobre C como un DSL . ThinkLabs, una startup india de educación en robótica, lo creó para el kit de robótica iPitara. El lenguaje tenía un gran parecido con el lenguaje C. Al menos una escuela en Bangalore, India, compró el kit iPitara e hizo que sus estudiantes programaran los robots usando CiMPLE. [14] Hay más información disponible en el blog de desarrolladores originales de CiMPLE. [15] [16] ThinkLabs finalmente cambió a usar "THiNK VPL" como su software de programación visual.
  • Physical Etoys es una extensión libre y de código abierto de Etoys. Su filosofía es que "ayuda a los niños a explorar su propia creatividad combinando ciencia y arte en un laboratorio infinito". [17] Puede ejecutarse en Windows , Linux y Sugar . Debido a su sistema de scripting en bloques, Physical Etoys permite que diferentes dispositivos electrónicos como Lego NXT ,placas Arduino , Sphero , Kinect y joysticks de Wiimote interactúen entre sí.
  • Hackety Hack es un entorno gratuito basado en Ruby que tiene como objetivo hacer que el aprendizaje de la programación sea fácil para principiantes, especialmente adolescentes. [18]
  • Karel , Karel ++ y Karel J. Robot son lenguajes orientados a principiantes que se utilizan para controlar un robot simple en una ciudad formada por una cuadrícula rectangular de calles. Si bien Karel es un lenguaje propio, Karel++ es una versión de Karel implementada en C++ , mientras que Karel J. Robot es una versión de Karel implementada en Java .
  • Kodu es un lenguaje simple y basado completamente en íconos. Fue desarrollado por Microsoft Research como un proyecto para alentar a los niños más pequeños, especialmente a las niñas, a disfrutar de la tecnología. Los programas se componen de páginas, que se dividen en reglas, que a su vez se dividen en condiciones y acciones. Las condiciones se evalúan simultáneamente. El lenguaje Kodu está diseñado específicamente para el desarrollo de juegos y proporciona primitivas especializadas derivadas de escenarios de juegos. Los programas se expresan en términos físicos, utilizando conceptos como la visión, la audición y el tiempo para controlar el comportamiento de los personajes. La herramienta Kodu está disponible en tres formatos: para PC como descarga gratuita en versiones beta públicas y académicas, y como descarga económica para Xbox 360 Live.
  • Logo es un lenguaje educativo para niños diseñado en 1967 por Daniel G. Bobrow , Wally Feurzeig , Seymour Papert y Cynthia Solomon . Hoy en día, el lenguaje es recordado principalmente por su uso de " gráficos de tortuga ", en los que los comandos de movimiento y dibujo producen gráficos de líneas utilizando un pequeño robot llamado " tortuga ". El lenguaje fue concebido originalmente para enseñar conceptos de programación relacionados con Lisp y solo más tarde para permitir lo que Papert llamó " razonamiento sintónico corporal ", donde los estudiantes podían comprender (y predecir y razonar sobre) el movimiento de la tortuga imaginando lo que harían si fueran la tortuga. [19]
  • Lego Mindstorms es una línea de sets Lego que combina bloques programables con motores eléctricos, sensores, bloques Lego y piezas Lego Technic (como engranajes, ejes y vigas). Mindstorms se originó a partir de los bloques de sensores programables utilizados en la línea de juguetes educativos. La primera versión minorista de Lego Mindstorms se lanzó en 1998 y se comercializó como Robotics Invention System (RIS). La versión actual se lanzó en 2006 como Lego Mindstorms NXT . Se utiliza una amplia gama de lenguajes de programación para Mindstorms, desde Logo hasta BASIC y derivados de Java, Smalltalk y C. El enfoque de programación de Lego Mindstorms ahora tiene sitios físicos dedicados llamados Computer Clubhouses .
  • Mama es un lenguaje educativo orientado a objetos diseñado para ayudar a los estudiantes jóvenes a comenzar a programar, proporcionándoles todos los elementos del lenguaje en su propio idioma. El lenguaje Mama está disponible en varios idiomas, con soporte para direcciones de lenguaje LTR y RTL. Una nueva variante de Mama fue construida sobre el entorno de desarrollo Alice de Carnegie Mellon , que admite la creación de scripts de objetos de escenario en 3D. Esta variante fue diseñada para ayudar a los estudiantes jóvenes a comenzar a programar mediante la creación de animaciones y juegos en 3D. Un documento sobre los principios de programación educativa explica las consideraciones de diseño de Mama. [20]
  • RoboMind es un entorno de programación educativo sencillo que permite a los principiantes programar un robot. Presenta técnicas de programación populares junto con la robótica y la inteligencia artificial. El robot se puede programar en árabe, chino, holandés, alemán, inglés y sueco.
  • Scratch es un lenguaje visual cuyo objetivo es enseñar conceptos de programación a los niños permitiéndoles crear proyectos como juegos, videos y música. Lo hace simplificando el código en "bloques" de funciones que se pueden arrastrar y conectar, y luego ejecutar haciendo clic en el ícono de la bandera verde. En Scratch, los objetos interactivos, los gráficos y los sonidos se pueden importar fácilmente a un nuevo programa y combinarlos, obteniendo resultados rápidos. La comunidad Scratch ha desarrollado y subido más de 1.000.000.000 de proyectos, de los cuales más de 164.000.000 se comparten públicamente. [21] Lo desarrolla el grupo Lifelong Kindergarten [22] en el MIT Media Lab .
  • ScratchJr es un derivado del lenguaje gráfico Scratch. Está diseñado para niños de entre 5 y 7 años.
  • Snap! es unlenguaje gráfico gratuito de código abierto basado en bloques implementado en JavaScript y originalmente derivado de Scratch del MIT . Snap! agrega la capacidad de crear nuevos bloques y tiene funciones de primera clase que permiten el uso de funciones anónimas . UC Berkeley lo mantiene activamente. El código fuente está alojado íntegramente en GitHub .
  • Stagecast Creator es un sistema de programación visual basado en la programación por demostración . Los usuarios demuestran al sistema qué hacer moviendo íconos en la pantalla y este genera reglas para los objetos (personajes). Los usuarios pueden crear simulaciones bidimensionales que modelan conceptos, juegos de varios niveles e historias interactivas.
  • Stencyl es un IDE de desarrollo de juegos y programación visual que se ha utilizado en educación y comercio. El concepto de bloques de código que implementa se basa en el lenguaje visual Scratch del MIT (mencionado anteriormente). También permite el uso de código tipificado normal (separado o entremezclado) a través de su propia API y el lenguaje Haxe .
  • ToonTalk es un lenguaje y un entorno que parece un videojuego. Las abstracciones computacionales se asignan a análogos concretos, como robots, casas, camiones, pájaros, nidos y cajas. Admite números enteros grandes y números racionales exactos. Se basa en programación con restricciones concurrentes .

Universidad

Véase también

  • Categoría: Comparaciones de lenguajes de programación
  • Lenguaje ensamblador : un lenguaje de programación de bajo nivel
  • Sugar : una interfaz gráfica de usuario diseñada para el aprendizaje constructivo
  • Diseño por números
  • Processing : un lenguaje dedicado a las obras de arte

Referencias

  1. ^ Microsoft Corporation 2009 Guía de inicio rápido para Small Basic, pág. 64.
  2. ^ Kenlon, Seth. "Aprenda el lenguaje de programación Lisp en 2021 | Opensource.com". opensource.com . Consultado el 14 de octubre de 2024 .
  3. ^ "¿Qué es el lenguaje de programación Lisp (procesamiento de listas)? – Una definición de TechTarget.com". WhatIs . Consultado el 14 de octubre de 2024 .
  4. ^ ab Papert, Seymour (octubre de 1980). Redefiniendo la infancia: la presencia informática como experimento en psicología del desarrollo. Tokio, Japón y Melbourne, Australia: 8º Congreso Mundial de Informática: Congreso IFIP.
  5. ^ "Acerca de Kogics Kojo" . Consultado el 12 de febrero de 2011 .
  6. ^ Cavallo, David (28 de mayo de 2007). "Aprendiendo a usar Squeak desde cero". One Laptop Per Child News . Consultado el 3 de abril de 2009 .
  7. ^ Ducasse, Stéphane (2005). Squeak: Aprenda a programar con robots (Tecnología en acción). Apress. pp. 289 en el cap. 24: Un recorrido o eTOY . ISBN 1-59059-491-6.
  8. ^ Kay, Alan. "La historia temprana de Smalltalk". Archivado desde el original el 29 de abril de 2011. Consultado el 13 de septiembre de 2007 .
  9. ^ Para una explicación más detallada de por qué esto lo hace fácil, consulte el Evaluador metacircular.
  10. ^ Hemmendinger, David. "Pascal". Encyclopædia Britannica, 5 de abril de 2024, https://www.britannica.com/technology/Pascal-computer-language. Consultado el 12 de junio de 2024.
  11. ^ "Pascal - Wiki de Free Pascal". wiki.freepascal.org . Consultado el 11 de octubre de 2024 .
  12. ^ "Acerca de – Alice" . Consultado el 7 de octubre de 2024 .
  13. ^ "Cuentos de Alice – Alice" . Consultado el 7 de noviembre de 2023 .
  14. ^ EducationWorld (21 de septiembre de 2012). «ThinkLABS RoboLAB». EducationWorld . Consultado el 8 de octubre de 2024 .
  15. ^ Blog original de desarrolladores de CiMPLE Archivado el 21 de julio de 2011 en Wayback Machine
  16. ^ "ThinkLABS -". 20 de septiembre de 2012. Archivado desde el original el 20 de septiembre de 2012 . Consultado el 9 de octubre de 2024 .
  17. ^ "EToys físicos - Descripción general del proyecto". Tecnodata .
  18. ^ "Hackety Hack". GitHub . Consultado el 9 de octubre de 2024 .
  19. ^ HL ModTech (23 de enero de 2018). Programación de logotipos: lección 1 de Turtle Academy . Consultado el 9 de octubre de 2024 a través de YouTube.
  20. ^ Principios de programación educativa de Mama
  21. ^ "Imagina, programa, comparte". Estadísticas de Scratch (en latín). 25 de mayo de 2023. Consultado el 17 de noviembre de 2024 .
  22. ^ "Descripción general del grupo ‹ Jardín de infancia permanente". MIT Media Lab . Consultado el 8 de octubre de 2024 .
  23. ^ M. Hanus. Enseñanza de la programación funcional y lógica con un único modelo computacional. En Proc. Noveno Simposio Internacional sobre Lenguajes de Programación, Implementaciones, Lógicas y Programas (PLILP'97), págs. 335-350. Springer LNCS 1292, 1997.
  24. ^ "Informe Curry, Introducción". Archivado desde el original el 4 de octubre de 2009.
  25. ^ Hanus, M. (1994). "La integración de funciones en la programación lógica: de la teoría a la práctica". Journal of Logic Programming . 19&20: 583– 628.
  26. ^ "Acerca de". Flowgorithm . Consultado el 26 de agosto de 2014 .
  27. ^ Afiche de Paradigmas de programación
  28. ^ "Sistema de programación de Mozart". mozart2.org . Consultado el 25 de octubre de 2024 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Lista_de_lenguajes_de_programación_educativa&oldid=1265551489"