Informe de Vigilancia Tecnológica Tendencias en la enseñanza de la programación de computadores
SENA Servicio Nacional de Aprendizaje Alfonso Prada Gil Dirección General Juan Felipe Rendón Ochoa Dirección Regional Antioquia Jorge Antonio Londoño Londoño Subdirector Centro de la Innovación la Agroindustria y la Aviación Adel II González Alcalá Dinamizador TecnoParque Nodo Rionegro
Pregunta de ¿Cuáles son las tendencias actuales, para la enseñanza de la enfoque programación de computadores?
Enseñanza de la programación, desarrollo de la lógica de Frases claves programación, software for learning programming, literacy programming. Fuentes de Sitios web especializados, bases de datos indexada s, diarios información especializados, informes de expertos. Dirigido a
Todas las personas inquietas por la enseñanza de la programación de computadores, con especial énfasis en la comunidad del SENA.
El informe muestra las tendencias actuales y describe la forma de Alcance acceder a ellas, para que el lector se motive a profundizar por cuenta propia en las alternativas mostradas. Estructura de Términos de uso común para facilitar la lectura y el entendimiento redacción del contenido. Carácter de la Información abierta de interés general que puede ser divulgada y publicación compartida libremente.
lenguajes de programación, los cuales han ido Introducción
evolucionando
buscando
que
en
algún
momento las máquinas puedan entender a un humano y lo que éste le pide de una forma En la actualidad la computación es un elemento clave en el desarrollo de las actividades
humanas,
campos
como
la
medicina, la agricultura, las artes y el transporte
por
mencionar
algunos,
son
beneficiados por computadores que permiten hacer de forma eficiente muchas actividades, algunas de ellas imposibles de realizar para los seres humanos. Sin embargo, estas máquinas (hardware) requieren de programas ( software) para que se logren hacer las tareas que con tanta naturalidad se observan ejecutar y a la vez, esos programas requieren de seres humanos creativos y con los conocimientos necesarios para conseguir que las máquinas les obedezcan y ejecuten las acciones
natural.
Por
ahora,
programar
implica
dominar la lógica del hardware y utilizar un conjunto de instrucciones y estructuras dispuestas para ello, en donde la creatividad, la persistencia y la capacidad de inferencia entre
muchas
otras
habilidades,
son
necesarias para lograr desarrollar programas que den solución a problemas planteados. Hoy por hoy, algunos países consideran a la programación una herramienta básica de la formación y han optado por incluirla dentro de los planes académicos de los niños, los jóvenes y los adultos, en algunos casos abriendo
programas
gratuitos
para
que
cualquier persona se inscriba en ellos y aprenda a desarrollar software.
planeadas. En este proceso el software surge de la imaginación y la creatividad de los seres humanos
quienes
se
basan
en
las
Países con programas profesionales reconocidos en la programación de computadores.
potencialidades del hardware para sacarle el mayor provecho ( para algunos, programar es un arte). Un programa es un conjunto de instrucciones escritas que deben seguir unas reglas, un orden y una estructura, sin las cuales es imposible comunicarse con la
El siguiente mapa muestra los países en donde se encuentran instituciones educativas reconocidas por sus programas en ciencias de la computación.
máquina. Para esto, se han creado los
Centro de la Innovación la Agroindustria y la Aviación
2 |P á g i n a
Edad donde se incorporan fundamentos de programación de computadores.
La escolaridad hace referencia a la política pública de educación y a la forma en que se conciben los planes de formación académica, Estados
Unidos,
China,
Reino
Unido,
los cuales deben reflejar la visión que las administraciones estatales proveen para el
Canadá, Hong Kong, Australia.
futuro social del país y la dirección que se El siguiente es el listado de las diez mejores
debe tomar desde lo educativo. En este
instituciones
para
sentido, ya se encuentran políticas públicas de
estudiar un programa de ciencias de la
educación que explícitamente incorporan
computación.
desde la formación primaria en unos casos y
educativas
globales,
en otros desde la secundaria, contenidos de ciencias de la computación, no con el enfoque tradicional de usuario final, sino como creadores de software con todo lo que esto implica.
Massachusetts Institute of Technology
Stanford University
Harvard University
University of California Berkeley
Tsinghua University
University of Texas Austin
destacan por incorporar el enfoque de las
Nanyang Technological University
Princeton University
University of California San Diego
El siguiente es un listado de los países que se
National University of Singapore
ciencias de la computación en los planes públicos
de
estudio:
Estonia,
Israel,
Finlandia, Reino Unido, Australia, Holanda, Estados Unidos (Ciudades principales), Italia, Singapur, Alemania, Corea del Sur, Nueva Zelanda y Grecia. Este es el mapa que ubica los principales países con políticas estatales de educación básica y secundaria que involucran el
Centro de la Innovación la Agroindustria y la Aviación
3 |P á g i n a
desarrollo de habilidades de construcción de
software en ciencias de la computación.
ThinkBit pensado para trabajar con
arduino http://www.thinkbit.org/sobrethinkbit/
Galileo sistema de Intel hardware y
software http://www.intel.la/content/www/xl/es/d o-it-yourself/galileo-maker-quark board.html
Code Enfocada a las escuelas de forma
Los grados de escolaridad en los cuales
global https://code.org/
intervienen se asocian a las edades de los
https://hourofcode.com
estudiantes, las cuales van desde 6 a 16 años
Logo es un clásico que aún sigue vigente
de edad, destacando que se les enseña lógica
http://el.media.mit.edu/logo-foundation/
de programación, algoritmia y lenguajes de
http://education.mit.edu/portfolio_page/s
programación.
tarlogo-tng/
MSchools enfocada en la educación
primaria http://mschools.mobileworldcapital.com/ Programas y plataformas informáticas más usadas para enseñar a programar
alumnos http://programamos.es/
Existen
herramientas
de
software
Programamos comunidad de docentes y
y
herramientas visuales
plataformas creadas para ayudar a enseñar y entender la programación de computadores,
https://llk.media.mit.edu/
partiendo de los conceptos de la lógica, pasando por la algoritmia y llegando a los
Lifelong kindergarten conjunto de
Scratch plataforma con software para
aprender https://scratch.mit.edu/
GameSalad recursos para aprender
lenguajes usados en la industria. El siguiente
haciendo videojuegos
es un listado de aquellos que se encuentran
http://gamesalad.com/
referenciados en el ámbito mundial:
Stencyl recursos para desarrollar
videojuegos http://www.stencyl.com/
Centro de la Innovación la Agroindustria y la Aviación
4 |P á g i n a
AppInventor plataforma para
tratado a nivel global, encontrando las
desarrollar en Android
siguientes alternativas:
http://appinventor.mit.edu/explore/
Kodu plataforma para aprender
teóricos, mediante analogías al mundo
construyendo juegos de pc
real explicar los elementos y llevar la
http://www.kodugamelab.com/
algoritmia desde diagramas de flujo
Pencil Code para desarrollo de la lógica
realizando pruebas escritorio para su
de programación http://pencilcode.net/
prueba.
CodeCademy plataforma para aprender
a programar
donde
Actua plataforma con contenidos para
explican
los
conceptos
herramienta y al desarrollo de tareas que
http://actua.ca/en
se ejecutan visualmente en la misma.
Greenfoot para java
http://www.greenfoot.org/
se
algorítmicos paralelamente al uso de la
el desarrollo de programas
Iniciar la formación con programas visuales de construcción de bloques, en
https://www.codecademy.com/
Iniciar la formación con los conceptos
CodeFight plataforma para comprar las
habilidades personales en un lenguaje de programación https://codefights.com/
Iniciar la formación con los conceptos algorítmicos paralelamente a un lenguaje de programación usado en la industria, se eligen lenguajes de sintaxis simple y se desarrollan
todos
los
ejercicios
y
ejemplos en ella. ¿Algoritmia fundamental o algoritmia en el lenguaje de programación?
Una
disyuntiva
común
entre
quienes
desempeñan el rol de enseñar a programar, es determinar la conveniencia de iniciar la formación
usando
un
lenguaje
de
programación formal o dejarlo hasta cuando se hayan sentado bases más sólidas de fundamentos esenciales. Este aspecto ha sido
La elección de alguna de las estrategias anteriores se puede determinar según la edad y los conocimientos previos de las personas a las que se pretenden enseñar, también se debe tener presente el enfoque para el cual se está enseñando, no es lo mismo formar a alguien para que conozca que es la programación y como se realiza, que preparar personas que van a derivar su sustento del desarrollo de software.
Centro de la Innovación la Agroindustria y la Aviación
5 |P á g i n a
La programación requiere de disciplina,
El siguiente es un listado de los lenguajes
constancia y la capacidad de inferencia, esto
usados en cursos donde enseñan a programar
significa que alguien que está positivamente
computadores alrededor del mundo:
determinado a aprender a programar debe disponer de buen tiempo para practicar y
dinámico https://www.ruby-lang.org/es/
practicar, aprender de las equivocaciones y generar nuevo conocimiento a partir de las
Ruby lenguaje de código abierto y
Visual Basic Express lenguaje de
herramientas que vaya dominando. Este es
Microsoft con sintaxis sencilla
un proceso que requiere acompañamiento,
https://msdn.microsoft.com/es-
pero que depende en gran porcentaje de la
co/library/xk24xdbe(v=vs.90).aspx
persona que está aprendiendo, quien debe ir
Python lenguaje elegante, de sintaxis
dinámica y de código abierto
mejorando sus habilidades en el proceso.
https://www.python.org/
Lenguajes de programación que se usan para enseñar a programar
Los
lenguajes
de
programación
abierto diseñado para desarrollos (IOS) https://swift.org han
dinámica https://www.javascript.com/
nacieron siendo ceros y unos, luego fueron una mezcla de números y palabras cortas
aplicaciones web
alto nivel en donde se asemejan más al
https://www.java.com/es/
lenguaje humano. En este último es en donde
sistemas operativos, encontrando que algunos llegar
a
ser
multiplataforma
(Windows, Linux, Mac, Android).
Go lenguaje creado por google y otras
contribuciones https://golang.org/dl/
orientación a objetos, a aspectos y a componentes. Los lenguajes se asocian a
Java lenguaje de código abierto líder en
la industria para desarrollo de
(ensamblador), hasta llegar a los lenguajes de
se han instaurado paradigmas como la
JavaScript lenguaje usado en
automatización de sitios web con sintaxis
evolucionado en su forma. En sus inicios
pueden
Swift Lenguaje eficiente de código
C lenguaje usado en cursos de
ingeniería como fundamento http://www.openstd.org/JTC1/SC22/WG14/www/docs/n1 256.pdf
Centro de la Innovación la Agroindustria y la Aviación
6 |P á g i n a
Rust lenguaje de código abierto
semánticas cortas (Ruby, Python, PHP,
eficiente con visión minimalista del
JavaScript y otros similares)
contenido https://www.rust-lang.org/ Tendencia 4 Llegar al lenguaje formal, solo
C# lenguaje estrella de la línea de
después de haber sentado las bases lógicas
Microsoft, de código propietario con
necesarias para que la curva de aprendizaje
sintaxis elegante
se agilice y se disminuya la deserción.
https://msdn.microsoft.com/enus/library/67ef8sbd.aspx
Tendencia 5 Pasar a paradigmas orientados
a objetos sólo tras haber desarrollado con suficiente soltura el paradigma estructurado. Tendencias actuales, para la enseña de la programación de computadores
Tendencia 6 Ingresar a desarrollos robustos
en WEB y de dispositivos móviles, tras Tendencia 1 Incorporar de la programación
de computadores y los contenidos de las
dominar y aplicar los conceptos orientados a objetos.
ciencias de la computación, en los planes curriculares de la educación pública básica,
Tendencia 7 Desarrollar las habilidades de
secundaria y terciaria como política estatal.
arquitectos
de
software
con
MDA
(Arquitecturas dirigidas por el modelo) tras Tendencia 2 Motivar el aprendizaje de la
programación utilizando programas visuales de
diseño
por
bloques,
en
donde
haber desarrollado las competencias en las tendencias anteriores.
se
desarrollan las habilidades del pensamiento lógico
y
la
inferencia
mediante
Conclusión
la
construcción de ejercicios con alto contenido lúdico. (Scratch, AppInventor, Kodu y otros
La
enseñanza
de
la
programación
de
computadores ha sido incorporada en los
similares)
planes de estudio a nivel global, desde la Tendencia 3 Utilizar como primer lenguaje
primaria y hacia a delante en la escala
de
herramientas
académica, dado que representa una gran
dinámicas, de sintaxis simple y de estructuras
oportunidad para mejorar las habilidades de
programación
formal
los estudiantes al desarrollar competencias
Centro de la Innovación la Agroindustria y la Aviación
7 |P á g i n a
específicas del pensamiento que se extrapolan
Manifiesto del reino unido para
a otras áreas académicas y a la vida cotidiana.
enseñar ciencias de la computación
Para este, efecto se usan conceptos lúdicos y
http://www.theguardian.com/education/2
de videojuegos, explicando las bases de la
012/mar/31/manifesto-teaching-ict-
lógica de programación pasando a lenguajes
education-minister
formales de estructuras sintácticas simples y
llegando a conceptos avanzados.
Campaña de alfabetización digital
http://www.theguardian.com/education/2 012/jan/11/digital-literacy-michael-gove-
Es necesario evaluar las competencias previas
speech
de los interesados en iniciar la formación en
programación
de
computadores
para
programación
determinar la mejor estrategia a seguir, de
http://blogthinkbig.com/aprender-
forma que este proceso sea gradual y
programar-futuro-educacion/
motivante, en donde se avance conforme las
habilidades previas y se llegue a las deseadas.
computación
proceso individual centrado en el estudiante y requiere
de
un
http://www.businessinsider.com/countrie
acompañamiento
s-with-the-best-colleges-for-computer-
apropiado para ir avanzando gradual y positivamente
en
el
mundo
de
science-2015-10
la
programación.
Listado de países con mejores instituciones en ciencias de la
Esto implica que cada formación es un
que
Futuro de la educación primaria en la
Mejores universidades en la enseñanza de ciencias de la computación
http://www.usnews.com/education/bestLecturas de profundización sugeridas
global-universities/computer-science
Las 50 ciudades para estudiar ciencias
Programación en las escuelas
de la computación
http://www.eldiario.es/turing/Ninos-
http://www.computersciencedegreehub.c
programadores-ensenanza-
om/50-great-cities-studying-computers-
programacion-
technology/
escuelas_0_293970921.html
El caso de Estonia y la programación en primaria
http://www.forbes.com/sites/parmyolson/
Centro de la Innovación la Agroindustria y la Aviación
8 |P á g i n a
2012/09/06/why-estonia-has-started-
Currículo oficial del reino unido para
teaching-its-first-graders-to-
enseñar a programar
code/#4cf7d6df5790
https://www.gov.uk/government/publicat
Programando en las primarias del
ions/national-curriculum-in-england-
reino unido
computing-programmes-of-
https://www.theguardian.com/technology
study/national-curriculum-in-england-
/2014/sep/04/coding-school-computing-
computing-programmes-of-study
children-programming
15 lenguajes de programación que
Un currículo de programación para
deberías conocer
preparatoria
http://mashable.com/2015/01/18/progra
http://mashable.com/2013/09/22/coding-
mming-languages-
curriculum/#8t6rPknH98qM
2015/#_VqbQMTWGEqX
Pocas mujeres estudian ciencias de la
Entendiendo la alfabetización en
computación
programación
http://readwrite.com/2014/09/02/women-
http://www.licsjournal.org/OJS/index.ph
in-computer-science-why-so-few/
p/LiCS/article/view/24/26
Retraso de Canadá para enseñar a los
Conceptos de programación entorno a
niños a programar
la herramienta Scratch
http://www.cbc.ca/news/technology/back
http://www.computer.org/csdl/proceedin
-to-school-canada-lagging-in-push-to-
gs/digitel/2010/3993/00/3993a219-
teach-kids-computer-coding-1.3185926
abs.html
Las escuelas necesitan saber mejor de ciencias de la computación
http://www.cbc.ca/news/canada/newfoun dland-labrador/schools-need-bettercomputer-science-education-group-says1.3135626
Informe de la educación en Europa
http://www.informaticseurope.org/images/documents/informatic s-education-europe-data-2009-2014.pdf
Centro de la Innovación la Agroindustria y la Aviación
9 |P á g i n a