[{"command":"insert","method":null,"selector":".course-modal-ajax-placeholder-961274","data":"\u003Cdiv class=\u0022container content-rte\u0022\u003E\n  \u003Cdiv class=\u0022row\u0022\u003E\n    \u003Cdiv class=\u0022box col-md-6 bg-primary text-white\u0022\u003E\n      \u003Ch2 class=\u0022h1 text-left\u0022\u003E  Programmation 2\n\u003C\/h2\u003E\n                  \u003Cdiv class=\u0022field-spacing\u0022\u003E\n        \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EECTS :\n          6\n        \u003C\/div\u003E\n      \u003C\/div\u003E\n                  \u003Cdiv class=\u0022field-spacing\u0022\u003E\n        \u003Cdiv class=\u0022field__label h3 dash\u0022\u003ESemester:\n          Semestre 1\n        \u003C\/div\u003E\n      \u003C\/div\u003E\n            \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003ED\u00e9tail du volume horaire\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                          \u003Cspan class=\u0022field__label h4 mt-5 \u0022\u003ELecture:\u003C\/span\u003E\n                                      \u003Cspan\u003E30\u003C\/span\u003E\n                      \u003C\/div\u003E\n                                              \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                          \u003Cspan class=\u0022field__label h4 mt-5 \u0022\u003EDirected study:\u003C\/span\u003E\n                                      \u003Cspan\u003E22.5\u003C\/span\u003E\n                      \u003C\/div\u003E\n                                                            \u003C\/div\u003E\n        \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003ELangue d\u0026#039;enseignement\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003EFran\u00e7ais\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n        \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EEnseignement \u00e0 distance\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003Enon\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n      \u003C\/div\u003E\n    \u003Cdiv class=\u0022box col-md-6\u0022\u003E\n                    \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003EProgramme \/ plan \/ contenus\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003E\u003Cp\u003EDans ce cours, nous \u00e9tudions plusieurs aspects \u0022de haut-niveau\u0022 des langages de programmation. Nous introduisons de nouveaux concepts qui compl\u00e9mentent la formation en programmation (modules, objets, sous-typage, concurrence) ainsi que des techniques qui enrichissent la vision des diff\u00e9rents paradigmes de programmation (transformations monadiques pour diff\u00e9rents types d\u0027effets). M\u00eame si le langage de r\u00e9f\u00e9rence pour l\u0027examen est OCaml, lors du cours nous utiliserons aussi des extraits de code Haskell, Scala, Perl 6, C#, Java, Erlang, Pascal, Python, Basic, CDuce, Xslt, etc. L\u0027id\u00e9e \u00e9tant de mettre l\u0027accent sur les concepts de la programmation plus que sur la programmation dans un langage particulier.\u003C\/p\u003E\n\u003Cp\u003ESyst\u00e8mes de modules\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode\u003E1. Introduction \u00e0 la Modularit\u00e9.\n2. Modules (simples) en ML.\n3. Foncteurs.\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003EClasses vs. Modules\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode\u003E4. Modularit\u00e9 dans les langages objets\n5. Mixins\n6. Dispatch multiple\n7. Les classes en OCaml\n8. Les Typeclasses d\u0027Haskell\n9. Generics\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003ETransformation de programmes\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode\u003E10. A propos de la puret\u00e9\n11. Rappels de s\u00e9mantique op\u00e9rationnelle\n12. Closure conversion\n13. D\u00e9fonctionalisation\n14. Exception passing style\n15. State passing style\n16. Continuations, g\u00e9n\u00e9rateurs et co-routines\n17. Continuation passing style\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003EProgrammation Monadique\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode\u003E18. Votre premi\u00e8re monade\n19. Exemples de monades\n20. Les lois monadiques\n21. Transformation de programmes et monades\n22. Monades comme technique de programmation\n23. Monades et foncteurs\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003ETypage et Sous-typage\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode\u003E24. Sous-typage des types simples\n25. Extensions: produits, enregistrements, r\u00e9f\u00e9rences\n26. Types ensemblistes: unions, intersections et n\u00e9gations\n27. Covariance et contra-variance\n28. Filtrage par types ensemblistes: XML et CDuce\n29. Reconstruction de types : le typage de ML\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003EConcurrence\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode\u003E30. Notions de concurrence\n31. Multi-threading pr\u00e9emptif\n32. Mutexes, Conditional Variables, Monitors\n33. Travailler sans exclusion mutuelle\n34. Multi-threading coop\u00e9ratif\n35. Communication par canaux\n36. Software Transactional Memory\n\u003C\/code\u003E\u003C\/pre\u003E\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n                                                \u003Cdiv class=\u0022field-spacing\u0022\u003E\n      \u003Cdiv class=\u0022field__label h3 dash\u0022\u003ENature de l\u0026#039;\u00e9valuation\u003C\/div\u003E\n                        \u003Cdiv class=\u0022mt-5 text-justify\u0022\u003E\n                                      \u003Cspan\u003EEvaluation Continue non Int\u00e9grale\u003C\/span\u003E\n                      \u003C\/div\u003E\n                  \u003C\/div\u003E\n      \u003C\/div\u003E\n  \u003C\/div\u003E\n\u003C\/div\u003E\n","settings":null}]