Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
teaching:cc5111 [2013/08/07 19:22] – etanter | teaching:cc5111 [2015/12/10 14:26] – etanter | ||
---|---|---|---|
Line 10: | Line 10: | ||
<tr> | <tr> | ||
< | < | ||
- | < | + | < |
</tr> | </tr> | ||
<tr> | <tr> | ||
- | < | + | < |
- | < | + | < |
</tr> | </tr> | ||
</ | </ | ||
Line 24: | Line 24: | ||
Scala se puede ver como el fruto del **matrimonio de Java y Haskell**, con unos toques de Racket, Erlang, y Clojure, con múltiples mejoras. Java, por la programación con objetos, el ambiente de ejecución (JVM), y la interoperabilidad. Haskell, por la programación funcional, la sintaxis elegante, el pattern matching, el sistema de tipos muy expresivo con inferencia, y el soporte ligero para evaluación perezosa y estructuras infinitas. Racket, por las continuaciones y las macros. Erlang y Clojure, por la simplicidad del paralelismo y de la concurrencia. Las mejoras más notables incluyen //traits// para mejor reuso y modularidad, | Scala se puede ver como el fruto del **matrimonio de Java y Haskell**, con unos toques de Racket, Erlang, y Clojure, con múltiples mejoras. Java, por la programación con objetos, el ambiente de ejecución (JVM), y la interoperabilidad. Haskell, por la programación funcional, la sintaxis elegante, el pattern matching, el sistema de tipos muy expresivo con inferencia, y el soporte ligero para evaluación perezosa y estructuras infinitas. Racket, por las continuaciones y las macros. Erlang y Clojure, por la simplicidad del paralelismo y de la concurrencia. Las mejoras más notables incluyen //traits// para mejor reuso y modularidad, | ||
- | El resultado es una alta productividad, | + | El resultado es una alta productividad, |
**Al combinar lo mejor de la programación orientada a objetos y de la programación funcional con un sistema de tipos avanzado, Scala es un lenguaje altamente expresivo y flexible.** Permite que desarrolladores de bibliotecas usen abstracciones muy sofisticadas, | **Al combinar lo mejor de la programación orientada a objetos y de la programación funcional con un sistema de tipos avanzado, Scala es un lenguaje altamente expresivo y flexible.** Permite que desarrolladores de bibliotecas usen abstracciones muy sofisticadas, | ||
**El curso entrega las herramientas necesarias para ser efectivo en el desarrollo de software en Scala, tanto para desarrollar aplicaciones como para desarrollar bibliotecas robustas.** Esto implica el estudio de varios conceptos y mecanismos avanzados de programación, | **El curso entrega las herramientas necesarias para ser efectivo en el desarrollo de software en Scala, tanto para desarrollar aplicaciones como para desarrollar bibliotecas robustas.** Esto implica el estudio de varios conceptos y mecanismos avanzados de programación, | ||
+ | |||
+ | ** Se alternarán clases expositivas orientadas a los conceptos de programación en Scala, y clases tutoriales enfocadas al uso de herramientas más usadas en la industria (Play para programación Web, Akka para programación reactiva, Scala.js para clientes Web, Slick para bases de datos).** | ||
+ | |||
+ | |||
**Tópicos: | **Tópicos: | ||
- | * clases, objetos, tipos y operaciones básicas | + | * programación funcional: //funciones de primera clase, pattern matching, clases |
- | * funciones y abstracciones | + | * programación por objetos: //objetos, clases |
- | * herencia | + | * colecciones: |
- | * clases de casos, pattern matching y extensibilidad | + | |
- | * colecciones: | + | |
* tipos básicos: //generics, inferencia, conversiones implícitas// | * tipos básicos: //generics, inferencia, conversiones implícitas// | ||
* tipos avanzados: //miembros de tipo abstracto, tipos estructurales, | * tipos avanzados: //miembros de tipo abstracto, tipos estructurales, | ||
- | * programación genérica: // | + | * programación genérica: // |
- | * programación modular: // | + | * programación modular: // |
- | * concurrencia y paralelismo: | + | * concurrencia y paralelismo: |
- | * mecanismos avanzados: // | + | |
+ | **Evaluación:** | ||
+ | |||
+ | * Mini-controles regulares (15-30 min en horario de clases). | ||
+ | * Mini-tareas (esencialmente en las clases tutoriales). | ||
+ | * Proyecto final en grupo. | ||
- | **Evaluación: | + | Se exime de examen con 5.0. |
{{teaching: | {{teaching: |