Lecturas complementarias — Unidad I
Esta ruta no pretende que leas libros completos. Su propósito es orientar la consulta de fuentes académicas confiables para consolidar los conceptos de esta unidad. No es necesario leer todas las fuentes de principio a fin: consulta la lectura indicada, identifica los conceptos señalados, compáralos con los ejemplos trabajados en clase y elabora tus propias explicaciones. Una definición encontrada en un libro no sustituye la comprensión del concepto — debes poder explicarlo con tus propias palabras y aplicarlo a un problema sencillo.
Ruta general de aprendizaje
Section titled “Ruta general de aprendizaje”PROGRAMACIÓN → COMPUTADORA → PROBLEMA → RAZONAMIENTO → ABSTRACCIÓN → ALGORITMO → REPRESENTACIÓN (natural / pseudocódigo / diagrama) → COMPROBACIÓN → PROGRAMA → EJECUCIÓNLectura 1 — ¿Por qué aprender a programar?
Section titled “Lectura 1 — ¿Por qué aprender a programar?”Fuente principal: Joyanes Aguilar (2020), Parte I (“Algoritmos y herramientas de programación”), Capítulo 1 (“Introducción a las computadoras y a los lenguajes de programación”) y Capítulo 2 (“Metodología de la programación y desarrollo de software”).
Preguntas de lectura: ¿Qué problema intenta resolver la programación? ¿Por qué un programador necesita analizar antes de escribir código? ¿Qué relación existe entre algoritmo y programa? ¿Por qué la abstracción es importante para resolver problemas? ¿Qué papel desempeñan los lenguajes de programación?
Lectura 2 — Computadora, programa y lenguaje
Section titled “Lectura 2 — Computadora, programa y lenguaje”Fuente principal: Joyanes Aguilar (2020), Capítulo 1. Fuente complementaria: Levine Gutiérrez (1994).
Preguntas de lectura: ¿Qué hace una computadora? ¿Qué es una instrucción? ¿Qué diferencia existe entre una instrucción y un programa? ¿Qué es un lenguaje de programación? ¿Por qué existen diferentes lenguajes? ¿Qué relación existe entre un lenguaje y un programa?
Lectura 3 — ¿Qué es un algoritmo?
Section titled “Lectura 3 — ¿Qué es un algoritmo?”Fuente principal: Joyanes Aguilar (2020), Capítulo 1. Fuente complementaria: Cairo Battistutti (2015).
Al estudiar el concepto de algoritmo, presta atención a: orden de las acciones, claridad, precisión, secuencia, objetivo, resultado esperado, posibilidad de ejecución.
Preguntas de lectura: ¿Qué problema resuelve un algoritmo? ¿Por qué el orden de los pasos es importante? ¿Qué ocurre si un paso es ambiguo? ¿Puede una solución tener diferentes algoritmos? ¿Un algoritmo necesariamente está escrito en un lenguaje de programación?
Lectura 4 — Del problema al algoritmo
Section titled “Lectura 4 — Del problema al algoritmo”Fuente principal: Cairo Battistutti (2015). Fuente complementaria: Joyanes Aguilar (2020), capítulo sobre metodología de programación y desarrollo de software.
Preguntas de reflexión: ¿Por qué no conviene comenzar inmediatamente a escribir código? ¿Qué información necesitamos comprender antes de construir una solución? ¿Qué significa descomponer un problema? ¿Cómo podemos saber si una solución es razonable antes de programarla?
Lectura 5 — Representación de algoritmos
Section titled “Lectura 5 — Representación de algoritmos”Fuente principal: Cairo Battistutti (2015). Fuente complementaria: Joyanes Aguilar (2020).
Ejercicio de lectura — una solución, tres representaciones
Section titled “Ejercicio de lectura — una solución, tres representaciones”Problema: una persona necesita preparar una taza de café.
Lenguaje natural:
1. Tomar una taza.2. Calentar agua.3. Colocar café en la taza.4. Agregar el agua caliente.5. Mezclar.6. Servir.Pseudocódigo:
Algoritmo PrepararCafe tomar taza calentar agua colocar café agregar agua caliente mezclar servirFinAlgoritmoRepresenta también un diagrama de flujo con la misma secuencia. Pregunta fundamental: ¿las tres representaciones describen la misma solución? Justifica tu respuesta.
Lectura 6 — Razonamiento lógico y pensamiento computacional
Section titled “Lectura 6 — Razonamiento lógico y pensamiento computacional”Fuente académica complementaria: Wing, J. M. (2006). Computational Thinking. Communications of the ACM, 49(3), 33–35. DOI: 10.1145/1118178.1118215.
Esta lectura ayuda a comprender por qué las habilidades de abstracción, descomposición y razonamiento sistemático son importantes al aprender a resolver problemas mediante computadoras.
Preguntas de lectura: ¿Qué significa pensar de manera computacional? ¿Qué significa descomponer un problema? ¿Qué significa abstraer? ¿Por qué no necesitamos considerar todos los detalles de un problema? ¿Cómo se relaciona el pensamiento computacional con los algoritmos?
Lectura 7 — Algoritmo y programa no son lo mismo
Section titled “Lectura 7 — Algoritmo y programa no son lo mismo”Fuente principal: Joyanes Aguilar (2020). Fuentes complementarias: Kernighan & Ritchie (1991), Stroustrup (2000).
Preguntas: ¿Puede existir un algoritmo sin un programa? ¿Puede existir un programa sin una solución algorítmica claramente comprendida? ¿Qué función cumple el lenguaje de programación? ¿Qué se transforma cuando pasamos de pseudocódigo a código?
Lectura 8 — Comprobación de una solución
Section titled “Lectura 8 — Comprobación de una solución”Fuente principal: Joyanes Aguilar (2020). Fuente complementaria: Cairo Battistutti (2015).
En esta unidad se utiliza una comprobación sencilla mediante ejemplos: ¿los pasos están ordenados? → ¿falta alguna acción? → ¿existe ambigüedad? → ¿se puede ejecutar cada paso? → ¿se obtiene el resultado esperado? Esta comprobación no constituye todavía una metodología formal de pruebas de software — en esta unidad se busca desarrollar el hábito de revisar una solución antes de implementarla.
Lectura opcional — programación visual
Section titled “Lectura opcional — programación visual”Recurso: Scratch Foundation / MIT. Scratch es un entorno de programación visual basado en bloques, diseñado para crear historias interactivas, juegos y animaciones, y para desarrollar pensamiento creativo, razonamiento sistemático y colaboración. En esta materia se usa para observar la transición algoritmo → representación → programa visual → ejecución. No sustituye al pseudocódigo ni al diagrama de flujo, ni es el lenguaje de programación principal de la asignatura.
Ruta mínima (si tienes poco tiempo)
Section titled “Ruta mínima (si tienes poco tiempo)”| Orden | Fuente | Tema |
|---|---|---|
| 1 | Joyanes | Computadora, programación, algoritmo y lenguaje |
| 2 | Cairo | Algoritmos y representación |
| 3 | Joyanes | Relación algoritmo-programa |
| 4 | Cairo | Pseudocódigo y diagramas de flujo |
| 5 | Wing | Pensamiento computacional |
| 6 | Scratch | Consulta opcional |
Qué no necesitas estudiar todavía
Section titled “Qué no necesitas estudiar todavía”Para evitar confusiones con las unidades siguientes, en esta etapa no es necesario profundizar en: tipos de datos, variables, constantes, operadores, funciones matemáticas, resolución de expresiones, compiladores, estructuras secuenciales formales, condicionales, ciclos, funciones, arreglos, estructuras de datos, depuración formal, planes de pruebas, pruebas unitarias ni optimización de algoritmos. Estos contenidos se abordan progresivamente en las unidades correspondientes.
Producto de lectura recomendado
Section titled “Producto de lectura recomendado”Después de completar la ruta, elabora una síntesis personal de una página, “De un problema a un programa”, que explique con tus propias palabras: qué es un problema computable, qué es un algoritmo, qué relación existe entre algoritmo y programa, qué función tiene un lenguaje de programación, qué es el pseudocódigo, qué es un diagrama de flujo, qué significa abstraer, qué significa descomponer un problema, cómo se puede comprobar una solución algorítmica, y por qué programar no significa simplemente escribir código. No se evalúa la capacidad de copiar definiciones textuales.
Fuentes digitales
Section titled “Fuentes digitales”- Ficha oficial de Fundamentos de programación (Joyanes Aguilar, 5.ª ed.), McGraw-Hill: https://www.mheducation.com.mx/fundamentos-de-programacion-ebook-9781456279417-latam
- Artículo de Jeannette M. Wing en ACM (DOI): https://doi.org/10.1145/1118178.1118215
- Sitio oficial de Scratch: https://scratch.mit.edu/
Resultado esperado
Section titled “Resultado esperado”Al finalizar esta ruta deberías poder explicar y demostrar la siguiente cadena:
Comprendo el problema → Identifico lo importante → Descompongo el problema → Organizo una solución → Construyo un algoritmo → Lo represento → Compruebo la solución → Puedo implementarla mediante un programaLa meta de esta unidad no es que memorices definiciones. La meta es que empieces a desarrollar la capacidad de pensar una solución antes de escribir código.

