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. 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

Responder a