El Ciclo Básico Común 2024 marcará un punto de inflexión para la carrera de Ciencias de la Computación, ya que por primera vez se dictará en el CBC la materia Pensamiento Computacional.  Desde una etapa temprana, los y las estudiantes aprenderán nociones básicas para resolver problemas con herramientas de programación. En esta nota adelantamos las principales novedades de la preparación de esta materia y conversamos con el profesor Esteban Mocskos.

El pensamiento computacional consiste en resolver problemas cotidianos mediante el uso de la programación, cuyas herramientas básicas son la descomposición, la abstracción, el reconocimiento de patrones y la algoritmia. Esto significa que las soluciones a los problemas pueden representarse mediante pasos e instrucciones.

La profesora del Departamento de Computación de la universidad de Carnegie Mellon (EE.UU.), Jeannette M. Wing, fue una de las primeras especialistas en utilizar el término de pensamiento computacional. Lo hizo al querer describir cómo piensa un científico de computación y lo beneficioso que es para todos pensar de esta forma. Élla, lo definió de la siguiente manera: “el proceso de pensamiento envuelto en formular un problema y sus soluciones de manera que esas son representadas de una forma en que pueden ser llevadas a un agente de procesamiento de información”. En otras palabras, el proceso mental a través del cual una persona se plantea un problema y para su posible solución utiliza secuencias de instrucciones ejecutadas por una computadora, un humano o ambos. En definitiva, se aplican habilidades propias de la computación y del pensamiento crítico.

Al iniciar el CBC de este año, los y las estudiantes podrán cursar la nueva materia “Pensamiento Computacional” que corresponde al Plan de Estudios 2023 de la Licenciatura en Ciencias de la Computación. En principio serán estudiantes no sólo de Computación sino también de las Licenciaturas en Matemática y Datos, quienes tendrán la posibilidad de cursarla. Se trata de un cambio fundamental ya que, desde un primer momento, estudiantes de Exactas podrán incorporar nociones básicas de programación esenciales para su formación, sin necesidad de requerir conocimientos previos a la cursada.

El objetivo general de la materia es que los/as estudiantes adquieran habilidades de resolución de problemas mediante el soporte de un lenguaje de programación multiparadigma (lo cual incluye nociones de abstracción, manejo de herramientas y lenguajes de programación y comprensión de los algoritmos implicados en dicho proceso). A diferencia de la materia “Introducción a la Programación” que se detiene profundamente en los fundamentos, esta nueva materia tendrá un enfoque y aproximación mucho más pragmática a la programación.

La materia se encuentra ajustando sus últimos detalles de planificación para el dictado e involucra un enorme desafío desde lo metodológico. “Desde la carrera no solemos estar acostumbrados al público del CBC, hay una heterogeneidad de niveles y formaciones previas que sin dudas tenemos que tener en cuenta para el dictado de la materia”, explica Esteban Mocskos, Profesor de Pensamiento Computacional. Y aclara que suele haber estudiantes que vienen desde la secundaria con una base de razonamiento y herramientas lógicas, mientras que otros/as (que no cuentan con esta formación) van a necesitar más acompañamiento para ir trabajando esas bases. “El desafío principal es poder enseñar algunos elementos y conceptos básicos de programación a esta población tan disímil; vamos a tener a todos dentro del mismo aula y tenemos que poder generarle desafíos a todos y aprendizaje a todos, no dejar a nadie atrás ni que la gente se aburra en el proceso y que pragmáticamente les sirva para continuar ese camino, aún si fuera la única materia que cursen. Entonces eso ya de por sí es un importante desafío desde lo pedagógico”, complementa el profesor.

Cómo será la dinámica de Pensamiento Computacional

En cuanto a la dinámica y actividades previstas para la materia, la idea es que se curse completamente en laboratorios. Si bien habrá actividades iniciales de discusión, sin uso de computadoras y para motivar la resolución de problemas, la mayor parte del tiempo se realizarán actividades prácticas, lúdicas y actividades de programación por bloques (a veces con herramientas gráficas) donde finalmente se escribirá el programa en el lenguaje Python.

El proceso se dividirá en tres etapas diferenciadas: A) Discutir y pensar cómo se resuelve una situación. B) Determinar cómo esa solución se transforma en un algoritmo o en un programa quizás en forma de pseudocódigo o en forma gráfica con bloques y finalmente C) Escribir un programa, ejecutarlo y ver cómo funciona.

Algunas de las actividades prácticas previstas serán:

1) Figuritas: ¿cuánto me costará llenar el álbum del mundial 2026?
2) Diez mil: juguemos con dados y programemos un rato.
3) Incendio Forestal: Tormenta de rayos, ¿sobrevive el bosque?
4) Difusión: ¿Qué hace una gota en un vaso de agua?
5) Cumpleaños: ¿Qué chances tengo de encontrar en el aula alguien que cumpla años el  mismo día que yo?
6) Criptografía: juguemos a los espías con la compu.
7) Imágenes: ¿es fácil hacer que en las fotos me vea más joven?
8) Datos del mundo: mundo maravilloso u horripilante, que los datos juzguen.
9) Proyecto: poner en práctica todo lo visto con un proyecto bien interesante.

Expectativas previas a la cursada

De acuerdo a la reflexión de Mocskos, una de las dificultades que aparece en el CBC es que algunos/as estudiantes tienen una expectativa que no logran superar en materias tradicionales y pueden llegar a desmotivarse o aburrirse.

Queremos romper un poco con eso, que la materia sea motivante y los lleve a desafíos que ellos sientan como propios, que estén interesados en sumergirse en esos problemas y por eso la materia tiene una carga tan fuerte de trabajo práctico en laboratorio”, puntualiza el profesor de Pensamiento Computacional. Y concluye con su expectativa personal: “Idealmente si no cursaron otra cosa o si se cambiaron de carrera después de terminar el CBC, espero que puedan hacer toda su vida profesional con esos elementos de programación, que todos los desafíos de programación que tengan en su vida profesional o en su nueva carrera los puedan atacar en base a lo que aprendieron acá o en base a cosas que aprendieron gracias a lo que aprendieron inicialmente en la materia, que les abra la puerta al fascinante mundo de la programación”.

El equipo docente estará integrado por los profesores Esteban Mocskos, Ignacio Ojeda y Christian Cossio-Mercado. Mientras que se seleccionará por concurso a diferentes ayudantes de laboratorio, tanto estudiantes de la carrera como de otras disciplinas con conocimientos apropiados.