LÓGICA COMPUTACIONAL

PLAN DEL CURSO

Andréi Nikoláyevich Kolmogórov (1903 - 1987)
Fue un matemático ruso que hizo progresos importantes en los campos del escenario y de la topología. En particular, desarrolló una base axiomática que supone el pilar básico de la teoría de la probabilidad a partir de la teoría de conjuntos. Trabajó al principio de su carrera en lógica constructivista y en las series de Fourier. También trabajó en turbulencias y mecánica clásica. Asimismo, fue el fundador de la teoría de la complejidad algorítmica. Obtuvo su doctorado en la Universidad Estatal de Moscú bajo la dirección de Nikolái Luzin en 1929. Completó sus estudios en la Universidad Estatal de Moscú en 1925 donde llegó a ser profesor en 1930. En 1935 recibió el grado doctoral en Física y Matemáticas; y desde 1938 hasta su muerte mantuvo la Cátedra en el Departamento de Lógica Matemática. Fue miembro de la Academia de Ciencias y Ciencias Pedagógicas de la Unión Soviética. Más aún, fue miembro de la Academia de Ciencias de USA, del Instituto Francés, de la Royal Society en Londres. Fue miembro honorífico además de en las anteriores, de la Academia Internacional de Historia y Ciencias, y recibió premios nacionales e internacionales. Escribió muchos libros y más de 200 artículos sobre Teoría de Funciones, Lógica Matemática, Teoría de las Probabilidades y aplicaciones, Problemas de Estacionalidad, Educación e Historia de las matemáticas.

1. IDENTIFICACIÓN DE LA ASIGNATURA

PROGRAMA: INGENIERÍA DE SISTEMAS
CURSO: LÓGICA COMPUTACIONAL
EJE DE FORMACIÓN: ESPECÍFICO
NIVEL: I
CÓDIGO: IS003
CRÉDITOS: 2
HORAS PRESENCIALES: 32
VÁLIDO DESDE: 2011-I

2. CONCEPTO Y DEFINICIÓN
La lógica computacional o lógica formal siempre ha sido una herramienta fundamental para el progreso de las ciencias computacionales, y sus desarrollos son la base para elaborar soluciones informáticas, tanto en software como en hardware. Es bien conocido que los profesionales que aplican adecuadamente el razonamiento lógico tiene mayores posibilidades de éxito, tanto en lo profesional como en lo personal, ya que analizar, saber buscar posibilidades, demostrar o refutar afirmaciones diversas, le permite a quien tiene ese conocimiento y manejo ser un mejor ser humano y por consiguiente un profesional con mayores y mejores aptitudes y actitudes para vivir en una sociedad como la actual, necesitada de ecuanimidad, raciocinio y capacidad de análisis para solucionar sus cada vez más complejos problemas.
Diseñar, desarrollar y mantener software son procesos netamente creativos que se sustentan fundamentalmente en la capacidad de razonamiento, en el pensamiento computacional y algorítmico y en la habilidad para abstraer cualquier problema, por lo que es necesario estructurar este curso para ofrecer una base sólida de la lógica en la línea computacional para los futuros ingenieros de sistemas. Desde la publicación de los trabajos de Herbrand en 1930 la lógica se ha convertido en un valioso instrumento conceptual al servicio de las ciencias computacionales, en la que ayudan para representar el conocimiento y para soportar el diseño de sistemas de información, es decir, hoy la lógica computacional se aborda desde la perspectiva de aplicación a la computación.

¿Por qué aparece la lógica en las ciencias computacionales?
La lógica funda sus teorías en las Ciencias Computacionales, como lo plantean las recomendaciones curriculares de los diferentes organismos internacionales como la Association for Computing Machinery -ACM- y el Institute for Electrical and Electronic Engineers -IEEE. Estos entes proponen utilizar la lógica en las Ciencias Computacionales como instrumento de la tarea de representación y resolución de problemas por medio del computador. Además, reconocen el carácter fundamental de la lógica como herramienta imprescindible para el ingeniero, ya que le permite elaborar especificaciones formales y formalizar líneas de razonamiento, diseño y descripción de sistemas.

3. CONOCIMIENTOS PREVIOS
De acuerdo con la anterior perspectiva y atendiendo a los descriptores de esta asignatura en el plan de estudios, se espera que los estudiantes tengan buenas bases de razonamiento general, razonamiento abstracto, lógica matemática, y comprensión y resolución matemática de problemas. Estos conceptos hacen parte de los planes curriculares generales estructurados en la educación media, por lo que los estudiantes de primer semestre deben haberlos recibido en sus procesos formativos.

4. OBJETIVOS DE ESTUDIO
  • Proporcionar una formación sólida en los fundamentos formales de la Lógica Computacional observando el carácter abstracto y simbólico
  • Motivar en el estudiante su capacidad de razonamiento y mayor habilidad para pensar lógicamente en la comprensión de problemas
  • Apreciar la Lógica Computacional en cuanto a su aplicabilidad y saber emplearla para presentar soluciones a los problemas computacionales
  • Aportar elementos básicos para la argumentación lógica, el análisis y la formulación paso a paso de procesos, esenciales en la comprensión y aplicación de las ciencias computacionales

  • Al finalizar el curso el estudiante, trabajando individualmente o en equipo, estará en capacidad de:
    1. Utilizar apropiadamente los principios y conceptos fundamentales del razonamiento lógico y matemático
    2. Proponer, analizar, sustentar y demostrar la validez o no de conjeturas matemáticas sencillas
    3. Analizar las posibles alternativas de solución que se presentan en una situación dada
    4. Analizar, abstraer e interrelacionar adecuadamente los requisitos iniciales de funcionamiento en un determinado sistema
    5. Analizar la validez de todo tipo de razonamiento

    5. RELEVANCIA PEDAGÓGICA DEL OBJETO DE ESTUDIO
    De acuerdo con los descriptores de la ciencias computacionales, la lógica computacional tiene una relación directa con:

    Matemática Discreta. A través de la aritmética entera y modular, la combinatoria, los grafos y la teoría de conjuntos. Los sistemas de razonamiento de la lógica computacional son la base para las demostraciones en estructuras discretas, además los lenguajes normalizados y grafos participan conjuntamente en el estudio de los problemas; mientras que el concepto de conjuntos están estrechamente relacionados con el aprendizaje del lenguaje de la lógica de primer orden.

    Lógica de programación. A través de la algoritmia, las estructuras de programación y el análisis estructurado de problemas. La lógica computacional es la base para comprender, analizar y proponer soluciones a los problemas de la lógica de programación.

    Ingeniería de software. A través de abstracción de problemas, representación gráfica de modelos, iteraciones e interacciones. El ciclo de vida del software que se aplica en la ingeniería de software requiere de la lógica computacional para que la ingeniería de requisitos y las pruebas del software se integren desde el comienzo mismo de la interacción con los usuarios.

    La lógica computacional justifica su inclusión en las ciencias computacionales porque sus teorías se aplican a diversos campos:

    El diseño del hardware. Para diseñar computadores digitales y los que funcionan con circuitos integrados VLSI, se utiliza lógica computacional. La lógica de Hoare en los primeros y la lógica de orden superior en los segundos, y para ambos la base es el cálculo proposicional.

    Los lenguajes de programación. La lógica como lenguaje se orienta más a las personas que otros lenguajes de programación clásicos, por lo que se convirtió en la base fundamental para la aparición de la nueva generación de lenguajes de programación. Este paradigma de programación, conocido como programación lógica, por sí solo justifica la inclusión de la lógica en los programas de informática. Los lenguajes funcionales como LISP se inspiran en el cálculo lamba de Church, y los lógicos como PROLOG3 en el teorema de Herbrand y en el principio de Resolución de Robinson, conceptos que hacen parte de la demostración automática de teoremas y utilizados en las investigaciones para demostrar automáticamente teoremas y sistemas de razonamiento.

    La lógica formal. Los lenguajes formales se utilizan en el razonamiento de programas, lo mismo que el cálculo proposicional. En la lógica de programación se crea un lenguaje -seudocódigo- con el que se expresa ciertas propiedades de los programas, como corrección, equivalencia de programas o la propiedad de finitud.

    La especificación formal. Es una de las aplicaciones más importantes de la lógica de predicados, y que se utiliza para describir los requisitos que el usuario necesita que realice el programa. Es un una aplicación de la lógica computacional utilizada en el desarrollo de software crítico, de tal manera que los componentes del sistema especificados formalmente, pueden verificarse y validarse matemáticamente, lo que incrementa la confiabilidad y calidad del sistema completo. Lenguajes de especificación formal como Z o VDM se basan en estos principios.

    6. COMPETENCIAS ACADÉMICAS

    Transversales genéricas
  • Capacidad analítica, de abstracción y de síntesis
  • Capacidad organizativa, propositiva y de planificación
  • Habilidades elementales en ciencias computacionales
  • Análisis y resolución de problemas
  • Toma de decisiones
  • Capacidad de crítica y autocrítica
  • Trabajo en equipo
  • Capacidad para aplicar la teoría en la práctica
  • Habilidades de investigación
  • Capacidad de adaptación a nuevas situaciones
  • Capacidad de argumentar y generar nuevas ideas

  • Específicas
  • Serán capaces de integrar y aplicar el conocimiento adquirido para resolver problemas en entornos nuevos dentro de contextos más amplios y mulitidisciplinares.
  • Estarán en capacidad de comprender sistemáticamente las Ciencias Computacionales, y de comprender y utilizar el lenguaje formal para la especificación y redacción de resultados.
  • Podrán abstraer las propiedades estructurales de las observaciones para representarlas en un modelo.
  • Podrán proponer, analizar, validar e interpretar modelos de situaciones reales, utilizando las lógicas matemáticas y computacionales de forma adecuada. Esto les permitirá aplicar los métodos lógico-matemáticos para resolver problemas de fundamentación y/o modelización.
  • Estarán en capacidad de aplicar los métodos de la lógica computacional para resolver problemas de programación, de verificación de programas, de representación y automatización del conocimiento.

  • 7. CONTENIDO TEMÁTICO

    I. La resolución de problemas
    Mundo o contexto del problema
    Análisis del problema
    Abstracción del problema
    Especificación del problema

    II. La Lógica como fundamento de las Ciencias Computacionales
    Qué se entiende por lógica
    Evolución de la Lógica
    Aplicaciones de la Lógica
    Los principios Lógicos
    Lógica matemática
    Lenguajes lógicos
    Lógica y ciencias computacionales
    Sistemas formales lógicos
    La Lógica y el Sistema Binario
    El concepto Abstracción = Simplificación
    Lenguajes Naturales y Formales
    Razonamiento Lógico
    Construcción de razonamientos
    Análisis de la validez de un razonamiento
    Las formas de representación del conocimiento

    III. Teoría de conjuntos y Lógica Natural
    Inducción matemática de conjuntos
    Conjuntos y clases
    Relaciones y funciones
    Álgebra de conjuntos
    Funciones proposicionales
    Matrices y sucesiones

    IV. Métodos Formales
    Los métodos formales
    Las formas normales
    Los lenguajes formales

    8. ESTRATEGIAS METODOLÓGICAS
    La metodología de trabajo se orienta en el ámbito matemático con un enfoque práctico de aplicación desde el concepto y el método; teniendo presente que después de la parte teórica explicativa se plantean trabajos para realizar fuera del aula, en los que el estudiante debe trabajar e investigar en un equivalente a dos horas por cada una que trabaje con el asesor, para un mejor rendimiento por parte de los estudiantes. El desarrollo de este curso requiere de encuentros dinámicos y participativos acompañados de una alta dosis de conceptualización y aclaración por parte del asesor, además de:

  • Lectura de documentos presentados con anterioridad por el asesor.
  • Discusión al interior de las sesiones de trabajo, sistematizándose los elementos analizados y presentando los respectivos talleres.
  • Elaboración de actividades diseñadas por el asesor alrededor de materiales didácticos que los alumnos maestros fabricarán y recrearán, no solo al interior del área sino alrededor de otras áreas con las cuales se realizarán integraciones y proyectos de índole didáctica donde el área generadora es Matemática.
  • En cada encuentro se compartirán las experiencias vividas al interior del aula de clase por los alumnos que ya son maestros sugiriéndose alternativas de trabajo desde la discusión grupal.

  • 9. CRITERIOS DE EVALUACIÓN
    La evaluación es un proceso que se concerta con los estudiantes y se realizan actividades de tipo individual y grupal en el encuentro semanal, conversatorios sobre los documentos leídos y se sustentaran mediante discusiones grupales. Al final del curso se presentará un trabajo final donde se consolide lo comprendido durante el núcleo, avisado este con anterioridad por parte del asesor. Se sustentarán por escrito o en forma oral las actividades o talleres realizados por los estudiantes. Este proceso evaluativo está enmarcado en los lineamientos que al respecto trae el Articulo 67 del reglamento estudiantil. Algunas estrategias a tener en la cuenta durante el desarrollo de éste componente son los siguientes:

  • El portafolio personal de desempeño es el registro y compendio de las diferentes actividades evaluativas y de reflexión permanente que realiza cada estudiante sobre su proceso de formación, tiene en cuenta las responsabilidades y compromisos acordados entre docentes y estudiantes, los avances y dificultades encontradas en el proceso por cada estudiante y las sugerencias del asesor para la obtención de los logros propuestos (Articulo 70 literal d del reglamento estudiantil).
  • Las diferentes formas de evaluación: autoevaluación, co-evaluación y hetero-evaluación, se evidenciarán en la aplicación de las diferentes estrategias planteadas. Para efectos de promoción y certificación se seguirán los criterios y parámetros establecidos en el artículo 80 del reglamento estudiantil 2003.

  • Instrumentos evaluativos
    Se implementarán los siguientes instrumentos evaluativos:

  • La resolución de actividades propuestas
  • Consultas y sustentaciones referidas a las temáticas del curso
  • Desarrollo y sustentación mediante evaluación oral o escrita del portafolio personal de desempeño
  • Actividades con materiales de apoyo como bloques lógicos, ábacos y recursos informáticos
  • Evaluaciones escritas que darán cuenta del nivel de competencia adquirido
  • Informes de lectura, ensayos y aportes al tema

  • 10. BIBLIOGRAFÍA COMPLEMENTARIA
  • Arenas, A. L. (1996). Lógica Formal para Informáticos. Madrid: Ed. Díaz Santos.
  • Ben-Ari, M. (2001). Mathematical Logic for Computer Science. USA: Springer Verlag.
  • Cuenca, J. (1985). Lógica Informática. Alianza Editorial, S.A.
  • Díez, C. J. A. (2002). Iniciación a la lógica. Madrid: Ariel S.A.
  • Huth, M. & Ryan M. (2004). Logic in Computer Science - Modelling and Reasoning about Systems. Cambridge: Cambridge University Press.
  • Iranzo, P. J. (2005). Lógica Simbólica para informáticos. España: Alfaomega Ra-Ma.
  • Manzano, M. y Huertas S. M. A. (2004). Lógica para principiantes. Madrid: Alianza Editorial, S. A.
  • Paniagua, A. E., Sánchez G. J. L. y Martín R. F. (2003). Lógica Computacional. España: Paraninfo. S. A.


  • Comienzo de página