¿Cuál es el primer lenguaje de programación que se debería enseñar?

104 views
Skip to first unread message

Fredy Enrique Zegarra Díaz

unread,
May 11, 2018, 11:21:12 PM5/11/18
to sp...@googlegroups.com
Hace algunos años, el MIT lanzó Scratch 1.0, una revolución en la educación informática orientada a niños y que encaminó la ruta de la programación gráfica y lúdica como medio de introducción al pensamiento algorítmico.
Hoy en día es común ver en las escuelas privadas de educación primaria y secundaria los talleres de robótica usando Raspberry Pi 3 y el infaltable Arduino UNO.

La controversia está cuando el estudiante decide cursar una carrera orientada a la informática, pues cada universidad elije su propio lenguaje para introducir a los estudiantes a la lógica de la programación: Unos escojen Java porque le permite al estudiante ser meticuloso en la declaración tipada de variables, funciones, métodos y objetos y así comprender de manera empírica el scope siendo de gran ayuda los warnings de los IDEs por ser un lenguaje compilado.

Otros centros superiores elijen un lenguaje de scripting como Python3 para que el estudiante se enfoque principalmente en el desarrollo y las soluciones algorítmicas.

Sin embargo, me ha sorprendido, y de manera grata, saber que Stanford use JavaScript como primer lenguaje.
El primer lenguaje es como el primer amor de un informático con su carrera y te marca para siempre, porque si dominas la lógica y la sintaxis de un lenguaje de alto nivel, no tendrás mayores complicaciones en aprender cualquier otro.

Querida comunidad:
¿Cuál es el primer lenguaje que aplican en sus instituciones?

Ausberto Castro

unread,
May 12, 2018, 12:32:56 AM5/12/18
to sp...@googlegroups.com
On Sat, May 12, 2018 at 12:21 AM Fredy Enrique Zegarra Díaz <enriqu...@gmail.com> wrote:
Hace algunos años, el MIT lanzó Scratch 1.0, una revolución en la educación informática orientada a niños y que encaminó la ruta de la programación gráfica y lúdica como medio de introducción al pensamiento algorítmico.
​................................​

Querida comunidad:
¿Cuál es el primer lenguaje que aplican en sus instituciones?

​Para responder esta pregunta, se podría hacer otras y considerar algunas situaciones...
- Cual es el MEJOR primer lenguaje de programación? (considerando algunos criterios adecuados y corretos en algunas instituciones)
- Cual es el más POPULAR primer lenguiaje de programación​? (sin fundamento académico, científico y pedagógico: lo dicen los blogs)
- Cual es PRIMER lenguaje que utilizan MIT, Stanford, UCLA, UCM, etc.consideradas  como famosas universidades y que debemos-podemos "COPIAR"?

Algunas estan utilizando Python, otras C, otras Java, otras aún Pascal (pedagógico) y otras Scheme-Racket.

​En latinoamerica muchas veces se utiliza, primero Algoritmos con Pseudocódigo, y despues Programación I con C y principalmente dependiendo del profesor del curso, pues en Ciencia de la Computación, NO es importante el lenguaje utilizado, y si lo es el paradigma utilizado (imperativo, funcional, etc.)​.

Otro punto a observar, es que algunas universidades principalmente públicas estan interesadas más en la ENSEÑANZA y la INVESTIGACIÓN y para ello utilizan ciertos paradigmas de lenguajes de programación, considerando el número de alumnos PEQUEÑO. En el otro lado, estan las universidades privadas, con clases numerosas y laboratorios de programación masivos (a veces con una computadora para 2 alumnos) y en donde la preocupación principal es el MERCADO de trabajo (lenguaje más utilizado en las empresas).

Existen otros pontos de vista a considerar. Barbara Liskov, la primera PhD en Computer Science y profesora del MIT y mayor especialista en lenguajes de programación, al conmemorar el 100 aniversario de Alan Turing en su discurso, mencionó que ningún alumno de Computer Science deberia aprender Python ANTES de terminar el pregrado, pues al hacerlo estaria aprendiendo a PROGRAMAR ERRADO.. John Gutag del mismo MIT, tiene la idea en contrario: enseñar primero Python.

Creo, que no exista unanimidad en esto: depende de los objetivos de cada universidad, depende de los docentes que tiene la Escuela Profesional, y tambien depende de la "moda" en programación..

Pero es un buen tema para ser discutido aqui: que opinen los de la "academia" y que opinen los de la "empresa", que opinen los docentes, y que opinen los desarrolladores.

Lectura-reflexión (parte final) "Software development is and always will be somewhat experimental. The actual software construction isn’t necessarily experimental, but its conception is" (https://www.computer.org/cms/Computer.org/ComputingNow/homepage/2009/0709/rW_SO_Viewpoints.pdf)


Uds. que opinan?


Prof. Dr. Ausberto S. Castro Vera
Ciência da Computação
UENF - Universidade Estadual do Norte Fluminense Darcy Ribeyro
CCT - Centro de Ciência e Tecnologia
Campos, RJ, Brazil
                                ausbert...@gmail.com
                                as...@uenf.br  (UENF)
                                as...@computer.org (IEEE Computer Society)





Juan Carlos Romaina

unread,
May 12, 2018, 7:21:16 AM5/12/18
to Sociedad Peruana de Computación (SPC)
Creo que antes de aprender un lenguaje, te enseñarán paradigmas. Dentro de cada uno, enseñarán sus características con diferentes lenguajes, así que no creo que haya una respuesta correcta al tema: dependerá del paradigma que aprendas primero (si mal no recuerdo, se suele comenzar con programación estructurada).

La orientación a objetos y la programación funcional dominan actualmente así que un lenguaje multi paradigma como Javascript definitivamente no es mala idea. 

Saludos,
JC

Yonsy Solis

unread,
May 12, 2018, 7:21:16 AM5/12/18
to sp...@googlegroups.com, Fredy Enrique Zegarra Díaz
On 05/11/2018 06:36 PM, Fredy Enrique Zegarra Díaz wrote:
> Hace algunos años, el MIT lanzó Scratch 1.0, una revolución en la educación informática orientada a niños y que encaminó la ruta de la programación gráfica y lúdica como medio de introducción al pensamiento algorítmico.
> Hoy en día es común ver en las escuelas privadas de educación primaria y secundaria los talleres de robótica usando Raspberry Pi 3 y el infaltable Arduino UNO.
Sobre Scratch te puedo contar una historia de la vida real. Mi hijo
comenzo a llevar Informatica en el colegio en primaria, en 4to Grado. Le
parecio pesado, aburrido y con demasadas cosas el estar aprendiendo
"Office". a finales de 5to Grado, en el 3er bimestre, Les enseñáron
Scratch ... Y EL LO AMO! Disfruto el poder expresar sus ideas en
Scratch. Curiosamente a varios de sus compañeros les parecio demasiado
pesado ... Al siguiente bimestre vio Robotica ... y lo amo mas, en
esencia, las ideas no solo le gustaba poder plasmarlas en un programa,
sino tambien ver reflejadas sus ideas fisicamente.
> La controversia está cuando el estudiante decide cursar una carrera orientada a la informática, pues cada universidad elije su propio lenguaje para introducir a los estudiantes a la lógica de la programación: Unos escojen Java porque le permite al estudiante ser meticuloso en la declaración tipada de variables, funciones, métodos y objetos y así comprender de manera empírica el scope siendo de gran ayuda los warnings de los IDEs por ser un lenguaje compilado.
Aja, y aprender a la fuerza la definicion de clases, metodos privados,
protegidos, properties, getters y setters .... ANTES de ver la logica ...
> Otros centros superiores elijen un lenguaje de scripting como Python3 para que el estudiante se enfoque principalmente en el desarrollo y las soluciones algorítmicas.
Otros le fueron a Ruby (luego de la onda Ruby on Rails) y otras a la
onda Visual Basic 6.0 ... que fue una extension de lo que se dio en los
80s con las home computers (Commodore 64/128. Atari 8 bits, MSX, ZX
Spectrum, BBC Micro...) con sus diferentes versiones de basic y un
sentimiento de comunidad de cada uno que alimento la subscene que se
vivio desde esa epoca hasta los 90s con las Amiga, Atari ST, SinclairQL
....
> Sin embargo, me ha sorprendido, y de manera grata, saber que Stanford use JavaScript como primer lenguaje.
Bueno, despues de sus inicios donde hasta en los mismos web browsers era
incompatible por diferente version, subversion, patch ... ahora, despues
de NodeJS, CoffeeScript, y ahora TypeScript y ES6, espero que en
Stanford esten pensando en esos dos ultimos...
> El primer lenguaje es como el primer amor de un informático con su carrera y te marca para siempre, porque si dominas la lógica y la sintaxis de un lenguaje de alto nivel, no tendrás mayores complicaciones en aprender cualquier otro.
Hubo, hay y habra TODA una pelea sobre si tu primer lenguaje, fue
dinamico, estatico, compilado, interpretdo, con o sin tipo de datos,
orientado a objetos, actor based, functional based ... que si bien
pienso que el primer lenguaje influye, la evolucion de los mismos hace
impractico el que sea tu base para lo que encontraras despues,
> Querida comunidad:
> ¿Cuál es el primer lenguaje que aplican en sus instituciones?
en la que estoy actualmente, Python 3.6. Peeero eso no me impide ver
algunas basadas en Python 2.7, algunas en NodeJS, mientras estoy
aprendiendo Kotlin (despues del nightmare que significo para mi JavaEE
1.1 años atras), Rust ... y quiero volver a hacer un programa en .Net,
ahora que puedo usar .NETCore en Linux ...

Anotar que ... yo aprendi a programar primero en Basic, luego en Pascal
(y hablamos de UCSD Pascal, no de TurboPascal que lo tuve que aprender
despues) y despues finalmente codigo maquina/ensamblador (6502 y z80 a
la vez) y esa base de los tres fue lo que me permitio ver las demas que
vinieron mas adelante ... btw ... de paso aprender los conceptos de
programacion estructurada, objetos, funcional ...

--
Yonsy Solis

Fredy Enrique Zegarra Díaz

unread,
May 13, 2018, 10:18:40 PM5/13/18
to sp...@googlegroups.com
Respecto a los lenguajes averigüe algunos datos interesantes: Java es el lenguaje más demandado a nivel mundial desde hace +15 años, C# fue creado por la gente de Microsoft con el objetivo de hacer una versión mejorada de C/C++ pero no es exclusivo de  Windows, pues también es utilizado por S.O. Unix-like y por motores de juegos de video; resaltar también que JavaScript es el lenguaje más usado y popular en el universo de los desarrolladores y empleadores de San Francisco; debo mencionar ahora a Go, el lenguaje creado por Google, el cual no es usado en el backend de ninguna de sus aplicaciones, pero si revisamos el sitio tiobe.com encontraremos que Go-lang es el lenguaje mejor pagado, aunque hoy cuente con una escasa demanda; con respecto a Ruby, es un lenguaje definido muchas veces como el fork de la canción de una popular TVNovela: “Es desvalorada, por ser la más hermosa, no sufres casi nada, y su sintaxis, es bastante clara” :) recuerdo que Matz definió a Ruby hace un par de años como “El lenguaje formal que más se acerca a la conversación entre un pasajero con su chofer"; finalmente Python es un lenguaje longevo, se creó cuando aún no existían ni la web ni Java. OJO: su versión 2.x está desahuciada, le quedan poco más de 20 meses de vida (es prudente apostar por Python 3.x ahora, pues será la única versión con soporte en el 2020) Una característica insignia de Python es el de ser la competencia directa del robusto lenguaje R, siendo ambos lenguajes piezas fundamentales tanto en el Análisis de Datos como en el Machine Learning.

Por otro lado, soy un convencido de que el primer lenguaje de programación es una variable importante (no determinante) en la dedicación, resiliencia y persistencia de la vocación en tecnología del estudiante.

Debo aclarar también, de que sería una decisión estéril el querer enseñar un herramienta tan importante, como lo es un lenguaje de programación, sin que estudiante domine los fundamentos de Digital Literacy.

Fred.

--
--
Para enviar mensajes al grupo: sp...@googlegroups.com
Para retirarse del grupo: spc-l-un...@googlegroups.com
Para mas opciones: http://groups.google.com/group/spc-l?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Sociedad Peruana de Computación (SPC)" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a spc-l+un...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Ernesto Cuadros Vargas

unread,
May 16, 2018, 5:00:24 PM5/16/18
to Sociedad Peruana de Computacion
Hoal Fredy,

En CS-UCSP/CS-UNSA y CS-UTEC se hace Python y C++ (11/14 o 17)

Sin embargo, desde la primera clase se les explica qu el objetivo no es que aprendas Python. El objetivo es que aprendas a pensar de forma computacional.
El componente #1 de la ecuacion es el cerebro del ser humano (aporta inteligtencia)
El componente #2 es el computador (que aporta velocidad)

Si enfocamos la carrera solo en controlar el aparato rapido pero no desarrollas tu cerebro es igual a darle una metralleta (algo muy potente) a un mono 
Algunas lecciones para aprender de este video ...
  1. Cualquier mono sabe usar la herramienta de cualquier forma y pensara que es poderoso
  2. Siempre hay algun tontin que dice que le puedes das algo poderoso a alguien mal preparado.
  3. El mono luego de haber disparado a todos (sentir el poder) levantaá las manos en señal de victoria ...
Me parece algo que hemos visto y sentido varias veces en nuestro pais :)

Porque empoezamos con Python?
  • Porque tiene sintaxis ligera
  • Porque podria aprenderlo alguien de cualquier carrera
  • Por que es simple de entender
  • Porque te enfocas en resolver el problema ... no en la sintaxis ...
  • La curva de aprendizaje para un nivel inicial es mas rapida.
Por que no es recomendable arrancar en C/C++/Java?
  • Porque tiene muchos mas elementos e sintaxis que distraen al alumno del objetivo principal: pensar de forma computacional !!!
  • La curva de aprendizaje para un nivel inicial es mas lenta.
Porque si hay que enseñar un lenguaje como C++?
  • Porque permite entender mas detalles de bajo nivel
  • Porque permite luego saltar a casi cualquier lenguaje con una curva de aprendizaje mas rapida.
  • Porque realmente los programas son mas eficientes
Luego de entender esto los chicos programan en cualquier lenguaje que ya no necesitas enseñarles ...

Si una universidad se enfoca en decir: "Nosotros enseñamos .NET/Java ..." es porque aun estan en proceso de entender que lo importante no es sintaxis.
Nosotros enseñamos a pensar de forma computacional y en el camino está claro que aprenderás a programar un computador (y por eso estudias sintaxis) pero no es el objetivo #1

Saludos
Er

--
--
Para enviar mensajes al grupo: sp...@googlegroups.com
Para retirarse del grupo: spc-l-unsubscribe@googlegroups.com

Para mas opciones: http://groups.google.com/group/spc-l?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Sociedad Peruana de Computación (SPC)" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a spc-l+unsubscribe@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/d/optout.



--
Ernesto Cuadros-Vargas. PhD
http://socios.spc.org.pe/ecuadros/
T:+(511) 2305000 Ext 4281
Jr. Medrano Silva 165, Barranco
www.utec.edu.pe




La información contenida en este e-mail y sus anexos es confidencial, privilegiada y está dirigida exclusivamente a su destinatario, en consecuencia, solo puede ser utilizada por aquel. Si usted no es el destinatario original, no deberá examinar, usar, copiar o distribuir este mensaje o la información que contiene. Si lo recibe por error, por favor reenvíelo a la persona que se lo envió y elimínelo. Cualquier retención o uso total o parcial no autorizada de este mensaje está estrictamente prohibida y sancionada por ley.

Víctor Tumba

unread,
May 16, 2018, 5:18:15 PM5/16/18
to sp...@googlegroups.com
Ernesto,

Excelente explicación.

Saludos cordiales.


Víctor Tumba.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

Fredy Enrique Zegarra Díaz

unread,
May 16, 2018, 11:51:41 PM5/16/18
to sp...@googlegroups.com
Buena Noche:

Python3 es una opción respetable y muy didáctica para introducir al estudiante el pensamiento algorítmico; supongo que C/C++ lo utilizan para enseñar OOP [por favor, confírmame eso]; reconozco que de pedagogía universitaria sé poco o nada, pero según mi experiencia de aprendizaje, BlueJ es un microIDE de Java (OpenSource) con el cual hasta un niño podría comprender la abstracción de objetos, y precisamente menciono Java porque es un lenguaje que permite entender el BackEnd de la Web, además es la base(junto con Kotlin) del desarrollo nativo en Android, y la combinación de Python3 con JavaME les otorga a los estudiantes las herramientas suficientes para hacer proyectos interesantes en IoT. Ese es mi punto de vista.

Yo incluiría 'C puro' dentro del curso de Arquitectura de SW y, sobre C++, es imposible negar su universalidad y su potencial, pero es ligeramente lento y consume muchos recursos en proyectos grandes de Ingeniería de Software, curiosamente su demanda ha aumentado mucho en los últimos 10 años [tiobe.com] siendo un lenguaje altamente solicitado por empresas de Hardware como Intel o AMD. En mi opinión, para una carrera alineada a CS, el lenguaje C# sería ideal para los freshmen que llevan el curso de OOP, les facilitaría trabajar con motores como UnReal o Unity. ¡A qué muchacho no le fascinaría desarrollar y subir su propio VideoJuego!

Resalto nuevamente que, una vez que el estudiante logre comprender la empatía computacional acerca de cómo se renderiza un lenguaje de alto nivel, en poco tiempo esa persona puede dominar cualquier otro lenguaje del mismo paradigma.

Saludos.

Fred


Para retirarse del grupo: spc-l-un...@googlegroups.com

Para mas opciones: http://groups.google.com/group/spc-l?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Sociedad Peruana de Computación (SPC)" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a spc-l+un...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Ernesto Cuadros Vargas

unread,
May 17, 2018, 7:17:56 PM5/17/18
to Sociedad Peruana de Computacion, Fredy Enrique Zegarra Díaz
Fredy,

Envianos por aqui un hello world hecho en Java, uno en C++ y otro en Python.

La cantidad de elementos de sintaxis que es obligatoria en Java o C++ hacen que el foco se vaya a la sintaxis y por eso es que mucha gente dice "programar lo hace cualquiera" (frase muy repetida en Peru por los que no hacen software ...
El punto esta en que el foco no debe estar en la sintaxis y si en la forma en la que abordas y resuelves un problema ... (Computational Thinking)

Por lo anterior, al terminar el primer semestre claro que debes saber algun lenguaje y claro que has programado con frecuencia ... pero los chicos no salen diciendo "aprendi Python" ... "Aprendi Java" ...

Un abrazo
er

Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
--
Para enviar mensajes al grupo: sp...@googlegroups.com
Para retirarse del grupo: spc-l-unsubscribe@googlegroups.com
Para mas opciones: http://groups.google.com/group/spc-l?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Sociedad Peruana de Computación (SPC)" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a spc-l+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
Ernesto Cuadros-Vargas. PhD
http://socios.spc.org.pe/ecuadros/
T:+(511) 2305000 Ext 4281
Jr. Medrano Silva 165, Barranco
www.utec.edu.pe



Ausberto Castro

unread,
May 18, 2018, 2:31:42 AM5/18/18
to sp...@googlegroups.com
On Thu, May 17, 2018 at 8:17 PM Ernesto Cuadros Vargas <ecua...@utec.edu.pe> wrote:
La cantidad de elementos de sintaxis que es obligatoria en Java o C++ hacen que el foco se vaya a la sintaxis y por eso es que mucha gente dice "programar lo hace cualquiera" (frase muy repetida en Peru por los que no hacen software ...
El punto esta en que el foco no debe estar en la sintaxis y si en la forma en la que abordas y resuelves un problema ... (Computational Thinking)

​Ernesto, en principio, si consideramos sus idealizadores, principalmente J.Wing, Computational Thinking (CT) NO tiene nada que ver con Lenguages de Programación​, y talvez Python es el MENOS indicado para eso (ver artículo "Training for computational thinking capability on programming language teaching", 2012). Aqui recomiendan el Lenguaje C para Computational Thinking.
Los elementos de CT no se refieren a lenguajes de programación...

Por otro lado, cual es el problema en enseñar sintaxis (manera CORRECTA de escribir en un lenguaje) desde el comienzo? Por esta misma razón, de no enseñar correctamente desde el comienzo, que la especialista en Lenguajes de Programación, Barbara Liskov, del MIT, dice para NO enseñar Python en el pre-grado.

​Recomiendo la lectura de los artículos básicos (literatura especializada) sobre estos temas​, principalmente las referencias y las conclusiones.

​Saludos,

Ausberto​



"What’s the Difference Between Coding and Computational Thinking?"

( https://www.edsurge.com/news/2016-08-06-what-s-the-difference-between-coding-and-computational-thinking


2006 Computational Thinking -JWing.pdf
2012 Training for computational thinking capability on programming language teaching.pdf
2008 Computational thinking and thinking about computing.pdf
2016 The Long Quest for Computational Thinking.pdf

Ernesto Cuadros Vargas

unread,
May 18, 2018, 8:53:15 AM5/18/18
to Sociedad Peruana de Computacion
Estimado Ausberto,

      El punto es que ya se han hecho montones de experimentos con diversos lenguajes y  eso ha generado investigaciones que normalmente son publicadas en SIGCSE de ACM.

Despues de varias discusiones ahi y despues de las varias discusiones sobre este tema en Computing Curricula y despues de haber conversado tambien con J Wing es que estoy mas seguro de lo que te digo ...
Yo soy fan #1 de C++ toda mi vida me ha encantado ... pienso que todos deben aprenderlo pero llega un momento en el cual entiendes esto mejor producto de ver otras experiencias en diversas partes del mundo.

Por ejemplo, ya no es verdad que un programa en C es mas rapido que uno en C++11/14/17 ...
Usar programacion generica es mas rapido que un programa con punteros para lo mismo ...
hay muchos elementos que han mejorado en desempenho de lejos en C++ en comparacion a C tradicional.

Te invito a hacer el experimento de hacer un qsort al estilo C con punteros a funciones vs un sort de STL de C++11/14/17 ...

No todo lo antiguo es mejor ... esto ha cambiado un monton ...

En el caos especifico de Python ... el punto es sacar la atencion de la sintaxis y pasar a pensar en el problema.

Un abrazo
er

--
--
Para enviar mensajes al grupo: sp...@googlegroups.com
Para retirarse del grupo: spc-l-unsubscribe@googlegroups.com
Para mas opciones: http://groups.google.com/group/spc-l?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Sociedad Peruana de Computación (SPC)" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a spc-l+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Ernesto Cuadros-Vargas. PhD
http://socios.spc.org.pe/ecuadros/
T:+(511) 2305000 Ext 4281
Jr. Medrano Silva 165, Barranco
www.utec.edu.pe



Víctor Tumba

unread,
May 18, 2018, 1:24:57 PM5/18/18
to sp...@googlegroups.com
Estimado Ausberto,

¿Podrías señalarnos dónde se hace mención a que Computational Thinking no tiene nada que ver con los lenguajes de programación?

Porque, al leer tus documentos adjuntos, uno no solo que no lee nada parecido sino que se convence a sí mismo de la importancia de Computational Thinking en la programación y los algoritmos, ya que son complementariamente inherentes.

Como ejemplo, tenemos el curso Computational Thinking for Educators, de Google (https://computationalthinkingcourse.withgoogle.com/course), en donde se indica lo siguiente: "Computational Thinking (CT) is a problem solving process that includes a number of characteristics and dispositions. CT is essential to the development of computer applications, but it can also be used to support problem solving across all disciplines, including the humanities, math, and science. Students who learn CT across the curriculum can begin to see a relationship between academic subjects, as well as between life inside and outside of the classroom."

Otro curso es Computational Thinking With Scratch, de Harvard University (http://scratched.gse.harvard.edu/ct/defining.html), que no hace otra cosa que confirmar lo que Ernesto Cuadros indicó, que se necesita el Computational Thinking para el análisis y el diseño de algoritmos en la programación, utilizando un lenguaje de programación ligero y digerible (en este caso sería Scratch, del MIT).

Y una observación, que me parece justa, es que en el paper "Training for computational thinking capability on programming language teaching", 2012, los autores no indican que C sea el más recomendable, lo que hacen es utilizar C como ejemplo, porque supongo que es el que mejor conocen y consideran, y no se centran en C, sino en Computational Thinking. Veamos lo que indican: "Using C program language as example, this paper discusses how to train thinking capability of students during the programming language teaching. Computer programming languages have the features of mass content and practical techniques, and it is difficult for students to master one in short period of time. We provide some advices about how to organize the teaching content and experiments are proposed for improving the teaching results, and human thinking characters are exploited for increasing creative capability. The teaching methods proposed have proved effective for training thinking capability of students."

Por último, yo creo y reitero que los elementos de Computational Thinking sí se refieren a la programación. Cuando menos los siguientes que se leen del curso de Google:

- Decomposition: Breaking down data, processes, or problems into smaller, manageable parts.

- Pattern Recognition: Observing patterns, trends, and regularities in data.

- Abstraction: Identifying the general principles that generate these patterns.

- Algorithm Design: Developing the step by step instructions for solving this and similar problems.

Saludos cordiales.


Víctor Tumba.

Ausberto Castro

unread,
May 18, 2018, 1:55:31 PM5/18/18
to sp...@googlegroups.com, piero...@gmail.com
On Fri, May 18, 2018 at 2:24 PM Víctor Tumba <
​​
piero...@gmail.com> wrote:
Estimado Ausberto,
¿Podrías señalarnos dónde se hace mención a que
​​
Computational Thinking
no tiene nada que ver con los lenguajes de programación?

​YO si estoy a favor de Computational Thinking (CT) !!!!!!!!​
Creo que toda la carrera de Ciencia de la Computación (todos sus cursos) deberian ser guiados por CT.
Los principios de CT no admiten escoger UN lenguaje de programación específico para implementar CT !!

​Yo tomo como base el documento de J.Wing, de 2006, que deberia ser la base de cualquier discusión sobre CT.
Computational Thinking
  tiene las siguientes características:
  1. - Conceptualizing, not programming.
  2. - Fundamental, not rote skill.
  3. - A way that humans, not computers, think.
  4. - Complements and combines mathematical and engineering thinking,
  5. - Ideas, not artifacts.
  6. - For everyone, everywhere.
​Computational Thinking es DIFERENTE de Programming Thinking.

Escoger UN lenguaje de programación específico para eso (como estan proponiendo, Python) es ir contra el principio 1., 3. y 5.
1- Un Paradigma de programación es un concepto. Un lenguaje de programación es una herramienta
3- Los humanos piensan de diferentes formas (paradigmas). Un lenguaje específico es UNA manera fija de ejecutar soluciones.
5- Un paradigma de programación es una IDEA. Un lenguaje de programación es un "artefacto" fabricado bajo un modelo

Victor Tumba, estoy de acuerdo con el resto que escribiste.
Reply all
Reply to author
Forward
0 new messages