Download Lenguajes y Paradigmas de Programación
Document related concepts
Transcript
Lenguajes y Paradigmas de Programación Sesión 1: Descripción de la asignatura 1 martes 8 de febrero de 2011 Hoy veremos • Datos académicos • Webs de la asignatura • Objetivos y competencias • Temario • Prácticas • Horarios • Evaluación • Bibliografía 2 martes 8 de febrero de 2011 Datos académicos • Asignatura obligatoria (Ingeniería Informática) y optativa (Ingenierías técnicas) • 3 créditos de teoría + 3 créditos de prácticas • 2 clases de teoría (1 hora cada una) + 1 clase de prácticas (2 horas) • Domingo Gallardo - (Coordinador teoría) - email: domingo.gallardo@ua.es • Cristina Pomares - (Coordinadora prácticas) - email: cpomares@dccia.ua.es • Departamento de Ciencia de la Computación e Inteligencia Artificial 3 martes 8 de febrero de 2011 Webs de la asignatura • Página web abierta y accesible a toda la comunidad educativa: http:// www.dccia.ua.es/dccia/inf/asignaturas/LPP. Contiene el temario, los materiales de estudio, prácticas y calendario. • Blog: http://blogs.ua.es/lenguajesyparadigmas/. Aquí publicaremos noticias y anuncios relacionados con el desarrollo de la asignatura: publicación de prácticas, de materiales, etc. 4 martes 8 de febrero de 2011 Objetivos de la asignatura • Concepto de programación desde un punto de vista práctico. ¿Qué elementos son comunes a los lenguajes de programación? ¿Qué características tienen? ¿Cuáles son los elementos esenciales y los accesorios? ¿Cómo diseñar un buen lenguaje de programación? • Los lenguajes de programación permiten construir abstracciones. Un lenguaje de programación proporciona mecanismos de abstracción que nos permiten expresar una solución informática en un lenguaje cercano al dominio que estamos tratando. • Lenguajes de programación Scheme y Scala 5 martes 8 de febrero de 2011 Bloques de la asignatura • Lenguajes de programación • Programación funcional • Programación imperativa • Programación orientada a objetos • Integración de paradigmas 6 martes 8 de febrero de 2011 Competencias I • Conocer y diferenciar las características de los distintos paradigmas de programación e identificarlas en lenguajes de programación concretos. • Conocer los elementos que componen los lenguajes de programación (estructuras de control, procedimientos, tipos de datos) y distintas implementaciones de estos elementos en distintos lenguajes. • Diferenciar entre tiempo de ejecución y tiempo de compilación en distintos ámbitos: detección de errores o definición, creación o ámbito de vida de variables. • Conocer modelos de computación específicos que expliquen la semántica de los lenguajes de programación: modelo de sustitución (programación funcional) y modelo de entornos (programación procedural) 7 martes 8 de febrero de 2011 Competencias II • Utilizar la abstracción y la recursión para diseñar correctamente procedimientos y estructuras de datos (listas y árboles). • Ser capaz de diseñar, implementar y corregir programas funcionales, en concreto utilizando el lenguaje de programación Scheme. • Ser capaz de implementar programas sencillos en Scala, en los que se utilicen las características multi-paradigma del lenguaje. • Comparar el paradigma orientado a objetos con el paradigma procedural clásico, reconociendo las ventajas que aporta en cuanto a abstracción, reutilización y modificación de código. • Conocer los principios básicos del paradigma de programación lógica 8 martes 8 de febrero de 2011 Temario I • Tema 1: Introducción a los LP (7 feb) • Tema 2: Introducción a Scheme (14 feb) • Tema 3: El paradigma de programación funcional (21, 28 feb) • Tema 4: Recursión y estructuras de datos recursivas (7, 14 mar) • Tema 5: Macros (21 mar) • Tema 6: Introducción a Scala (28 mar) • Tema 7: Nombres, ámbitos y ligaduras (11 abr) 9 martes 8 de febrero de 2011 Temario II • Tema 8: Subrutinas y abstracción de control (11 Abril) • Tema 9: Control de flujo (18 Abril) • Tema 10: Tipos de datos (2 Mayo) • Tema 11: Abstracción de datos y Programación Orientada a Objetos (9 Mayo) • Tema 12: Programación Lógica (18 Mayo) 10 martes 8 de febrero de 2011 Prácticas I • Realización individual de ejercicios de programación relacionados con los conceptos que se están estudiando en ese momento que servirán para reforzar y profundizar en las competencias de la asignatura. • Lenguajes de programación y entornos de desarrollo: • Racket (versión de Scheme, lenguaje de programación funcional) • Scala (lenguaje multiparadigma basado en Java con características de programación funcional y programación orientada a objetos) • 10 prácticas, se revisarán en las horas de prácticas. Buena oportunidad para resolver y consultar dudas de la asignatura 11 martes 8 de febrero de 2011 Práctica II • Scheme (21 Febrero) • Programación funcional (28 Febrero) • Forma especial lambda (7 Marzo) • Recursión (14 Marzo) • Esctructuras de datos recursivas (21 Marzo) • Scala (4 Abril) • Entornos y ámbito de variables (11 Abril) • Subrutinas (18 Abril) • Tipos de datos (9 Mayo) • Programación Orientada a Objetos (16 Abril) 12 martes 8 de febrero de 2011 Horarios de teoría Grupo Día Hora Profesor Aula 1 Martes 10-11 h Domingo Gallardo D27 (Aulario 2) 1 Miércoles 10-11 h Domingo Gallardo D27 (Aulario 2) 2 Martes 11-12 h Domingo Gallardo D25 (Aulario 2) 2 Miércoles 11-12 h Domingo Gallardo D25 (Aluario 2) 3 Martes 15-16 h Cristina Pomares D27 (Aulario 2) 3 Miércoles 16-17 h Cristina Pomares D27 (Aulario 2) 13 martes 8 de febrero de 2011 Horarios de prácticas Grupo Día Hora Profesor Aula 1 Lunes 12:30-14:30 h Cristina Pomares L16 (Laboratorio EPS) 2 Martes 16-18 h Cristina Pomares L13 (Laboratorio EPS) 3 Miércoles 12:30-14:30 h Cristina Pomares L16 (Laboratorio EPS) 4 Miércoles 14:30-16:30 h Domingo Gallardo L16 (Laboratorio EPS) 14 martes 8 de febrero de 2011 Evaluación I • Evaluación continua basada en los ejercicios prácticos entregados y en dos exámenes parciales que se realizarán en los laboratorios de la EPS. • Examen parcial 1: Temas del 1 al 5. Semana del 28 de marzo. • Examen parcial 2: Temas del 6 al 12. Semana del 23 de mayo • Examen final: contenido teórico y práctico de toda la asignatura. 30 de mayo. 15 martes 8 de febrero de 2011 Evaluación II • Calificación final: • Cada práctica 1 punto, en total como máximo 10 puntos por las 10 prácticas. • Cada examen parcial 30 puntos, en total como máximo 60 puntos por los dos exámenes. • Examen final: nota máxima 30 puntos. • Calificación: (Nota prácticas + Nota parciales + Nota prueba final) / 100 16 martes 8 de febrero de 2011 Bibliografía • Structure and Interpretation and Computer Programs (SICP) • Autores: Harold Abelson y Gerald Jay Sussman • Editorial: MITPress, 1996. Enlace a la edición on-line • Signatura en la Biblioteca Politécnica: I.06/ABE/STR • Programming Language Pragmatics • Autor: Michael L. Scott • Editorial: Morgan Kaufmann Publishers, 2009 (Third Edition) • Signatura en la Biblioteca Politécnica: POE 004.43/SCO/PRO 17 martes 8 de febrero de 2011