Propuesta Curricular

Prácticas computacionales

Se destacan cuatro prácticas computacionales por ser relevantes para acercar a las y los estudiantes a los “modos de hacer” computación. Se propone incorporarlas en situaciones de enseñanza habituales. Es en el marco de estas prácticas que los conceptos incorporados en esta propuesta curricular, se construyen, adquieren sentido y se organizan. 

Las prácticas son las siguientes:

La utilización de la tecnología de la computación para la resolución de problemas se limita a determinados problemas con una serie de características específicas que denominamos problemas computacionales. Esta práctica involucra: 

  • identificar qué tipo de situaciones problemáticas pueden ser abordadas como problemas computacionales; 
  • conocer de forma integral los sistemas y las computadoras para definir y desarrollar una solución computacional, y
  • dimensionar el impacto de la solución, tanto de las posibilidades que habilita como los nuevos problemas que puede generar.

Incentivar a las y los estudiantes a crear sus propios artefactos computacionales vinculados con sus intereses o que resuelvan problemas de su entorno potencia la apropiación de conceptos clave de la disciplina y contribuye a desarrollar la creatividad y la exploración de ideas. Se pueden crear artefactos o dispositivos (animaciones, videojuegos, aplicaciones móviles, sistemas web o simulaciones) combinando o modificando otros existentes. 

La creación y/o modificación de artefactos computacionales involucra:

  • analizar diferentes ideas, evaluando las ventajas y desventajas de cada alternativa y planificar considerando tiempos y funcionalidades;
  • crear artefactos computacionales utilizando entornos para la enseñanza;
  • modificar un artefacto computacional existente (por ejemplo, agregar a un videojuego o animación alguna condición particular de finalización), y
  • poner a prueba y refinar artefactos computacionales, mediante un proceso deliberado e iterativo que incluye la depuración de errores (identificación y corrección) y la comparación de los resultados obtenidos con los previstos para efectuar ajustes y contempla los cambios en las necesidades y las expectativas de uso.

Las abstracciones, en el sentido utilizado en computación, no refieren a la acción de abstraer, sino a construcciones y modelos abstractos que expresan una solución genérica a un conjunto de problemas similares. En programación, estas construcciones se instancian a través de diferentes artefactos computacionales (por ejemplo, procedimientos, funciones, bibliotecas de funciones, etc.). Denning (2004) menciona el caso de abstracciones en el contexto de los comandos y las define como “objetos abstractos que realizan acciones”. En infraestructura, esta noción aplica a la noción de un dispositivo computacional construido a partir de componentes, pero cuya funcionalidad es posible verla como abstracta (lo que suele llamarse “caja negra”) a pesar de que los componentes específicos que lo componen o sus características pueden afectar esa funcionalidad.

Las abstracciones se desarrollan para crear soluciones computacionales. El uso de abstracciones elaboradas previamente por nosotros u otras personas nos permite evitar repetir el desarrollo de soluciones de partes de un problema que ya fueron resueltas anteriormente y, de esa forma, agilizar el proceso de resolución completo. El uso de soluciones generalizadas y partes de soluciones diseñadas para una amplia reutilización simplifica el proceso de desarrollo al brindar herramientas de más alto nivel para poder abordar la complejidad de un nuevo problema (K-12 Computer Science Framework Steering Committee, 2016: 78). El modo en que se desarrollan las abstracciones es a través del modelado, la descomposición, la generalización y la clasificación. 

Abrir una abstracción significa analizar el artefacto computacional que la expresa para comprender cómo está implementado, cuáles son sus partes y cómo contribuyen a expresar la solución correspondiente. Esto permite no solamente poder utilizar la abstracción como “caja negra” para resolver una situación problemática, sino también comprender la lógica de construcción de la abstracción, lo que habilita la modificación de dicha abstracción y el aprendizaje necesario para construir nuevas abstracciones. 

Esta práctica computacional involucra: 

  • analizar y utilizar en las soluciones abstracciones predefinidas sin tener en cuenta las especificidades de la implementación (sin conocer cómo fueron desarrolladas, pero sí para qué sirven);
  • reconocer diferentes situaciones donde es posible definir abstracciones;
  • comprender las ventajas de utilizar abstracciones desarrolladas por terceros que incluyan diferentes recursos tecnológicos;
  • abrir abstracciones reconociendo que los artefactos computacionales que utilizan a diario contienen diferentes capas de abstracción que facilitan el uso de los artefactos y cómo se relacionan o comunican las diferentes capas para dar solución a situaciones problemáticas;
  • definir abstracciones a partir de identificar y nombrar características relevantes en un planteo de problema y de reconocer que pueden existir soluciones más generales.

Esta práctica se pone de manifiesto frente a problemas que pueden surgir al utilizar diferentes dispositivos y artefactos computacionales. Implica:

  • identificar y describir componentes y funciones de dispositivos y artefactos computacionales utilizando la terminología adecuada para poder comunicar sobre su funcionamiento, necesidades, problemas, etc.;
  • incorporar estrategias comunes para intentar diagnosticar y resolver problemas que puedan surgir durante la utilización de dispositivos y artefactos computacionales (por ejemplo, ante dos dispositivos parecidos pero con diferencias significativas, poder encontrar pautas comunes de funcionamiento que permitan solucionar problemas de índole similar);
  • comprender cómo se relacionan los diferentes componentes de los dispositivos y artefactos computacionales para poder identificar el componente que podría no estar funcionando de la forma esperada;
  • identificar el problema o solución que brinda un artefacto computacional específico para poder, ante posibles fallas, investigar y buscar otros que brinden servicios similares.