Lenguajes de programación

Comparativa de diferentes lenguajes de programación para la enseñanza.

Programación por bloques

Cursos Code

_images/codeorg-logo.png
  • Website: Code Studio
  • Desarrollador: code.org
  • Programación: por bloques (basado en Blockly)
  • Gratuita. Multiplataforma (PC, Apple, Android) .

Cursos guiados de diferentes niveles, desde 4 hasta 16 años, y de diferentes duraciones, desde 1 hasta 24 horas.

Enseñan los fundamentos de la programación imperativa y estructurada. Secuencias, bucles, condicionales, variables, funciones y parámetros.

Scratch

_images/scratch-logo.png
  • Website: Scratch
  • Desarrollador: MIT
  • Programación: por bloques
  • Para programar: en navegador y PC
  • Multitarea
  • Software libre (con acceso al código). Mutiplataforma.

Proyecto del MIT para enseñar programación a los niños en un entorno creativo. La web tiene multitud de proyectos compartidos que se pueden estudiar y reutilizar.

Tutoriales scratch: Tutorial de Scratch

Mblock

_images/mblock-logo.png
  • Website: mBlock
  • Desarrollador: Makeblock, basado en Scratch
  • Programación: por bloques
  • Para programar: PC y Arduino
  • Multitarea
  • Software libre. Mutiplataforma.

Proyecto basado en Scratch offline, que incluye instrucciones para Arduino y para los robots de Makeblock basados en Arduino.

Se puede programar en Scratch y también se pueden hacer programas con bloques para Arduino. Una vez descargados a Arduino, los programas son independientes y funcionan sin conexión al PC.


Programación de Smartphones

Los smartphones Android, los más extendidos, se programan con el lenguaje Java. Existen alternativas más sencillas orientadas a la educación.

AppLab

_images/applab-logo.png
  • Website: AppLab
  • Desarrollador: code.org
  • Programación: por bloques o en texto JavaScript
  • Gratuita y multiplataforma
  • Requiere crear una cuenta
  • Las apps se ejecutan en cualquier smartphone a través del navegador

AppInventor

_images/appinventor-logo.png
  • Website: AppInventor
  • Desarrollador: MIT
  • Programación: por bloques
  • Para programar: smartphones

Programación en texto

Estos lenguajes tienen un nivel de dificultad más alto al programarse escribiendo código en formato texto. Requiere aprender una gramática que es más complicada que el simple movimiento de bloques. Como ventaja, son mucho más potentes y flexibles.

Arduino

_images/arduino-logo.png
  • Website: Arduino
  • Desarrollador: Arduino
  • Programación: texto, basado en lenguaje C
  • Para programar: placas electrónicas Arduino y similares
  • Software libre
  • Gran cantidad de tutoriales de diversos niveles y calidad, orientados a proyectos DIY

Arduino se programa en lenguaje C con añadidos para hacerlo más sencillo. Está dirigido a la programación de circuitos electrónicos, montajes Maker y robots. Su objetivo es acercar la programación de los microcontroladores a los estudiantes sin preparación técnica.

Python

_images/python-logo.png
  • Website: Python
  • Desarrollador: Python foundation
  • Programación: texto
  • Para programar: PC
  • Software libre. Mutiplataforma
  • Muchos Tutoriales de muchos niveles, también en castellano.

Tutoriales:

Lenguaje multiparadigma, muy sencillo de programar y de entender. Es el lenguaje preferido por muchos colegios y universidades de todo el mundo [1] para enseñar a programar. Con este lenguaje se pueden programar proyectos desde cero con gran rapidez y sencillez.

Python es uno de los lenguajes más usados y más populares en la actualidad [2]. Está apoyado por Google y es el lenguaje seleccionado para desarrollar sus aplicaciones de inteligencia artificial y Machine Learning, el futuro de la informática.

Tiene multitud de tutoriales de todo tipo, de todos los niveles, en inglés y en español y en formato libre y gratuito.

El entorno Pygame facilita mucho la tarea de programar entornos gráficos y juegos para ordenador y ofrece multitud de ejemplos didácticos y prácticos de programas creados por diferentes autores.

A su vez, el entorno Python Turtle emula al entorno del lenguaje LOGO, creado por Seymour Papert en el MIT para enseñar a los niños a programar.

Processing

_images/processing-logo.png
  • Website: Processing
  • Desarrollador: Processing foundation
  • Programación: texto. Basado en lenguaje Java
  • Para programar: PC y smartphones
  • Grandes posibilidades gráficas
  • Software libre. Mutiplataforma
  • Tutoriales solo en ingles y con nivel Bachillerato.

Tutoriales:

Processing es un entorno de programación en Java que ofrece muchas facilidades para acercar la programación a los artistas permitiendo desarrollar aplicaciones visuales con dibujos e imágenes en pantalla.

Al programar en Java, las aplicaciones se pueden subir a los smartphones y tablets basadas en Android.

La desventaja de este lenguaje consiste en que los tutoriales se encuentran en inglés y tienen un nivel relativamente alto, de Bachillerato. Por otro lado, con este lenguaje resulta complicado iniciarse en el aprendizaje de la programación.


Machine Learning

El Machine Learning o aprendizaje automático es una rama de la inteligencia artificial, muy de moda últimamente, que es capaz de generar modelos que pueden predecir y clasificar datos a partir de un aprendizaje guiado o autónomo.

_images/prog-learning-ml.png

En la página de LearningML se puede leer una explicación más exhaustiva y se puede jugar con modelos sencillos y fácilmente entrenables de Machine Learning para identificar textos e imágenes.

El lenguaje de programación utilizado es Scratch 3 con el añadido de las instrucciones necesarias para utilizar los modelos ML una vez entrenados.