• No se han encontrado resultados

Metodologías de Programación II (Funcional): Sobre este curso.

N/A
N/A
Protected

Academic year: 2021

Share "Metodologías de Programación II (Funcional): Sobre este curso."

Copied!
6
0
0

Texto completo

(1)

Metodologías de Programación II (Funcional):

Sobre este curso.

Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial

Universidad Veracruzana

Facultad de Física e Inteligencia Artificial Sebastián Camacho No 5, Xalapa, Ver., México 91000

[email protected] www.uv.mx/aguerra

9 de enero de 2012

Bienvenidos al curso de Metodología de Programación II, en la Maestría en In-teligencia Artificial de la Universidad Veracruzana. El tema central de este curso es laprogramación funcional, y complementa al curso de Metodología de Progra-mación I, cuyo tema es la prograProgra-mación lógica. El material está organizado para ofrecer un curso de 45 horas, durante un cuatrimestre, con dos sesiones de dos horas por semana.

1.

Objetivos

Elobjetivode este texto es introducir al estudiante a las técnicas y métodos de la programación funcional en el contexto de la Inteligencia Artificial. Para ello, la primera parte del mismo se ha organizado como un taller práctico de programación en Lisp; mientras que la segunda parte hace énfasis en el aspecto teórico de este pa-radigma de programación, ilustrando con ejemplos en el dialecto de ML conocido como OCaml.

2.

Evaluación

El estudiante seráevaluadoconforme a su participación en clase, la calidad de sus tareas y el resultado que obtenga en la elaboración de un proyecto final, que

(2)

involucra las competencias que un estudiante debe adquirir en este curso. La nota final, será calculada, aproximadamente, de la siguiente forma:

4 tareas que cubren el 60 % de la nota final. Las tareas incluyen escritura de ensayos, exposiciones y, por supuesto, ejercicios de programación.

El proyecto final cubre el 40 % de la nota final.

Para obtener una nota aprobatoria, el alumno deberá haber obtenido notas aprobatorias en cada uno de las tareas a realizar y el proyecto final, es decir, no aprobar cualquier elemento parcial de la evaluación, implica no aprobar el curso.

3.

Tareas

Durante el curso, se asignarán cuatro tareas. Las tareas deberán entregarse a las 11:00 am del día designado (generalmente al encargarse la tarea siguiente, por ejemplo, la tarea T1 se entregará el día que será encargada la tarea T2, y así suce-sivamente). El mérito del trabajo decrece 25 % por cada 24 horas de retraso. Las tareas pueden requerir investigación bibliográfica y experimentación en la compu-tadora (Ocaml, Lisp). Todos los trabajos deberán incluir al pie de cada página: i) el nombre del estudiante; ii) el nombre del curso; iii) el número de la tarea; y iv) el número de la página. Sólo se acepta papel carta 8’x11’. En todas las partes que involucran código, éste deberá ser documentado apropiadamente. Los trabajos son evaluados de la siguiente manera: Para que un ejercicio o pregunta reciba créditos, más del 50 % deberá estar resuelta de manera correcta o completa (es más redui-table invertir el tiempo en contestar una pregunta de manera correcta y completa, que responder a dos de manera parcial).

La discusión entre los estudiantes es uno de los aspectos más enriquecedores en un programa de maestría. Es sumamente importante que discutan entre ustedes las tareas, pero toda discusión al respecto deberá ser de manera oral. En ningún momento podrá un estudiante consultar las notas de trabajo escrito de otro. Cual-quier anomalía en este sentido, causaexpulsión definitivadel curso. La fecha de entrega de las tareas aparece en la sección de calendario de este prefacio.

4.

Proyecto final

El proyecto final gira en torno al algoritmo de inducción de árboles de decisión ID3. En la primera parte de curso, implementaremos una primer versión de este al-goritmo. El proyecto final consiste en implementar una serie de mejoras al mismo, que pueden estar relacionadas con:

(3)

Preprocesamaiento de datos (Discretización, formatos de datos, etc.); Eficiencia de la implementación (Concurrencia, optimización, representa-ción de datos, poda, etc.);

Usabilidad (Interfases gráficas, comandos nuevos, salida, etc.);

Aplicación, encontrar un problema relevante en nuestro contexto donde apli-car el sistema implementado.

Para ello, la primer parte del curso está orientada a que el estudiante adquiera las habilidades necesarias para contender con este proyecto.

5.

Material del curso

El estudiante es libre de elegir la implementación de Lisp que crea convenien-te, aunque se recomienda usarLispWorks 6.01 para el proyecto final del curso (contamos con una licencia comercial en OS X). Otras implementaciones dispo-nibles incluyen:Clozure2,Allegro3 ySBCL4, entre otras. Con respecto a ML utilizaremos el dialectoOCaml 3.12.05.

Las notas del curso están en:http://www.uv.mx/aguerra/mpii.html, se-paradas por sesiones, con el material complementario correspondiente.

Se les solicita usarLatex6 para generar los reportes con los resultados de sus tareas. Tanto Latex, como Lisp y Ocaml pueden integrarse al editorEmacs7. El archivo de configuración.emacsdebería contener algunas líneas como las siguien-tes:

1 ; ;; slime ( s e t t i n g Lisp for a q u a e m a c s ) 2 3 ( a d d - h o o k ’ s l i m e - m o d e - h o o k ’ i m e n u - a d d - m e n u b a r - i n d e x ) 4 5 ( setq i n f e r i o r - l i s p - p r o g r a m " ~/ D o c u m e n t s / lisp / l i s p w o r k s " 1http://www.lispworks.com 2http://trac.clozure.com/ccl 3http://www.franz.com/ 4http://www.sbcl.org/ 5http://caml.inria.fr/ 6http ://www.latex-project.com 7http://www.gnu.org

(4)

6 l i s p - i n d e n t - f u n c t i o n ’

c o m m o n - l i s p - i n d e n t - f u n c t i o n

7 c o m m o n - l i s p - h y p e r s p e c - r o o t

8 " file :/// A p p l i c a t i o n s / L i s p W o r k s %205.1/

L i b r a r y / lib / 5 - 1 - 0 - 0 / manual / online / web / CLHS / " 9 s l i m e - s t a r t - u p - a n i m a t i o n t ) 10 11 ( setq a u t o - m o d e - a l i s t 12 (cons ’( " \\. lsp " . l i s p - m o d e ) a u t o - m o d e - a l i s t ) ) 13 14 ; ;; c o n f i g u r a t i o n for Ocaml 15 16 ( a d d - t o - l i s t ’ l o a d - p a t h " / Users / a g u e r r a / D o c u m e n t s / elisp / t u a r e g - m o d e - 1 . 45.6/ " ) 17 18 ( setq a u t o - m o d e - a l i s t (cons ’( " \\. ml \\ w ? " . t u a r e g - m o d e ) a u t o - m o d e - a l i s t ) )

19 ( a u t o l o a d ’ t u a r e g - m o d e " t uareg " " Major mode for

e d i t i n g Caml code " t )

20 ( a u t o l o a d ’ c a m l d e b u g " c a m l d e b u g " " Run the Caml

d e b u g g e r " t )

21 ( if (and (boundp ’ w i n d o w - s y s t e m ) w i n d o w - s y s t e m ) 22 (require ’ f o n t - l o c k ) )

La línea 3 añade una entrada al menú de Emacs que lista las funciones definidas por el usuario. La línea 5 especifíca la implementación de Lisp que se va a usar. La línea 8 define el camino a la documentación de Lisp en formato HTML.Slimey

Tuareg-Modedeben cargarse de internet por separado.

6.

Calendario

Este año las sesiones se llevarán a cabo los lunes y los miércoles de 11:00 a 13:00 hrs. El contenido ycalendariode las sesiones es el siguiente:

(5)

Fecha Tema Tarea 09/01/2012 Introducción a la Programación Funcional

11/01/2012 Introducción a Lisp 1 16/01/2012 Introducción a Lisp 2

18/01/2012 Recursividad y Listas en Lisp T1 23/01/2012 Macros 1

25/01/2012 Macros 2

30/01/2012 Aspectos no funcionales de Lisp T2 01/02/2012 Práctica 1: Un filtro de Spam

06/02/2012 Práctica 2: Programación Web

08/02/2012 Práctica 3: Arboles de decisión T3 13/02/2012 Introducción a Ocaml

15/02/2012 Listas y tipos de datos definidos por el usuario 20/02/2012 Computaciones repetitivas

22/02/2012 Tipos de datos concretos y recursivos T4 27/02/2012 Cálculo lambda 1

29/02/2012 Cálculo lambda 2 26/03/2012 Entrega de Proyectos

Referencias básicas

1. E. Chailloux, P. Manoury, and B. Pagano. Developing Applications With Objective Caml. O’Reilly, Paris, France, 2000.

2. P. Graham. On Lisp: Advanced Techniques for Common Lisp. Prentice Hall International, 1993.

3. P. Graham. ANSI Common Lisp. Prentice Hall Series in Artificial Intelligen-ce. Prentice Hall International, 1996.

4. A. Guerra-Hernández. Metodologías de Programación II: Programación Funcional. http://www.uv.mx/mpii.htmlEdición 2012.

5. W. Kluge. Abstract Computing Machines: A Lambda Calculus Perspective. Springer-Verlag, Berlin Heidelberg New York, 2005.

6. P. Norvig. Paradigs of Artificial Intelligence Programming: Case Studies in Common Lisp. Morgan Kauffman Publishers, 1992.

7. C. Queinnec.Lisp in Small Pieces. Cambridge University Press, Cambridge, UK, 1996.

(6)

8. P. Seibel. Practical Common Lisp. Apress, USA, 2005.

Xalapa, Ver., México Alejandro

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

En estos últimos años, he tenido el privilegio, durante varias prolongadas visitas al extranjero, de hacer investigaciones sobre el teatro, y muchas veces he tenido la ocasión

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

En este documento se presenta el diseño y caracterización de dispositivos de banda ancha para frecuencias milimétricas específicos para su utilización en los receptores; el

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la