• Inicio

    Descripción general de la materia
     Objetivos
    • Especificar problemas por medio de precondiciones y postcondiciones usando un lenguaje formal (en nuestro caso, lógica de primer orden con números enteros, secuencias, reales, booleanos, strings, sumatorias, productorias y “cuentatorias”).
    • Razonar sobre la corrección de programas imperativos, incluyendo transformaciones de estados y usos informales del teorema de alternativas y del teorema del invariante.

    • Conocer la teoría de demostraciones formales usando precondición más débil, incluyendo las versiones formales del teorema de alternativas y del teorema del invariante.

    • Conocer y desarrollar algoritmos sobre secuencias, incluyendo búsqueda binaria, algoritmos cuadráticos de ordenamiento de arreglos y otros algoritmos interesantes sobre arreglos y matrices.

    • Incorporar buenas prácticas de programación (modularización en funciones, estrategias para nombrar las entidades, alcance de las variables, etc.), e incorporar conceptos de testing unitario (cubrimiento de líneas y branches, oráculos).
    Contenidos

    Especificación e implementación de programas. Corrección de programas. Tratamientos de secuencias. Fundamentos de testing. Fundamentos de ordenamiento.

    Correlatividades

    Análisis I (CBC), Algebra I.

    Duración y modalidad

    La materia es cuatrimestral, con una carga horaria de 15 horas semanales: 5 horas de clases teóricas, 5 horas de clases prácticas y 5 horas de trabajo en laboratorio.