Programming languages

Comparison of different programming languages ​​for teaching.

Block programming

Code Courses

_images/codeorg-logo.png
  • Website: Code Studio
  • Developer: code.org
  • Programming: by blocks (based on Blockly)
  • Free. Cross platform (PC, Apple, Android) .

Guided courses of different levels, from 4 to 16 years old, and of different durations, from 1 to 24 hours.

They teach the fundamentals of imperative and structured programming. Sequences, loops, conditionals, variables, functions and parameters.

Scratch

_images/scratch-logo.png
  • Website: Scratch
  • Developer: MIT
  • Programming: by blocks
  • To program: in browser and PC
  • Multitask
  • Free software (with access to the code). Multi platform.

MIT project to teach programming to children in a creative environment. The web has a multitude of shared projects that can be studied and reused.

Scratch Tutorials: Scratch tutorial

Mblock

_images/mblock-logo.png
  • Website: mBlock
  • Developer: Makeblock, based on Scratch
  • Programming: by blocks
  • To program: PC and Arduino
  • Multitask
  • Free software. Multi platform.

Offline Scratch-based project, including instructions for Arduino and Arduino-based Makeblock robots.

It can be programmed in Scratch and you can also make programs with blocks for Arduino. Once downloaded to the Arduino, the programs are independent and work without connection to the PC.


Smartphone Programming

Android smartphones, the most widespread, are programmed with the Java language. There are simpler alternatives geared towards education.

AppLab

_images/applab-logo.png
  • Website: AppLab
  • Developer: code.org
  • Programming: by blocks or in JavaScript text
  • Free and cross-platform
  • Requires creating an account
  • Apps run on any smartphone through the browser

AppInventor

_images/appinventor-logo.png
  • Website: AppInventor
  • Developer: MIT
  • Programming: by blocks
  • To program: smartphones

Programming in text

These languages ​​have a higher level of difficulty when programming by writing code in text format. It requires learning a grammar that is more complicated than just moving blocks. As an advantage, they are much more powerful and flexible.

Arduino

_images/arduino-logo.png
  • Website: Arduino
  • Developer: Arduino
  • Programming: text, based on C language
  • To program: Arduino and similar electronic boards
  • Free software
  • Large number of tutorials of various levels and quality, oriented to DIY projects

Arduino is programmed in C language with additions to make it easier. It is aimed at programming electronic circuits, Maker assemblies and robots. Its objective is to bring microcontroller programming closer to students without technical preparation.

Python

_images/python-logo.png
  • Website: Python
  • Developer: Python foundation
  • Programming: text
  • To program: PC
  • Free software. Multi platform
  • Many Tutorials of many levels, also in Spanish.

Tutorials:

Multi-paradigm language, very easy to program and understand. It is the language preferred by many colleges and universities around the world [1] to teach programming. With this language, projects can be programmed from scratch very quickly and easily.

Python is one of the most widely used and popular languages ​​today [2]. It is supported by Google and is the language selected to develop its artificial intelligence and Machine Learning applications, the future of computing.

It has a multitude of tutorials of all kinds, of all levels, in English and Spanish and in free and open format.

The Pygame environment greatly facilitates the task of programming graphic environments and computer games and offers a multitude of didactic and practical examples of programs created by different authors.

In turn, the Python Turtle environment emulates the LOGO language environment, created by Seymour Papert at MIT to teach kids to code.

Processing

_images/processing-logo.png
  • Website: Processing
  • Developer: Processing foundation
  • Programming: text. Based on Java language
  • To program: PC and smartphones
  • Great graphic possibilities
  • Free software. Multi platform
  • Tutorials only in English and with Baccalaureate level.

Tutorials:

Processing is a Java programming environment that offers many facilities to bring programming closer to artists, allowing them to develop visual applications with drawings and images on the screen.

By programming in Java, applications can be uploaded to Android-based smartphones and tablets.

The disadvantage of this language is that the tutorials are in English and have a relatively high level, high school. On the other hand, with this language it is difficult to start learning programming.


Machine Learning

Machine Learning or automatic learning is a branch of artificial intelligence, very fashionable lately, which is capable of generating models that can predict and classify data from guided or autonomous learning.

_images/prog-learning-ml.png

On the LearningML page you can read a more comprehensive explanation and you can play with simple and easily trainable Machine Learning models to identify texts and images.

The programming language used is Scratch 3 with the addition of the necessary instructions to use the ML models once trained.