Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
teaching:cc5111 [2015/12/10 13:20] etanterteaching:cc5111 [2015/12/10 15:46] (current) etanter
Line 10: Line 10:
 <tr> <tr>
 <td><b>Profesor de cátedra</b>: Éric Tanter</td> <td><b>Profesor de cátedra</b>: Éric Tanter</td>
-<td><b>Estreno:</b> 2013/2</td>+<td><b>Semestre:</b> 2016/1</td>
 </tr> </tr>
 <tr> <tr>
-<td><b>Profesor auxiliar</b>: Mario Cornejo</td> +<td><b>Profesor auxiliar</b>: Matías Toro</td> 
-<td><b>Horario:</b> 1.3-5.3 </td>+<td><b>Horario:</b> 1.4-5.3 </td>
 </tr> </tr>
 </table> </table>
Line 29: Line 29:
  
 **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, poniéndolos en su contexto científico y práctico. Así mismo, el curso expone ciertos mecanismos de Scala en relación con sus realizaciones en otros lenguajes. **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, poniéndolos en su contexto científico y práctico. Así mismo, el curso expone ciertos mecanismos de Scala en relación con sus realizaciones en otros lenguajes.
 +
 +** Se alternarán clases expositivas orientadas a los conceptos de programación en Scala, y clases tutoriales enfocadas al uso de las herramientas más usadas en la industria** ([[https://www.playframework.com/|Play]] para programación Web, [[http://akka.io/|Akka]] para programación reactiva, [[http://www.scala-js.org/|Scala.js]] para clientes Web, [[http://slick.typesafe.com/|Slick]] para bases de datos, [[https://etorreborre.github.io/specs2/|specs2]] para testing).
 +
 +
  
 **Tópicos:** **Tópicos:**
-  * clases, objetostipos y operaciones básicas +  * programación funcional: //funciones de primera clase, pattern matching, clases de casosTCOpereza, monadas// 
-  * funciones y abstracciones de control +  * programación por objetos: //objetos, clases y traits// 
-  * herencia y traits +  * colecciones: //colecciones mutables e inmutables, iteradores, streams//
-  * clases de casos, pattern matching y extensibilidad +
-  * colecciones: //colecciones mutables e immutables, iteradores, streams y vistas perezosas//+
   * 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 self, polimorfismo de familia, etc.//   * tipos avanzados: //miembros de tipo abstracto, tipos estructurales, tipos self, polimorfismo de familia, etc.//
-  * programación genérica: //parámetros implícitos, clases implícitas// +  * programación genérica: //parámetros implícitos, clases implícitas, clases de tipos// 
-  * programación modular: //componentes, modulos, inyección de dependencias// +  * programación modular: //componentes, módulos, inyección de dependencias// 
-  * concurrencia y paralelismo: //actores, colecciones sincronizadas, colecciones paralelas// +  * concurrencia y paralelismo: //colecciones sincronizadas, colecciones paralelas, actores//
-  * mecanismos avanzados: //continuacionesmacros y reflexión//+
  
-**Evaluación:** Mini-controles regulares (15-30 min en horario de clases) tareas. Se exime de examen con 5.0.+**Evaluación:**  
 + 
 +  * Mini-controles regulares (15-30 min en horario de clases)
 +  * Mini-tareas (esencialmente en las clases tutoriales). 
 +  * Proyecto final en grupo. 
 + 
 +Se exime de examen con 5.0.
  
 {{teaching:cc5111:scala.pdf|Programa del Curso (CC5111)}} {{teaching:cc5111:scala.pdf|Programa del Curso (CC5111)}}
 +
 +**Nota para alumnos de doctorado**
 +
 +Se puede inscribir el curso con código CC74A, en cual caso la evaluación incluirá el estudio de unos aspectos formales de Scala (mediante artículos de investigación)