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:

  1. Fundamentos — algoritmos, pseudocódigo, variables, operadores, bits, terminal y Git.
  2. Programación en C — decisiones, ciclos, números aleatorios, funciones y pruebas.
  3. Memoria y datos — cómo funciona una computadora, arreglos, cadenas, matrices, struct, archivos, búsqueda y eficiencia.
  4. 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:

  1. Describir un problema como un algoritmo, en pseudocódigo y con diagramas de flujo, y seguirlo a mano.
  2. Explicar cómo se representan números y texto en bits, y prever errores como el overflow y la imprecisión de los decimales.
  3. Escribir en C programas con variables, decisiones, ciclos, funciones, arreglos, cadenas, matrices, struct y archivos.
  4. Probar y depurar sus programas, leyendo los mensajes del compilador y de las herramientas de diagnóstico.
  5. Usar la terminal y lo básico de Git.
  6. Explicar a grandes rasgos cómo funcionan el hardware, el sistema operativo e internet.
  7. Comparar algoritmos de búsqueda y ordenamiento según su eficiencia, con mediciones reales.
  8. 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.