Download Paradigmas de Programación

Document related concepts

Common Lisp wikipedia , lookup

Programación funcional wikipedia , lookup

Polimorfismo (informática) wikipedia , lookup

Oz (lenguaje de programación) wikipedia , lookup

Scala (lenguaje de programación) wikipedia , lookup

Transcript
Cátedra: PARADIGMAS DE PROGRAMACION
Código: K9529
Carrera: INGENIERIA EN SISTEMA DE INFORMACIÓN
Plan: ORD. Nº 1150
Régimen: CUATRIMESTRAL
Año: 2013
Horas semanales: 8
Paradigmas de Programación
Programa Analítico
Introducción a los Paradigmas
Lenguajes de programación: Objetivos. Cualidades Deseables. Paradigmas Funcional,
lógico y orientado a objetos: Características principales y evolución. Manejo de la
complejidad: abstracción, descomposición y ocultamiento de datos y operaciones. Otros
conceptos importantes: cohesión, acoplamiento, precondiciones y postcondiciones.
Paradigma Orientado a Objetos
Introducción. Objetos. Fundamentos. Breve historia. Simulación.
Conceptos básicos: Objeto. Comportamiento y Estado Interno. Responsabilidades.
Mensajes y Métodos. Atributos. Emisor y receptor. Encapsulamiento. Clase. Tipos
abstractos de datos vs Objetos. Clase abstracta y concreta. Instancia. Ejemplar. Identidad.
Composición. Herencia. Subclase y superclase. Jerarquía de clases, árbol y bosque.
Costos y beneficios de la herencia. Heurísticas para crear subclases. Polimorfismo:
paramétrico y sobrecarga. Herencia múltiple. Otras relaciones entre clases y objetos.
Conceptos avanzados: roles y objetos.
Implementación: Enlace estático y dinámico.
Ventajas y Desventajas de la Orientación a Objetos.
OBJECT PASCAL: Características principales. Construcción de una aplicación.
SMALLTALK: Elementos del lenguaje. Sintaxis. Palabras reservadas. El sistema de
clases. Descripción de las clases más importantes. Ambiente de trabajo (browsers,
inspector, workspaces, debugger). Metaclases. Métodos y variables de Clase.
Construcción de una aplicación.
Paradigma Funcional
Introducción. Principios. Conceptos principales: Funciones. Transparencia referencial.
Diferencias con la Programación Imperativa. Recursividad. Listas. Polimorfismo.
Funciones sobre listas. Funciones de orden superior. Evaluación tardía. Cálculo Lambda.
LISP: Elementos del lenguaje. Átomos. Listas. Operaciones básicas. Definición de
funciones. Expresiones Aritméticas. Otras funciones.
Aplicaciones
Paradigma Lógico
Introducción a la Programación Lógica. Principios. Cálculo de enunciados. Cálculo de
Predicados de primer orden. Relaciones. Cláusulas de Horn. Reglas, hechos y consultas.
Deducción. Variables lógicas. Estados: bound y unbound. Variable anónima. Unificación.
Negación y fracaso.
PROLOG: Elementos del lenguaje. Definición de predicados. Programas y consultas.
Orden de evaluación. Control. Árbol de búsqueda, backtracking y cortes.
Aplicaciones
Otros Paradigmas
Paralelo y distribuido. Orientados al acceso. Lenguajes de estructura de datos única.
Programación de Flujo de datos. Lenguajes pequeños. Lenguajes de Bases de Datos.
Lenguajes de tiempo real. Orientación a Aspectos.
Bibliografía
Título
Programming
Language Essentials
Características
Autores
Editorial
Descripción
Temas
Autores
Editorial
Descripción
Ravi Sethi
Addison Wesley
Libro sobre las características generales de los lenguajes de
programación. Contiene los distintos paradigmas
Elementos de un lenguaje de programación. Asignación.
Procedimientos. Encapsulamiento. Herencia. Programación
Funcional, Lógica, Concurrente. Descripción de lenguajes.
Autores
Editorial
Descripción
Timothy Budd
Addison Wesley
Libro sobre Orientación a Objetos, con ejemplos en
distintos lenguajes: Object Pascal, C++, Objetive-C,
Smalltalk.
Diseño por responsabilidades. Clases y métodos. Mensajes
ejemplares e iniciación. Herencia. Enlace estático y
dinámico. Herencia múltiple. Polimorfismo. Visibilidad y
dependencia.
Lenguajes de Programación
Conceptos y constructores Temas
Introducción a la
Programación
Orientada a Objetos
Temas
Autores
Objetos. Conceptos,
Métodos y Herramientas
Editorial
Descripción
Temas
Descubra SmallTalk
Henri Bal. Dirk Grune.
Addison Wesley
Libro sobre las características generales de los lenguajes de
programación. Contiene los conceptos más importantes de
los distintos paradigmas.
Aspectos de los lenguajes de programación. Lenguajes
imperativos, orientados a objetos, funcionales, lógicos,
paralelos y distribuidos. Otros paradigmas.
Autores
Editorial
Descripción
Mokrane Bouzaghoub. Georges Gardarin. Patrick
Valduriez.
Eyrolles.
Libro sobre Programación, Análisis y Diseño Orientado o
Objetos. También contiene conceptos sobre Bases de Datos
Orientadas a Objetos.
Conceptos Orientados a Objetos. Lenguajes O.O. Bases de
Datos O.O. y normalización. Análisis y Diseño O.O.
Wilf Lalonde
Addison-Wesley
Libro básico sobre Orientación a Objetos aplicando
Smalltalk/V. Conveniente para iniciarse en este entorno de
programación.
SmallTalk.
Best practice patterns
Temas
Smalltalk: mensajes, receptores y selectores. Áreas de
trabajo y transcript. Métodos, clases y depurador. Jerarquía
de clases. Biblioteca de Smalltalk.
Autores
Editorial
Descripción
Kent Beck
Prentice Hall
Libro sobre técnicas de programación en Smalltalk para
aprovechar todo su potencial.
Patrones. Métodos y Mensajes. Variables de instancia y
variables temporales. Colecciones. Clases. Ejemplo de
desarrollo en Smalltalk.
Temas
Autores
Editorial
Descripción
Object Oriented
Programming
Temas
LISP
Autores
Editorial
Descripción
Temas
Logic, Programming
And PROLOG
Autores
Editorial
Descripción
Temas
Autores
Brad Cox. Andrew Novobilski
Addison Wesley
Este libro presenta los conceptos básicos de la Orientación
a Objetos y compara las ventajas y desventajas de utilizar
lenguajes adaptados a objetos (híbridos) versus lenguajes
puros.
Objetivos de la Orientación a Objetos. Objetos, Mensajes y
encapsulamiento. Clases y herencia. Clases básicas.
Colecciones. Interfaces. Desarrollo de ejemplos
comparados en Ada, C++, Objetive-C y Smalltalk-80
Ulises Cortés. Carlos Sierra.
Marcombo
Conceptos de programación funcional aplicando LISP. No
hace énfasis en la programación funcional pura, sino que la
mezcla con instrucciones del paradigma imperativo.
Expresiones simbólicas, átomos y listas. Predicados.
Entrada/salida. Recursividad e iteración. Estructuras.
Aplicaciones.
Ulf Nilsson. Jan Matuszynski.
Wiley
Contiene conceptos básicos sobre Lógica matemática;
posteriormente explica como transformar las expresiones
lógicas en programación, y por último analiza el caso
particular del lenguaje Prolog. Incluye también
programación lógica con concurrencia y bases de datos
deductivas.
Lógica e inferencia. Cláusulas. Unificación. Negación.
Lógica y Bases de Datos. Lógica y Sistemas Expertos.
Gramáticas. Esquemas alternativos de lógica.
Iván Bratko
Editorial
Descripción
PROLOG, programming
For Artificial Intelligence
The Essence of Logic
Temas
Autores
Editorial
Descripción
Temas
BIBLIOGRAFÍA
COMPLEMENTARIA
Software
Utilizado
Addison Wesley
Contiene conceptos básicos y avanzados sobre Prolog, y su
aplicación a sistemas basados en el conocimiento, en
especial Sistemas Expertos.
PROLOG: reglas, sintáxis, listas, operadores. Estructuras
de datos. Backtracking. Entrada/Salida. Representación de
árboles.
Inteligencia Artificial: problema y estrategias de solución.
Búsquedas y heurística. Sistemas Expertos y represtanción
del conocimiento. Sistemas de aprendizaje.
John Kelly
Prentice Hall
Contiene las bases matemáticas formales de la lógica,
incluyendo el cálculo proposicional (de enunciados) y el
cálculo de predicados.
Tablas de verdad. Semántica. Deducción. Lógica
proposicional axiomática. Lógica de predicados.
Manual de referencia de Free Pascal
Tutorial de Smalltalk
Manuales de referencia de Visualwork Smalltalk
Documentación de LispWorks
Documentación de SWI Prolog
Free Pascal (Windows, Linux, Mac OS)
VisualWorks Smalltalk (Windows, Linux, Mac OS)
LispWorks (Windows) o similar
SWI Prolog (Windows) o similar