Introducción a la Computación — Programa del curso
Docente: Gerson Garrido
1. Descripción
Este curso es la primera mirada a la computación: qué es un algoritmo, cómo se convierte en un programa y qué hace la computadora para ejecutarlo. Desde la primera semana ustedes programan. No se necesita experiencia previa.
Cada algoritmo se piensa primero en pseudocódigo y después se escribe en C, un lenguaje que obliga a entender qué pasa en la memoria. Al final del curso miramos de forma conceptual cómo funcionan internet y la inteligencia artificial. El curso se organiza en cuatro partes:
- Fundamentos — algoritmos, pseudocódigo, variables, operadores, bits, terminal y Git.
- Programación en C — decisiones, ciclos, números aleatorios, funciones y pruebas.
- Memoria y datos — cómo funciona una computadora, arreglos, cadenas, matrices,
struct, archivos, búsqueda y eficiencia. - Computación moderna — una mirada a Python, internet, inteligencia artificial y ética.
No hay libro de texto: los apuntes son el texto del curso. Los términos técnicos van en español cuando así se dicen (variable, arreglo, función) y en inglés cuando la traducción suena forzada (bit, commit, router). El glosario reúne los principales.
2. Carga horaria
| Componente | Horas/semana | Formato |
|---|---|---|
| Teoría | 2 h | Una sesión |
| Laboratorio | 2 h | Una sesión práctica guiada |
3. Resultados de aprendizaje
Al finalizar el curso, el estudiante será capaz de:
- Describir un problema como un algoritmo, en pseudocódigo y con diagramas de flujo, y seguirlo a mano.
- Explicar cómo se representan números y texto en bits, y prever errores como el overflow y la imprecisión de los decimales.
- Escribir en C programas con variables, decisiones, ciclos, funciones, arreglos, cadenas, matrices,
structy archivos. - Probar y depurar sus programas, leyendo los mensajes del compilador y de las herramientas de diagnóstico.
- Usar la terminal y lo básico de Git.
- Explicar a grandes rasgos cómo funcionan el hardware, el sistema operativo e internet.
- Comparar algoritmos de búsqueda y ordenamiento según su eficiencia, con mediciones reales.
- Explicar qué hace un modelo de machine learning y reconocer los límites y efectos éticos de la inteligencia artificial.
4. Bibliografía
Texto del curso: los apuntes, un capítulo por semana. No se requiere comprar ningún libro.
5. Calendario
Este es el calendario oficial del curso. Cada semana enlaza a su guía con objetivos, temas y actividades de laboratorio. Los temas marcados con ✂️ se pueden comprimir o pasar a lectura autónoma si se pierden clases por feriados. Las semanas 8 y 16 son de exámenes y no tienen clases regulares.
| Sem. | Teoría (2 h) | Laboratorio (2 h) | Práctica o examen |
|---|---|---|---|
| 1 | Presentación · Algoritmos y pseudocódigo · Del programa al ejecutable | Entorno, terminal y primer programa | |
| 2 | Variables, tipos, operadores, entrada y salida | Fórmulas en C | |
| 3 | Bits: binario, hexadecimal, enteros, decimales y texto | Bits a mano y primeros pasos con Git | |
| 4 | Decisiones y lógica booleana · ✂️ Compuertas | Decisiones | Práctica 1 |
| 5 | Ciclos: while, do while y for |
Ciclos | |
| 6 | Ciclos anidados · Números aleatorios | Ciclos anidados y una simulación | |
| 7 | Funciones · Pruebas y depuración | Funciones con pruebas y el debugger | Práctica 2 |
| 8 | Examen parcial (semanas 1 a 7) | ||
| 9 | Dentro de la computadora · Direcciones y arreglos | Arreglos | |
| 10 | Arreglos y funciones · Cadenas | Cadenas y errores de memoria | |
| 11 | Biblioteca de cadenas · Matrices | Cadenas y matrices | Práctica 3 |
| 12 | struct y archivos de texto |
Procesar un archivo de datos | |
| 13 | Búsqueda, ordenamiento y eficiencia · ✂️ Recursión | Medir búsquedas y ordenamientos | |
| 14 | Internet y la web · Una mirada a Python | Ver HTTP por dentro y comparar C con Python | Práctica 4 |
| 15 | Inteligencia artificial y ética | Actividad guiada con un asistente · Repaso | |
| 16 | Examen final (todo el curso) |
6. Prácticas
Hay cuatro prácticas individuales, en las semanas 4, 7, 11 y 14. Esa semana, la sesión de
laboratorio es para la práctica y las actividades de la guía quedan como trabajo autónomo. El
formato y las reglas están en practicas/README.md.
7. Políticas
- Trabajo: individual. Se puede discutir ideas, pero cada estudiante escribe su propio código y debe poder explicarlo. Copiar soluciones de otras personas o de internet cuenta como plagio.
8. Herramientas permitidas
Las herramientas de IA generativa están prohibidas en el curso, salvo en la actividad guiada de la semana 15. El resto depende de la herramienta:
| Herramienta | ¿Se permite? |
|---|---|
Mensajes del compilador y del intérprete, -Wall -Wextra y los sanitizers (-fsanitize) |
Sí, siempre. Son parte de lo que se enseña |
Documentación oficial (páginas man, cppreference, docs.python.org) y búsquedas en la web |
Sí, para consultar cómo funciona algo. No para copiar soluciones |
| Autocompletado del editor que completa nombres o una línea, sin generar soluciones enteras | Sí |
| Correctores de ortografía, traductores y herramientas de accesibilidad (lectores de pantalla, dictado) | Sí |
| Formateadores de código y linters, como el formateador del editor | Sí |
| IA generativa para pedir explicaciones, sin que genere código | No, salvo en la actividad guiada de la semana 15 |
| IA generativa que escribe código, incluidos los asistentes del editor | No, salvo en la actividad guiada de la semana 15, donde se revisa el código que propone |
Cómo se declara el uso. En la actividad de la semana 15, anotan en la hoja
lab/activity_sheet.md lo que le pidieron al asistente, qué hizo bien y qué error encontraron. Fuera de esa
actividad, si una idea o un fragmento de su código sale de una página de documentación o de una
búsqueda, lo anotan en un comentario junto a ese código, con el enlace. El compilador, el editor y
los correctores no se declaran. En cualquier laboratorio, práctica o examen, el docente puede
pedirles que expliquen su trabajo de forma oral.
9. Entorno de trabajo
Todo se hace en un mismo entorno, con el compilador de C, Git y Python 3.14 ya
instalados. Lo habitual es abrirlo en el navegador con GitHub Codespaces desde las
computadoras de la universidad. Codespaces necesita conexión a internet; sin ella, el
mismo entorno corre con Docker en una laptop. Instrucciones en
labs/README.md.
10. Versión en Python
El curso se puede dictar en otra universidad con una versión más sencilla, solo en
Python. La teoría y el pseudocódigo son los mismos. Cambian los laboratorios y las
prácticas; a cambio se dejan de ver las direcciones de memoria, el \0 de las
cadenas y struct, y las semanas 9 a 12 pasan a listas, cadenas, diccionarios y
archivos. Esta versión todavía no está construida.