** 2010/1 Planning ** | **semana** | dia | **materia** | **referencias/material** | **evaluaciones** | | semana 1 | 1 | introducción a Scheme (vramiro) | | | | | 2 | introducción a Scheme (vramiro) | {{teaching:intro_scheme.pdf}} | | | semana 2 | 1 | CDP aplicado, abstracción | {{teaching:cc4101:cc41-20100330.ss}} | | | | 2 | modelar lenguajes, interpretación aritmetica | PLAI cap 1 | | | semana 3 | 1 | fin interpretacion aritmetica \\ substitución: intuición, extension lenguaje, intentos de definición | PLAI cap 2\\ PLAI cap 3 | publi {{teaching:cc4101:tarea1.pdf|T1}} | | | 2 | implementación substitución y interprete con with\\ regímenes de substitución | PLAI cap 3 | | | semana 4 | 1 | funciones de primer orden | PLAI cap 4 | entrega T1 \\ publi {{teaching:cc4101:tarea2.pdf|T2}}| | | 2 | substitucion diferida, scope dinamico | PLAI cap 5 | | | semana 5 | 1 | ejemplos de scope dinamico (Java/exceptions, bash, TeX, fluid-let)\\ funciones de primera clase: intro, clasificación (primer orden, orden superior, primera clase), ejemplos, extension WAE | PLAI cap 6.1-2 | {{teaching:cc4101:control1.pdf|control 1}} | | | 2 | scope, closures | PLAI cap6 6.3-4 | | | semana 6 | 1 | function pointers en C, inner classes en Java \\ evaluación peresoza, intro Haskell | PLAI cap 6\\ PLAI cap 7.1.1-3 | entrega T2 \\ publi {{teaching:cc4101:tarea3.pdf|T3}} | | | 2 | evaluación peresoza en Haskell y bash, manejo de estructuras infinitas | PLAI cap 7 | | | semana 7 | 1 | evaluación peresoza: fibs\\ interpretación: expression closures, strictness, necesidad de caching | PLAI cap 8.1-2 | | | | 2 | caching, transparencia referencial, memoizacion\\ recursion, fixed point, cyclic bind | PLAI cap 8.2-3\\ PLAI cap 9 | | | semana 8 | 1 | implementacion de recursion \\ contexto de control, recursion y llamados por la cola, casos en Scheme/Java | PLAI cap 10 \\ {{teaching:cc4101:tailcalls.zip}} \\ BONUS: {{..:whyofy.pdf}} | entrega T3\\ publi {{teaching:cc4101:tarea4.pdf|T4}}| | | 2 | representacion procedural | PLAI cap 11 | | | semana 9 | 1 | tipos de interpretes \\ introduccion a estado mutable, box. incapacidad de comunicar estado mutable con el ambiente | PLAI cap 11\\ PLAI cap 12-13.1 | | | | 2 | necesidad del store, nuevo modelo de evaluación, ejemplos, implementación | PLAI cap 13 | | | semana 10 | 1 | estado, threading, interaccion con app | PLAI cap 13 & 14 | {{teaching:cc4101:control2.pdf|control 2}} \\ entrega T4 | | | 2 | call-by-value y call-by-ref, discusion \\ quasiquote/unquote, apply | PLAI cap 14 \\ Help Desk, [[teaching:primitivas|primitivas]] | | | semana 11 | 1 | introduccion a macros, ejemplos, pattern matching, macros recursivas, keywords. Hygiene. | PLAI cap 36.1-2 | publi {{teaching:cc4101:tarea5.pdf|T5}} | | | 2 | macro `for', sobrepasar la hygiene, syntax-case | PLAI cap 36 | | | semana 12 | 1 | objetos basicos | OOPLAI 1-1.3 | | | | 2 | manejar mensajes desconocidos, enlace dinámico \\ objects vs ADTs | OOPLAI 1.4-1.5\\ OOPLAI 3 | | | semana 13 | 1 | soportar 'self', recursion mutua, objetos anidados \\ forwarding vs delegation | OOPLAI 2\\ OOPLAI 4.1-4.2 | | | | 2 | programar con prototipos, open recursion, scope lexico vs. delegación | OOPLAI 4 | entrega T5\\ publi {{teaching:cc4101:tarea6.pdf|T6}} | | semana 14 | 1 | clases | OOPLAI 5 | | | | 2 | herencia | OOPLAI 6.1-6.4 | | | semana 15 | 1 | super | OOPLAI 6 | {{teaching:cc4101:control3.pdf|control 3}} | | | 2 | //no hay clase// | | entrega T6 |