Semana 01 - Introducción a la Programación
Objetivos
Introducir los conceptos fundamentales de programación y preparar las bases para el aprendizaje del lenguaje C.
- Comprender qué es programar y por qué es importante
- Entender la diferencia entre lenguajes de alto y bajo nivel
- Aprender a diseñar algoritmos usando pseudocódigo y diagramas de flujo
- Saber identificar entradas, salidas y requerimientos de un problema
- Conocer la metodología de resolución de problemas
- Conocer el proceso de compilación de programas
Contenidos
¿Qué es Programar?
- Definición: Programar es dar instrucciones precisas a una computadora para resolver un problema
- Componentes: Datos (información) y Operaciones (acciones sobre los datos)
- Objetivo: Automatizar tareas y resolver problemas de manera eficiente
Lenguajes de Programación
- Lenguaje de máquina: Código binario directamente ejecutable por la computadora
- Lenguajes de bajo nivel: Cercanos al hardware (ensamblador)
- Lenguajes de alto nivel: Más cercanos al lenguaje humano (C, Python, Java)
Algoritmos
- Definición: Secuencia ordenada de pasos para resolver un problema
- Características: Preciso, finito, efectivo
- Ejemplos: Encontrar el mayor de dos números, calcular un promedio
Diagramas de Flujo
- Definición: Representación gráfica de un algoritmo mediante símbolos estandarizados
- Símbolos comunes: Inicio/Fin (óvalo), Proceso (rectángulo), Decisión (rombo), Entrada/Salida (paralelogramo)
- Ventajas: Visualizan el flujo de ejecución y las ramas de decisión antes de escribir código
Pseudocódigo
- Propósito: Diseñar algoritmos antes de implementarlos en código
- Estructura: Alg, Input, Output, Vars, inicio…fin
- Ventajas: Independiente del lenguaje de programación, fácil de entender
Cómo leer un enunciado
- Identificar entradas: datos que el programa recibe del usuario
- Identificar salidas: resultados que el programa debe producir
- Requerimientos: qué debe hacer el programa (funcionalidad esperada)
- Restricciones: límites o condiciones sobre los datos o el problema
- Enunciado ambiguo vs. claro: un buen enunciado especifica tipo, cantidad y rango de los datos
Metodología de resolución de problemas
- Entender: leer el enunciado, identificar entradas y salidas
- Planificar: diseñar el algoritmo en pseudocódigo o diagrama de flujo
- Ejecutar: implementar en código y compilar
- Revisar: probar con distintos valores, depurar y verificar
Proceso de Compilación
- Pasos: Código fuente → Compilador → Código objeto → Enlazador → Ejecutable
- Herramientas: Compilador (gcc), enlazador, depurador
- Tipos de errores: sintaxis (detectados al compilar) y lógica (detectados al ejecutar)
Material de Clase
Presentaciones
Práctico
Recursos
Para Practicar
Bibliografía
- “El lenguaje de programación C” - Kernighan & Ritchie
- “Cómo programar en C/C++” - Deitel & Deitel