Download [05] Lenguajes de Programacion - 2008-II

Document related concepts

Programación funcional wikipedia , lookup

Wolfram (lenguaje de programación) wikipedia , lookup

Ocaml wikipedia , lookup

Lisp wikipedia , lookup

Erik Meijer wikipedia , lookup

Transcript
SILABO DEL CURSO
LENGUAJES DE PROGRAMACIÓN
1. DATOS GENERALES
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.
Facultad
Carrera Profesional
Departamento
Tipo de Curso
Requisito
Ciclo de estudios
Duración del curso
Inicio
Término
1.8. Extensión Horaria
1.9. Créditos
1.10. Periodo lectivo
1.11.
Docente
:
:
:
:
:
:
:
:
:
:
:
:
:
Ingeniería
Ingeniería de Sistemas
Ingeniería de Sistemas
Obligatorio
Análisis y Diseño de Algoritmos
V
18 semanas
18 de Agosto de 2008
20 de Diciembre de 2008
4 horas (2h Teoría, 2h Laboratorio)
03
2008-2
Ing. Ivan Sipirán Mendoza
[email protected]
2. FUNDAMENTACIÓN
Este curso es un curso teórico/práctico en donde el alumno conocerá la teoría fundamental de los
lenguajes de programación y de esta manera cuenten con una formación sólida en el área de ciencias
de la computación. Es importante notar que los tópicos a estudiar en este curso le ayudarán al alumno a
tener un carácter crítico con respecto a la creación y utilización de nuevas tecnologías de computación,
en especial aquellas relacionadas con el estudio de los lenguajes de programación, su análisis, diseño,
construcción y utilización efectiva.
El curso se centrará en el estudio de los componentes y etapas de construcción de un lenguaje de
programación. Además se le presentará a los alumnos dos nuevos paradigmas de programación: la
programación funcional y la programación lógica.
3. COMPETENCIA
Al terminar el curso, el alumno será capaz de:
• Conocer los Principios y Fundamentos de los Lenguajes de Programación, para su diseño e
implementación.
• Comprender los procesos básicos de un lenguaje de programación.
• Aplicar los principales paradigmas de programación, utilizando casos de estudio en lenguajes
como C, scheme, Prolog.
4. OBJETIVOS ESPECÍFICOS DEL CURSO
4.1. Comprender los principios que rigen el diseño de lenguajes de programación.
4.2. Conocer los diversos paradigmas de programación existentes.
4.3. Comprender la importancia de los lenguajes de programación funcionales.
4.4. Representar información en un lenguaje de programación funcional.
4.5. Comprender la importancia de la programación lógica en la construcción de sistemas inteligentes.
4.6. Comprender la representación de conocimiento empleando la lógica de primer orden.
4.7. Comprender el proceso de inferencia en lenguajes lógicos.
1
5. CONTENIDOS CONCEPTUALES
5.1. Principios de los Lenguajes de Programación
5.2. Análisis Léxico y Sintáctico.
5.3. Programación Funcional.
5.4. Tipos de datos, estructuras y formas funcionales disponibles en lenguajes funcionales.
5.5. Programación Lógica
5.6. Fórmulas Lógicas y Lógica de Primer Orden
5.7. Resolución SLD
5.8. Listas en Prolog
6. CONTENIDOS PROCEDIMENTALES
6.1. Desarrolla los dos componentes iniciales de análisis de un lenguaje de programación: Analizador
léxico y analizador sintáctico.
6.2. Construye programas bajo el paradigma de programación funcional.
6.3. Representa conocimiento y desarrolla programas sobre el paradigma de programación lógica.
7. CONTENIDOS ACTITUDINALES
•
•
•
•
Responsabilidad
Trabajo en Equipo
Solidaridad
Ética
8. METODOLOGÍA GENERAL DEL CURSO
8.1. Taller grupal en clase, para que los alumnos construyan conocimiento a partir de sus experiencias
previas con los temas a tratar.
8.2. Prácticas de laboratorio, para que el alumno demuestre y aplique los conocimientos vistos en clase.
8.3. Prácticas integradoras, como medio para que los alumnos desarrollen las capacidades prácticas de
los temas tratados y como preparación para las evaluaciones parciales.
8.4. Desarrollo y exposición de proyecto, donde los estudiantes apliquen el conocimiento dado en el
curso a problemas de mayor complejidad, de forma que los alumnos puedan extender sus
conocimientos. En estos proyectos recibirá la guía y asesoría del docente.
9. PROGRAMACIÓN
Unidad
1. Fundamentos de
los Lenguajes de
Programación.
(5 semanas)
2. Paradigma de
Programación
Funcional.
(4 semanas)
Sem.
1
Actividad
• Recopilación de saberes previos
• Examen de entrada
• Encuesta de intereses y objetivos del curso
• Discusión de objetivos planteados del curso y formas metodológicas
• Creación de grupos de trabajo
2
• Principios y fundamentos de los Lenguajes de Programación
• Presentación de proyectos tentativos y conformación de los grupos de trabajo
3
• El proceso de reconocimiento de palabras de un lenguaje de programación.
• Lenguajes interpretados y lenguajes compilados.
4
• Gramáticas de los lenguajes de programación
5
Practica integradora
Evaluación T1
FUENTES BIBLIOGRÁFICAS:
[1] Capítulos 3,4
[2] Capítulos 2, 3, 4, 5, 6
[3] Capítulo 1, 2, 3, 7
6
• Fundamentos de la programación funcional.
• Caso de estudio en el laboratorio: Programación Funcional con Scheme.
7
• EL lenguaje de programación Scheme
• Práctica de laboratorio: Tipos de datos y estructuras en Scheme.
2
8
2. Paradigma de
Programación
Funcional(Continu
ación)
(1 semana)
3. Paradigma de
Programación
Lógica
(5 semanas)
Práctica de programación funcional integradora
Evaluación T2
FUENTES BIBLIOGRÁFICAS:
[1] Capítulos 15
[3] Capítulo 11
9
EXAMEN PARCIAL
10
• Formas funcionales en Scheme
• Práctica de Laboratorio: Formas funcionales en Scheme
FUENTES BIBLIOGRÁFICAS:
[1] Capítulos 15
[3] Capítulo 11
11
• Introducción a la Programación Lógica
• Caso de estudio en el laboratorio: Programación Lógica
• Fórmulas Lógicas
• Práctica de laboratorio: Creación de fórmulas lógicas en Prolog
• Evaluación T3
13
• Proceso de Inferencia Lógico
• Práctica de Laboratorio: Creación de hechos y reglas en Prolog.
14
• Listas en Prolog
• Práctica de Laboratorio: Creación de predicados para manejo de listas.
• Evaluación T4
15
• Listas de Listas en Prolog
• Práctica de Laboratorio: Creación de Listas de Listas en Prolog
16
• Evaluación T5 (exposición y trabajos)
FUENTES BIBLIOGRÁFICAS:
[2] Capítulo 16
[3] Capítulo 11
12
17
18
EXAMEN FINAL
EXAMEN SUSTITUTORIO
10. SISTEMA DE EVALUACIÓN DEL CURSO
El cronograma de la evaluación continua del curso es el siguiente:
ESPECIFICACIÓN DE TRABAJOS DEL CURSO
Descripción
T
T1
T2
T3
T4
T5
Resumen de Lectura sobre Lenguajes de Programación
Solucionar un problema planteado por el docente en el
laboratorio, empleando programación funcional
Resumen sobre Lectura de Programación Lógica
Solucionar un problema planteado por el docente en el
laboratorio, empleando programación lógica
Presentación de trabajos finales
Semana
5
8
12
14
16
El peso de cada T es:
EVALUACIÓN
T01
T02
T03
T04
T05
TOTAL
PESO (%)
10
15
20
25
30
100%
ESCALA VIGESIMAL
1,2
1,8
2,4
3,0
3,6
12
Los pesos ponderados de las clases de evaluación son los siguientes:
EVALUACIÓN
PARCIAL
CONTINUA (Ts)
PESO (%)
20
60
ESCALA VIGESIMAL
4
12
3
FINAL
TOTAL
20
100%
4
20
11. BIBLIOGRAFÍA OBLIGATORIA
#
1
CÓDIGO
AUTOR
FRIEDMAN, Daniel; WAND,
005.13/F83
Mitchell; HAYNES, Christopher
TITULO
Essentials of Programming Languages
12. BIBLIOGRAFÍA COMPLEMENTARIA
#
2
3
AUTOR
SEBESTA, Robert
SCOTT,Michael
TITULO
Concepts of Programming Languages
Programming Language Pragmatics
13. REFERENCIAS WEB
#
4
5
6
TITULO
ENLACE
Programming
Language
http://www.cs.cmu.edu/~mleone/language-research.html
Research
Researchers in Programming
http://www.cs.cmu.edu/~mleone/language-people.html
Languages and Compilers
The Language Guide
http://www.engin.umd.umich.edu/CIS/course.des/cis400/
4