Download PROGRAMACIÓN AVANZADA I Paradigmas de programación

Document related concepts
no text concepts found
Transcript
PROGRAMACIÓN AVANZADA
I
Paradigmas de programación
 Paradigma estructurado
 Paradigma orientado a objetos (herencia, polimorfismo, etc.)
II
Tipos de programación
 Programación con hilos
 Principios básicos
III
Lenguajes de programación usuales
 Java
 C++
IV
Programación paralela
 Taxonomía arquitectónica
 Paradigmas de la programación paralela
 Consideraciones de diseño y comportamiento
IV
Programación distribuida
 RPC
 sockets
 cliente/servidor
BIBLIOGRAFIA
1.
2.
3.
4.
5.
6.
7.
8.
Ben-Ari, Mordechai. “Constructivism in Computer Science Education. “SIGCSE Bulletin, Vol.30,
No. 1, Mar 1998, pages 257-261.
Comer, Douglas E. Computer Networks and Internets, Prentice Hall, second edition, 1999.
Coulouris, George, Jean Dollimore and Tim Kindberg. Distributed System: Concepts and Design
Addison Wesley, second edition, 1994
How to Program, Prentice Hall, second edition, 1998.
Foster Ian Designing and Building Parallel, Addison Wesley, 1995
Holub, Allen. “Programming Threads”, series of articles in on-line magazine Java World
Lea, Doug. Concurrent Programming in Java; Design Principles and Patterns, Adison-Wesley 1997.
Dec 1998
Java, C++ programming books.
MATEMÁTICAS DISCRETAS
I
Aritmética modular





II
Los números naturales y los números enteros
Teorema de la división. Divisibilidad, MCD y factorización
Relaciones de congruencia
Sistemas de ecuaciones módulo enteros
Sistemas de numeración
Combinatoria







III
Técnicas de conteo
Enumeración de objetos combinatorios elementales
Variaciones. Combinaciones. Permutaciones.
Funciones generatrices
Principio de Inclusión- Exclusión. Aplicaciones
Permutaciones y sus ciclos
Distribuciones de objetos en cajas
Grafos, árboles y relaciones











Particiones numéricas, función generatriz. Diagramas de Ferrer
Enumeración de árboles plantados
Grafos, vértices, aristas, caminos y ciclos
Grafos extrémales
Operación de grafos: unión, suma, producto, composición, potencia
Árboles y bosques: caracterización
Producto cartesiano, relación, propiedad reflexiva, simétrica, anti simétrica, transitiva
Relación de orden, relación de equivalencia
Representación de las relaciones: tablas, grafos dirigidos y matrices
Clausura reflexiva, simétrica y transitiva de una relación
Copnjuntos parcialmente ordenados: digramas de hasse, elementos característicos, inclusión de
un orden parcial en uno total
 Algebra de Boole
BIBLIOGRAFIA
9.
10.
11.
12.
13.
14.
Graham, Knuth, Patashnik (2001), “Concrete Mathematics, A. Foundation for Computer Science”,
Addison Wesley.
F. Haray (1969) “Graph Theory”
O. Ore (1962) Theory of Graphs
C. Berge (1985), “Graphs”
Algner(1979) “Combinatorial Theory”
G. Birkhoff (1977) “Lattice Theory”
LÓGICA MATEMÁTICA, LENGUAJES FORMALES Y AUTOMATAS
I
Lógica Proposicional
 Sintaxis
 Semántica
 Teoría de pruebas
II
Calculo Proposicional
 Sintaxis
 Semántica
 Teoría de pruebas
III
Introducción a los Lenguajes Formales y Autómatas







IV
Reconocer la importancia de estudiar los autómatas y lenguajes formales
Símbolos, alfabetos y cadenas
Operación sobre cadenas
Definición de lenguaje y operaciones sobre lenguajes
La jerarquía de Chomsky: Clasificación de gramáticas y lenguajes
Morfismos en los lenguajes
Lema de Levy y los teoremas de Lyndon – Schutzenberger
Lenguajes Formales y Autómatas (LFA)





Autómatas determinísticos
Autómatas no determinísticos
Expresiones regulares
Autómatas de pila
Gramáticas y leguajes libres de contexto
BIBLIOGRAFIA
15. Shauwn Hedman. A First Course in Logic. An Introduction to model theory, prrof theory, computability,
and complexity. Ed. Oxford University Press, 2004.
16. Dexter, C. Kozen (2007). Automata and Computability, USA: Springer
17. Shallit J. (2009) A second Course in Formal Languages and Automata Theory, Cambridge University Press
18. Hopcroft, J. Motwani, R. and Ullman J. (2006). Introduction to Automata Theory Languages and
Computation. USA: Addison Wesley
19. Wagner, Ferdinand; Schmuki, Ruediand; Wagner Thomas and Wolstenholme Peter (2006). Modeling
Software with Finite State Machines A Practical Approach. Taylor &Francis Group, CRC Press
20. Anderson J. (2006) Automata theory with Modern applications Cambridge University Press
21. Baier, Christel and Katoen Joost -Pieter (2008) Principles of Model Checking England: MIT Press
22. Baral C. (2003) Knowledge representation, Reasoning and Declarative Problem Solving Cambridge
University Press
ANALISIS Y DISEÑO DE ALGORITMOS
I
Introducción




II
Noción de algoritmo
Problemas, algoritmos y complejidad
Fundamentos del análisis de algoritmos
Notaciones asintóticas
Fundamentos del análisis de algoritmos
 Análisis Matemático de algoritmos no recursivos
 Análisis Matemático de algoritmos recursivos
 Ecuaciones en recurrencia
III
Técnicas de diseño de algoritmos
 Planteamiento general
 Programación por esquemas
 Uso de patrones de diseño (Strategy, Template)
IV




Algoritmos voraces
Características
Esquema general
Ejemplos de aplicación
Heurísticas voraces
V
Divide y vencerás




Características
Calculo de la eficiencia
Esquema general
Ejemplo de aplicación
BIBLIOGRAFÍA
1.
2.
3.
4.
Mikhail J. Atallah (Ed.). “Algorithms and theory of computation handbook” CRC Press. 2004.
Anany Levitin, “Introduction to the design & Analysis of Algorithms”, Pearson, 2003.
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivets, “Introduction to Algorithms” McGraw-Hill,
2006.
Michel R. Garey, David S: Johnson. “Computers and intractability: A guide to the theory of NPCompleteness”, W.H. Freeman