2011/4/15 Hernan Wilkinson <[email protected]> > Que tal, > quería comentarles que estaremos dando el curso de diseño con objetos > denominado *"Elementos avanzados de Arquitectura de software con objetos"* a > partir de fin de este mes. > Seguramente te estarás preguntando qué puede tener de interesante un curso > de "objetos" si todo el tiempo estás trabajando con ellos por medio de Java, > .Net, Ruby, etc. >
no vende mencionar Smalltalk? > Sin embargo este no es un curso convencional donde se enseña una sintaxis > de un lenguaje cómo si de eso se tratara el diseño. Pero, si alguna vez te > surgió la curiosidad o te preguntaste de dónde surgió el paradigma de > objetos, qué bases teóricas lo sustentan, cómo se compara con el paradigma > funcional y cuáles son sus ventajas y desventajas reales, entonces este > curso es para vos. > Si alguna vez te preguntaste por qué no podés ponerle buenos nombres a las > clases, por qué el paradigma se llama "orientado a objetos" cuando lo único > que parece que escribís son clases, por qué nunca estás seguro si está > subclasificando correctamente, si debés hacer para reusar código o si debés > hacer porque te conviene, claramente tenés que anotarte en este curso. > También puede ser que alguna vez te hayas preguntado por qué me cuesta > tanto mantener los sistemas que desarrollo, por qué hay gente loca por ahí > que dice que con Ruby es más fácil que con Java y al mismo tiempo gente que > dice que programar con Java es más "seguro" que con Ruby o por qué cambiar > el "tipo" de una variable genera un efecto onda que te obliga a no realizar > el cambio, no quiero sonar reiterativo, pero este curso es para vos. > Si alguna vez te preguntaste cuál es en serio la diferencia entre > lenguajes estáticamente tipados y dinámicamente tipados, por qué JavaScript > no utiliza clases (al igual que otros lenguajes como Self o IO), o por qué > Java parece haber cumplido su ciclo... hmm tengo que decirte que en este > curso encontrarás esas respuestas. > Si alguna vez tuviste que hacer un copy & paste de un método y meter un if > en el medio para que la cosa funcionara, puesto no entendes nada de lo que > escribó el tipo que lo hizo pero al mismo tiempo sentís que podrías hacer > algo mejor pero no sabés cómo, bueno, que te puedo decir... este curso es > para vos. > Si tenés dudas sobre qué decisión de diseño es mejor, sabes que tenés que > buscar mínimo acoplamiento y máxima cohesión pero no sabes qué corno > significa eso, si tenés ganas de perderle el miedo a la meta-programación > (esta palabra que asusta tanto) o querés saber qué es un lenguaje > "meta-circular", este curso definitivamente es para vos. > En conclusión, si te interesa la "creación" de software, hacer buenos > programas y tener motivos para estar seguro de tus decisiones de diseño, no > dejes de anotarte. > > *Duración*: El curso es de 24 horas y lo daremos en 6 clases de 4 horas, > en el horario de 9 a 13 hrs, dos días por semana. > *Objetivo*: El objetivo del curso es brindar a los asistentes elementos > avanzados de Diseño de software con objetos que le permitan construir un > software robusto, mantenible, extensible y reusable (independientemente de > la plataforma). > *Características*: El mismo estará compuesto por una parte de fundamentos > teóricos y otra de ejercicios prácticos. Los lenguajes para los ejercicios > prácticos son Java, C#, Ruby y Smalltalk. (Al final del mail podrán > encontrar una descripción completa del contenido del curso). Este es el > primer curso de los dos de diseño que daremos este año. El segundo curso lo > estaremos ofreciendo para Junio (pero es requisito haber cursado el primero > para cursar el segundo :-) ) > *Costo*: El costo del mismo es de $ 1450 IVA INCLUIDO. > *Forma de Pago*: Los pagos se pueden hacer con transferencia bancaria, > efectivo o tarjeta hasta 24 cuotas (con tarjeta hay un costo adicional del > 5%). > *Fechas*: > > Clase 1: Lunes 25 de Abril > Clase 2: Jueves 28 de Abril > Clase 3: Lunes 2 de Mayo > Clase 4: Jueves 5 de Mayo > Clase 5: Lunes 9 de Mayo > Clase 6: Jueves 12 de Mayo > > > Todos aquellos que estén interesados en anotarse o tengan preguntas envíen > un mail a [email protected]. Aún quedan varios cupos. > Saludos! > Hernán. > > *Descripción completa del curso*: > Brindar a los asistentes en primera instancia, los conceptos fundamentales > de la Orientación a Objetos, con un enfoque tal que ayude a producir un > cambio paradigmático en la manera de pensar al momento de construir > software. Para esto se utiliza un enfoque pedagógico constructivista que > permite desarrollar, a lo largo del curso, el Paradigma de Objetos en forma > “pura” — expresando todo el paradigma sólo en términos de objetos— y > “minimal” —introduciendo sólo los elementos esenciales que conforman el > paradigma y que permiten la construcción de elementos más complejos y > sofisticados—. > En segunda instancia, se verán elementos avanzados de arquitectura que > le permitan construir software robusto, mantenible, extensible y > reusable, independientemente de la plataforma de desarrollo que se > utilice. Mejorar la calidad de los sistemas desarrollados a partir de > entender el concepto de contrato entre objetos, su especificación > (precondiciones, invariantes, etc.) y manejo en caso de violaciones (errores > y excepciones). Proverá un mecanismo de comunicación de diseños sencillo, > fluido y efectivo > *Audiencia*: > Programadores, Diseñadores, Arquitectos > *Temario*: > > - Concepto de “paradigma” > - Definición de "paradigma de objetos" y “programa orientado a > objetos” > - Historia del surgimiento paradigma > - Concepto de abstracción > - Conceptos básicos del paradigma: > - Objeto y Mensaje > - Identidad > - Método > - Polimorfismo, Binding Dinámico > - Colaboraciones, colaboradores > - Encapsulamiento > - Expresiones Lambda > - Tipos de Lenguajes de Programación del Paradigma > - Lenguajes Clásicos/Aristotélicos > - Lenguajes Modernos/Prototipicos > - Conceptos y construcciones derivados del paradigma: > - Creación de objetos, destrucción de objetos > - Clases abstractas y concretas > - Clasificación, subclasificación y herencia > - Concepto de “tipo” en el paradigma de objetos > - Definición de Cohesión en el paradigma > - Definición de Acoplamiento en el paradigma > - Lenguajes y ambientes de desarrollo > - Definición y especificación de protocolos y contratos > - Jerarquías polimórficas > - Excepciones > - Reglas de Diseño básicas. > - Diagramas básicos de UML simplificado > - Diagrama de Objetos > - Diagrama de Secuencia > - Diagrama de Clases > - Breve introducción a patrones de diseño > - Definición de Arquitectura > - Problemas de Diseño recurrentes > - Idioms > - Definición de Patrón de Diseño > - Ejemplos de utilización de patrones > > > -- > *Hernán Wilkinson > Agile Software Development, Teaching & Coaching > Mobile: +54 - 911 - 4470 - 7207 > email: [email protected] > site: http://www.10Pines.com <http://www.10pines.com/>* > > -- > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > > http://www.clubSmalltalk.org -- Mariano http://marianopeck.wordpress.com -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] http://www.clubSmalltalk.org
