UNIVERSIDAD DEL TOLIMA INSTITUTO DE EDUCACIÓN A DISTANCIA PROGRAMA : INGENIERIA DE SISTEMAS POR CICLOS AREA : FORMACIÓN TECNO-ESPECIFICA NÚCLEO PROGRAMATICO : BÁSICA DE INGENIERÍA CURSO PROGRAMATICO : Matemática Discreta CODIGO ASIG : SEMESTRE : SÉPTIMO Justificación La matemática discreta es la parte de las matemáticas que maneja las bases sobre las que se sustentan la Informática y la ciencia de la computación. “La matemática discreta surge como una disciplina que unifica diversas áreas tradicionales de las Matemáticas (Lógica y demostración, algoritmos, demostración matemática, inducción y recursividad, aritmética, grafos,...), como consecuencia de, entre otras cosas, su interés en la informática y las telecomunicaciones: la información se manipula y almacena en los ordenadores en forma discreta (palabras formadas por ceros y unos), se necesita contar objetos (unidades de memorias, unidades de tiempo), se precisa estudiar relaciones entre conjuntos finitos (búsquedas en bases de datos), es necesario analizar procesos que incluyan un número finito de pasos (algoritmos), en conclusión las matemáticas discretas son un soporte fundamental en la definición de gramáticas y lenguajes que permitan modelar de forma precisa y eficiente problemas reales y complejos a partir de teorías, algoritmos, abstracción. Objetivo central Analizar y aplicar los métodos y algoritmos matemáticos discretos (lógica formal, recursividad, inducción, etc.) básicos e imprescindibles para el modelamiento de las diferentes técnicas abstractas usadas en la ciencia de la computación. Objetivos de trabajo Analizar las técnicas de la lógica y la demostración en la solución de variados problemas de representación del conocimiento. Estudiar las técnicas de algoritmicas para la solución adecuada de informáticos. Comprender la inducción matemática y la recursividad como fundamento de la construcción de la solución a diferentes problemas informáticos. Estudiar los grafos y los árboles, desde el punto de vista matemático identificando sus características estructurales que favorecen la representación del conocimiento. Estudiar las diferentes técnicas en la definición de lenguajes y gramáticas como fundamento para la interacción entre el programador y la máquina en la búsqueda de la solución a un problema. ARTICULACIÓN CON EL PROYECTO CURRICULAR Este Curso permite al estudiante integrar los conocimientos adquiridos de manera horizontal con algunas asignaturas del Área, especialmente en los cursos de Métodos numéricos, Programación III, Administración de redes, Inteligencia artificial y Sistemas expertos; convirtiéndose en soporte teórico en la construcción de soluciones a través del modelamiento matemático de algoritmos. También proporcionará al estudiante la habilidad y destrezas necesarias en Aplicación de modelos discretos en la construcción de gramáticas y lenguajes. De forma transversal es fundamental para el adecuado desarrollo de cursos tales como Investigación de Operaciones, Lenguajes de programación, Telecomunicaciones, así como las diferentes electivas. Este curso es fundamento teórico a las dos líneas de investigación propuestas para el programa, ya que los conceptos, mitologías y teorías de la matemática discreta, han sido el pilar del desarrollo de la ciencia de la computación. Material pedagógico Debido a la pertinencia de los temas tratados y a la actualización de este libro, el texto escogido es: "Matemática Discreta y sus Aplicaciones". Rosen H. Kenneth, Ed. McGrawHill, 2004 PROGRAMA Primera Tutoría Los fundamentos: Lógica y demostración Lógica Lógica de predicados Predicados y cuantificadores Métodos de demostración Funciones Preguntas generadoras ¿Por qué es importante el estudio de la lógica proposicional y la lógica de predicados en el avance de la ciencia de la computación? Establezca una relación entre la sintaxis de un lenguajes de programación y la lógica formal con el lenguaje natural. ¿Cuáles son las herramientas de la argumentación matemática y cómo se utilizan en el contexto de la programación? ¿Qué relación usted encuentra entre la teoría de conjuntos y el modelamiento computacional? Explique cómo la teoría matemática funcional da herramientas para el desarrollo de software orientado a objetos. Actividades de integración Resolver el taller propuesto por el tutor primero en forma individual y luego en cipas. Dar respuesta a las preguntas generadoras y entregarlas mediante informe escrito en la tutoría Lecturas individual y por cipas Ejercicios prácticos realizador por el tutor, cipas - tutor, cipas. Aclaración de dudas individual y por cipas. Lecturas Básicas Matemática Discreta y sus Aplicaciones. Capitulo 1 Recomendadas Matemática Discreta y Lógica. Capitulo 1,2,5 y 6 Acreditación de la Unidad Dominar Los conceptos de la lógica proposicional y de predicados, conjuntos y análisis de algoritmos, lo cual se medirá mediante el desarrollo de talleres. Segunda Tutoría Los fundamentos: algoritmos, números enteros y matrices Algoritmos Crecimiento de funciones Complejidad de algoritmos Enteros y división Enteros y algoritmos Matrices Recursividad Estrategias de demostración Sucesiones y sumatorias Inducción matemática Definiciones recursivas e inducción estructural Algoritmos recursivos Preguntas generadoras ¿Cuál sería la forma de analizar la mayor o menor eficiencia de una algoritmos de ordenamiento de datos? ¿Cuál es la ventaja de construir algoritmos recursivos frente al manejo simple de ciclos, en la solución de un problema computacional, y cuál es el costo de la complejidad de la técnica? Actividades de integración Resolver el taller propuesto por el tutor primero en forma individual y luego en cipas. Dar respuesta a las preguntas generadoras y entregarlas mediante informe escrito en la tutoría Lecturas individual y por cipas Ejercicios prácticos realizador por el tutor, cipas - tutor, cipas. Aclaración de dudas individual y por cipas. Lecturas Básicas Matemática Discreta y sus Aplicaciones. Capitulo 2 y 3. Recomendadas Matemática Discreta y Lógica. Capitulo 3 y 5 Acreditación de la Unidad Aplicar la inducción matemática en la solución de algunos problemas. Construcción de algoritmos recursivos para la solución de problemas. Entender la aplicación de las relaciones en el modelado de datos. Tercera Tutoría Relaciones Relaciones y sus propiedades Relaciones n-arias y sus aplicaciones Representación de relaciones Relaciones de equivalencia Grafos Introducción a los grafos Terminología en teoría de grafos Representación de grafos e isomorfismo de grafos Conexión Caminos eurelianos y hamiltonianos Preguntas generadoras Escriba un ensayo de dos una cuartilla, en la cual realice una disertación a cerca del modelado de bases de datos a partir de la teoría relacional. ¿A qué tipos de problemas se les puede aplicar el modelamiento a partir de grafos? Los diferentes algoritmos de enrutamiento utilizan la teoría de grafos para definir el camino adecuado para la transmisión, indague acerca de al menos dos de estos algoritmos e indique la forma de utilizar los grafos. ¿Podemos movernos por las aristas de un grafo comenzando en un vértice y volviendo a el después de haber pasado por cada arista del grafo exactamente una vez? ¿Cómo podemos aplicar los grafos a la codificación de datos digitales? ¿Cómo se aplican los grafos al problema del agente viajero (viajante). Actividades de integración Resolver el taller propuesto por el tutor primero en forma individual y luego en cipas. Dar respuesta a las preguntas generadoras y entregarlas mediante informe escrito en la tutoría Lecturas individual y por cipas Ejercicios prácticos realizador por el tutor, cipas - tutor, cipas. Aclaración de dudas individual y por cipas. Lecturas Básicas Matemática Discreta y sus Aplicaciones. Capitulo 7 y 8. Recomendadas Matemática Discreta y Lógica. Capitulo 7. Acreditación de la Unidad Construcción de grafos adecuados para el modelamiento de algunos problemas. Recorrer un grafo dirigido a través de las diferentes técnicas. Entender las diferencias entre los caminos eurelianos y hamiltonianos. Cuarta Tutoría Árboles Introducción a los árboles Aplicaciones de los árboles Recorridos en árboles Preguntas generadoras ¿En que campos del conocimiento se puede utilizar la teoría de árboles para obtener una solución óptima. ¿Qué diferencia encuentra entre el uso de los árboles y los grafos. ¿Escriba un programa en java que utilice la teoría de búsqueda binaria en la construcción de una pequeño diccionario (solamente la letra a? ¿Escriba un programa en java que implemente los algoritmos de los diferentes recorridos de una árbol? Actividades de integración Resolver el taller propuesto por el tutor primero en forma individual y luego en cipas. Dar respuesta a las preguntas generadoras y entregarlas mediante informe escrito en la tutoría Lecturas individual y por cipas Ejercicios prácticos realizador por el tutor, cipas - tutor, cipas. Aclaración de dudas individual y por cipas. Lecturas Básicas Matemática Discreta y sus Aplicaciones. Capitulo 9. Recomendadas Matemática Discreta y Lógica. Capitulo 7. Acreditación de la Unidad Entender los diferentes algoritmos para recorrer un árbol. Aplicar los árboles en la solución de problemas de decisión y búsqueda. Quinta Tutoría Modelos de computación Lenguajes y gramáticas Máquinas de estado finito con salida Máquinas de estado finito sin salida Reconocimiento de lenguajes Máquinas de Turing Preguntas generadoras ¿Qué es un compilador y cuál es la teoría que soporta su funcionamiento? ¿Qué es una máquina de estado finito y cuál ha sido su aplicación en el desarrollo de la ciencia de la computación? Escriba una definición de máquina de turing, en lenguaje natural (de habla cotidiana). Defina una gramática que permita generar una suma de dos números de un sólo digito. Actividades de integración Resolver el taller propuesto por el tutor primero en forma individual y luego en cipas. Dar respuesta a las preguntas generadoras y entregarlas mediante informe escrito en la tutoría Lecturas individual y por cipas Ejercicios prácticos realizador por el tutor, cipas - tutor, cipas. Aclaración de dudas individual y por cipas. Lecturas Básicas Matemática Discreta y sus Aplicaciones. Capitulo 11. Recomendadas Matemática Discreta y Lógica. Capitulo 10. Acreditación de la Unidad Entender el concepto de máquina finita y máquina de Turing. Construir alguna gramáticas simples para la solución de algunos problemas. Metodología Se aplicará la metodología semi presencial, con desarrollo de los temas por parte del alumno y su socialización a través de tutorías y talleres guiados por el Tutor. Bibliografía ROSEN, K.H.: "Matemática Discreta y sus Aplicaciones". Ed. McGraw-Hill, 2004. GRASSMANN, W.K. y otro: “Matemática Discreta y Lógica” . Ed. Prentice Hall, 1997