Created
July 16, 2012 13:46
-
-
Save mgarciaisaia/3122810 to your computer and use it in GitHub Desktop.
archivos-pdep
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pdep.com.ar/Cursos/jueves-manana/funcional/clase-1:236:<h3><a name="TOC-Manipulaci-n-de-funciones"></a>Manipulación de funciones</h3>La característica principal del paradigma funcional es la operación con funciones. Para eso vamos a definir trés formas básicas de operar con funciones:<br /><ul><li>Composición</li><li>Aplicación parcial</li><li>Funciones de orden superior</li></ul>En esta clase nos concentraremos en las dos primeras.<br /><h4><a name="TOC-Composici-n"></a>Composición</h4><ul><li>La composición es similar a la que hemos visto en matemática y nos permite definir una función fog que entendemos como "la composición de f con g" y se define (en matemática) como<span style="font-family:courier new,monospace"> <i><span style="font-family:arial,sans-serif">(fog) (x) = f (g (x))</span></i></span><br /><br />En Haskell vamos a utilizar un "." en lugar del famoso "cerito" (o). Podemos usarlo para definir una función como la composición de otras dos, por ejemplo<br /><span style="font-family:courier new,monospace"> isUpper . head</span><br style="font-family:courier new,monospace" /><br />Nos permite construir una función que recibe un String y me dice si la primera letra es mayúscula.<br /><br /></li><li>Para poder aplicarle parámetros a esa función, es importante poner la composición entre paréntesis, ya que la aplicación de funciones tiene <i>mayor precedencia</i> que la composición (esto es importante, no te quedes sin entenderlo!):<br /><span style="font-family:courier new,monospace"> > (isUpper . head) "Hola"</span><br style="font-family:courier new,monospace" /><span style="font-family:courier new,monospace"> True</span><br style="font-family:courier new,monospace" /><br /></li><li>También podemos ponerle un nombre a la función compuesta, así:<br /><span style="font-family:courier new,monospace"> empiezaConMayúscula = isUpper . head</span><br style="font-family:courier new,monospace" /><br />Y luego la podríamos utilizar así:<br /><span style="font-family:courier new,monospace"> > empiezaConMayúscula "hola"</span><br style="font-family:courier new,monospace" /><span style="font-family:courier new,monospace"> False</span><br style="font-family:courier new,monospace" /><br />Nótese que esta forma de definir funciones es sutilmente distinta a la que estábamos acostumbrados. Con lo que sabíamos hasta ahora podríamos haber hecho:<br /><span style="font-family:courier new,monospace"> empiezaConMayúscula unString = isUpper (head unString)</span><br style="font-family:courier new,monospace" /><br />Cuando definimos funciones por composición, podemos definir directamente la función sin necesidad de hablar de los parámetros.<br /><br /></li><li>Podemos ver que la composición nos da una forma de definir una nueva función sin necesidad de ponerle un nombre ni ponerla entre nuestras definiciones de funciones. <br />Es decir, <b>sqrt . doble</b>, es una función como cualquier otra y puedo hacer con ella lo mismo que hago con las demás funciones, por ejemplo:<br /><ul><li>Aplicarle parámetros (como en el ejemplo anterior).</li><li>Consultar su tipo.<br /></li></ul><br />Para trabajar un poco más con los tipos de funciones compuestas podemos analizar el tipo de <b>even . length</b><br /><br /></li><li>La composición no parece un asunto complicado, sin embargo es importante destacar algunos detalles para evitar errores muy comunes:<br /></li><ul><li>que sólo (f.g) x se considera composición. Si yo hago f(g x) no estoy utilizando composición.</li><li>la composición puede hacerse <i>únicamente entre funciones</i>, es decir, yo puedo componer sqrt con doble pero no sqrt con 4 (porque 4 es un número y no una función) y tampoco <b>sqrt</b> con <b>doble 8</b> (doble 8 también es un número).<br /></li><li>(por lo anterior) los paréntesis aquí <i>si son necesarios</i>.<br />Si yo pongo, sin paréntesis, <b>sqrt . doble 8</b>, eso se entiende como composición entre <b>sqrt</b> y <b>doble 8</b>, debo utilizar los paréntesis para indicar que mi intención es componer sqrt con doble y luego a la función resultante aplicarle el parámetro 8.<br /></li></ul></ul><h4><a name="TOC-Orden-superior"></a>Orden superior</h4><ul><li>El hecho de que las funciones sean valores significa que además de aplicarles parámetros o consultar su tipo podemos hacer cualquier cosa que hacemos con los demás valores, en particular usarlas como parámetro de otras funciones.<br /><br /></li><li>Esto es análogo a lo que ya vimos en lógico con respecto a los predicados de orden superior. La diferencia es que en lógico nunca <i>definimos</i> un predicado de orden superior, sólo los usamos, aquí vamos a animarnos a definir funciones de orden superior. <br />(Ojo, no es que en lógico no se pueda, simplemente no lo hicimos por falta de tiempo.)<br /><br /></li><li>Un ejemplo sencillo de una función que recibe otra por parámetro puede ser:<br /><div style="margin-left:40px;font-family:courier new,monospace">aplicaDosVeces f x = f (f x)<br /></div></li></ul><ul><li>Podemos ver algunos ejemplos de orden superior sencillitos<br /><div style="margin-left:40px"><span style="font-family:courier new,monospace">tup f g (x,y) = (f x, g y)</span><br style="font-family:courier new,monospace" /><span style="font-family:courier new,monospace">aplicarATupla fun (x,y) = (fun x, fun y)</span><br style="font-family:courier new,monospace" /><span style="font-family:courier new,monospace">tuplizar fun1 fun2 x = (fun1 x, fun2 x)</span><br style="font-family:courier new,monospace" /><span style="font-family:courier new,monospace">comparar op (x,y) = x `op` y</span><br style="font-family:courier new,monospace" /><span style="font-family:courier new,monospace">cuarta = f . f</span><br style="font-family:courier new,monospace" /></div></li></ul><h3><a name="TOC-Para-despu-s-de-la-clase"></a>Para después de la clase<br /></h3><ul><li>Con lo que vimos en esta clase pueden hacer la <a href="http://pdep.com.ar/Cursos/jueves-manana/funcional/guia-funcional-2010-basicos.pdf?attredirects=0">guía ejercicios básicos de funcional</a>.</li><li>Aquí hay <a href="http://groups.google.com/group/archivos-pdep/web/Resumen_Clase_1_Funcional_mm1c2010.pdf">otra introducción al paradigma funcional</a> para repasar la teoría.<br /></li></ul></div></td></tr></tbody></table> | |
pdep.com.ar/Cursos/jueves-manana/funcional/clase-3:218:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><h4><a name="TOC-Recursividad"></a>Recursividad</h4><ul><li>Arrancamos trabajando con definiciones recursivas sencillas, como factorial y Fibbonacci. Sobre eso pudimos ver la idea de caso recursivo y los casos de corte.</li><li>Al crear funciones que tienen más de una definición, eso nos obliga a ver la diferencia con lógico si lo comparamos con un predicado que tenga varias cláusulas. La principal diferencia es que en lógico al trabajar con relaciones estas pueden tener más de un resultado, mientras que en funcional siempre una función va a tener un único resultado; y por lo tanto de todas las definiciones disponibles sólo evaluará una. <br />¿Cuál evalúa? La primera que matchee.</li><li>A continuación hicimos la función <span style="font-family:courier new,monospace">par</span> y aprovechamos para repasar compoisción al ver el caso recursivo. Tiene algunas sutilezas esa definición, la forma más fácil que encontré para que el Haskell la acepte es: <br /><div style="margin-left:40px;font-family:courier new,monospace">par 0 = True<br />par 1 = False<br />par n = (not . par . subtract 1) n<br /></div><br /></li></ul><h4><a name="TOC-Recursividad-sobre-listas"></a>Recursividad sobre listas</h4><ul><li>Recordamos que al igual que en prolog, las listas son estructuras recursivas ya que se componen de una cabeza y una cola que a su vez es una lista (salvo la lista vacía, claro).</li><li>Con eso en mente podemos intentar hacer algunas funciones simples como length, nth0 , indexOf, map y any.</li><li>A continuación nos gustaría hacer la función filter, pero para eso debemos incorporar un concepto nuevo: <b>guardas</b>. Las guardas nos dan una forma alternativa al pattern matching para definir funciones en varias partes, por ejemplo:<br /><div style="margin-left:40px;font-family:courier new,monospace">filter _ [] =[]<br />filter f (x:xs) | f x = x : filter f xs<br /> | otherwise = filter f xs<br /><br /></div></li><li>Sabiendo eso podemos probar nosotros con la función find (ojo, sin usar filter, es para practicar recursividad).</li></ul><h4><a name="TOC-Fold"></a>Fold</h4><ul><li>Finalmente definimos las funciones sumatoria, productoria y "andtoria" (hacer and de toda una lista de booleanos). Vemos que tienen una estructura muy similar:<br /><div style="margin-left:40px;font-family:courier new,monospace">sumatoria [] = 0<br />sumatoria (x:xs) = x + sumatoria xs<br /><br />productoria [] = 1<br />productoria (x:xs) = x * productoria xs<br /><br />andtoria [] = True<br />andtoria (x:xs) = x && andtoria xs<br /></div><br /></li><li>Más concreatamente las tres tienen la misma estructura, y lo que cambia es:</li><ul><li>La operación que hago entre los elementos (suma, multiplicación, and)</li><li>El valor base para la lista vacía (0, 1 o True).<br /><br /></li></ul><li>Entonces eso nos permitiría hacer una única función que reciba esas diferencias como parámetro, en Haskell esa función se llama foldr:<br /><div style="margin-left:40px;font-family:courier new,monospace">foldr f z [] = z<br />foldr f z (x:xs) = f x (foldr f z xs)<br /></div><br /></li><li>Con esa definición ahora podemos redefinir las anteriores de la siguiente manera:<br /><div style="margin-left:40px;font-family:courier new,monospace">sumatoria = foldr (+) 0<br />productoria = foldr (*) 1<br />andtoria = foldr (&&) True<br /></div><br /></li><li>¿Qué relación hay entre las operaciones y los valores base?<br />Podemos ver que cada valor base es el valor neutro de la operación que podemos hacer.<br /><br /></li><li>También se puede mencionar que el fold es más genérico que lo que hicimos hasta ahora ya que pusimos sólo ejemplos en los que el valor devuelto es del mismo tipo que los elementos de la lista, esto no tiene que ser así siempre. Pero vamos a dejar esos ejemplos para más adelante.<br /><br /></li><li>Un ejemplo que sí podemos ver es el de la función mínimo. La diferencia entre esta función y las anteriores es que no es posible elegir un valor entero que sea <i>neutro</i> de la operación "mínimo entre dos valores". La forma más prolija de solucionar este inconveniente es tomar como valor inicial al primer elemento de la lista. <br />Eso en Haskell está hecho con la función foldr1:<br /><div style="margin-left:40px;font-family:courier new,monospace">foldr1 f (x:xs) = foldr f x xs<br /></div><br />Eso nos permite luego definir la función minimum así:<br /><div style="margin-left:40px;font-family:courier new,monospace">minimum = foldr1 min<br /></div><br />Donde min es la función que me da el mínimo entre dos valores (ya viene con el Haskell)<br /></li></ul><h4><a name="TOC-Ejercicios-para-practicar"></a>Ejercicios para practicar</h4><ul><li>Lo que me parece más importante a esta altura es completar toda la <a href="http://groups.google.com/group/archivos-pdep/web/funcional2_2008_V1_4.pdf">guía número 2</a>, que tiene ejercicios de composición, aplicación parcial y orden superior incluyendo listas y fold.<br /></li><li>Para practicar recursividad pueden mirar la <a href="http://groups.google.com/group/archivos-pdep/web/funcional3_2008_V1_6.pdf">guía número 3</a>.</li></ul></div></td></tr></tbody></table> | |
pdep.com.ar/Cursos/jueves-manana/logico/clase-5:218:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><h3><a name="TOC-Contenidos"></a>Contenidos</h3><ul><li>Recursividad.</li><li>Repaso teórico<br /></li><li>Ejercicio Integrador.</li></ul><h3><a name="TOC-Material-de-Lectura"></a>Material de Lectura</h3><ul><li><a href="http://archivos-pdep.googlegroups.com/web/Resumen_Clase_4_Logico-mm.pdf?pli=1">Resumen de recursividad</a><br /></li></ul><h3><a name="TOC-Gu-as-de-Ejercicios"></a>Guías de Ejercicios</h3><ul><li>La <a href="http://groups.google.com/group/archivos-pdep/web/guia-logico-2008-5.doc">práctica 5</a> es específica de recursividad.</li><li>También tienen la <a href="http://groups.google.com/group/archivos-pdep/web/guia-logico-2008-6.doc">práctica 6</a> que tiene ejercicios más complejos, integrando todos los temas.</li><li>Y finalmente pueden hacer ejercicios de parcial.<br /></li></ul><br /></div></td></tr></tbody></table> | |
pdep.com.ar/Cursos/jueves-manana/tps:218:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><h4><a name="TOC-Enunciados-de-trabajos-pr-cticos"></a>Enunciados de trabajos prácticos</h4><ul><li><a href="http://pdep.com.ar/material/repositorio-de-examenes-1/trabajos-practicos/tp-logico-2009c2-jm.pdf?attredirects=0">Lógico</a></li><li><a href="http://pdep.com.ar/material/repositorio-de-examenes-1/trabajos-practicos/tp-objetos-2009c2.pdf?attredirects=0">Objetos</a></li><li><a href="http://groups.google.com/group/archivos-pdep/web/parcial-funcional-20061125-modificado-v2_corregido.doc">Funcional</a><br /></li></ul><h4><a name="TOC-Forma-de-entrega-de-los-trabajos-pr-cticos"></a>Forma de entrega de los trabajos prácticos</h4>Se debe entregar tanto en papel como en formato electrónico, por mail.<br /><br /><div style="margin-left:40px">1) Entrega en papel</div><div><ul style="margin-left:40px"><li>Por favor indicando nro de <span>grupo</span>, nombre y apellido, etc. </li><li>No | |
pdep.com.ar/Cursos/miercoles-objetos/clase-5---colecciones-1:218:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><a href="http://archivos-pdep.googlegroups.com/web/resumenClase5Objetos_pdep_mmj_1c2010.pdf?gda=HesailoAAAC_4T0eeNbUevJUlCvsKcoEf63JU7YIgdb4EnmumAVK8yLE7Xp9Y8_zYek6AeW95qpaoFob7I0UyNJQr46wnGRoQ_1maEPSvzeT6sTBmV7lM_3t1oNBp6n3SjsA6lIodbQ">Resumen de la clase</a><br /></div></td></tr></tbody></table> | |
pdep.com.ar/Cursos/miercoles-objetos/clase-6---responsabilidad-y-delegacion:218:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">Hoy hablamos de:<br /><br />- Diagramas de clases<br /><br /> Hablamos de como dibujar una clase, con su nombre, atributos y métodos.<br /> Hablamos de como escribir un método de clase y una variable de clase (poniéndoles una '(C)' al lado)<br /> Hablamos de como relacionar las clases. Son importantes las flechas y la cardinalidad.<br /> ¿Qué pasa si hay una cajita sin métodos? Quiere decir que las instancias de esa clase no entienden ningun mensaje.... Eso nos indica algo malo.<br /><br />- Responsabilidad y delegación, con el ejercicio de trenes y vagones:<br /><br />¿Qué objetos tienen que tener qué responsabilidad? Necesitabamos obtener la cantidad de pasajeros para una formación determinada. Para ello, le dimos la responsabilidad de darnos dicho número a las formaciones. En un workspace:<br /><br />formacion cantidadDePasajeros<br /><br />¿Por qué a las formaciones y no a los depósitos o a la boletería? La formaciones no hablan...<br /><br />Porque nosotros estamos haciendo un modelo... La formación que programamos no necesariamente es la formación de posta. Le damos la responsabilidad a las formaciones porque suena natural hacerlo así. Si queremos saber la cantidad de pasajeros de una formación, se lo preguntamos a la formación.<br /><br />Entonces empezamos a escribir el método que resuelva eso:<br /><br />Formacion>> cantidadDePasajeros<br /> ^( self vagones collect: [:vagon | vagon cantidadDePasajeros] ) sum.<br /> <br />Decidimos tener toooodos los vagones en una sola colección. Eso nos obliga a tratarlos todos polimorficamente, sean de carga o de pasajeros.<br /><br />Ahora necesitamos modelar a los vagones, porque tienen que entender el mensaje cantidadDePasajeros. Y tenemos varios tipos de vagones: de pasajeros y de carga.<br /><br />VagonDePasajeros>> cantidadDePasajeros<br /> ^metrosDeAncho <= 2.5 ifTrue: [ metrosDeLargo * 8 ] <br /> ifFalse: [ metrosDeLargo * 10 ]<br /><br />VagonDeCarga>> cantidadDePasajeros<br /> "Un vagon de carga no lleva pasajeros, entiende este mensaje para ser polimorfico con los vagones de pasajeros"<br /> ^0<br /> <br />--------------<br />Ahora completemos el workspace:<br /><br />formacionCorta := Formacion new.<br />vagonPasajeros1 := VagonDePasajeros new.<br />vagonPasajeros1 metrosDeAncho: 2.<br />vagonPasajeros1 metrosDeLargo: 10.<br /><br />vagonPasajeros2 := VagonDePasajeros new.<br />vagonPasajeros1 metrosDeAncho: 3.<br />vagonPasajeros1 metrosDeLargo: 10.<br /><br />vagonCarga := VagonDeCarga new.<br /><br />formacionCorta agregaVagon: vagonPasajeros1.<br />formacionCorta agregaVagon: vagonPasajeros2.<br />formacionCorta agregaVagon: vagonCarga.<br /><br />---------------------<br /><br />Hay algo feo aca... :S. Cada vez que creamos un vagon de pasajeros, nos tenemos que acordar de agregarle sus metros de ancho y sus metros de largo! Fua, si tenemos que crear 30... nos vamos a equivocar seguro. Estaría reee bueno tener un objeto al que pueda decirle "che, dame un vagon de carga de 2 de ancho y 10 de largo" onda:<br /><br />objetoQueMeVaAConstruirVagones dameUnNuevoVagonConAncho: 2 yLargo: 10<br /><br />¿Pero qué objeto?<br />Y.. hasta ahora el que tenia la responsabilidad de crearme los vagones de pasajeros era la clase VagonDePasajeros. Demosle entonces la responsabilidad nueva también!! Y así reemplazamos<br /><br />vagonPasajeros1 := VagonDePasajeros dameUnNuevoVagonConAncho: 2 yLargo: 10<br />vagonPasajeros2 := VagonDePasajeros dameUnNuevoVagonConAncho: 3 yLargo: 10<br /><br />¿Y ese método como se escribe en smalltalk, donde lo meto?<br />Clase VagonDePasajeros >> dameUnNuevoVagonConAncho: ancho yLargo: largo<br /> | vagon |<br /> vagon :=self new.<br /> vagon ancho: ancho.<br /> vagon largo: largo.<br /> ^vagon<br /> <br />Ese método que escribimos en la parte de "clase", que se va a ejecutar cuando le mandemos un mensaje a la clase, se llama método de clase.<br /><br />---------------------<br /><br />Ahora encaremos el segundo punto. Saber la cantidad de vagones livianos de una formación.<br /><br />¿A quien le damos esa responsabilidad? Y... suena lógico dársela a la formación, porque es ella quien conoce a los vagones. Esta bueno ver como ahora la responsabilidad surgió a partir de las responsabilidades que ya tenían nuestros objetos. Como una formación ya conoce a sus vagones, entonces le damos la responsabilidad de filtrar los livianos a ella. Así también respetamos el encapsulamiento, haciendo que la única responsable de trabajar con la coleccion de vagones de una formación sea esa misma formación.<br /><br />Ahora aca tenemos 2 variantes:<br /><br />1)<br />Formacion>> cantidadVagonesLivianos<br /> ^( vagones select:[:v | v pesoMaximo <= 2500 ] ) size.<br /><br />2)<br />Formacion>> cantidadVagonesLivianos<br /> ^( vagones select:[:v | v esLiviano ] ) size.<br /> <br />Recalcamos ambas versiones, porque es necesario contar que la primera tiene varios problemas: no respeta en encapsulamiento, está tomando responsabilidades que le pertenecen a los vagones, me impide usar polimorfismo (si tuviera vagones que calculan la liviandad de distinta manera), y fomenta la repetición de código.<br /><br />En cambio, en la segunda es más sencilla definir la liviandad distinta para cada tipo de vagón, sin que nos interese como se decide eso.<br />Entonces:<br /><br />Version 1) :(<br />Version 2) :D<br /><br />Ahora pasemos a escribir el método esLiviano en los vagones:<br /><br />VagonPasajeros>>esLiviano<br /> ^self pesoMaximo <= 2500<br /> <br /> >>pesoMaximo<br /> ^self cantidadTotalPasajeros * 80<br /> <br />VagonCarga>>esLiviano<br /> ^self pesoMaximo <= 2500<br /> <br /> >>pesoMaximo<br /> ^self cargaMaxima + 160<br /> <br />PEROOOOOO, ¡¡¡Estamos repitiendo código!!! Lamentablemente, les vamos a pedir que compren eso hasta la semana que viene. Ahí vamos a resolver este problema con una herramienta nueva. Aunque si quieren, pueden pensar como se resolvía ese problema con el object browser, con clones y prototipos (porque lo que vamos a ver la semana que viene tiene una mecánica parecida).<br /><br /><br />Ahora que tenemos resuelto el punto 2, encontramos que hay un par de números mágicos. "Mágicos" porque no sabemos de donde provienen. Por ejemplo el 2500, el 160, el 80. Ok, en el enunciado lo dice, pero no en el código... Podemos buscar de reemplazarlos por algo más feliz.<br /><br />Podríamos usar una variable que contenga esos valores. Por ejemplo:<br /><br />- limiteDeLiviandad para el 2500<br />- pesoPersona para el 80<br />- el 160 podríamos reemplazarlo por (pesoPersona * 2)<br /><br />Pero si son variables de instancia, me debería ocupar de cargarlas en cada instancia, cosa que puede ser engorroso...<br />Antes, cuando teníamos código repétido, lo subíamos a la clase. ¿Por qué ahora que tenemos variables con valores repetidos no lo subimos a la clase también?<br /><br />Ese concepto de tener una variable en la clase, vamos a llamarlo variable de clase, y tiene la particularidad que es una variable compartida por todas las instancias.<br />¿Quién tiene la responsabilidad de setear esa variable? La clase... que lo haga una instancia es medio chancho. Acuerdensé del encapsulamiento. Con las clases también juega. ¿Y como lo hace una clase? A través de un método de clase :).<br /><br />Cosas a tener en cuenta: <br /> -si asigno la variable de clase, cambia la referencia para todas las instancias.<br /> -las variables de clase empiezan en mayúsculas.<br /> -las instancias pueden acceder directamente a las variables de su clase<br /> <br />Entonces el código queda:<br /><br />VagonPasajeros(vc LimiteLiviandad, PesoPersona)<br /> >>esLiviano<br /> ^self pesoMaximo <= LimiteLiviandad<br /> <br /> >>pesoMaximo<br /> ^self cantidadTotalPasajeros * PesoPersona<br /> <br />VagonCarga(vc LimiteLiviandad, PesoPersona, CantidadGuardas)<br /> >>esLiviano<br /> ^self pesoMaximo <= LimiteLiviandad<br /> <br /> >>pesoMaximo<br /> ^self cargaMaxima + self pesoGuardas<br /> <br /> >>pesoGuardas<br /> ^PesoPersona * CantidadGuardas<br /><br /><b>- Tarea:</b><br /><br />Tienen que traer hecho en máquina e impreso para la clase que viene (dentro de 3 semanas) en smalltalk el siguiente <a href="http://archivos-pdep.googlegroups.com/web/tanques-solo-clases.doc?gda=ArCtfEkAAAC_4T0eeNbUevJUlCvsKcoE0T7Ql1r3nD_lDWQ3Ub7Rc8VP27TMyg6f9KIUmkglRSMg_GWizqaFaEGgNGDCeulWhAioEG5q2hncZWbpWmJ7IQ&gsc=WJXATgsAAABpEP3W6kRV9MZAy7HbjbRB">ejercicio</a>. El mismo tiene que contener:<br /> - Código<br /> - Workspace<br /> - Diagrama de clases (pueden hacerlo en Visio o en alguna otra herramienta como ArgoUML, StarUML o yuml)<br /></div></td></tr></tbody></table> | |
pdep.com.ar/Cursos/miercoles-objetos/clase-7:220:circunstancia han cambiado.</span></p><br />Vamos a redefinir un método de una clase cuando el comportamiento que van a tener sus instancias es distinto del heredado por su superclase.<br /><br />Existen 2 sabores<br /><ul><li>Redefinición sin super: el comportamiento es totalmente distinto al heredado - se escribe un método con el mismo nombre que el heredado pero es totalmente nuevo<br /></li><li>Redefinición con super: el comportamiento es parcialmente distintos al heredado (quiero hacer lo mismo que antes pero con algún agregado) - se escribe un método con el mismo nombre que el heredado y en alguna parte se envía un mensaje que tiene ese nombre a super.</li></ul>Quién es <a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Super">super</a>?<br /><br />Página para hacer diagramas de clases <a href="http://yuml.me">http://yuml.me</a><br /><br />Tarea - ejercicio de las <a href="http://groups.google.com/group/archivos-pdep/web/parcial-objetos-20061114%28modificado%29.doc">Radios | |
pdep.com.ar/Cursos/miercoles-objetos/clase-8---colecciones-2-y-otras-cosas:244:<li>Identidad: dos objetos son identicos si representan la misma bolita en el ambiente. Este método es igual para todos los objetos y está implementado a nivel Virtual Machine.</li></ul><h4><a name="TOC-Tarea-Opcional-"></a>Tarea (Opcional)</h4><ul><li><a href="http://groups.google.com/group/archivos-pdep/web/parcial-objetos-04082009_enfermedades.pdf">Enfermedades | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-logfun-2c2010/clase3-19-aritmeticanegacioninversibilidad:275:<ul><li>Inversibilidad</li><li>Aritemética y problemas de inversibilidad<br /></li><li>Introducción a la negación<br /></li><li>TP obligatorio presencial: ¿Quién mató a Tía Agatha? (Ejercicio 3 de la <a href="http://archivos-pdep.googlegroups.com/web/guia-logico-2008-2.pdf">guía 2 de lógico</a>)</li></ul><h4><a name="TOC-De-donde-seguir-leyendo-"></a> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-logfun-2c2010/funcional-clase3:273:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">Vimos orden superior. De dos gustos:<br /><br /><ul><li>Funciones que vienen en el haskell:</li><ul><li>map</li><li>filter</li><li>all</li><li>any</li><li>foldl</li></ul><li>Funciones de orden superior hechas por nosotros</li></ul><h3><a name="TOC-TP-para-el-mi-rcoles-10-de-noviembre:"></a>TP para el miércoles 10 de noviembre: <br /></h3><a href="http://archivos-pdep.googlegroups.com/web/Parcial-Funcional-2008-12-06.pdf?gda=SbBDUFIAAACWG5LZXNs8BKQBsJ-yS3dv-50yyp9Z1-LQciRu5pV6Qc-Z2irHi_adwnRPbQrccV6t5hVNYYNHT-C925PcEyZ3VeLt2muIgCMmECKmxvZ2j4IeqPHHCwbz-gobneSjMyE">parcial de batman</a><br /><br /><br /></div></td></tr></tbody></table> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-logfun-2c2010/posts.xml:25:</div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/6150772030597950692" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-logfun-2c2010/funcionalclase1" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/5613225963363968283" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/5613225963363968283" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/5613225963363968283" /><author><name>Guillermo Polito</name><email>[email protected]</email></author><sites:pageName>funcionalclase1</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag=""YD4peyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/7410313639681489988</id><published>2010-11-03T19:18:38.994Z</published><updated>2011-03-31T04:00:21.696Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-03T19:21:28.436Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Funcional - Clase 3</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">Vimos orden superior. De dos gustos:<br /><br /><ul><li>Funciones que vienen en el haskell:</li><ul><li>map</li><li>filter</li><li>all</li><li>any</li><li>foldl</li></ul><li>Funciones de orden superior hechas por nosotros</li></ul><h3><a name="TOC-TP-para-el-mi-rcoles-10-de-noviembre:" />TP para el miércoles 10 de noviembre: <br /></h3><a href="http://archivos-pdep.googlegroups.com/web/Parcial-Funcional-2008-12-06.pdf?gda=SbBDUFIAAACWG5LZXNs8BKQBsJ-yS3dv-50yyp9Z1-LQciRu5pV6Qc-Z2irHi_adwnRPbQrccV6t5hVNYYNHT-C925PcEyZ3VeLt2muIgCMmECKmxvZ2j4IeqPHHCwbz-gobneSjMyE">parcial de batman</a><br /><br /><br /></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/6150772030597950692" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-logfun-2c2010/funcional-clase3" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/7410313639681489988" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/7410313639681489988" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/7410313639681489988" /><author><name>Guillermo Polito</name><email>[email protected]</email></author><sites:pageName>funcional-clase3</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag=""YD4peyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/8889835051822099900</id><published>2010-09-23T01:11:38.395Z</published><updated>2011-03-31T04:00:21.695Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-23T01:19:16.807Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 6 - 22/9 - Recursividad y pattern matching</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">Qué vimos hoy:<ul><li>Recursividad<br /></li><li>Recursividad con listas y patrones de listas</li><li>Pattern matching Level up<br /></li></ul><h4><a name="TOC-Tarea-para-la-pr-xima-clase:" />Tp para la próxima clase:</h4><a href="http://pdep.com.ar/material/repositorio-de-examenes-1/parciales/Parcial-Logico-2007-10-11.pdf?attredirects=0">Amigos - 11/10/2007</a><h4><a name="TOC-Desaf-o:" /></h4><h4><a name="TOC-De-donde-seguimos-leyendo-" />¿De donde seguimos leyendo?</h4><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Unificaci%C3%B3n_y_Pattern-Matching">Unificación y pattern matching</a><br /><p><br /></p></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/6150772030597950692" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-logfun-2c2010/clase6-229-recursividadypatternmatching" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/8889835051822099900" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/8889835051822099900" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/8889835051822099900" /><author><name>Guillermo Polito</name><email>[email protected]</email></author><sites:pageName>clase6-229-recursividadypatternmatching</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag=""YDgpeyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/1485663409106255245</id><published>2010-09-08T20:20:31.836Z</published><updated>2011-03-31T04:00:21.693Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-08T20:23:47.492Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 4 - 8/9 - Negación y Forall</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><h4><a name="TOC-Qu-vimos-hoy:" />Qué vimos hoy:</h4><ul><li>Negación</li><li>Inversibilidad</li><li>Generación</li><li>Para todo (forall)<br /></li></ul><h4><a name="TOC-Tarea-para-la-pr-xima-clase:" />Tarea para la próxima clase:</h4><a href="http://pdep.com.ar/material/guas-de-ejercicios/teg-sin-listas" target="_blank">https://sites.google.com/site/paradigmasdeprogramacion/material/guas-de-ejercicios/teg-sin-listas</a><br /> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-logfun-2c2010/posts.xml:45:<ul><li>Inversibilidad</li><li>Aritemética y problemas de inversibilidad<br /></li><li>Introducción a la negación<br /></li><li>TP obligatorio presencial: ¿Quién mató a Tía Agatha? (Ejercicio 3 de la <a href="http://archivos-pdep.googlegroups.com/web/guia-logico-2008-2.pdf">guía 2 de lógico</a>)</li></ul><h4><a name="TOC-De-donde-seguir-leyendo-" /> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:219:<h3><a name="TOC-Resumen-en-pdf"></a><b><font size="3"><a href="http://archivos-pdep.googlegroups.com/web/Resumen+teoria+martes+clase+22-06-10.pdf">Resumen en pdf</a></font></b><br /></h3><h3><a name="TOC-Funcional---Clase-6-15-06-"></a>Funcional - Clase 6 (15/06)</h3>Repaso pre-parcial.<br /> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:220:<h3><a name="TOC-Funcional---Clase-5-08-06-"></a>Funcional - Clase 5 (08/06)</h3><ul><li>fold</li><li>Estrategias básicas</li><ul><li>Call by-value</li><li>Call by-name</li></ul><li>Eager Evaluation</li><li>Lazy Evaluation</li><li>Uso de "cosas" potencialmente infinitas</li></ul><h4><a name="TOC-Tarea-OPCIONAL-"></a>Tarea (OPCIONAL)</h4>Hacer el ejercicio de las <a href="http://archivos-pdep.googlegroups.com/web/parcial-funcional-20061125-modificado-v2.doc?gda=INDRm14AAAC_4T0eeNbUevJUlCvsKcoEzlWNwloTK32KNnEfJ5ugNInVfIe1YEonvTc4L6JVIhLDQCJmRbNHiNbEIuA2VVdhE1-QFHsz3tRGplZYX3-gKOOwpdWz5ftt1dlzlu5J-bE">Sarazas Quimicas</a><br /><font size="3"><b><br /><a href="http://groups.google.com/group/archivos-pdep/web/Resumen_Clase_5_Funcional_1c2010mm.pdf">Resumen en pdf</a></b></font><h3><a name="TOC-Funcional---Clase-4-01-06-"></a>Funcional - Clase 4 (01/06)</h3><ul><li>Repaso</li><li> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:230:Resolver el parcial <a href="http://groups.google.com/group/archivos-pdep/web/parcial-funcional-20061123.rtf">Vuelos | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:234:<ul><li>Repaso</li><li>Recursividad</li></ul><h4 style="font-family:Trebuchet MS,arial,sans-serif;font-size:1.2em;color:rgb(160,77,62)"><a name="TOC-Tarea1"></a>Tarea</h4><ul><li>Resolver el parcial <a href="http://groups.google.com/group/archivos-pdep/web/Funcional_Concursos_20061121.pdf" style="color:rgb(0,0,0)">Otro de concursos - 21/11/2006</a> usando Hugs<br /> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:236:<h4 style="font-family:Trebuchet MS,arial,sans-serif;font-size:1.2em;color:rgb(160,77,62)"><a name="TOC-Resumen-en-pdf1"></a><span style="color:rgb(86,85,85);font-family:Arial,sans-serif;font-size:13px;font-weight:normal;line-height:19px"><b><span style="font-size:medium"><font><b><font color="#000000"><a href="http://groups.google.com/group/archivos-pdep/web/Resumen_Clase_3_Funcional_mm1c2010.pdf" style="color:rgb(188,130,120)">Resumen en pdf</a></font></b></font></span></b></span></h4><h3 style="font-family:Trebuchet MS,arial,sans-serif;color:rgb(130,124,92);font-size:1.4em;font-weight:normal;background-repeat:repeat-x;padding-bottom:5px"><a name="TOC-Funcional---Clase-2-11-05-"></a>Funcional - Clase 2 (11/05)</h3><ul><li style="list-style-position:outside;list-style-type:circle">Funciones de orden superior</li><li style="list-style-position:outside;list-style-type:circle">Listas por comprensión</li><li style="list-style-position:outside;list-style-type:circle">Patrón @ (el nombre cheto es As-pattern)</li></ul><h4 style="font-family:Trebuchet MS,arial,sans-serif;font-size:1.2em;color:rgb(160,77,62)"><a name="TOC-Tarea2"></a>Tarea</h4><ul><li style="list-style-position:outside;list-style-type:circle">Instalar Hugs (tiene un <a href="http://pdep.com.ar/Home/software/software-winhugs" style="color:rgb(160,77,62)">uso</a> bastante parecido a SWI-Prolog)<br /></li><li style="list-style-position:outside;list-style-type:circle">Resolver el Ejercicio 1 de la <a href="http://groups.google.com/group/archivos-pdep/web/funcional_5_2008_V1_1.pdf" style="color:rgb(188,130,120)">Guía 5 de Funcional</a> (Ventas de PCs) usando Hugs<br /></li><li style="list-style-position:outside;list-style-type:circle">Traer impreso el .hs</li></ul><h4 style="font-family:Trebuchet MS,arial,sans-serif;font-size:1.2em;color:rgb(160,77,62)"><a name="TOC-Resumen-en-pdf2"></a><span style="color:rgb(86,85,85);font-family:Arial,sans-serif;font-size:13px;font-weight:normal;line-height:19px"><b><a href="http://groups.google.com/group/archivos-pdep/web/Resumen_Clase_2_Funcional_mm1c2010.pdf" style="color:rgb(188,130,120)"><span style="font-size:medium"><font><b><font color="#000000">Resumen en pdf</font></b></font></span></a></b></span></h4><h3><a name="TOC-Funcional---Clase-1-04-05-"></a>Funcional - Clase 1 (04/05)<br /></h3><ul><li> Introducción</li><li> Dominio e Imagen</li><li> Expresiones lambda</li><li> Composición</li></ul><div><h4 style="font-family:Trebuchet MS,arial,sans-serif;font-size:1.2em;color:rgb(160,77,62)"><a name="TOC-Tarea3"></a>Tarea</h4></div><h4 style="font-family:Trebuchet MS,arial,sans-serif;font-size:1.2em;color:rgb(160,77,62)"><a name="TOC-Resumen-en-pdf3"></a><span style="color:rgb(86,85,85);font-family:Arial,sans-serif;font-size:13px;font-weight:normal;line-height:19px"><b><a href="http://groups.google.com/group/archivos-pdep/web/Resumen_Clase_1_Funcional_mm1c2010.pdf" style="color:rgb(188,130,120)"><span style="font-size:medium"><font><b><font color="#000000">Resumen en pdf</font></b></font></span></a></b></span></h4><h3><a name="TOC-L-gico---Parcial-Mi-rcoles-05-05-"></a>Lógico - Parcial (Miércoles 05/05)</h3><h3><a name="TOC-L-gico---Clase-5-27-04-"></a>Lógico - Clase 5 (27/04)</h3><ul><li> Repaso pre-parcial</li></ul><h3><a name="TOC-Tarea-No-Obligatoria-"></a>Tarea (No Obligatoria)</h3><a href="http://groups.google.com/group/archivos-pdep/web/parcial-logico-20081007.doc">Dioses | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:237: - 10/07/2008</a><br /><a href="http://groups.google.com/group/archivos-pdep/web/parcial-logico-20071006.doc">Sims | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:238: - 06/10/2007</a><br /><a href="http://groups.google.com/group/archivos-pdep/web/parcial-logico-20071002.doc">CounterStrike | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:239: - 02/10/2007</a><br /><a href="http://groups.google.com/group/archivos-pdep/web/parcial-logico-20061216.doc">Autopartes | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:240: - 16/12/2006</a> <br /> <a href="http://groups.google.com/group/archivos-pdep/web/parcial-logico-20061114.doc">Menúes | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:241: - 14/11/2006</a><font color="#827c5c"><font face="'Trebuchet MS', arial, sans-serif"><b><br /><br /></b></font></font><span style="color:rgb(130,124,92);font-family:Trebuchet MS,arial,sans-serif;font-size:18px">Lógico - Clase 4 (20/04)</span><br /><br /><ul><li>Recursividad</li><li>Polimorfismo en lógico</li></ul><font color="#000000"><b><br /></b></font><span style="color:rgb(86,85,85);font-family:Arial,sans-serif;font-size:13px;font-weight:normal;line-height:19px"><a href="http://groups.google.com/group/archivos-pdep/web/Resumen_Clase_4_Logico-mm.pdf" style="color:rgb(188,130,120)"><span style="font-size:medium"><b><font color="#000000">Resumen en pdf</font></b></span></a></span> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:243:<ul><li style="list-style-position:outside;list-style-type:circle">Resolver y traer la resolución del <a href="http://groups.google.com/group/archivos-pdep/web/parcial-logico-20070522-modificado.doc" style="color:rgb(160,77,62)">parcial de los tours</a></li></ul> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:251:<div><a href="http://groups.google.com/group/archivos-pdep/web/Resumen_Clase_3_Logico-mm.pdf" style="color:rgb(188,130,120)"><span style="font-size:medium"><b><font color="#000000">Resumen en pdf</font></b></span></a></div> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-martes:253:<div>Hacer en Prolog y traer la resolución impresa del ejercicio 3 de la <a href="http://groups.google.com/group/archivos-pdep/web/guia-logico-2008-4-1-5.doc" style="color:rgb(160,77,62)">guía 4 de lógico</a>.</div> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase1:273:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><br /><span> </span><div style="display:block;text-align:center"><a href="http://pdep.com.ar/Cursos/miercoles-objetos/clase1-mmj/foto.jpg?attredirects=0" imageanchor="1"><img border="0" height="400" src="http://pdep.com.ar/_/rsrc/1270864831506/Cursos/miercoles-objetos/clase1-mmj/foto.jpg?height=400&width=300" width="300" /></a></div><br /><br /><font size="3"><b><i><span><span> </span></span>En resumen hoy vimos:</i></b></font><br /><ul><li>Que es un Objeto</li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Mensajes_y_m%C3%A9todos" rel="nofollow">Mensajes (selector y parámetros)</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Mensajes_y_m%C3%A9todos" rel="nofollow">Mensaje vs método</a></li><li>Ambiente</li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Variables" rel="nofollow">Variables como referencias</a></li><li>Sintaxis smalltalk (objeto mensaje, :=, ^)</li><li>Tipos de mensajes y precedencia</li><ul><li>Unarios</li><li>Binarios</li><li>De palabra clave<br /></li></ul><li>Method Lookup Version 1</li><li>Como se usa el Object Browser</li></ul><br /><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /></span><ul><li><span><span> </span>Leer <a href="http://pdep.com.ar/material/apuntes">apunte de objetos</a> capitulo 1. (ojo, no confundir con apunte de objetos básicos)</span></li><li><span> </span><span>Descargar <a href="http://pdep.com.ar/Home/software/software-pharo">Pharo</a> <br /></span></li><li><span> TP1: pasar a máquina el ejercicio hecho en clase de pepita. Se entrega la <b>codificación del ejercicio al <i>inicio </i>de la clase</b></span></li><ul><li><span><i>El enunciado de lo que hicimos en clase es el ejercicio 1 de la <a href="http://groups.google.com/group/archivos-pdep/web/guia-objetos-2008-1.doc">Guia 1 de Objetos (Trabajando con objetos)</a></i></span></li><ul><li><span><b>[Martes]: </b>lo que vimos en clase es el punto 1-a y el primer subpunto del b. <b>Hata aca es el TP1</b><br /></span></li><li><span><b>[Martes]: </b></span><span>Tambien | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase2:273:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font size="3"><b><i><span><span> </span></span>En resumen hoy vimos:</i></b></font><br /><ul><li><span><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Polimorfismo_en_el_Paradigma_de_Objetos" rel="nofollow">Polimorfismo</a></span></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Self_-_pseudovariable" rel="nofollow">La pseudo-variable self</a></li><li>Clonación</li><li><span><span><span>Lookup </span></span></span><span><span><span>Method </span></span></span><span><span><span>Version 2 (con clones y prototipos)</span></span></span></li><li><span><span><span>Booleanos</span></span></span></li><li><span><span><span>Bloques básicos<br /></span></span></span></li></ul><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /></span><span><br /></span><div style="margin-left:40px"><span><i><b>TP2:</b></i> resolver el ejercicio 7 de la </span><i><a href="http://groups.google.com/group/archivos-pdep/web/guia-objetos-2008-1.doc">Guia 1 de Objetos (Trabajando con objetos)</a></i><span>. (Pepita reloaded) Se entrega la <b>codificación del ejercicio al <i>inicio </i>de la clase impreso el fileout que sacan de Pharo<i>.</i></b></span><br /></div><div style="margin-left:40px">No importa que en el archivo que saca Pharo haya caracteres raros como signos de explamación y corchetes.<br /></div><ul><ul><li><span><b>[Martes]: </b>El TP2 es hasta el punto d <b>inclusive.</b></span></li></ul></ul><font size="3"><b><i><span> </span>Material de lectura</i></b></font><br /><ul><li>En <a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Manejo_de_booleanos">esta</a> página se habla un poco del <b>manejo de booleanos</b>. La primera parte (true vs True) todavia no la vimos pero lo que sigue es muy interesante como para prestarle atención.</li><li>En <a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Diferencia_entre_objetos_y_procedural_-_con_un_ejercicio_de_la_gu%C3%ADa_1">esta </a>página se habla de las diferencias entre objetos y procedural basándose en un ejercicio de la guía uno</li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Igual_o_id%C3%A9ntico_-_%3D_vs_%3D%3D">Iguales o idénticos</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Modelando_objetos_-_Responsabilidades_y_delegaci%C3%B3n">Responsabilidad y delegación</a></li></ul></div></td></tr></tbody></table> | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase9:273:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font size="3"><b><i><span> </span>En resumen hoy vimos:</i></b></font><br /><ul><li>Diccionarios</li><ul><li>at: put:</li><li>at:</li><li>keys</li><li>associations</li><li>values</li><li>removeKey:</li><li>includesKey:</li><li>...<br /></li></ul><li>Estuvimos resolviendo el ejercicio de tareas<br /></li><ul><li>Quedó planteado, se termina de resolver la clase que viene</li><li>[Jueves] el ejercicio es el 3 de la guía 5</li><li>[Martes] es el mismo pero con unos cambios en la redacion lo pueden encontrar <a href="http://pdep.com.ar/tareas---dictionary" target="_blank">aca</a><br /></li></ul></ul><br /><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /></span><ul><li><span>Tp 6 de objetos: Resolver el parcial <a href="http://groups.google.com/group/archivos-pdep/web/parcial-objetos-20071106.doc">Pepero S.A.</a> <br /></span></li><ul><li>La idea es que lo hagan como práctica para el parcial, así que NO lo | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/posts.xml:2:<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion</id><updated>2012-07-16T13:16:55.477Z</updated><title>Posts of Clases Objetos 2c2010</title><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion" /><link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion" /><link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/batch" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion?parent=2947182730582485217&kind=announcement" /><generator version="1" uri="http://sites.google.com">Google Sites</generator><openSearch:startIndex>1</openSearch:startIndex><entry gd:etag=""YDgpeyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2327025161684593994</id><published>2010-10-25T14:28:02.710Z</published><updated>2011-03-31T03:56:34.200Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-26T19:26:09.115Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 9</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font size="3"><b><i><span> </span>En resumen hoy vimos:</i></b></font><br /><ul><li>Diccionarios</li><ul><li>at: put:</li><li>at:</li><li>keys</li><li>associations</li><li>values</li><li>removeKey:</li><li>includesKey:</li><li>...<br /></li></ul><li>Estuvimos resolviendo el ejercicio de tareas<br /></li><ul><li>Quedó planteado, se termina de resolver la clase que viene</li><li>[Jueves] el ejercicio es el 3 de la guía 5</li><li>[Martes] es el mismo pero con unos cambios en la redacion lo pueden encontrar <a href="http://pdep.com.ar/tareas---dictionary" target="_blank">aca</a><br /></li></ul></ul><br /><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /></span><ul><li><span>Tp 6 de objetos: Resolver el parcial <a href="http://groups.google.com/group/archivos-pdep/web/parcial-objetos-20071106.doc">Pepero S.A.</a> <br /></span></li><ul><li>La idea es que lo hagan como práctica para el parcial, así que NO lo | |
pdep.com.ar/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/posts.xml:5:diagrama de clases; justo como un parcial de verdad.</li></ul></ul><font size="3"><b><i><span> Se puede seguir leyendo de...<br /></span></i></b></font><ul><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Cuestiones_b%C3%A1sicas_para_resolver_el_parcial_de_objetos">Tips para resolver el parcial</a></li><li>Siempre pueden revisar de la wiki algun articulo que les sirva, <a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Paradigma_de_Objetos">aca esta la portada</a><br /></li></ul><br /><font size="3"><b><i><span> Recordatorio<br /></span></i></b></font><span><span> </span>El 3 de Noviembre es el parcial, asi que la proxima clase es el repaso antes del parcial de objetos. No se duerman y practiquen.</span><br /><font size="3"><b><i><span><br /></span></i></b></font></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2947182730582485217" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase9" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/2327025161684593994" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2327025161684593994" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2327025161684593994" /><author><name>gisela decuzzi</name><email>[email protected]</email></author><sites:pageName>clase9</sites:pageName><sites:revision>4</sites:revision></entry><entry gd:etag=""YD4peyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/7966051053745254762</id><published>2010-10-22T16:03:13.240Z</published><updated>2011-03-31T03:56:34.197Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-22T16:10:22.341Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 8</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font size="3"><b><i>En resumen hoy vimos:</i></b></font><br /><ul><li style="list-style-position:outside;list-style-type:circle">Métodos de clase<br /></li><li style="list-style-position:outside;list-style-type:circle">Variables de calse</li></ul><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /></span><div style="background-color:transparent;margin-left:40px">No hay tp pero les recomendamos que practiquen por su cuenta<br /><font size="3"><b><i><br /></i></b></font></div><font size="3"><b><i><span> Se puede seguir leyendo de...<br /></span></i></b></font><ul><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/M%C3%A9todos_de_clase_para_crear_objetos_inicializados" rel="nofollow">Metodos de clase para crear objetos inicializados</a></li></ul></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2947182730582485217" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase8" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/7966051053745254762" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/7966051053745254762" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/7966051053745254762" /><author><name>gisela decuzzi</name><email>[email protected]</email></author><sites:pageName>clase8</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag=""YD8peyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/6902929579421537754</id><published>2010-10-12T17:11:27.731Z</published><updated>2011-03-31T03:56:34.195Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-12T21:32:59.750Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 7</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font size="3"><b><i>En resumen hoy vimos:</i></b></font><br /><ul><li style="list-style-position:outside;list-style-type:circle">Herencia</li><ul><li style="list-style-position:outside;list-style-type:circle">motivación</li><li style="list-style-position:outside;list-style-type:circle">terminología</li><li style="list-style-position:outside;list-style-type:circle">method-lookup actualizado</li></ul><li style="list-style-position:outside;list-style-type:circle">Super</li><li style="list-style-position:outside;list-style-type:circle">Diagramas de clase. </li><li style="list-style-position:outside;list-style-type:circle">[Jueves] Responsabilidades de las clases:</li><ul><li style="list-style-position:outside;list-style-type:circle">Metodos de clase</li><li style="list-style-position:outside;list-style-type:circle">Variables de clase</li></ul><li style="list-style-position:outside;list-style-type:circle">Todo lo vimos con el parcial de tanques (que lo pueden ver en Repositorio de exámenes)<br /></li></ul><br /><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /></span><div style="background-color:transparent;margin-left:40px">TP5 Piratas (Que tambien lo pueden encontrar con mas o menos aes en el Repositorio de examenes como Yaaar)<br /><font size="3"><b><i><br /></i></b></font></div><font size="3"><b><i><span> Se puede seguir leyendo de...<br /></span></i></b></font><ul><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Nombres_de_clases" rel="nofollow">Nombres de clases</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Herencia" rel="nofollow">Herencia</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Paradigma_de_objetos_-_method_lookup">Method Look-up</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Super">super</a><br /></li></ul></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2947182730582485217" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase7" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/6902929579421537754" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/6902929579421537754" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/6902929579421537754" /><author><name>gisela decuzzi</name><email>[email protected]</email></author><sites:pageName>clase7</sites:pageName><sites:revision>3</sites:revision></entry><entry gd:etag=""YDgpeyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/4220520652412819047</id><published>2010-10-05T18:48:42.349Z</published><updated>2011-03-31T03:56:34.187Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-07T16:03:59.613Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 6</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font size="3"><b><i>En resumen hoy vimos:</i></b></font><br /><div style="background-color:transparent"><ul><li style="list-style-position:outside;list-style-type:circle">Responsabilidad</li><li style="list-style-position:outside;list-style-type:circle">Delegación <br /></li><li style="list-style-position:outside;list-style-type:circle">Pseudo-Diagrama de clases (pseudo porque no se apega a lo que se define como UML)<br /></li><ul><li style="list-style-position:outside;list-style-type:circle">¿Que información muestra?</li><li style="list-style-position:outside;list-style-type:circle">Conectores</li></ul><li style="list-style-position:outside;list-style-type:circle"><a href="http://pdep.com.ar/material/guas-de-ejercicios/trenes-y-depositos">[Martes] Ejercitación con trenes</a> en el laborarorio<br /></li></ul><br /><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /></span><div style="background-color:transparent;margin-left:40px">No hay tps. :)<br />Seria muy sano leer las lecturas recomendadas<br /><font size="3"><b><i><br /></i></b></font></div><div style="background-color:transparent"><font size="3"><b><i><span> Se puede seguir leyendo de...<br /></span></i></b></font><div style="margin-left:40px"><ul><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Nombres_de_clases" rel="nofollow">Nombres de clases</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Min:_y_max:">Ejemplo de uso de min: max:</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/C%C3%B3mo_hacer_para_que_de_un_objeto_muestre_lo_que_yo_quiero">Yo puse roque := Obsecuente new pero me dice "an Obsecuente" y no me dice roque!!!</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Diferencia_entre_objetos_y_procedural_-_con_un_ejercicio_de_la_gu%C3%ADa_1">Diferencia objetos procedural con un ejercicio de la guia 1</a><br /></li></ul></div></div></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2947182730582485217" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase6" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/4220520652412819047" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/4220520652412819047" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/4220520652412819047" /><author><name>gisela decuzzi</name><email>[email protected]</email></author><sites:pageName>clase6</sites:pageName><sites:revision>4</sites:revision></entry><entry gd:etag=""YDkpeyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/4288963384513002646</id><published>2010-09-17T13:27:47.357Z</published><updated>2011-03-31T03:56:34.184Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-29T02:28:41.503Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 5</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><div style="background-color:transparent"><font size="3"><b><i><span style="font-style:normal;font-weight:normal"><b><i><span> </span></i></b></span>En resumen hoy vimos:</i></b></font></div><div style="background-color:transparent"><ul><li style="list-style-position:outside;list-style-type:circle">Clases</li><li style="list-style-position:outside;list-style-type:circle">Diferentes tipos de colecciones y sus características: Bag, Set, OrderedCollection, SortedCollection, Array y String</li><li style="list-style-position:outside;list-style-type:circle">Class Browser con el proyector</li><li style="list-style-position:outside;list-style-type:circle">[Martes] Resolvimos todo el ejercicio de carga de camiones con el Class Browser<br /></li></ul><br /><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /><br /></span><div style="background-color:transparent;margin-left:40px">Ejercicio 1 de la guía 2 (Micros Empresarios). Usar una colección para la gente que está en el micro teniendo en cuenta las características de cada una.</div><div style="background-color:transparent;margin-left:40px"><b>Importante:</b> Este ejercicio, al igual que los que vengan de ahora en más, es para hacer en el <b>Class Browser</b>, el Object Browser ya no va más.<br /><font size="3"><b><i><br /></i></b></font></div><div style="background-color:transparent"><font size="3"><b><i><span> Se puede seguir leyendo de...<br /></span></i></b></font><div style="margin-left:40px"><ul><li>El archivo que esta adjunto</li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Paradigma_de_objetos_-_method_lookup">Lookup method con clases</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Nombres_de_clases">Nombres de clases</a><br /></li></ul></div><div style="margin-left:40px" /></div><div style="background-color:transparent" /><div style="background-color:transparent;margin-left:40px"><br /></div></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2947182730582485217" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase5" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/4288963384513002646" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/4288963384513002646" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/4288963384513002646" /><author><name>Mariana Matos</name><email>[email protected]</email></author><sites:pageName>clase5</sites:pageName><sites:revision>5</sites:revision></entry><entry gd:etag=""YD8peyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/3139983773516496596</id><published>2010-09-17T13:13:19.258Z</published><updated>2011-03-31T03:56:34.182Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-17T14:29:55.177Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 4</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font size="3"><b><i>En resumen hoy vimos:</i></b></font><br /><ul><li style="list-style-position:outside;list-style-type:circle">inject:into:</li><li style="list-style-position:outside;list-style-type:circle">Ejercicio de colecciones <br /></li><ul><li style="list-style-position:outside;list-style-type:circle">[jueves]: resolvimos el ejercicio en el object browser con el proyector</li><li style="list-style-position:outside;list-style-type:circle">[martes]: fuimos al laboratorio e hicimos hasta el punto d del ejercicio de colecciones como Trabajo Practico N°3 (presencial)<br /></li></ul></ul><div><span style="line-height:24px;font-size:medium"><b><i>Tarea para la proxima clase</i></b></span></div><div /><blockquote style="margin:0pt 0pt 0pt 40px;border:medium none;padding:0px">[Jueves] Traer hecho en la máquina el ejercicio de colecciones completo.<br /></blockquote></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2947182730582485217" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase4" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/3139983773516496596" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/3139983773516496596" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/3139983773516496596" /><author><name>Mariana Matos</name><email>[email protected]</email></author><sites:pageName>clase4</sites:pageName><sites:revision>3</sites:revision></entry><entry gd:etag=""YDgpeyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/8036367049658157936</id><published>2010-09-08T00:32:10.676Z</published><updated>2011-03-31T03:56:34.180Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-08T02:17:24.771Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 3</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><div><div><font size="3"><b><i><span><span> </span></span>En resumen hoy vimos:</i></b></font><br /><ul><li>Colecciones</li><li>Bloques con parámetros</li></ul><br /><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /><br /></span><div style="margin-left:40px">Zafaron por esta vez. Pero no se acostumbren...<br /></div><br /><span><br /></span><font size="3"><b><i><span> </span>Material de lectura</i></b></font><br /></div><ul><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Inject:into:">inject:into:</a> (sólo para el curso de los martes, los jueves lo vamos a ver la clase que viene)<br /></li></ul></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2947182730582485217" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase3" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/8036367049658157936" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/8036367049658157936" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/8036367049658157936" /><author><name>Nicolas Passerini</name><email>[email protected]</email></author><sites:pageName>clase3</sites:pageName><sites:revision>4</sites:revision></entry><entry gd:etag=""YD8peyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/1171161749336890598</id><published>2010-09-08T00:31:16.865Z</published><updated>2011-03-31T03:56:34.177Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-08T00:31:43.181Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 2</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font size="3"><b><i><span><span> </span></span>En resumen hoy vimos:</i></b></font><br /><ul><li><span><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Polimorfismo_en_el_Paradigma_de_Objetos" rel="nofollow">Polimorfismo</a></span></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Self_-_pseudovariable" rel="nofollow">La pseudo-variable self</a></li><li>Clonación</li><li><span><span><span>Lookup </span></span></span><span><span><span>Method </span></span></span><span><span><span>Version 2 (con clones y prototipos)</span></span></span></li><li><span><span><span>Booleanos</span></span></span></li><li><span><span><span>Bloques básicos<br /></span></span></span></li></ul><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /></span><span><br /></span><div style="margin-left:40px"><span><i><b>TP2:</b></i> resolver el ejercicio 7 de la </span><i><a href="http://groups.google.com/group/archivos-pdep/web/guia-objetos-2008-1.doc">Guia 1 de Objetos (Trabajando con objetos)</a></i><span>. (Pepita reloaded) Se entrega la <b>codificación del ejercicio al <i>inicio </i>de la clase impreso el fileout que sacan de Pharo<i>.</i></b></span><br /></div><div style="margin-left:40px">No importa que en el archivo que saca Pharo haya caracteres raros como signos de explamación y corchetes.<br /></div><ul><ul><li><span><b>[Martes]: </b>El TP2 es hasta el punto d <b>inclusive.</b></span></li></ul></ul><font size="3"><b><i><span> </span>Material de lectura</i></b></font><br /><ul><li>En <a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Manejo_de_booleanos">esta</a> página se habla un poco del <b>manejo de booleanos</b>. La primera parte (true vs True) todavia no la vimos pero lo que sigue es muy interesante como para prestarle atención.</li><li>En <a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Diferencia_entre_objetos_y_procedural_-_con_un_ejercicio_de_la_gu%C3%ADa_1">esta </a>página se habla de las diferencias entre objetos y procedural basándose en un ejercicio de la guía uno</li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Igual_o_id%C3%A9ntico_-_%3D_vs_%3D%3D">Iguales o idénticos</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Modelando_objetos_-_Responsabilidades_y_delegaci%C3%B3n">Responsabilidad y delegación</a></li></ul></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/2947182730582485217" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/paradigmasdeprogramacion/Cursos/mmj/cuatrimestres-anteriores/clases-objetos-2c2010/clase2" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/paradigmasdeprogramacion/1171161749336890598" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/1171161749336890598" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/1171161749336890598" /><author><name>Nicolas Passerini</name><email>[email protected]</email></author><sites:pageName>clase2</sites:pageName><sites:revision>3</sites:revision></entry><entry gd:etag=""YD4peyY.""><id>http://sites.google.com/feeds/content/site/paradigmasdeprogramacion/897297272297886894</id><published>2010-09-08T00:30:12.688Z</published><updated>2011-03-31T03:56:34.175Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-08T00:30:41.223Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Clase 1</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><br /><span> </span><div style="display:block;text-align:center"><a href="http://pdep.com.ar/Cursos/miercoles-objetos/clase1-mmj/foto.jpg?attredirects=0" imageanchor="1"><img border="0" height="400" src="http://pdep.com.ar/_/rsrc/1270864831506/Cursos/miercoles-objetos/clase1-mmj/foto.jpg" width="300" /></a></div><br /><br /><font size="3"><b><i><span><span> </span></span>En resumen hoy vimos:</i></b></font><br /><ul><li>Que es un Objeto</li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Mensajes_y_m%C3%A9todos" rel="nofollow">Mensajes (selector y parámetros)</a></li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Mensajes_y_m%C3%A9todos" rel="nofollow">Mensaje vs método</a></li><li>Ambiente</li><li><a href="http://uqbar.no-ip.org/uqbarWiki/index.php/Variables" rel="nofollow">Variables como referencias</a></li><li>Sintaxis smalltalk (objeto mensaje, :=, ^)</li><li>Tipos de mensajes y precedencia</li><ul><li>Unarios</li><li>Binarios</li><li>De palabra clave<br /></li></ul><li>Method Lookup Version 1</li><li>Como se usa el Object Browser</li></ul><br /><font size="3"><b><i><span> </span>Tarea para la proxima clase</i></b></font><span><br /></span><ul><li><span><span> </span>Leer <a href="http://pdep.com.ar/material/apuntes">apunte de objetos</a> capitulo 1. (ojo, no confundir con apunte de objetos básicos)</span></li><li><span> </span><span>Descargar <a href="http://pdep.com.ar/Home/software/software-pharo">Pharo</a> <br /></span></li><li><span> TP1: pasar a máquina el ejercicio hecho en clase de pepita. Se entrega la <b>codificación del ejercicio al <i>inicio </i>de la clase</b></span></li><ul><li><span><i>El enunciado de lo que hicimos en clase es el ejercicio 1 de la <a href="http://groups.google.com/group/archivos-pdep/web/guia-objetos-2008-1.doc">Guia 1 de Objetos (Trabajando con objetos)</a></i></span></li><ul><li><span><b>[Martes]: </b>lo que vimos en clase es el punto 1-a y el primer subpunto del b. <b>Hata aca es el TP1</b><br /></span></li><li><span><b>[Martes]: </b></span><span>Tambien | |
pdep.com.ar/Home/software/editores/ultraedit:218:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><br /><div><h4 style="font-family:Trebuchet MS,arial,sans-serif;font-size:1.2em;color:rgb(160,77,62)"><a name="TOC-1"></a><font face="Arial" size="2"><h3 style="font-family:Trebuchet MS,arial,sans-serif;color:rgb(130,124,92);font-size:1.4em;font-weight:normal;background-color:initial;padding-bottom:5px;background-repeat:repeat no-repeat"><a name="TOC-2"></a><div style="margin-top:5px;margin-bottom:5px;display:block;margin-right:auto;margin-left:auto;text-align:center"><a href="http://pdep.com.ar/Home/software/software-swi-prolog/capturaUltraEdit.JPG?attredirects=0" imageanchor="1" style="color:rgb(160,77,62);background-image:none;background-color:initial;border-bottom-style:none;border-bottom-width:initial;border-bottom-color:initial;background-repeat:initial initial"><img border="0" src="https://sites.google.com/site/paradigmasdeprogramacion/_/rsrc/1284840337364/Home/software/software-swi-prolog/capturaUltraEdit.JPG" style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px" /></a></div></h3></font></h4><p><font face="Arial" size="2">Lo lindo de este programa es que sirve para programar en <b>cualquier</b> lenguaje. Esto es posible porque tiene un archivo de texto plano donde se especifican las reglas de sintaxis de cada lenguaje. Esto significa que uno le puede agregar todos los lenguajes que quiera (bueno, en realidad se banca hasta 20, pero eso ya es bastante). </font></p><p><font face="Arial" size="2">Viene con los más populares ya integrados, como C++, PHP, Java, Javascript, etc. <br /></font></p><h3><a name="TOC-Configuraci-n-para-Prolog"></a>Configuración para Prolog</h3><p><font face="Arial" size="2">Para que el UltraEdit conozca la sintaxis de Prolog, se bajan este archivo de texto: <a href="http://groups.google.com/group/archivos-pdep/web/prologwordfile.txt" style="color:rgb(160,77,62)">prologwordfile.txt</a> y su contenido lo copian y lo pegan al final del wordfile.txt que viene en el directorio de instalación de UltaEdit. Ahora la próxima vez que entren al programa, en View -> View as van a ver en la opción número 20 la opción del prolog.<br /><br />Consideraciones:<br /></font></p><ul><font face="Arial" size="2"><li style="list-style-position:outside;list-style-type:circle">En caso de que rompan todo, guárdense antes una copia del wordfile.txt como resguardo.</li><li style="list-style-position:outside;list-style-type:circle">El UltraEdit es sólo un editor y NO un compilador.</li><li style="list-style-position:outside;list-style-type:circle">El wordfile que les damos no es exactamente para SWI Prolog sino para Sisctus Prolog, pero hasta ahora no le vi la diferencia.</li><li style="list-style-position:outside;list-style-type:circle">Si usan la extensión .pl para sus archivos de Prolog, el UltraEdit va a pensar que se trata de un archivo de Perl, asique pueden hacer una de las siguientes cosas:</li></font></ul><p><font face="Arial" size="2"> 1. Ver abajo <i><font face="Arial" size="2">cómo editar el wordfile.txt para que la extensión .pl no esté asociada a Perl</font></i> </font></p><p><font face="Arial" size="2"> 2. Cambiar la extensión de sus archivos a .pro . </font></p><p><font face="Arial" size="2"> 3. Cada vez que entran, cambiar manualmente la opción de resaltado de sintaxis. </font></p><p><font face="Arial" size="2">Recuerden que el UltraEdit no es Freeware y tiene un tiempo de prueba limitado, después de eso lo tienen que comprar -cofcofcofconsíganseuncrackcofcofcof- ¡¡Qué tos, che!! </font></p><h4 style="font-family:Trebuchet MS,arial,sans-serif;font-size:1.2em;color:rgb(160,77,62)"><a name="TOC-UltraEdit---c-mo-editar-el-wordfile" style="color:rgb(160,77,62)"></a><font face="Arial" size="2"><h4><a name="TOC-UltraEdit---c-mo-editar-el-wordfile.txt-para-que-la-extensi-n-.pl-no-est-asociada-al-Perl"></a>UltraEdit - cómo editar el wordfile.txt para que la extensión .pl no esté asociada al Perl</h4><h3 style="font-family:Trebuchet MS,arial,sans-serif;color:rgb(130,124,92);font-size:1.4em;font-weight:normal;background-color:initial;padding-bottom:5px;background-repeat:repeat no-repeat"><span style="color:rgb(86,85,85);font-family:Arial;line-height:19px;font-size:small">Aunque en algún lugar de la documentación del UltraEdit está esta info, no está explícita, por lo que les enumero los pasos para que lo puedan hacer rapidito.</span><a name="TOC-UltraEdit---c-mo-editar-el-wordfile1" style="color:rgb(160,77,62)"></a></h3></font></h4><p><font face="Arial" size="2">1. Abrir el archivo wordfile.txt que viene en el directorio de instalación del UltraEdit con su editor de texto favorito. </font></p><p><font face="Arial" size="2">2. Buscar la cadena "Perl". Esto los va a posicionar en la parte del wordfile donde se especifica la sintaxis de Perl. </font></p><p><font face="Arial" size="2">3. La línea que están viendo se debería parecer a esto: </font></p><p><font face="Arial" size="2"><font face="courier new,monospace"> /L5"Perl" Line Comment = # Line Comment Preceding Chars = [~[^]^^$/\(] Escape Char = \ File Extensions = CGI PM PL PLX</font></font></p><p>Si son piolas, ya se dieron cuenta que al final de dicha línea se especifican las extensiones de los archivos que el UltraEdit va a reconocer como de Perl. Por lo tanto: <br /></p><p>4. Borrar la subcadena "PL" de la línea mencionada en el punto 3.<br />5. Reiniciar el UltraEdit. Ahora debería tomar automáticamente los archivos .pl como de Prolog (siempre y cuando le hayan incluído el wordfile que dice más arriba.<br />6. Codificar!<br /></p></div><div><br /></div></div></td></tr></tbody></table> | |
pdep.com.ar/Home/software/software-squeak-1:218:<table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">Para instalarlo: <br />1. crear un directorio<br />2. deszipear ahí estos dos zips<br /> - <a href="http://groups.google.com/group/archivos-pdep/web/squeak-pdp-1.zip">squeak-pdp-1.zip</a><br /> - <a href="http://groups.google.com/group/archivos-pdep/web/squeak-pdp-2.zip">squeak-pdp-2.zip</a><br />3. ¡listo!<br /><br />Esto es para Windows, si tenés Linux/Unix, tenés que hacer esto:<br />1. ir a <a href="http://www.squeak.org/Download/" rel="nofollow">http://www.squeak.org/Download/</a><br />2. bajarte la <b>virtual machine</b> que corresponda a tu distro de Linux/Unix.<br />3. bajarte el archivo <b>SqueakV3.9.sources</b> que está abajo en la página.<br />4. agregarle los archivos de extensión .image y .changes que están en squeak-pdp-1.zip, estos dos son platform-independent.<br />5. ejecutar la virtual machine que te instalaste, asegurándote de que miren los archivos .image y .changes correctos.<br /><br />Para ejecutarlo: darle al acceso directo squeak-pdp que está en el directorio que creaste recién.<br /><br />El | |
pdep.com.ar/Home/software/software-squeak-1:226:código.<br /><br /><h3><a name="TOC-Edici-n-de-Clases"></a>Edición de Clases</h3>Esto es aparte del Object Browser<br /><a href="http://groups.google.com/group/archivos-pdep/web/edicion-de-clases-smalltalk-squeak.doc">edicion-de-clases-smalltalk-squeak.doc</a><br /> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment