This is an old revision of the document!
Computer Science unplugged, Tim Bell, Ian H. Witten, Mike Fellows
[*][*][*][*][*][*][*][*][*][ ] => [9] Representativo de los fundamentos de la informática y con ejemplos claros para niños mayores a 7 años [*][*][*][*][ ][ ][ ][ ][ ][ ] => [4] Básico
Computer Science Unplugged es un libro que enseña principios informáticos sin la necesidad de usar equipos de cómputo.
Cada ejercicio provee una simplificación de un algoritmo (secuencia de pasos) popular en las ciencias de la computación.
Aunque los conceptos elementales de cada ejercicio/ejemplo son simples, en su conjunto son un muestra representativa de los métodos de la informática moderna. Adicionalmente aunque el contenido se estudia en un marco computacional la mayoría de estos métodos representan la puesta en práctica de constantes universales matemáticas y lógicas lo que potencialmente puede mejorar la capacidad de análisis y resolución de problemas en personas de cualquier edad.
Lo que sigue es una análisis de los ejercicios con hincapié en la adaptación para grupos superiores o iguales a 3er grado de primaria.
La representación de datos en las computadoras modernas es una fase temporal en el desarrollo de la informática, se utilizan los valores 0 y 1 debido a su facilidad de manipulación en circuitos modernos (basados en transistores), sin embargo en el futuro (de acuerdo a la facilidad de creación de nuevos materiales) se podrían diseñar computadoras de diferentes estados, 0, 1, 2, 3, …, incrementando exponencialmente la capacidad de cómputo.
La creación de interfaces y comunicación computadora/humano se hace a través de patrones reconocibles por seres humanos, visuales y auditivos principalmente. La impresión en papel y pantallas digitales es un medio popular que se crea al acumular conjunto de puntos (pixeles) para sustentar la ilusión del objeto a representar.
La actividad 2, además de explorar un algoritmo básico de impresión, lo hace utilizando un sistema decimal, por lo que es posible estudiarlo sin conocer el sistema binario, una adaptación a este último sistema también es posible utilizando un bit para representar cada celda.
Sobre ejercicios de conversiones de bases numericas.
Es un conocimiento común que las computadoras utilizan el sistema binario para procesar datos, por lo que con frecuencia se proponen ejercicios de conversion entre diferentes bases numericas para subrayar este punto, sin embargo tales ejercicios no refuerzan una constante/patrón universal por lo que se sugiere evitarlos para la audiencia sugerida.
Nota: esta actividad probablemente no es adecuada para niños menores de 8 años, requiere la capacidad de pensar recursivamente, es decir en términos de variables desconocidas que se deben encontrar para deducir variables desconocidas, se deja a consideración del docente.
Nota: Los ejercicios propuestos para las últimas 2 actividades están diseñados para niños de 9 años en adelante, sin embargo esto no parece estar vinculado con la complejidad del concepto principal, sino con la longitud de los ejemplos. Ejemplos más cortos, por ejemplo trabalenguas o poesías pequeñas podrían utilizarse para hacer los contenidos accesibles a estudiantes de 7 años en adelante. El concepto principal es la detección de patrones (en su mayoría silabas) en un conjunto de palabras.
Desde la construcción de las primeras computadoras, han existido limitantes profundas en la capacidad de almacenamiento, procesamiento, y transmisión de información, por lo que los algoritmos de compresión fueros de los primeros en diseñarse. En la actualidad incluso con la mejora constante siguen existiendo limitantes, principalmente en la transmisión de datos por Internet y almacenamiento en sistemas embebidos (refrigeradores, tostadoras, relojes, etc)
Las actividades de compresión de textos además de informar sobre el funcionamiento interno de las computadoras, mejora el reconocimiento de patrones, como los presentes en poesía, trabalenguas y música.
Corrección de traducción: En relación con otros cursos en esta y otras actividades se utiliza la palabra “Inglés” en lugar de “Español”, dicho termino es incorrecto, pues las actividades tienen que ver con el análisis de las oraciones y estructuras gramaticales del idioma natal del estudiante.
Nota: El ejercicio propuesto como desarrollo de este tema está diseñado para niños de 9 años en adelante, sin embargo esto no esta vinculado con la complejidad del concepto principal, sino con la longitud del ejemplo. Ejemplos más cortos, por ejemplo un cuadrado de 3×3 podría utilizarse para hacer los contenidos accesibles a estudiantes de 7 años en adelante. El concepto principal es la identificación de números pares/impares y su uso en procedimientos de recuperación.
Nota: esta actividad probablemente no es adecuada para niños menores a 8 años, requiere el conocimiento del operador matemático módulo (residuo) y la memorización de un algoritmo relativamente largo. Se deja a consideración del docente.
Cada vez que se despliega una página web, se transfieren por lo menos 300 unidades de datos (en formato tcp/ip), cada una de esas unidades detecta y corrige problemas en la transmisión por lo menos 3 veces. Así pues se ejecutan por lo menos 300×3=900 veces algoritmos de corrección y detección de errores en el despliegue de páginas tan simples como https://google.com. Los algoritmos de detección y corrección de errores también se utilizan en sistemas de almacenamiento (usbs, dvds, discos duros) y formato de datos (sistemas de archivos, compresión, etc).
Las actividades del bloque 4, además de informar sobre el funcionamiento interno de las computadoras, muestran la definición y uso de las propiedad de los números pares/impares.
Corrección de traducción: Cada referencia a “checksum” se puede reemplazar por “sumatoria de verificación” que se refiere al proceso de ejecutar una operación lógica para verificar la originalidad de los datos.
Las actividades de esta sección refuerzan los conceptos de la actividad 1. Se hace hincapié en el sistema numérico de base 2, y arboles de decisiones pero sin algoritmos de optimización. Son primordialmente actividades de entretenimiento que pueden ignorarse cuando el tiempo sea limitado.
La sección I estudia algoritmos generales (impresión, corrección de errores y comprensión), sin embargo, en las ciencias de la computación también existen algoritmos especializados. Esta sección repasa algunos de estos, con tintes lógicos y matemáticos.
Nota: El ejercicio requiere la ordenación de los datos, sin embargo, los algoritmos de ordenación son tema del siguiente módulo, por lo que se sugiere que se estudien primeros los algoritmos de ordenación y se regrese a este ejercicio al finalizar dicha sección.
Nota: Los algoritmos de búsqueda por etiquetas requieren la definición de índices de datos, en el ejemplo propuesto el índice no esta definido explícitamente, por lo que el ejercicio no es un ejemplo válido de este tipo de búsquedas. Se sugiere evitar este ejercicio.
Las interfaces de la mayoría de programas simples modernos se basan en 4 operaciones básicas: Creación, Obtención, Actualización y Borrado que describen la manipulación de datos (CRUD, por sus siglas en Inglés).
Cada una de esas operaciones a la vez ha influido en la creación de estructuras de datos y algoritmos para su manipulación.
Los algoritmos de búsqueda son una especialización de los algoritmos de Obtención y como tales un área sustancial del computo, por lo que pueden ignorarse a discreción del docente.
Corrección de traducción: Cada referencia a “hashing” se puede reemplazar por “etiqueta(s)”
Nota: El ejercicio sugerido utiliza una báscula para ordenar por pesos las masas de diferentes recipientes, sin embargo se pueden diseñar ejercicios que utilizen caracteristicas que sean mas faciles de ver, por ejemplo la altura de los estudiantes, o una secuencia de números inicialmente desordenados, tales ejercicios además ayudan a incentivar el trabajo en equipo, ejemplos:
Nota: Las listas ordenadas tienen propiedades que permiten obtener el primer, último y n valores intermedios en pocos pasos, en ciencias de la computación se utilizan en muchos casos como preámbulo para la ejecución de algoritmos más sofisticados, por ejemplo en algoritmos de búsqueda, pero también se utilizan para mejorar la presentación de los datos a los usuarios.
Las actividades de la unidad 8 son una continuación de los algoritmos de ordenamiento de la unidad 7. Sin embargo, también contienen pistas sobre el multiprocesamiento (la ejecución simultanea en varias computadoras de un proceso para completarse más rápido) y el trabajo en equipo.
Las actividades de esta sección describen brevemente las relaciones de objetos pares y su contextos, lo que se conoce como teoría de grafos en ciencias de la computación, dichos grafos se utilizan para modelar las relaciones objetos reales, por ejemplo, ciudades, redes de computadoras, análisis de estructuras gramaticales en lenguajes humanos, etc.
Con los objetos representados en grafos, se diseñan algoritmos que utilizan las relaciones y modifican las representaciones para obtener propiedades de las organizaciones y respuestas a problemas particulares.
Los ejercicios sugeridos aunque modelan problemas comunes no describen algoritmos precisos para su solución, por lo que pueden considerarse como ejercicios de entrenimiento.
Desde la creación de las computadoras, los recursos disponibles (en términos de memoria, procesamiento, almacenamiento, etc) han sido limitados. En los primeros años no existieron problemas de bloqueo debido a que los programas se ejecutaban en secuencia, uno después del otro, sin embargo poco después y hasta nuestras fechas, los recursos de una computadora se comparten entre muchos programas. Cuando más de uno acapara un recurso que otro necesita, se crea una condición de bloqueo que puede inutilizar el resto del sistema y pausar indefinitivamente el equipo/programa.
Los ejercicios sugeridos en este módulo aunque describen tal estado, no representan soluciones logarítmicamente precisas para su resolución. Por lo que pueden considerarse ejercicios de entrenimiento. Se deja a consideracion del docente su aplicación en el aula.
Las actividades del tercer bloque introducen conceptos de programación, contienen lenguaje especializado y reutilizan grafos sin especificarse explícitamente, en adición a esto los ejemplos dejan de mencionar estructuras requeridas (de decisión y repetición) para describir máquinas de Turing completas (o lenguajes de programación funcionales), por lo que la flexibilidad de los ejercicios se limita. Se pueden considerar ejercicios de entrenimiento. Se sugiere diseñar ejercicios complementarios para abordar la unidad, dado que los temas repasados son piedra fundamental de la informática moderna.
Adicionalmente a los ejercicios propuestos por el libro “Computer Science Unplugged”, se sugieren los siguientes: