Download Lenguajes y Paradigmas de Programación

Document related concepts

Scala (lenguaje de programación) wikipedia , lookup

Programación funcional wikipedia , lookup

Scheme wikipedia , lookup

Ocaml wikipedia , lookup

Lisp wikipedia , lookup

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: [email protected]
• Cristina Pomares - (Coordinadora prácticas) - email: [email protected]
• 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