Paradigmas de Programación Nivel 2

20
PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2 Año Lectivo 2018 pág. 1 Carrera: Ingeniería en Sistemas de Información Plan de Estudio: 2008 Área: Programación Porcentaje de horas cátedra del área en la carrera: 14,60% Porcentaje de horas cátedra de la asignatura en el área: 2,92% Asignatura: Paradigmas de Programación Carga horaria semanal: 8 hs. cátedra | Carga horaria total: 128 hs. cátedra. Nivel: 2º Anual 1er. Cuatrimestre 2do. Cuatrimestre Ciclo Lectivo: 2018 Equipo docente: Profesores: Nombre y Apellido: Dr. Rubén Alfredo BERNAL Categoría docente: Prof. Asociado Interino Dedicación: Simple (2) Auxiliares: Nombre y Apellido: Ing. Carlos Cuevas Categoría docente: JTP Ordinario Dedicación: Simple (1) Nombre y Apellido: Ing. Cesar Javier Pizzi Categoría docente: Ayudante de Primera Ordinario Dedicación: Simple (1)

Transcript of Paradigmas de Programación Nivel 2

Page 1: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 1

Carrera: Ingeniería en Sistemas de Información

Plan de Estudio: 2008

Área: Programación

Porcentaje de horas cátedra del área en la carrera: 14,60%

Porcentaje de horas cátedra de la asignatura en el área: 2,92%

Asignatura: Paradigmas de Programación

Carga horaria semanal: 8 hs. cátedra | Carga horaria total: 128 hs. cátedra.

Nivel: 2º

Anual 1er. Cuatrimestre 2do. Cuatrimestre

Ciclo Lectivo: 2018

Equipo docente:

Profesores:

Nombre y Apellido: Dr. Rubén Alfredo BERNAL

Categoría docente: Prof. Asociado Interino

Dedicación: Simple (2)

Auxiliares:

Nombre y Apellido: Ing. Carlos Cuevas

Categoría docente: JTP Ordinario

Dedicación: Simple (1)

Nombre y Apellido: Ing. Cesar Javier Pizzi

Categoría docente: Ayudante de Primera Ordinario

Dedicación: Simple (1)

Page 2: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 2

FUNDAMENTACIÓN DE LA ASIGNATURA

La asignatura aporta al perfil del egresado los conocimientos, habilidades, metodologías de

diferentes paradigmas de programación, así como las capacidades de análisis y síntesis para

plantear soluciones a diferentes problemas.

Cronológicamente, se plantea una introducción de los paradigmas de programación y sus

ámbitos de aplicación, posteriormente se realiza una revisión teórica de conceptos fundamentales

que abarcan los lenguajes más destacados de cada paradigma, incluyendo conceptos como tipos,

sistemas de tipos, enlace, alcance, visibilidad, abstracciones etc.

Posteriormente se enfoca en los conceptos de la programación Orientada a Objetos,

proporcionando al egresado los fundamentos de un paradigma esencial para el desarrollo de

software actual. Se pone énfasis en los beneficios que posee el mismo para obtener soluciones

robustas y funcionales. Dentro de esta unidad temática, se propone conocer profundamente las

particularidades de este estilo de programación mediante el desarrollo de modelos y algoritmos

para solucionar problemas.

A continuación, se propone el estudio de los fundamentos que subyacen a la programación

lógica partiendo de la lógica matemática. Se destaca la manera en que se construyen los

programas y el modo en que se realiza el proceso de inferencia.

Finalmente la asignatura presenta una introducción del cálculo lambda para desembocar

luego a la programación funcional. Se destacan los beneficios que posee este nuevo estilo de

programación especialmente por la manera en que se pueden escribir programas simples y

concisos usando recursividad, emparejamiento de patrones, evaluación perezosa, etc.

OBJETIVOS

Analizar algunos paradigmas de lenguajes de programación, introduciendo sus conceptos principales.

Evaluar los conceptos de lenguajes de programación en términos de su contribución al proceso de desarrollo de software.

Desarrollar criterios necesarios para realizar la selección criteriosa de un lenguaje de programación para determinados propósitos.

Ejercitar el juicio crítico para extraer conclusiones en forma independiente sobre los contenidos de la materia.

Usar el lenguaje técnico de la materia.

Aprender y desarrollar programas de distinta complejidad en un lenguaje de programación Orientado a Objetos y funcional.

Page 3: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 3

CONTENIDOS

UNIDAD I. Introducción.

Qué es un Paradigma. Qué es un Paradigma de programación. Importancia de estudiar conceptos comparados en lenguajes de programación

para la formación de criterios. Características de lenguajes de programación representativos de cada

paradigma. Ámbitos o entornos de aplicación. Historia de los lenguajes de Programación. Peso histórico y cuantitativo de los lenguajes de programación. Orígenes y evolución. Puntos relevantes y aspectos críticos.

OBJETIVOS ESPECÍFICOS

Descubrir el concepto de paradigma y paradigmas de programación. Identificar los lenguajes que son representativos de cada paradigma de

programación a lo largo de la historia. Reconocer la tendencia evolutiva de los lenguajes de programación.

CARGA HORARIA:

Cantidad de Horas de Teoría: 2:15 hs. (1 clase) Cantidad de Horas de Práctico: 3:45 hs. (1 clase)

UNIDAD II. Conceptos Comparados en Lenguajes de Programación

Valores y Tipos. Tipos Simples y Compuestos Sistemas de Tipos.

Equivalencia de tipos. Axiomas de equivalencia estructural. Equivalencia de nombres.

Control de tipos de forma estática y dinámica. Principio de Completitud de Tipos. Lenguajes con sistemas fuertemente tipados. Sistema de tipos monomórficos y polimórficos. Sobrecarga. Polimorfismo. Paramétrico y de inclusión. Tipos genéricos. Conversiones de tipos.

Variables y Actualizaciones. Variables compuestas. Tiempo de Vida de una variable. Variables globales y locales. Variables de pila y variables persistentes.

Binding: Enlace o Resolución de vínculos entre entidades y atributos Enlace y ámbito. Lenguajes con estructura de bloques. Alcance y visibilidad. Declaraciones. Alcance de las declaraciones. Ligamiento estático y dinámico.

Abstracciones Mecanismos de abstracción.

Page 4: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 4

Tipos (abstractos) de datos. Parámetros. Mecanismos de paso de parámetros. Por copia y por referencias. Orden de evaluación de parámetros. Evaluación impaciente y perezosa. Funciones estrictas y no estrictas.

Conclusiones Balance de características y propiedades de lenguajes de programación. Aportes oportunos de cada paradigma. Mención de otros paradigmas. Nuevos enfoques: fronteras entre paradigmas.

OBJETIVOS ESPECÍFICOS

Manejar los conceptos fundamentales que subyacen a la mayoría de los lenguajes de programación.

Manejar formalismos matemáticos para la asimilación de teorías básicas de los Tipos de datos.

Interpretar y asimilar los mecanismos de paso de parámetros y la forma de evaluación de los mismos en la llamada a abstracciones.

Reconocer conceptos avanzados utilizados en el diseño de los lenguajes de programación actuales.

Formar en el alumno un criterio propio a la hora de seleccionar un lenguaje de programación de un paradigma determinado para el desarrollo de casos reales.

CARGA HORARIA:

Cantidad de Horas de Teoría: 09:00 hs. (4 clases) Cantidad de Horas de Práctico: 15:00 hs. (4 clases)

UNIDAD III. Paradigma de Programación Orientada a Objetos

Impacto en el enfoque Orientado a Objetos. Conceptos básicos de la Programación en Grande.

Ocultamiento de información. Modularidad. Jerarquía. Polimorfismo.

Objetivos de la Orientación a Objetos. Ventajas. Programación estructurada vs. POO Definición de conceptos

Objetos Clases Ocultación de Información y Visibilidad Instanciación Notación de objetos Mensajes Herencia Simple y Múltiple Conflicto de nombres en la herencia múltiple. Relaciones de Agregación y Composición. Relaciones contractuales, de colaboración o de asociación. Redefinición y Sobrecarga Clases abstractas y concretas

Page 5: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 5

Miembros de instancia y de clase Polimorfismo y enlace dinámico

C++, SmallTalk, Python. Ejemplos.

OBJETIVOS ESPECÍFICOS

Tomar conciencia de las ventajas que proveen los conceptos de reutilización, encapsulamento, ocultamiento de información y visibilidad.

Manejar los conceptos de objetos y clases de objetos, y cómo se los puede utilizar para modelar el mundo real.

Distinguir entre los diferentes tipos de relaciones entre clases y objetos. Apreciar la utilidad que proporcionan las clases abstractas y concretas y sus

diferencias. Distinguir las diferencias entre redefinición y sobrecarga de métodos. Resolver ejercicios de distinta complejidad en SmallTalk. Fortalecer en el alumno la capacidad de interacción entre pares,

desempeñándose proactivamente en situaciones grupales.

CARGA HORARIA:

Cantidad de Horas de Teoría: 6:45 hs. (3 clases) Cantidad de Horas de Práctico: 11:45 hs. (3 clases)

UNIDAD IV. Paradigma de Programación Lógica

Programación Declarativa. Principios del Paradigma lógico. Concepción de problemas.

Características particulares. Representación formal. Espacio de Búsqueda. Tipos de soluciones.

Búsqueda. Búsqueda en grafos y árboles. Algoritmo de Control. Métodos de búsqueda.

Primero en profundidad. Backtracking. Primero en amplitud. Ventajas y desventajas.

Lógica Proposicional. Sintaxis, Semántica. Fórmulas bien formadas. Interpretación Lógica. Consecuencia Lógica.

Métodos de prueba. Inferencia Lógica. Cláusulas.

Literal Proposicional. Cláusula proposicional. Cláusula proposicional de Horn.

Page 6: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 6

Regla de Resolución proposicional. Refutación y Deducción. Mundo Cerrado. Árbol de resolución. Árbol SLD. Negación en Programación Lógica.

Lógica de Predicados. Lógica de Predicado de Primer Orden. Sintaxis y Semántica. Cláusulas de Horn Sustitución y Unificación. UMG. Principio de Resolución de Robinson. Regla de Resolución de Predicados. Notación Prolog.

Lenguaje de Programación Prolog. Hechos y reglas en Prolog. Consultas. Variables. Backtracking y Recursión. Listas.

Representación. Unificación. Ejemplos.

OBJETIVOS ESPECÍFICOS

Definir formalmente un problema. Determinar el espacio de búsqueda de una situación problemática. Reconocer un proceso de búsqueda para la resolución de un problema como un

isomorfismo con el recorrido de un árbol. Conocer los conceptos fundamentales de la programación lógica. Comprender los formalismos de la lógica proposicional. Entender cómo se extiende a la lógica proposicional con la lógica de Predicados

como base fundamental a los lenguajes de programación lógica. Afianzar los conceptos de Sustitución, Unificación, UMG y resolución. Resolver ejercicios mediante resolución y árboles SLD. Conocer el lenguaje de programación Prolog, su estructura y sintaxis.

CARGA HORARIA:

Cantidad de Horas de Teoría: 09:00 hs. (4 clases) Cantidad de Horas de Práctico: 15:00 hs. (4 clases)

UNIDAD V. Paradigma de Programación Funcional

Antecedentes Históricos. Importancia de los lenguajes funcionales. Lenguajes funcionales puros e híbridos. El cálculo lambda.

Fundamentos. Expresiones lambda. Sintaxis

Page 7: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 7

Convenciones sintácticas Variables: ámbito, Libres y Ligadas. Lambda Reducciones

-reducción

-reducción o -conversión

-reducción

-reducción Órdenes de Reducción Propiedad de Confluencia y Terminación

Estructura de los Lenguajes Funcionales. Definición y llamada de funciones. Forma Normal. Modos de evaluación. Impaciente y perezoso. Polimorfismo. Transparencia Referencial. Recursividad.

Lenguaje de programación Haskell. Valores y Tipos. Funciones. Funciones de orden superior. Estructuras de Datos infinitas. Expresiones Case y Pattern matching.

OBJETIVOS ESPECÍFICOS

Reconocer la importancia del paradigma funcional en el área científica. Manejar los conceptos del cálculo lambda. Conocer y manejar los conceptos básicos del paradigma, tomando conciencia

de la potencialidad que proveen las expresiones y funciones. Profundizar en el comportamiento de la evaluación perezosa y sus beneficios. Conocer el lenguaje de programación funcional Haskell y desarrollar programas

de diversa complejidad.

CARGA HORARIA:

Cantidad de Horas de Teoría: 09:00 hs. (4 clases) Cantidad de Horas de Práctico: 15:00 hs. (4 clases)

Page 8: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 8

ESTRATEGIAS METODOLÓGICAS

a) ESTRATEGIAS DE ENSEÑANZA

CLASE TEÓRICA

Se procederá de la siguiente manera:

El docente efectuará una exposición clara y ordenada, de modo tal que se destaquen los fundamentos de programación y sus aplicaciones.

No se abundará en detalles superfluos ni se tratarán los temas en un nivel muy alto de abstracción y densidad para facilitar la comprensión de los mismos.

El trabajo en pizarrón se realizará en forma clara, con símbolos y letras de tamaño que permitan su lectura perfectamente.

En la mayoría de las clases se proyectarán diapositivas para la mejor comprensión del alumno; esto permitirá un mayor aprovechamiento de la clase evitando que la necesidad de tomar apuntes que quite la oportunidad del alumno de captar y comprender los conceptos enunciados por el profesor.

Las clases serán lo más dinámicas posibles mediante la interacción profesor-alumno de manera que el educando tenga la posibilidad de ir descubriendo soluciones a distintas problemáticas propuesta por el docente.

Para los contenidos referentes a la Programación Orientada a Objetos, las clases se desarrollarán de manera diferente. Los alumnos se reunirán en grupos pequeños y se les asignará un tema relacionado con dicha unidad temática para lectura, análisis y discusión. Con posterioridad, cada grupo realizará una exposición plenaria de los contenidos asignados, finalmente, el resto de la clase podrá realizar las preguntas que considere necesarias. El docente realizará contribuciones pertinentes e ilustrará con ejemplos.

Será estructurada de la siguiente manera:

Una introducción de entre 5 y 10 minutos de duración y que consistirá en: o Planteo de la importancia del tema a tratar y su ubicación en el contexto de la

asignatura (si en esa clase comienza el desarrollo del mismo). o Breve reseña de lo desarrollado en la clase anterior (si el tema continua).

El desarrollo del tema propiamente dicho.

La conclusión será un breve resumen de lo expuesto, comentando sobre los puntos de mayor importancia.

CLASE PRÁCTICA

Se desarrollaran de la siguiente manera:

Primeros 30 minutos (aproximadamente) Durante los primeros 30 min. de la clase, el profesor (ayudante o JTP), dará las

indicaciones generales, teórico-prácticas, para el desarrollo de los temas

correspondientes a esa clase y resolverá algún ejercicio, que será elegido, de la guía de

trabajos prácticos de acuerdo al grado de dificultad, generalidad u otra característica

que lo destaque sobre los demás de ese tema.

Page 9: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 9

El resto de la clase: Durante este tiempo, bajo la supervisión y guía del profesor, los alumnos resolverán el

resto de los ejercicios del trabajo práctico que corresponda a esa clase.

b) MODALIDAD DE AGRUPAMIENTOS

En las clases prácticas en máquina, los alumnos podrán agruparse en pequeños grupos a fin de plantear diferentes puntos de vista en la resolución de planteos. Los mismos son flexibles y pueden variar de clase a clase.

En la unidad IV (POO), los alumnos formarán grupos homogéneos de manera que cada uno pueda abordar el análisis, estudio (y posterior exposición) de los diferentes conceptos del estilo de programación orientado a objetos.

Para el desarrollo del trabajo monográfico final, se organizarán en grupos de no más de 2 o 3 personas.

Se estima que las horas que los alumnos deberán dedicar para la realización del trabajo de Investigación es de 2 a 3 hs. semanales, desde el momento que se le asigna el tema al grupo hasta la fecha en que se deberá realizar la presentación.

c) CONSULTAS

Luego de cada clase teórica, el profesor podrá dedicar 15 a 20 minutos para consultas en general, ya sea referente a los trabajos monográficos e investigación o aquellas que tengan que ver con los contenidos de la materia.

Asimismo dejará disponible una dirección de correo electrónico para responder a inquietudes del alumnado.

Además, la cátedra cuenta con un aula en el Campus Virtual de la Facultad a través de la cual los alumnos pueden acceder al material didáctico, cronograma de clases, fechas de los exámenes, etc., como así también plantear sus inquietudes o dudas, interactuando con sus pares y recibiendo respuestas por parte de los docentes.

d) CRONOGRAMA

El cronograma está confeccionado de acuerdo al Calendario Académico del presente año lectivo. Las clases se dictarán en función de los horarios expresados seguidamente:

Lunes Martes Miércoles Jueves Viernes

2º “A” 14:00 a 16:15

(P)

16:25 a 18:40

(T)

14:45 a 16:15

(P)

2º “B” 21:10 a 23:25

(P)

18:45 a 21:00

(T)

21:10 a 22:40

(P)

Page 10: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 10

Semanas CLASES TEÓRICAS CLASES

PRÁCTICAS 2º “A”

CLASES

PRÁCTICAS 2º “B”

06/08 – 10/08 Unidad I Introducción. Historia. Qué es un Paradigma de Programación. Características de algunos lenguajes de programación. Origen y evolución.

Práctico 1 Práctico 1

13/08 – 17/08 Unidad II Valores y tipos Simples y Compuestos. Control de tipos.

Práctico 1 Práctico 1

20/08 – 24/08 Unidad II Equivalencia de tipos. Sistemas de Tipos monomórficos y polimórficos.

Práctico 2 Práctico 2

27/08 – 31/08 Unidad II Variables. Actualizaciones. Tiempos de vida de una variable. Enlace y ámbito. Alcance y Visibilidad. Mecanismos de Abstracción. Paso de parámetros. Evaluación de Parámetros.

Práctico 2 Práctico 2

03/09 – 07/09 Unidad III Introducción a la POO. Modularidad. Objetos y Clases. Ocultamiento y Visibilidad. Instanciación. Mensajes.

1º Instancia de evaluación: (Exposición y Coloquio POO)

Práctico 3 Práctico 3

10/09 – 15/09

Exámenes Finales – 4º Llamado (con suspensión de clases)

17/09 – 21/09 Relaciones de Herencia. Relaciones de Composición y Agregación. Relaciones contractuales, de colaboración o de asociación.

1º Instancia de evaluación: (Exposición y Coloquio POO)

Práctico 3 Práctico 3

24/09 – 28/09 Unidad III Redefinición de métodos. Anulación o Sustitución Sobrecarga de Clases. Clases Abstractas.

1º Instancia de evaluación: (Exposición y Coloquio POO)

Práctico 3 Práctico 3

01/10 – 05/10 Unidad IV Introducción a la Programación Lógica. Problemas: representación Formal. Espacio de Búsqueda y Soluciones. Búsqueda: Tipos. Ventajas y Desventajas. Encadenamiento. Backtracking.

2º Instancia de evaluación (Teórica) “A” y “B”: Jueves 04/10

3º Instancia de evaluación (Práctica)

“A”: Miércoles 03/10

“B”: Miércoles 03/10

08/10 – 12/10 Unidad IV Programación Lógica. Sintaxis y Semántica.

Práctico 4 Práctico 4

Page 11: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 11

Cláusulas. Lógica prop. Cláusulas Horn.

15/10 – 19/10 Unidad IV Resolución. Negación en programación lógica. Mundo cerrado. Resolución SLD.

Práctico 4 Práctico 4

22/10 – 26/10 Unidad IV Lógica de Predicados de Primer Orden. Sintaxis. Sustitución y Unificación. UMG. Resolución

Práctico 4 Práctico 4

29/10 – 02/11 Unidad V Introducción a los lenguajes funcionales. Historia. El cálculo lambda. Fundamentos. Expresiones Lambda. Sintaxis. Convenciones sintácticas. Variables Libres y Ligadas.

Práctico 5 Práctico 5

05/11 – 10/12 Exámenes Finales – 5º Llamado

12/11 – 16/11 Unidad V

Operadores. Ordenes de Reducción.

Propiedades de Confluencia y Terminación.

Práctico 5 Práctico 5

Límite de Entrega

16/11 23:59 Presentación del trabajo Monográfico

19/11 – 23/11 Unidad V Lenguajes Funcionales. Conceptos. Modos de Evaluación de expresiones. Polimorfismo.

5º Instancia de Evaluación (Práctica)

“A”: Miércoles 21/11

“B”: Miércoles 21/11

26/11 – 30/11 Unidad V Transparencia Referencial. Funciones de Orden superior.

4º Instancia de Evaluación (Teórica) “A” y “B”: Jueves 29/11

Clase de Consultas

03/11 – 07/12 Unidad V Haskell. Resolución de casos propuestos.

1º Instancia de Recuperación Jue 06/12 17:00 hs.

2º Instancia de Recuperación

Mie 05/12 17:00 hs.

11/12 – 16/12 Exámenes Finales – 6º Llamado (Firma de Libretas)

18/12 – 23/12 Exámenes Finales – 7º Llamado (Firma de Libretas)

Año 2019

15/02 – 21/02 Exámenes Finales – 8º Llamado (Firma de Libretas)

3º Instancia de Recuperación Jue 21/02 17:00 hs.

4º Instancia de Recuperación

Mie 20/02 17:00 hs.

Page 12: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 12

26/02 – 03/03 Exámenes Finales – 9º Llamado (Firma de Libretas)

05/03 – 10/03 Exámenes Finales – 10º Llamado (Firma de Libretas)

FERIADOS

Domingo 19/08 Aniversario de la Universidad Tecnológica Nacional

Lunes 20/08 17 de Agosto: Paso a la inmortalidad del General José de San Martín.

Lunes 27/08 San Fernando Rey Patrono de Resistencia

Viernes 21/09 Día del Estudiante

Sábado 29/09 Aniversario de la Creación de la Facultad Regional Resistencia

Lunes 15/10 12 de Octubre: Día del Respeto a la Diversidad cultural

Lunes 19/11 20 de Noviembre: Día de la Soberanía Nacional

Sábado 08/12 Día de la Inmaculada Concepción de María

e) ORGANIZACIÓN DE ESPACIOS DENTRO Y FUERA DEL ÁMBITO UNIVERSITARIO

A los efectos de posibilitar un correcto desenvolvimiento de la asignatura, deberá contarse con un laboratorio donde se puedan instalar los lenguajes de programación que se estudian; ya sea el principal de la materia o aquellos que sean referenciados en la cátedra u objeto de investigación.

Se prevé realizar las dos o tres primeras clases prácticas en laboratorio para introducir al alumno al manejo del lenguaje en la máquina.

El equipamiento requerido para las mismas será de una computadora por cada dos alumnos con el Software necesario para desarrollar las clases; en este caso el lenguaje Smalltalk.

Posteriormente se irán alternando clases en aula y en laboratorio según las necesidades.

MATERIALES CURRICULARES (RECURSOS)

Los recursos disponibles para el desarrollo de las clases teóricas y prácticas son:

Gráficos explicativos o de síntesis. Guía de trabajos prácticos y apuntes de teoría. Bibliografía. Transparencias y diapositivas. Videos. Publicaciones o tutoriales. Software de evaluación orientado a la enseñanza (Lenguajes de programación). Software de evaluación para construcción de árboles SLD.

Se requiere un cañón para las clases teóricas.

Page 13: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 13

FORMACIÓN PRÁCTICA

a) FORMACIÓN EXPERIMENTAL

Ambito de realización: Universidad. En laboratorios. Disponibilidad de infraestructura y equipamiento: Laboratorios con SW necesario (lenguajes de programación) Actividades a desarrollar: Práctica en máquina. Incluirá diseño de diagramas de clases y programación de soluciones propuestas a ejercicos planteados. Tiempo: 30 hs Períodos: 20/08 al 14/09 15/10 al 16/11 Evaluación: Permanente durante el desarrollo del taller.

b) RESOLUCIÓN DE PROBLEMAS DE INGENIERÍA:

Ambito de realización: Universidad. Actividades a desarrollar: Resolución de problemas reales o hipotéticos planteados mediante guías de trabajo. Los mismos serán planteados y desarrollados en clase. Tiempo: 15 hs Evaluación: En proceso. De seguimiento parcial y final.

EVALUACIÓN DEL ALUMNO

a) MOMENTOS:

Durante el cuatrimestre se establecen 5 (cinco) instancias de evaluación acorde a lo previsto en el Régimen de Aprobación Directa y Aprobación de la Cursada (Res. Nº 774/16); la aprobación de las mismas se logrará con la obtención de un mínimo de 6 puntos sobre un total de 10.

Primeramente, se prevé una instancia de evaluación en la modalidad de exposición grupal seguido de coloquio. Posteriormente se consideran otras 4 (cuatro) instancias de evaluación sumativas, escritas e individuales, separándose la evaluación del contenido teórico del práctico. Las evaluaciones prácticas serán elaboradas con dificultades similares a las que poseen los problemas propuestos en la Guía de Trabajos Prácticos. Las evaluaciones teóricas se referirán a los contenidos desarrollados en clase.

a) Instancias de evaluación durante el cursado: Se realizarán 5 instancias de evaluación.

1º. Presentación de trabajos expositivos seguido de coloquio durante el desarrollo

de la Unidad Temática III (en relación al POO).

Page 14: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 14

2º. Al finalizar las unidades temáticas I, II y III. Será íntegramente teórica.

3º. Al finalizar los Trabajos prácticos 1, 2 y 3. Será íntegramente práctica.

4º. Al finalizar las unidades temáticas IV y V. Será íntegramente teórica.

5º. Al finalizar los Trabajos prácticos 4 y 5. Será íntegramente práctica.

Se prevén además, 4 (cuatro) instancias de recuperación al finalizar el cursado y entre el

octavo y noveno llamado de exámenes finales según el siguiente detalle:

1º IR: corresponde recuperar 1º IE (la exposición de POO) y 2º IE.

2º IR: corresponde recuperar 3º IE.

3º IR: corresponde recuperar 4º IE.

4º IR: corresponde recuperar 5º IE.

b) Examen final: Este examen será práctico-teórico para aquellos alumnos que hayan

aprobado la cursada. La parte práctica es eliminatoria, el resto del examen será de temas

teóricos de las distintas unidades que componen el programa de la asignatura.

b) INSTRUMENTOS

Los docentes utilizarán la modalidad de evaluación escrita u oral para la evaluación del

alumno.

c) ACTIVIDADES

Los alumnos serán evaluados, en primer lugar, en un trabajo expositivo grupal seguido de

un coloquio referido a un tema relacionado a la Programación Orientada a Objetos. Los

recursos a utilizar quedarán a consideración de los alumnos. Se requerirá como requisito de

aprobación la elaboración de un registro audiovisual del proceso de preparación de los

contenidos expositivos donde queden evidenciados los debates que se llevaron a cabo, las

decisiones que se tomaron, situaciones de liderazgo, de consenso y todo lo que el alumno

estime necesario para mostrar el trabajo realizado.

Se realizarán además cuatro exámenes individuales escritos que contemplarán contenidos

teóricos y prácticos.

Se incorpora a la materia un trabajo de investigación que los alumnos deberán desarrollar

para la potenciación del ingenio e imaginación creadora. Se armarán grupos de dos o tres

personas y tendrán asignado un tema relacionado con los diferentes paradigmas de

programación.

Para elaborar el trabajo escrito, deberán seguirse las especificaciones técnicas de

elaboración establecidas en la guía del trabajo. No se requerirá la exposición en clase. La

evaluación final estará a cargo de los docentes de la cátedra.

Page 15: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 15

La entrega del trabajo escrito tendrá una fecha límite establecida en el cronograma de la

materia.

d) CRITERIOS DE:

APROBACIÓN DE CURSADA

Se dará bajo las siguientes condiciones:

Porcentaje de asistencia a clases requerida por la reglamentación vigente.

Aprobación de cuatro de las cinco instancias de evaluación con una nota no inferior a 6

(seis). La segunda, cuarta y quinta instancia son obligatorias para la aprobación de cursada.

Adicionalmente deberá tener presentado y aprobado el trabajo monográfico.

El alumno que reúna estas condiciones, tendrá aprobada la cursada de la asignatura y

tendrá acceso a rendir el examen final para su eventual aprobación. Si la nota de alguna de

las instancias fuese menos de 6 (seis) puntos, podrá hacer uso de las instancias de

recuperación según cronograma para alcanzar la nota mínima de aprobación: 6 (seis).

Luego de las mismas, si en algún caso no se alcanzara dicha nota para las instancias de

evaluación obligatorias y opcionalmente en una más, quedará en condición de libre.

APROBACIÓN DIRECTA

Para lograr la aprobación directa de la asignatura, el alumno deberá reunir el porcentaje de

asistencia a clases requerida por la reglamentación vigente, aprobar las 5 (cinco) instancias

de evaluación propuestas y haber presentado y aprobado el trabajo monográfico.

El estudiante que no apruebe una instancia de evaluación, podrá recurrir a una única

instancia de recuperación a fin de lograr la aprobación directa.

La nota promedio obtenida será la calificación definitiva obtenida por el estudiante.

ASIGNATURAS O CONOCIMIENTOS CON QUE SE VINCULA LA MATERIA

Tiene relación con materias como Matemática discreta y Sintaxis y Semántica del Lenguaje

y estrecha relación con Algoritmos y Estructura de Datos, Gestión de Datos y Diseño de

sistemas.

ACTIVIDADES DE COORDINACIÓN

Se evaluará en forma conjunta con los responsables de las asignaturas del nivel anterior y

del primer cuatrimestre, la pertinencia, oportunidad y profundidad requerida de los contenidos

dictados.

Page 16: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 16

Respecto de las asignaturas posteriores, se solicitará detalles del nivel de profundidad con

el cual enfocar los contenidos de la materia y que servirán de base para las del siguiente nivel.

VERTICAL

Conocimientos que se requiere que los alumnos posean al inicio de la asignatura:

Asignatura Temas

Matemática Discreta Teoría de conjuntos. Formalismos.

Introducción a la teoría de grafos y árboles.

Lógica. Lógica Proposicional. Lógica de Predicados.

Estructuras algebraicas.

Algoritmos y Estructura de

Datos

Algoritmos y conceptos asociados.

Abstracciones con procedimientos y función.

Estructuras de control.

Estructuras de datos básicos.

Conocimientos que deberá coordinar con asignaturas posteriores:

Asignatura Temas

Diseño de Sistemas Teoría de Objetos. Conceptos fundamentales.

Gestión de Datos Manejo de lenguajes de programación. Conceptos

asociados.

HORIZONTAL

Conocimientos que deberían adquirir durante el cursado de otra/s asignatura/s del mismo nivel:

Asignatura Temas

Sintaxis y Semántica del

Lenguaje

Árboles de análisis sintáctico. Derivaciones.

Expresiones Regulares.

BIBLIOGRAFÍA

a) OBLIGATORIA O BÁSICA

Watt, David, “Programming Languages Design Concepts”, Department of Computing Science, University of Glasgow, Scotland, 2004.

Unidades I, II y V

Scott, Michael L., “Programming Languages Pragmatics”. Third Edition, Department of Computing Science, University of Rochester, 2009.

Unidades I, II, III y V

Sebesta, Robert W., “Concepts of Programming Languages” Tenth Edition, University of Colorado, 2012.

Unidades I, II y V

Page 17: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 17

Aguilar, Luis Joyanes. “Programación Orientada a Objetos”.

Unidad III

Adolfo Kvitca. “Resolución de problemas en Inteligencia Artificial”.

Unidad IV

Apuntes de la Cátedra.

Unidad III

Michael Huth y Mark Ryan. “Logic in Computer Science”. Cambridge University Press. 2004

Unidad IV

Jorge Vidart y Alvaro Tasistro. “Programación Lógica y Funcional”.

Unidad IV

Blas C. Ruiz, Francisco Gutiérrez, Pablo Guerrero y José E. Gallardo. “Razonando con Haskell - Un curso sobre programación funcional”. Paraninfo.

Unidad V.

Herramienta para visualizar árboles SLD Dirección: http://www.lcc.uma.es/~pacog/sldDraw/

Unidad V

Programación Funcional Hugs On Line: http://cvs.haskell.org/Hugs/

http://www.haskell.org/

Wilf Lalonde. “Descubra SmallTalk”. Adisson Wesley / Díaz de Santos. Carleton University.

Práctico.

Alec Sharp. “Smalltalk. The Developer´s Guide, by Example”.

Práctico.

b) COMPLEMENTARIA

Brad J. Cox y Andrew J. Novobilski. “Programación Orientada a Objetos. Un enfoque evolutivo.” Addison-Wesley/Díaz de Santos. 1993.

Ghezzi Carlo & Jazayeri Mehdi, "Programming Languages Concepts", John Wiley & Sons Inc, 1987.

Alan Burns & Andy Wellings, Sistemas de Tiempo real y lenguajes de Programación. Tercera Edición, Adison Wesley. 2003.

Page 18: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 18

Cardelli Luca & Wegner Peter, "On understanding Types, Data Abstractions and Polimorphism", ACM Computing Surveys, Vol. 17, N4, Dec. 1985.

Horowitz Ellis, "Fundamentals of Programming Languages", Computer Science Press Inc. Springer-Verlag, 1983.

Nilsson. Logic Programming, and Prolog.

Manuel Alfonseca, Alfonso Alcalá. Programación Orientada a Objetos. Teoría y técnicas OPP para desarrollo de software. Ediciones Anaya. 1992.

Elaine Rich & Kevin Knight. “Inteligencia Artificial” Segunda Edición. Mc Graw Hill. 1994.

¡Aprende Haskell por el bien de todos!. http://aprendehaskell.es/main.html

DISTRIBUCIÓN DE TAREAS DEL EQUIPO DOCENTE

Nomina de Profesores

Apellido y Nombre

Categoria Concursado o Interino

Dedicación Actividad que cumple y horario

Dr. Rubén

Alfredo Bernal

Profesor Asociado

Interino Simple (2) Dictado de Teoría Jueves 16:25 a 19:40 Jueves 19:45 a 21:00

Actualización de material didáctico

teórico

Elaboración y corrección de evaluaciones

parciales y finales

Diagamación y atención de consultas mediante

el Campus Virtual

Nomina de Auxiliares

Apellido y Nombre

Categoria Concursado o Interino

Dedicación Actividad que cumple y horario

Ing. Carlos

Cuevas

Jefe de Trabajos Prácticos

Concursado Simple (1) Dictado de Prácticas y laboratorios

Miércoles 14:00 a 16:15 Viernes 14:45 a 16:15

Actualización de guía de

Trabajos Prácticos

Elaboración y corrección de evaluaciones

Page 19: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 19

parciales y recuperatorios

Diagamación y atención de consultas mediante el

Campus Virtual

Ing. Cesar

Javier Pizzi

Auxiliar de Primera

Concursado Simple (1) Dictado de Prácticas y laboratorios

Miércoles 21:10 a 23:25 Viernes 21:10 a 22:40

Actualización de guía de

Trabajos Prácticos

Corrección de evaluaciones parciales y

recuperatorios

Atención de consultas mediante el Campus

Virtual

ARTICULACIÓN DOCENCIA-INVESTIGACIÓN-EXTENSIÓN

Participación del docente asociado de la cátedra en el proyecto de investigación: “Análisis de

Información en Grandes Volúmenes de Datos Orientado al Proceso de Toma de Decisiones

Estratégicas” - Universidad Tecnológica Nacional – Facultad Regional Resistencia (Argentina)

(Cod. UTN4058).

ACTIVIDADES PLANIFICADAS PARA EL AÑO EN RELACIÓN A LA CARRERA

ACADÉMICA DE LOS DOCENTES

Reuniones de asignatura y área

Los integrantes de la cátedra realizarán una reunión mensual. En la misma se discutirán las

experiencias sobre las clases pasadas y se harán las propuestas para las clases futuras. Luego de

cada reunión se elaborarán las actas de las mismas, para dejar una referencia de los temas

tratados. Eventualmente se propondrán reuniones extraordinarias si se consideran oportunas.

Asimismo, participarán de todas las reuniones citadas por el departamento al cual pertenece la

asignatura, incluyendo el taller de Formación por Competencias.

Generación de material didáctico

Page 20: Paradigmas de Programación Nivel 2

PLANIFICACIÓN DE CÁTEDRA Paradigmas de Programación – Nivel 2

Año Lectivo 2018

pág. 20

El presenta año se readecuará el material didáctico de la asignatura actualizándolo a las últimas

novedades que incorporan los lenguajes de programación en los diferentes paradigmas. Se

reformularán también las guías de trabajos prácticos en función de esto último.

Se elaborará una guía complementaria con ejercicios complejos que permitan resaltar las

destrezas de los alumnos, en el arte de la programación.

Los recursos obtenidos se pondrán a disposición de los alumnos en el ámbito del Campus Virtual

con el que cuenta la asignatura.

Actividades extra-académicas

Se prevé visitar a empresas del medio que se dedican al desarrollo de software o solicitar la visita

de representantes de las mismas para realizar un plenario en el ámbito universitario. Se estima

realizar las mismas en el último mes del dictado de clases.

Actividades de formación interna de los miembros de la cátedra

Los docentes de la cátedra proporcionarán actividades que conduzcan a la formación de los

auxiliares docentes con los que cuenta la cátedra. Asimismo se propondrá la preparación de

trabajos expositivos en relación a los contenidos de la materia a modo de difusión de nuevos

conceptos de programación.