Vous êtes sur la page 1sur 5

PROGRAMA DE CURSO

Cdigo Nombre CC4101 Lenguajes de Programacin Nombre en Ingls Programming Languages Unidades SCT Docentes 6 10 Requisitos CC3102 Teora de la Computacin

Horas Docencia Horas de Trabajo Auxiliar Personal 1,5 5,5 Carcter del Curso Obligatorio para Licenciatura en Computacin. Resultados de Aprendizaje Al trmino del curso, el alumno demuestra que maneja los lenguajes de programacin, sus aplicaciones, semntica, e implementacin. Reconoce la definicin de varios lenguajes a travs de su intrprete, estudiando paso a paso distintos mecanismos, como funciones, recursin, estado, y finalmente objetos. Adems, identifica mecanismos para extender lenguajes existentes, en particular macros. Como la gran mayora del trabajo de definicin de lenguajes se hace en Scheme, el alumno maneja este lenguaje, y programacin funcional en general. Adems, el curso entrega elementos precisos de comparacin y descripcin de varios lenguajes, algunos ampliamente usados y otros emergentes, como C, Java, Lisp, bash, Haskell, ML, JavaScript, Scala, Self, y Smalltalk.

Horas de Ctedra 3

Metodologa Docente Clases expositivas del profesor de ctedra. De manera de relacionar lo conceptual con lo concreto, el profesor combina explicacin terica en la pizarra con demostracin en vivo de la implementacin de los conceptos vistos, a travs de la proyeccin con data show de la programacin de varios lenguajes.

Evaluacin General Se realizan tres controles para evaluar si se han cumplido los objetivos. El primero evala las unidades 1 y 2, el segundo las unidades 36 y el tercero las unidades 7-9.

El examen evala todas las unidades, en particular la parte de la 9 que no llega a evaluarse completamente en el control. Tanto Clases auxiliares dedicadas a repasar puntos los controles como el examen se enfocan en delicados vistos en clase, explicar ejemplos evaluar que el alumno haya comprendido los ms extensos, resolver ejercicios propuestos, conceptos como sus implicancias concretas. y preparacin pre y post controles. La Nota de Control se calcula de la siguiente manera: Promedio ponderado del examen (40%) y del promedio de los controles (60%) Se realizan tres tareas a lo largo del curso. Las tareas consisten generalmente en implementar lenguajes con mecanismos varios, vistos o no en clase. Las tareas buscan fundamentalmente que el alumno comprenda como definir un lenguaje, y como/cuando aplicar los mecanismos ofrecidos por este.

Metodologa Docente

Evaluacin General Las tareas son individuales y se promedian a partes iguales para formar la nota de tareas. Controles y tareas se aprueban por separado y deben ser igual o superior a 4.0. La nota final es 2/3 de la nota de controles y 1/3 de la nota de tareas.

UNIDADES TEMATICAS Nmero 1 Nombre de la Unidad Duracin en Semanas Elementos bsicos de programacin funcional 2 Resultados de Aprendizajes de la Referencias a Contenidos Unidad la Bibliografa Definicin inductiva de datos Al trmino de la unidad se espera [2] Cap 1-2 Abstraccin de datos que el alumno: [3] Definicin de funciones - Reactualice la metodologa [4] Manejo de listas y otras de programacin basada estructuras. en abstraccin de datos, y Uso de funciones de orden el procesamiento de datos superior y primera clase. por funciones recursivas. - Comprenda el uso prctico de funciones de orden superior y de primera clase. Conexin con: C, Java

Nmero 2

Nombre de la Unidad Duracin en Semanas Substitucin y funciones de primer orden 2 Resultados de Aprendizajes de la Referencias a Contenidos Unidad la Bibliografa Interpretar un lenguaje de clculo Al trmino de la unidad se espera [1] Cap 1-4 aritmtico. que el alumno: Introduccin de identificadores en - Comprenda la estructura el lenguaje. bsica de un intrprete. Substitucin: definicin del - Comprenda el significado significado de los identificadores. de identificadores a travs Substitucin perezosa o temprana. de substitucin. Funciones simples (primer orden). Implementa un lenguaje con funciones simples.

Nmero 3

Nombre de la Unidad Duracin en Semanas Funciones de primera clase y alcance 1.5 Resultados de Aprendizajes de la Referencias a Contenidos Unidad la Bibliografa Introduccin de ambientes para Al trmino de la unidad se espera [1] Cap 5-6 diferir substitucin. que el alumno: [2] Cap 3.1-3.5 Control del alcance de las - Reconozca la nocin de variables. alcance de los Alcance esttico vs. dinmico. identificadores. Funciones de primera clase. - Comprenda la diferencia Funciones annimas. entre alcance esttico y Closures vs. punteros de funcin. dinmico, y en que casos sirven. Comprenda como proveer funciones de primera clase preservando alcance esttico. Conexin con: Common Lisp, bash, TeX, excepciones, Java, C.

Nmero 4

Nombre de la Unidad Duracin en Semanas Regmenes de evaluacin 2 Resultados de Aprendizajes de la Referencias a Contenidos Unidad la Bibliografa Evaluacin perezosa. Al trmino de la unidad se espera [1] Cap 7-8 Introduccin al lenguaje Haskell. que el alumno: Manejo de estructuras infinitas. - Maneje distintas estrategias de Implementar evaluacin perezosa. evaluacin. Comprenda en que Transparencia referencial y casos evaluacin perezosa es til. razonamiento ecuacional. Reconozca la importancia del razonamiento ecuacional. Conexin con: Haskell, ML, bash.

Nmero 5

Nombre de la Unidad Duracin en Semanas Recursin 1 Resultados de Aprendizajes de la Referencias a Contenidos Unidad la Bibliografa Funciones recursivas de primera Al trmino de la unidad se espera [1] Cap 9-10 clase. que el alumno: [2] Cap 3.6 Ambiente recursivo y punto fijo. - Comprenda la nocin de Recursin e iteracin: recursin recursividad, tanto en por la cola y optimizaciones. trminos formales como Definicin puramente funcional de prcticos. la recursin. - Comprenda la nocin de recursin por la cola. Conexin con: Scheme vs. Java

Nmero 6

Nombre de la Unidad Duracin en Semanas Representacin procedural y meta-interpretacin 1 Resultados de Aprendizajes de la Referencias a Contenidos Unidad la Bibliografa Usar funciones en vez de Al trmino de la unidad se espera [1] Cap 11 estructura de datos: abstraccin que el alumno: procedural. - Reconozca la relacin entre Aplicacin a ambientes y definicin abstraccin de datos y del intrprete. abstraccin procedural. Interprete sintctico, interprete - Comprenda distintas meta. estrategias para definir o Extender un lenguaje por extender un lenguaje. absorcin de primitivas.

Nmero 7

Nombre de la Unidad Duracin en Semanas Estado y mutacin 2.5 Resultados de Aprendizajes de la Referencias a Contenidos Unidad la Bibliografa Mutacin y orden de evaluacin. Al trmino de la unidad se espera [1] Cap 12-14 Estructuras de dato mutables. que el alumno: [2] Cap 3.7-3.9 Variables y asignacin. - Entienda cuando manejar [1] Cap 20 Extensin del modelo con el estado es necesario, y almacn (store). porque es preferible Patrn de hilamiento en el evitarlo. intrprete. - Reconozca diferentes Estrategias de paso de parmetros. formas de mutacin, y Recoleccin de basura. diferentes semnticas para pasar parmetros. Entender los principios bsicos de la gestin de memoria. Conexin con: C, Java

Nombre de la Unidad Duracin en Semanas Extensin sintctica de lenguajes 1 Resultados de Aprendizajes de la Referencias a Contenidos Unidad la Bibliografa - Motivacin: lenguajes especficos y Al trmino de la unidad se espera [1] Cap 35-37 lenguajes extensibles. que el alumno: - Introduccin a macros. - Comprenda la ventaja de proveer - Macros higinicas, ejemplos. las buenas abstracciones a los programadores. - Entienda los sistemas de macros higinicas para extender lenguajes.

Nmero 8

Nmero 9

Nombre de la Unidad Duracin en Semanas Objetos 2 Resultados de Aprendizajes de la Referencias a Contenidos Unidad la Bibliografa Abstraccin procedural y objetos. Al trmino de la unidad se espera [2] Cap 5 Objeto como unidad de que el alumno: [5] encapsulacin - Comprenda en profundidad la Interfaz de un objeto conexin entre abstraccin Recursin y self procedural y objetos. Entiende la Delegacin y prototipos esencia de la orientacin a objetos Clases y herencia y sus mltiples facetas. Opciones de diseo para OOP - Implementa un sistema de objetos usando macros. Conexin con: Java, JavaScript, Scala, Self, Smalltalk

Bibliografa [1] S. Krishnamurthi. Programming Languages: Application and Interpretation. Online. 2007. http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/ [2] D. Friedman, M. Wand, C. Haynes. Essentials of Programming Languages, 2nd edition. MIT Press. 2001. [3] D. Friedman, M. Felleisen, G. Sussman. The Little Schemer, 4th edition. MIT Press. 1995. [4] D. Sitaram. Teach Yourself Scheme in Finum Days. Online. 2004. http://www.ccs.neu.edu/home/dorai/t-y-scheme/ [5] T. DHondt. Principles of Object Oriented Languages. Online. 2004. http://prog.vub.ac.be/~tjdhondt/POOL/HTM.dir/notes.htm

Vigencia desde: Elaborado por: Revisado por:

2010 ric Tanter ADD (noviembre 2009)

Vous aimerez peut-être aussi