Skip to content
@INGCOM-UNRN-P1

UNRN Andina - Ingeniería en Computación - Programación 1

Cátedra de la Ingenieria en Computación de la Universidad Nacional de Rio Negro

Programación 1 [B6003]

Este es el perfil para la cátedra de Programación 1 (B6003) de la Ingeniería en Computación de la Universidad Nacional de Río Negro, sede Andina, que se encuentra ubicada en San Carlos de Bariloche.

Apunte de la cátedra

Desde la edición del año 2025, la cátedra ha incorporado un resumen exhaustivo de los temas impartidos en ella, además de algunos temas adicionales (y avanzados) de interés.

En el Apunte, encontraran los términos y condiciones de la cursada, aspectos generales y un extensivo apunte sobre el lenguaje.

Tematicas

En este curso, adquiriremos conocimientos sobre cómo programar utilizando el lenguaje de programación C, utilizando de manera extensa el uso de git⁣.

git C

Cursadas

Badge

Entorno de Desarrollo y Ecosistema de Cátedra

La cátedra de Programación 1 utiliza un entorno de desarrollo estructurado bajo estándares modernos de ingeniería de software en C11 / GNU C, con un fuerte enfoque pedagógico y de aseguramiento de calidad:

  • Compilador y Flags Estrictos: Todo el código se compila bajo -Wall -Wextra -Werror -pedantic -std=c11, garantizando cero advertencias toleradas y detección temprana de comportamiento indefinido.
  • Reglas de Calidad y Estilo Cátedra (0xXXXXh): Adhesión estricta al Catálogo de Reglas de Estilo, clasificadas temáticamente mediante máscaras hexadecimales (0x00XXh a 0x50XXh).
  • Aislamiento y Sanitizers: Ejecución en entornos sandbox herméticos (Bubblewrap / cgroups) y compilación instrumentada con AddressSanitizer (ASan), UndefinedBehaviorSanitizer (UBSan) y Valgrind para auditoría exhaustiva de memoria y prevención de leaks.
  • Gestor de Paquetes y Herramientas: Las herramientas de soporte y análisis se distribuyen de forma nativa e independiente mediante uv y entornos virtuales reproducibles.

Arsenal de herramientas (pedagogicas)

La cátedra orgullosamente ha desarrollado un conjunto de herramientas de código para ayudar al aprendizaje y la docencia.

Cada herramienta tiene su propio repositorio, por lo que se aceptan issues, PR's y comentarios generales.

Compilación, Diagnóstico y Sanitizers

  • daedalus: Compilador pedagógico y traductor contextual de advertencias y errores de GCC/Clang/ld a explicaciones claras en español.
  • esper: Explicador interactivo y formateador estructurado de salidas de diagnóstico del compilador.
  • tetsuo: Traductor y analizador pedagógico de fallas reportadas por Sanitizers (ASan, UBSan, MSan).

Evaluación, Linter y Calidad de Código

  • dredd: Juez automático de cátedra, ingesta por lotes de entregas, detección de plagio (Winnowing) y generación de reportes pedagógicos modulares.
  • ripley: Motor de análisis estático AST y auditor del catálogo completo de 48 reglas P1 de cátedra (0xXXXXh).
  • gaff: Linter de estilo arquitectónico y convenciones obligatorias de formato con soporte de autofix automático.
  • spunkmeyer: Detector AST de antipatrones pedagógicos y vicios didácticos comunes en C.
  • weyl: Diffing semántico y comparación estructural de ASTs entre soluciones canónicas y entregas.

Memoria, Recursión y Tipos de Datos

  • bishop: Visualizador interactivo de memoria C (Stack Frames, variables locales, Heap y punteros) en terminal ASCII y Mermaid.
  • sebastian: Analizador de recursión, perfilado de consumo de memoria en Stack Frames y detección de desbordes de pila (stack overflow). *
  • brett: Auditor de alineación de memoria y padding en structs C con optimizador de reordenamiento de campos.
  • motoko: Verificador de encapsulamiento estricto y opacidad en Tipos Abstractos de Datos (TDAs).

Flujo de Control, Call Graphs y Ensamblador

  • rachel: Desensamblador y visualizador de estructuras de control y comparación de eficiencia en Jump Tables $O(1)$ vs cadenas if-else.
  • giger: Generador de grafos de flujo de control (CFG), mapas de llamadas (*Call Graphs*) y detección de código muerto.

Testing, Cobertura, Fuzzing y Mutación

  • drake: Fuzzer pedagógico guiado por límites (valores extremos, desbordes) y cobertura de ramas.
  • vassili: Motor de Mutation Testing en C para evaluar la efectividad y robustez de suites de pruebas unitarias.
  • dietrich: Validador de cobertura lógica avanzada MC/DC (Modified Condition/Decision Coverage).
  • tyrell: Generador sintético y determinista de datasets y casos de prueba .in / .out con restricciones.
  • callahan: Verificador formal de contratos ACSL (pre/postcondiciones e invariantes) con Frama-C WP.

Diagnóstico Forense, Mocks y Simulación

  • hal: Asistente forense para inspección de core dumps y análisis post-mortem pedagógico de fallas de segmentación (SIGSEGV/SIGABRT).
  • holden: Generador de mocks e inyector determinista de fallos de asignación de memoria y archivos en tiempo de compilación.
  • vasquez: Inyector de fallos de entorno, hardware y llamadas al sistema vía LD_PRELOAD.
  • kane: Simulador y depurador visual de operaciones de E/S de bajo nivel y archivos binarios.

Sandbox, Seguridad y Portabilidad

  • nostromo: Sandbox hermético de ejecución aislada con Bubblewrap y límites estrictos de CPU y memoria.
  • kaneda: Auditor de seguridad en código C, detección de buffer overflows y syscalls restringidas.
  • wierzbowski: Auditor de grafos de inclusión de cabeceras, dependencias circulares y Makefiles.
  • parker: Auditor de estabilidad de ABIs, visibilidad de símbolos (__attribute__) y compatibilidad binaria.
  • zhora: Linter y auditor de seguridad para macros complejas del preprocesador C (#define).
  • crowe: Linter de portabilidad multi-arquitectura (x86_64, ARM, RISC-V y endianness).
  • corbel: Generador liviano de documentación de APIs, interfaces TDA y páginas de manual (man 3).
  • ferro: Perfilador de rendimiento algorítmico, ciclos de CPU y hardware counters.

Gestión Docente y Generación de Contenidos

  • deckard: Generador de guías de trabajos prácticos balanceadas según taxonomía de Bloom y presupuestos de tiempo.
  • idkfa: Generador de cuestionarios Moodle XML parametrizados y variantes aleatorias anti-trampa con ejecución GCC.
  • alucarD: Generador de exámenes y bancos de preguntas GIFT/Moodle XML con verificación de código C.
  • moodle-toolbox: Utilidades de mantenimiento, conversión GIFT $\leftrightarrow$ XML y reorganización de categorías para Moodle.

Pinned Loading

  1. cursada-2023 cursada-2023 Public

    El material de la cátedra edición 2023

    C 62 2

  2. cursada-2024 cursada-2024 Public

    El material de la cátedra edición 2024

    C 40 1

  3. cursada-2025 cursada-2025 Public

    El material de la cátedra edición 2025

    16

  4. INGCOM-UNRN-P1.github.io INGCOM-UNRN-P1.github.io Public

    Apunte de la cátedra B6003 de Ingeniería en Computación

    C 3

Repositories

Showing 10 of 66 repositories

Top languages

Loading…

Most used topics

Loading…