
Programación en Ingeniería (IILI06104)
Tabla de contenidos
- Introducción
- Datos generales
- Competencia de la UDA
- Contenido
- Entregas y evaluación
- Tareas
- Prácticas
- Proyecto final
- Elementos mínimos de los reportes
- Repositorio y plataformas
- Documentación del código (Doxygen)
- Estructura sugerida del repositorio
- Código de ética y conducta profesional
- Bibliografía
- Contacto
- Licencia
Introducción
Esta Unidad de Aprendizaje (UDA) desarrolla bases sólidas de programación en C para resolver problemas de ingeniería con énfasis en:
- Estructuras de datos y algoritmos,
- Memoria dinámica y punteros,
- Manejo eficiente de archivos (texto y binarios),
- Buenas prácticas de programación estructurada,
- Trabajo profesional y ético.
Nota: Este repositorio concentra materiales, código, guías y entregables de la UDA.
Datos generales
- UDA: Programación en Ingeniería
- Clave: IILI06104
- Periodo: Enero 2026
- Días: Lunes y Jueves
- Horario: 12:00–14:00
- Aula: B101
- Créditos: 6 (150 horas totales: 72 con profesor/a + 78 autónomas)
- Prerrequisito normativo: Ninguno
- Prerrequisito recomendable: Fundamentos de los Sistemas de Información (IILI06061)
Competencia de la UDA
Diseña e implementa programas computacionales en C para abordar problemas complejos en ingeniería de datos e inteligencia artificial, empleando estructuras de datos avanzadas, manipulación de memoria dinámica y manejo eficiente de archivos, con apego a buenas prácticas, ética profesional y metodologías de programación estructurada.
Contenido
El contenido se organiza en los siguientes ejes:
- Estructura de un programa en C
- Variables
- Reglas para identificadores
- Tipos de datos
- Alcance
- Operadores básicos
- Aritméticos, comparación, lógicos, binarios
- Ejemplos
- Sentencias de control
- Decisiones (if/switch), ciclos (for/while/do-while), anidamientos
- Arreglos
- 1D (inicialización, longitud, búsqueda, ordenamiento: fuerza bruta, inserción, conteo)
- Cadenas (longitud, carácter nulo, copiado, concatenado, búsqueda, conversión)
- 2D y multidimensionales
- Manipulación de bits
- Funciones
- Prototipos, paso por valor/referencia, main(argc, argv), recursividad
- Estructuras y uniones
- Punteros
- Aritmética, punteros a arreglos/cadenas/estructuras/funciones
- Memoria dinámica
- Punteros a punteros
- Listas enlazadas (simples y dobles), árboles binarios
- Manejo de archivos
- Conceptos, flujo, posicionamiento
- Texto y binarios (lectura/escritura/búsqueda/actualización/temporales)
- Directivas de preprocesamiento
- Tópicos avanzados
- Unicode, números complejos, hilos (threads)
Entregas y evaluación
Ponderaciones
| Elemento | Porcentaje |
| Tareas | 8% |
| Exámenes rápidos | 8% |
| Primera evaluación (1–4) | 8% |
| Primera práctica | 10% |
| Segunda evaluación (5–9) | 8% |
| Segunda práctica | 10% |
| Tercera evaluación (10–13) | 8% |
| Tercera práctica | 10% |
| Código del proyecto final | 10% |
| Presentación del proyecto final | 10% |
| Reporte del proyecto final | 10% |
| Total | 100% |
Tareas
- Plataformas: Microsoft Teams y CSAcademy
- Entrega por correo: mibarram@gmail.com
- Asunto: PI 2026 1 T## NUA Apellidos
- Formato: reporte PDF con diagramas de flujo y simulaciones (cuando aplique)
- Restricción: no entregar ejecutables; solo código fuente y reporte
- Fecha de entrega: 1 semana (a partir de la asignación)
Prácticas
- Plataforma: Microsoft Teams
- Entrega por correo: mibarram@gmail.com
- Asunto: PI 2026 1 P# NUA Apellidos
- Modalidad: equipo (máximo 3 integrantes)
- Formato: reporte PDF con diagramas de flujo, simulaciones, tablas de resultados
- Restricción: no ejecutables; solo código fuente y reporte
- Fecha de entrega: acordada en clase
Proyecto final
- Plataforma: Microsoft Teams
- Entrega por correo: mibarram@gmail.com
- Asunto: PI 2026 1 Py ## NUA Apellidos
- Modalidad: equipo (máximo 3 integrantes)
- Entregables:
- reporte PDF (diagramas de flujo, simulaciones, tablas y análisis),
- código fuente,
- presentación,
- sesión de preguntas y respuestas.
Elementos mínimos de los reportes
- Introducción
- Objetivos
- Procedimiento (Algoritmo + Estructura de datos)
- Diagrama de flujo
- Resultados y análisis
- Tablas comparativas (si aplica)
- Conclusiones
- Bibliografía
Repositorio y plataformas
- Repositorio oficial (GitHub): https://github.com/ibarram/ProgIng/
- Microsoft Teams (código de equipo): co3pdww
- Repositorio/Materiales (Dropbox): disponible en el grupo (liga compartida)
- Comunidad (Facebook): grupo de apoyo (liga compartida en Teams)
Plataformas recomendadas para práctica y competencia:
- Repl.it, HackerRank, CSAcademy, OmegaUp, Project Euler, Codeforces, Codingame
Software sugerido:
- Dev-C++, MinGW, Code::Blocks, Visual Studio Community, Visual Studio Code, Eclipse, GNU Emacs, NetBeans
Documentación del código (Doxygen)
Este repositorio incluye ejemplos en C documentados (HTML y PDF) con comentarios estilo Doxygen. La documentación se genera en:
- doc/doxygen/html/index.html
- doc/doxygen/latex/refman.pdf
Requisitos
- Doxygen
- Graphviz (opcional, pero recomendado para CALL_GRAPH / CALLER_GRAPH)
Instalación típica:
- openSUSE: sudo zypper install doxygen graphviz texlive-scheme-medium latexmk
- Ubuntu/Debian: sudo apt-get update && sudo apt-get install doxygen graphviz texlive-scheme-medium latexmk
- macOS (Homebrew): brew install doxygen graphviz MacTeX
Generar documentación
Estructura sugerida del repositorio
.
├─ doc/
│ ├─ pdf/ # Temario, consideraciones, guías
│ ├─ slide/ # Presentaciones (PDF)
│ ├─ img/ # Imágenes (escudo, figuras)
│ └─ markdown/ # Notas y guías (Markdown)
├─ src/
│ ├─ 20251/ # Ejemplos desarrollados en la UDA para el periodo E-J 2025
│ ├─ 20251/ # Ejemplos desarrollados en la UDA para el periodo A-D 2025
│ ├─ 20251/ # Ejemplos desarrollados en la UDA para el periodo E-J 2026
│ ├─ tools/ # Scripts de apoyo (opcional)
│ └─ templates/ # Plantillas de reporte y estilos
├─ data/ # Archivos de entrada/salida
└─ LICENSE
Código de ética y conducta profesional
- El código debe ser original y debidamente referenciado.
- Se penaliza el plagio (copiar-pegar sin atribución) y la suplantación.
- Se fomenta la colaboración en equipo cuando esté permitida, respetando las reglas de autoría.
- El uso de herramientas de apoyo (incluida IA) debe reflejarse con transparencia en el reporte (qué se usó y cómo).
Bibliografía
- Gazi, O. (2024). Modern C Programming (1st Ed.). Springer Cham.
- Horton, I. (2013). Beginning C (5th Ed.). Apress.
- Chavan, S. (2017). C Recipes (1st Ed.). Apress.
- Toppo, N. & Dewan, H. (2013). Pointers in C (1st Ed.). Apress.
- Goyal, A. (2013). Moving from C to C++ (1st Ed.). Apress.
- Kalicharan, N. (2017). Advanced Topics in C (1st Ed.). Apress.
- Erickson, J. (2019). Algorithms (1st Ed.). University of Illinois.
Contacto
Dr. M.-A. Ibarra-Manzano - DICIS-UG - ORCID: 0000-0003-4317-0248 - SCOPUS: 15837259000
Unidad de Aprendizaje Link: Programación en Ingeniería
Licencia
Este repositorio se distribuye bajo GPL-3.0. Consulta el archivo LICENSE.