Planificación de Tecnologías de la Programación (2020)

 IMPRIMIR PLANIFICACIÓN

Información básica

Carrera
Ingeniería en Informática
Departamento
Informática
Sitio Web
No especificada
Plan de Estudios
Plan 2006
Carácter Período
Cuatrimestral 1° Cuatrimestre
Docente Responsable
Pablo Andrés Garello

Equipo docente

Nombre y Apellido
Castoldi, Federico
Dalmolin, Gabriel Sebastian
Garello, Pablo Andrés
Rubiolo, Mariano Pablo

Carga horaria

Carga horaria total 90 hs
Teoría 30 hs
Resolución de ejercicios 60 hs
Proyecto y diseño 0 hs
Evaluaciones 0 hs
Formación experimental 0 hs
Resolución de problemas de ingeniería 0 hs
Otras actividades 0 hs

Contenidos mínimos

Paradigmas de programación: imperativa, funcional, lógica, estructurada, orientada a objetos, dirigida por eventos, visual, orientada a aspectos. Análisis comparativo de los paradigmas. Lenguajes y aplicaciones. Tecnología de la programación para el diseño de formularios basados en disposiciones relativas, flujos, hilos de ejecución, acceso a la red. Interfases para la Programación de Aplicaciones

Objetivos

OBJETIVOS: Que el alumno conozca los distintos paradigmas de programación. Que entienda la lógica y estructura de los lenguajes correspondientes. Distinga las diferencias y aplicaciones de los distintos paradigmas. Que el alumno conozca y domine aspectos de diseño orientados a objetos utilizando UML y su implementación.Patrones de Diseño. Calidad del Software. Programación Elegante.

Conocimientos específicos previos para cursar la asignatura

Los alumnos deben tener “Ingeniería de Software I” con estado de Aprobada, “Ingeniería de Software II” y “Algoritmos y Estructuras de Datos” con estado de Regular

Metodología de enseñanza

 

Desarrollo de las clases

Teoría: será desarrollada durante la primera hora de clase de cada día en laboratorio, utilizando proyecciones de diapositivas que estarán a disposición de los alumnos para que puedan tomar apuntes.

Práctica: Se desarrollarán en laboratorio. Se diseñarán las soluciones y se implementarán en computadora los programas y proyectos correspondientes a la ejercitación propuesta en las guías de trabajos prácticos. Estarán a cargo de los profesores jefes de trabajos prácticos. Duración: 2 Hs. por clase.

Sitio Web: los alumnos dispondrán de un sitio web (http://entornovirtual.unl.edu.ar/course/view.php?id=107) basado en un software para e-learning donde podrán acceder al material de la cátedra, noticias, foros, sitios de interés, material adicional, cartelera de avisos, etc. Desde el sitio podrán comunicarse con los profesores y entre pares. Cada Jefe de Trabajos Prácticos debe habilitar a sus alumnos requiriendo un nombre de usuario, clave y correo electrónico para acceder al sitio.

Consultas: Se coordinarán con los alumnos. Los profesores propondrán días y horarios con antelación a las fechas de evaluación.

Lista de Correo entre los integrantes de la cátedra: funcionando a modo de foro, se crea una lista en un sitio público con una dirección de e-mail en él.

 

Programa Analítico

Unidad I: Introducción

Introducción a los Paradigmas de Programación: Definición de Paradigma, Tipos de Paradigmas, Historia y evolución de los lenguajes de programación.



Unidad II: Paradigma Orientado a Objetos

Conceptos. Ley de Demeter. Concepto de "Tell. Don't ask" para el diseño. Problemas de la mal utilización de la orientación a objetos. Utilización de UML para representar modelos de objetos. Patrones de diseño comunmente usados. Calidad del Software

Unidad III: Paradigma Funcional

Definición. Características. Lenguajes Funcionales. El Cálculo Lambda. Variables libres y ligadas. Conversión α. Reducción β. Representación en Scheme. Sintaxis. Convención de nombre. Expresiones simples. Variables y expresiones Let. Expresiones Lambda. Definiciones de alto nivel. Expresiones condicionales. Asignaciones. Recursividad. Secuenciamiento. Vectores. Mapeo de procedimientos a listas. Estructuras. Ingreso y salida de datos.

Unidad IV: Paradigma Lógico

Conceptos. Campos de aplicación. Formalización de sentencias. Alfabetos. Términos. Fórmulas bien formadas. Fórmulas Lógicas. Semántica: significado de las fórmulas, modelos, consecuencia lógica. Interferencia Lógica. Cláusulas Definidas. Programas. Objetivos. Representación en Prolog: sintaxis (comentarios, variables lógicas, términos, operadores). Unificación. Predicados y objetivos. Backtracking. Predicados predefinidos. Cláusulas. Hechos. Reglas. Listas. Evaluación de expresiones.

Bibliografía

Bibliografía básica

Matthias Felleisen, Robert Bruce, Findler Matthew, Flatt Shriram Krishnamurthi
How to Design Programs
The MIT Press

ISBN: 0-262-06218-6
Formato: html
Selección de páginas: Capítulos I al V

Cronograma de actividades

Unidad I: Introducción Semana 1 Tipo: T Duración: 1 hs
Docente/s responsable/s: Pablo Andrés Garello
Descripción:

Introducción a los paradigmas de programación

Observaciones:
Unidad II: Paradigma Secuencial Semana 1 Tipo: T Duración: 1 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Introducción al paradigma secuencial

Observaciones:
Unidad III: Paradigma Estructurado Semana 1 Tipo: T Duración: 1 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Introducción al paradigma Estructurado

Observaciones:
Práctica en laboratorio Semana 1 Tipo: EP Duración: 2 hs
Docente/s responsable/s: Pablo Andrés Garello
Descripción:

Guía de TP 1 y 2

Observaciones:
Práctica en laboratorio Semana 2 Tipo: EP Duración: 2 hs
Docente/s responsable/s: Pablo Andrés Garello
Descripción:

Guía de TP 3

Observaciones:
Unidad V: Paradigma Funcional Semana 2 Tipo: T Duración: 1 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Introducción al paradigma funcional: Características. Lenguajes Funcionales. El Cálculo Lambda. Variables libres y ligadas. Conversión α. Reducción β. Representación en Scheme. Sintaxis. Convención de nombre. Expresiones simples.

Observaciones:
Práctica en laboratorio Semana 2 Tipo: EP Duración: 2 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Guía de TP 4

Observaciones:
Primer pacial - Unidades II, III, IV Semana 3 Tipo: EP Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Parcial Unidades II, III y IV

Observaciones:
Unidad V: Paradigma Funcional Semana 4 Tipo: TP Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Variables y expresiones Let. Expresiones Lambda. Definiciones de alto nivel. Expresiones condicionales.

Observaciones:
Unidad V: Paradigma Funcional Semana 4 Tipo: TP Duración: 6 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Teoría: Definiciones de alto nivel. Expresiones condicionales. Asignaciones. Recursividad. Secuenciamiento. Vectores.

Práctica : Guía de TP-6 - PF3

 

Teoría: Mapeo de procedimientos a listas. Estructuras. Ingreso y salida de datos.

Práctica: Guía de TP-7 - PF4

Observaciones:

Clase Teórico/Práctica

Clase abierta de consulta Semana 5 Tipo: TP Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

clase abierta de consuta teórico práctica

Observaciones:
Segundo parcial Semana 5 Tipo: EP Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Parcial paradigma funcional

Observaciones:
Unidad VI: Paradigma Lógico Semana 6 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Teoría: Unidad VI Conceptos básicos del paradigma y Prolog. Programación declarativa. Paradigma lógico. Lógica de primer orden. Campos de aplicación. Programación lógica. Hechos, preguntas y reglas: definición y declaración. Variables lógicas. Variable anónima. Backtraking y unificación. Reglas recursivas. Sintaxis de Prolog. Significado declarativo y procedural del lenguaje. Prácticas sobre el entorno libre SWI-Prolog.

Práctica : Guía de TP-8 - PL1

Observaciones:
Unidad VI: Paradigma Lógico Semana 7 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Teoría: Listas: Definición. Lista vacía. Representación interna en prolog. El functor “.”. Manejo de listas: cabeza y cola. Expresiones aritméticas: definición y operadores. Comparación de términos. Evaluación y comparación de expresiones.

Práctica: Continuación TP-9 - PL2

 

Teoría: Corte: definición, comportamiento. Uso del corte. Problemas potenciales.

Práctica: Guía de TP-10 – PL3

Observaciones:

Clase teórico / práctica

Unidad VI: Paradigma Lógico Semana 8 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Teoría: Esquema condicional. Predicados predefinidos.

Práctica: Guía de TP-11 - PL4

 

Teoría: Predicados predefinidos.

Práctica: Guía de TP-12 - PL5

Observaciones:

Clase teórico / práctica

Unidad VI: Paradigma Lógico Semana 9 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Teoría: Aplicación del paradigma: Sistemas expertos

Práctica:Guía de TP-13- PL6

 

Clase abierta de Consulta

Observaciones:

Clase teórico práctica

Tercer parcial Semana 10 Tipo: EP Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Parcial paradigma Lógico

Observaciones:
Unidad VII: Paradigma Orientado a Objetos Semana 10 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Teoría: Unidad VII: Repaso de conceptos fundamentales. Repaso de UML. Ley de Demeter. Problemas de la mal utilización de la Orientación a Objetos. Concepto de “Tell. Don't ask.” para el diseño.

Práctica: Guía de TP-14-POO1

Observaciones:

Clase Teórico / Práctica

Unidad VII: Paradigma Orientado a Objetos Semana 11 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Teoría: Reglas del Buen Diseño. Paso a Código de Diagramas UML. Uso de Lenguaje JAVA para la Codificación. Conceptos básicos del Lenguaje.

Práctica:

 

Teoría: Patrones de Diseño de Creación: Abstract Factory, Builder, Factory Method, Prototype, Singleton.

Práctica: Guía de TP-15-POO2

Observaciones:
Unidad VII: Paradigma Orientado a Objetos Semana 12 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Teoría: Patrones de Diseño Estructurales: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.

Práctica:

 

Teoría: Patrones de Diseño de Comportamiento: Chain of Responsibility, Command, Mediator, Observer, State, Strategy, Template Method.

Práctica: Guía de TP-16-POO3

Observaciones:
Unidad VII: Paradigma Orientado a Objetos Semana 13 Tipo: T Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Teoría: Antipatrones de Diseño.

Observaciones:
Clase abierta de consulta Semana 14 Tipo: EP Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Clase abierta de consulta

Observaciones:
Parcial Orientación a Objetos Semana 14 Tipo: EP Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Cuarto Parcial

Observaciones:
Clase abierta de consulta Semana 15 Tipo: EP Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Clase abierta de consulta

Observaciones:
Parcial Integrador Semana 15 Tipo: EP Duración: 3 hs
Docente/s responsable/s: Pablo Andrés Garello, Pablo Andrés Garello, Pablo Andrés Garello
Descripción:

Parcial Integrador

Observaciones:

Requerimientos para regularizar

Se deberá obtener un mínimo de 40 puntos promediando las notas de los 3 parciales, no haber obtenido ninguna calificación menor a 40 puntos.

Requerimientos para promover

se deberá obtener un mínimo de 60 puntos por parcial, en promedio 70 puntos.

Examen final

Alumnos regulares

El examen estará constituído por preguntas teóricas de cualquier unidad y tres ejercicios de los paradigmas funcional, lógico y objetos.

Alumnos libres

El examen estará consituído por preguntas teóricas de cualquier unidad y 5 ejercicios.

Evaluaciones

Fecha Tipo Modalidad Descripción
21-04-2020 Parcial Escrita Parcial Orientación a Objetos.

Unidad II

22-05-2020 Parcial Escrita Parcial Paradigma Funcional.

Unidad III

16-06-2020 Parcial Escrita Parcial Paradigma Lógico.

Unidad IV

26-06-2020 Recuperatorio Escrita Recuperatorio.

Recuperatorio de uno de los parciales