Paradigmas de Programación

Documentos relacionados
Paradigmas de Programación

PARTE 1: INTRODUCCIÓN DE LA PLANIFICACIÓN. Carrera y plan: Analista Programador Universitario Plan 2008.

Pontificia Universidad Católica del Ecuador

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia:

Universidad Tecnológica Nacional Facultad Regional San Francisco. Ingeniería en Sistemas de Información. Análisis de Sistemas

Arquitectura y Sistemas de Operativos

Proyecto: Programación Declarativa: Lenguaje Prolog

Universidad Nacional Autónoma de México Centro de Investigación en Energía. Programa de Estudio

Lenguajes de Programación II

PLANIFICACIÓN DE LA MATERIA PROGRAMACION II AÑO 2005

PROGRAMACION ORIENTADA A OBJETOS PROPÓSITO DEL CURSO

GUÍA DE APRENDIZAJE PROGRAMACION ORIENTADA A OBJETOS Y CONCURRENTE

PLANIFICACIÓN DE LA MATERIA PROGRAMACION ORIENTADA A OBJETOS (Plan 2004) NOMBRE DE MATERIA: PROGRAMACION ORIENTADA A OBJETOS

PROGRAMACION ORIENTADA A OBJETOS PROPÓSITO DEL CURSO

Universidad Tecnológica Nacional Facultad Regional San Francisco. Técnico Superior en Programación. Programación III

1. DATOS DE LA ASIGNATURA. Nombre de la Asignatura: Carrera: Clave de la Asignatura: SACTA: PRESENTACION. Caracterización de la asignatura.

Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación. Programación I

PLANIFICACIÓN PROGRAMACION II

UNIVERSIDAD DE GUADALAJARA

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE EDUCACION SUPERIOR PROGRAMA SINTÉTICO

Pontificia Universidad Católica del Ecuador

SYLLABUS de la Asignatura. : Programación I

GUÍA DE APRENDIZAJE PROGRAMACIÓN DECLARATIVA GRADUADO EN INGENIERÍA DE SOFTWARE

SECUENCIA DIDÁCTICA. Elementos de competencia:

ASIGNATURA: INTELIGENCIA ARTIFICIAL

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación PROGRAMACIÓN II

Nombre y Apellido. Martin Villarreal. Daniel Aguil Mallea

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE: POST-REQUISITO:

1. Unidad Académica: Facultad de Ciencias

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

Universidad Salesiana de Bolivia

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

Paradigmas de Programación

Sistema Plan Estudio Martes, 18 de Noviembre de :46 - Actualizado Viernes, 30 de Junio de :30. Año Sem. Nº Asignatura Regulares

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERIA SYLLABUS. PROYECTO CURRICULAR: Ingeniería de Sistemas

HORARIO DÍA HORAS SALÓN

Universidad Autónoma de Nayarit Área Económico-Administrativa Licenciatura en Informática

PROGRAMACIÓN ORIENTADA A OBJETOS

ANX-PR/CL/ GUÍA DE APRENDIZAJE

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

Concurrencia y Paralelismo

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

DESARROLLO DE SOFTWARE

Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

INGENIERÍA QUÍMICA PROGRAMA DE ASIGNATURA

GUÍA DE APRENDIZAJE PROGRAMACION ORIENTADA A OBJETOS

Lenguajes de Programación

Planificaciones Algoritmos y Programación I. Docente responsable: CARDOZO MARTIN MIGUEL. 1 de 7

I - Oferta Académica Materia Carrera Plan Año Período DISEÑO Y PARADIGMAS DE LENGUAJES ING. EN COMPUT. 28/ cuatrimestre

Programación Inicial. Requisitos previos. Objetivos. Próximos Inicios. Modalidad a Distancia. Costo y formas de pago. Resumen de Contenidos

Planificaciones Algoritmos y Programación I. Docente responsable: CARDOZO MARTIN MIGUEL. 1 de 8

PROGRAMA de Elementos de Programación y Lógica. Carrera/s: Tecnicatura en Programación Informática, Licenciatura en Informática, Bioinformática

1. DATOS GENERALES DE LA ASIGNATURA. ASIGNATURA: Fundamentos de Programación II CÓDIGO: TIPOLOGÍA: obligatoria CRÉDITOS ECTS: 6

DATOS DE IDENTIFICACIÓN DEL CURSO Departamento de Ciencias Computacionales. Inteligencia Artificial

Planificaciones Algoritmos y Programación I. Docente responsable: GUARNA PABLO FRANCISCO. 1 de 6

Sistemas de Procesamiento de Datos

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERIA SYLLABUS

SEMINARIO DE LENGUAJES OPCION PHP TURNO MAÑANA

INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE PROGRAMACIÓN DE APLICACIONES

INGENIERÍA QUÍMICA PROGRAMA DE ASIGNATURA

Planificación de Cátedra Gestión de datos Primer cuatrimestre 2010

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

Espacios Curriculares Correlativos Precedentes Aprobada/s Cod. Asig. Cursada/s Cod. Asig.

INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN

FACULTAD DE INGENIERÍA Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Programación Orientada a Objetos

Guía docente de la asignatura

Carrera/s: Núcleo: Asignatura: Profesores: Coordinador: Objetivo General: Objetivos Específicos:

Pontificia Universidad Católica del Ecuador

Universidad Tecnológica Nacional Facultad Regional San Francisco. Ingeniería en Sistemas de Información. Sistemas de Gestión

Programa Regular. Asignatura: Lenguajes Formales y Autómatas. Carrera: Ingeniería en Informática. Ciclo Lectivo: Segundo Cuatrimestre 2017

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

GUÍA DOCENTE ABREVIADA DE LA ASIGNATURA

Programación Declarativa: Lógica y restricciones

Universidad Tecnológica Nacional Facultad Regional San Francisco. Ingeniería en Sistemas de Información PROYECTO FINAL

El alumno debe tener cursadas Introducción al Análisis de sistemas y Estructuras y Algoritmos.

Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación. Matemática

GUÍA DE APRENDIZAJE PROGRAMACIÓN ORIENTADA A OBJETOS GRADUADO EN INGENIERÍA DE SOFTWARE

GUÍA DOCENTE Curso

CURSO: 1º SEMESTRE: 1º MATERIA A LA QUE PERTENECE: Programación. Camelia Muñoz Caro Despacho 1.5 Edificio A-ESI 3720

INSTITUTO POLITECNICO NACIONAL SECRETARIA ACADEMICA DIRECCION DE ESTUDIOS PROFESIONALES EN INGENIERIA Y CIENCIAS FISICO MATEMATICAS

CONCEPTOS Y PARADIGMAS DE LENGUAJES DE PROGRAMACION

INSTITUTO POLITECNICO NACIONAL SECRETARIA ACADEMICA DIRECCION DE ESTUDIOS PROFESIONALES EN INGENIERIA Y CIENCIAS FISICO MATEMATICAS

ANEXO XVII DE LA RESOLUCION N

INTELIGENCIA ARTIFICIAL

PLANIFICACION DE CATEDRA CARÁCTER: Obligatoria Optativa Electiva. UBICACIÓN EN EL PLAN DE LA CARRERA (Semestre) Primer Semestre

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN ÁREA DESARROLLO DE SOFTWARE MULTIPLATAFORMA EN COMPETENCIAS PROFESIONALES

Transcripción:

PLANIFICACIÓN Ing. Andrés Jorge Pascal Paradigmas de Programación Asignatura Carrera Ingeniería en Sistemas de Información Área Programación Año Segundo (2er. Cuatrimestre) Carga 7 horas semanales CONTENIDO 1. Objetivos de la materia 2. Orientación de la materia e Importancia para la carrera 3. Articulación con otras materias 4. Programa Sintético 5. Programa Analítico 6. Bibliografía 7. Metodología de Enseñanza 8. Evaluación 9. Cronograma

Composición del Equipo Docente Apellido y nombre: Andrés Jorge Pascal Título de grado: Ingeniero en Sistemas de Información Título de posgrado: Especialista en Ciencias de la Computación Cargo docente: Profesor Titular Apellido y nombre: Gastón Dall Oglio Título de grado: Aún no tiene Cargo docente: Ayudante de 2da. 1. Objetivos de la materia GENERALES (extraídos de la ordenanza) Estudiar los diferentes paradigmas de programación. Laboratorio asociado: Resolución de problemas en variados lenguajes de programación. PARTICULARES Conceptuales Que el alumno logre Comprender los conceptos relacionados con los modelos de programación Funcional, Lógico y Orientado a Objetos (paradigmas) Comprender las ventajas, desventajas y aplicaciones de los mismos Identificar los lenguajes de acuerdo al paradigma en el que se basan Conocer la evolución de los lenguajes de programación a través de los paradigmas Conocer qué características son deseables en un lenguaje de programación Procedimentales Que el alumno logre Resolver problemas mediante lenguajes basados en los distintos paradigmas vistos Determinar cuál es el modelo más conveniente para resolver un problema determinado Actitudinales Que el alumno Tenga predisposición a desarrollar trabajos en grupo 2

Tome una postura activa en el aprendizaje Adquiera responsabilidad en los trabajos que realice Tenga predisposición a documentar lo que hace Adopte actitudes de investigador ante problemas cuya solución no conoce 3

2. Orientación de la materia e Importancia para la carrera Dentro de las actividades del profesional en sistemas de información, ya sea Ingeniero o Analista de Sistemas, el conocimiento, la evaluación y la selección de lenguajes de programación y sus paradigmas es fundamental, aún cuando dentro de sus funciones no esté la programación. En la planificación de un proyecto, por ejemplo, debe decidir qué lenguajes se utilizarán, y estimar los tiempos de desarrollo y las métricas de control más convenientes, que pueden variar en función de dichos lenguajes. En el análisis y el diseño de sistemas, las técnicas utilizadas están fuertemente vinculadas a los lenguajes de desarrollo, e inclusive varían de acuerdo al paradigma. Asimismo el pseudocódigo que se usa para la especificación de procesos puede estar expresado en los distintos modelos. Específicamente, si tomamos las incumbencias del Ingeniero en Sistemas, contribuye directamente a: E.- Evaluar y seleccionar los sistemas de programación disponibles..., D.- Planificar, dirigir, ejecutar y controlar el relevamiento, análisis, diseño, desarrollo,..., L.- Desarrollar modelos de simulación, sistemas expertos y otros sistemas informáticos.... También colabora con O.- Realizar estudios e investigaciones conducentes a la creación y mejoramiento de técnicas de desarrollo de.... Respecto a la orientación de la materia, se hace énfasis en la Programación Orientada a Objetos, a la cuál se le otorga mayor carga horaria, ya que es la más importante actualmente en el desarrollo de sistemas. En segundo lugar, se le da importancia a la Programación Funcional, pues no se vuelve a estudiar específicamente en la carrera. Por último, el menor tiempo es el dedicado a la Programación Lógica, no porque no sea importante, sino porque se ve en profundidad en Inteligencia Artificial. 3. Articulación con otras materias (extraído de la ordenanza) Los Paradigmas de Programación en la carrera Paradigmas de Programación se dicta en el segundo cuatrimestre del segundo año y pertenece al área de Programación, junto con Algoritmos y Estructuras de Datos, Matemática Discreta, Sintaxis y Semántica de Lenguajes y Gestión de Datos. Los distintos paradigmas y sus conceptos básicos se distribuyen en la carrera de la siguiente manera: En Matemática Discreta se estudian los conceptos básicos de lógica, que contribuyen a dicho paradigma. En Arquitectura de Computadores se ve el Imperativo mediante un lenguaje de bajo nivel. En Algoritmos y Estructuras de Datos se estudia el Paradigma Imperativo mediante lenguajes de alto nivel, que luego se profundiza en Sintaxis y Semántica de Lenguajes, y en Sistemas Operativos. En Paradigmas de Programación se ve: Orientación a Objetos, Programación Lógica y Programación Funcional. En Gestión de Datos se estudia SQL, como lenguaje modelo orientado a consultas a bases de datos. En Sistemas Distribuidos se estudian los paradigmas Distribuido y Concurrente. 4

En Habilitación Profesional se utiliza el modelo de objetos en combinación con programación visual, por componentes y orientada a eventos, en el desarrollo de un sistema. En Taller de Programación Concurrente y Distribuida se lleva a la práctica éste paradigma. En Inteligencia Artificial se utiliza la programación lógica para el desarrollo de sistemas basados en el conocimiento y sistemas expertos. En Proyecto de Programación se utiliza la programación orientada a objetos en combinación con el modelo Cliente/Servidor para aplicaciones Internet/Intranet. Los lenguajes de programación utilizados a través de la carrera son: Assembler, Pascal, C, Smalltalk, Object-Pascal, LISP, Prolog, SQL, Java, HTML, Delphi, Visual Basic, Powerbuilder. Integración con otras materias El paradigma Imperativo, en particular la Programación Estructurada, y el modelo Orientado a Objetos son la base y el fundamento de las técnicas de Análisis y Diseño de sistemas correspondientes, por lo que esta asignatura contribuye directamente a las Materias Integradoras de segundo y tercer año, es decir a Análisis de Sistemas y a Diseño de Sistemas. También es una de las bases de Administración de Recursos, donde se estudian, entre otros temas, las técnicas de Selección de Software, en particular para la evaluación de Lenguajes de Programación. 4. Programa Sintético (extraído de la ordenanza) Paradigma Funcional. Paradigma Lógico. Paradigma Orientado a Objetos. 5

5. 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. 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. Conceptos técnicos: 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. 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. 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. Introducción a la Orientación a Aspectos. 6

6. Bibliografía Título Programming Language Essentials Características 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. Lenguajes de Programación Conceptos y constructores 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. de lenguajes. Introducción a la Programación Orientada a Objetos 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. Objetos. Conceptos, Métodos y Herramientas 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. Descubra SmallTalk 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: mensajes, receptores y selectores. Áreas de trabajo y transcript. Métodos, clases y depurador. Jerarquía de clases. Biblioteca de Smalltalk. Kent Beck 7

SmallTalk. Best practice patterns Object Oriented Programming 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. 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 LISP Logic, Programming And PROLOG 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. PROLOG, programming For Artificial Intelligence Iván Bratko 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 8

The essence of Logic 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. JAVA BIBLIOGRAFÍA COMPLEMENTARIA Pedro Cuenca Giménez Anaya multimedia Libro de programación en JAVA. Para investigar las características, ventajas y desventajas del uso de la Programación Orientada a Objetos en lenguajes orientados a Internet-Intranet Orígen de JAVA y características. Applets. Seguridad. Animación y multithreading. Conceptos de Orientación a Objetos. Manual de referencia de Turbo Pascal 7.0 Tutorial de Smalltalk Apéndice de Clases de Smalltalk Documentación de LISPWorks Documentación de SWI Prolog Software Utilizado Turbo Pascal 7.0 (DOS) Dolphin Smalltalk 98 (Windows) LispWorks 4.1, de Harlequin (Windows) SWI Prolog (Windows) 9

7. Metodología de enseñanza Técnicas utilizadas Las técnicas de enseñanza utilizadas se basan en las estrategias del Nuevo Diseño Curricular, que priorizan la postura activa del alumno como constructor de su propio conocimiento, y el enfoque problematizador como medio de motivación y de significación de los contenidos. Las técnicas utilizadas en las clases son: Taller, Realidad-Teoría-Práctica, Explicación dialogada y Teoría-Problematización-Explicación. Por otro lado se usa en forma extracurricular las metodologías de Proyecto e Investigación. Como apoyo tecnológico a dichas técnicas, además del pizarrón se utiliza la computadora en el aula para la práctica de la programación, y la computadora con el cañón (proyector de la imagen del monitor) cuando es necesario mostrar dicha práctica a toda la clase. Proyecto Como parte de las actividades del alumno se lleva a cabo un proyecto de software utilizando Programación Orientada a Objetos. El mismo se trabaja en grupos de cuatro a cinco personas y consiste en la definición de un programa completo, de complejidad acorde al curso (segundo año de la carrera), en base a un problema dado por la cátedra. Investigación Se desarrolla también un trabajo de investigación sobre lenguajes correspondientes a los paradigmas vistos, ya que en otra materia se realiza un proyecto similar pero para el modelo imperativo. Básicamente consiste en la búsqueda y documentación de características, ventajas y desventajas de lenguajes orientados a objetos, lógicos y funcionales. También se realizan otros tipos de trabajos tales como de Clases de Smalltalk/V, que sirven para los cursos posteriores. Recursos didácticos Se utilizará la bibliografía indicada. Los dos primeros libros abarcan todos los paradigmas del programa, pero a modo introductorio. Luego se profundizan con los libros específicos de cada paradigma. Se entregarán Guías de Trabajos Prácticos correspondientes a cada tema visto, para ejercitar la aplicación de los conceptos, y profundizar los temas. En algunos casos se presentarán transparencias con un proyector o cañon, para mostrar los modelos de computación en funcionamiento. Seguimiento, Orientación y Apoyo a los Alumnos Se responderán consultas extra-clase mediante reuniones previamente acordadas entre los docentes y los alumnos interesados. Se responderán consultas también mediante correo electrónico, para lo cuál se creará una lista propia de la asignatura. Se coordinarán clases extra en caso de pérdidas de clases por razones no previstas, de acuerdo a las necesidades del momento. 10

8. Evaluación Evaluación continua y en proceso La evaluación se realiza en forma continua, teniendo en cuenta sus dos objetivos básicos: el seguimiento del alumnos para tomar acciones correctivas a tiempo, y la calificación para la promoción, regularización o reprobación. Tareas de Seguimiento Preguntas a la clase sobre temas dados. Resolución grupal de problemas en el pizarrón. Resolución grupal de problemas en computadora. Preguntas a grupos. Participación por iniciativa del alumno Seguimiento del Proyecto Régimen de Promoción y Regularización La calificación se realiza en base a Un parcial individual teórico-práctico sobre Orientación a Objetos (con un recuperatorio de iguales características). Un parcial individual teórico-práctico sobre Programación Funcional y Programación Lógica (con un recuperatorio de iguales características) El proyecto de desarrollo de un sistema Orientado a Objetos (grupal) Actitud del alumno (participación, interés, responsabilidad, dedicación, participación en grupo) Promoción: Para aprobar la asignatura sin examen final el alumno deberá obtener una calificación de 7 o más, tanto en la teoría como en la práctica de cada parcial o recuperatorio, y haber presentado y aprobado el Proyecto de Desarrollo. Regularización: Para regularizar la asignatura y estar habilitado para rendir examen final el alumno deberá aprobar con 7 o más, tanto en la teoría como en la práctica de al menos uno de los tres paradigmas evaluados en los parciales. En caso de no alcanzar lo dispuesto para la regularización, el alumno deberá recursar la materia. En caso de que un alumno tenga notas cercanas a la promoción o regularización pero no le alcance, la cátedra evaluará la posibilidad de tomarle un coloquio con la posibilidad de que levante sus calificaciones. Para la nota final se calificará, además de los parciales y trabajos, la actitud del alumno, evaluada en base a los indicadores que se indican en el punto Actitud del alumno. 11

9. Cronograma Semanas Globales específicos Metodología Nivel de Profundidad 1 Presentación de la materia Objetivos, temas, cronograma, bibliografía, forma de evaluación. Evaluación inicial.. Informativo/ Conceptual Lenguajes de programación 2 Lenguajes de programación Objetivos de los lenguajes. Cualidades. Paradigmas Funcional, lógico y orientado a objetos: 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. Informativo Conceptual Orientación a Objetos Introducción a la Orientación a Objetos. Objetos. Fundamentos. Principios. Breve historia. Simulación. Responsabilidades. 3 Orientación a Objetos Encapsulamiento. Objeto. Mensajes y Métodos. Composición. 4 Orientación a Objetos Clase. Instancia. Ejemplar. Introducción al Object Pascal 5 Orientación a Objetos Herencia, subclase y superclase. Jerarquía de clases, árbol y bosque Object Pascal: resolución de problemas 6 Orientación a Objetos Costos y beneficios de la herencia. Heurísticas para crear subclases Object Pascal: resolución de problemas 7 Orientación a Objetos Polimorfismo paramétrico y sobrecarga. Enlace estático y dinámico. Herencia múltiple. Smalltalk: Elementos del lenguaje. Sintaxis. Palabras reservadas. Smalltalk: resolución de problemas 8 Orientación a Objetos Smalltalk: El sistema de clases. Ambiente de trabajo Metaclases. Métodos y variables de Clase. Construcción de una aplicación. Identidad. Smalltalk: resolución de problemas Ventajas y Desventajas de la O.O. 9 Programación Funcional Principios. Conceptos principales: Funciones. Transparencia referencial. Recursividad. Evaluación parcial sobre Orientación a Objetos Resolución de problemas. 10 Programación Funcional Polimorfismo. Listas. Funciones sobre listas. LISP: elementos del lenguaje y sintaxis. Resolución de problemas. Realidad Teoría Práctica Teoría- Problematización- Explicación. dialogada (con PC y cañón). dialogada Teoría- Problematización- Explicación. Teoría- Problematización- Explicación. Conceptual Conceptual 11 Programación Funcional Funciones de orden superior. Teoría- Evaluación tardía. Cálculo Lambda. Problematización- LISP: Resolución de problemas. Explicación. 12 Programación Funcional LISP: Resolución de problemas. 12

Conclusiones Programación funcional. 13 Programación Lógica Principios. Cálculo de enunciados. Cálculo de Predicados. Relaciones. Cláusulas de Horn. Reglas, hechos y consultas. 14 Programación Lógica Deducción. Variables lógicas. Estados: bound y unbound. Variable anónima. Unificación. Negación y fracaso. PROLOG: Elementos del lenguaje. Resolución de problemas 15 Programación Lógica PROLOG: Orden de evaluación. Control. Árbol de búsqueda, backtracking y cortes. Resolución de problemas. Conclusiones Programación Lógica. 16 Programación Lógica Conclusiones Programación Lógica. 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. Introducción a la Orientación a Aspectos. Teoría- Problematización- Explicación. Teoría- Problematización- Explicación. Conceptual Conceptual Informativo Conclusiones Conclusiones de la materia Semana de recuperatorios Evaluación parcial sobre Funcional y Lógica 13