Accueil > Enseignement > Paradigmes de programmation (ing. 3)
Paradigmes de programmation (ing. 3)
J’enseigne les paradigmes de programmation en troisième année d’école d’ingénieur. J’ai pris la suite de Jean-Vincent Loddo sur ce cours, qui m’a beaucoup appris. Sous ses encouragements, j’y développe mon propre point de vue et mes propres contenu.
Ce cours s’inspire pour une large partie du travail de Peter Van Roy et en particulier de son livre avec Seif Haridi : Concepts, Techniques and Models of Computer Programming.
Nous utilisons les langages : C, javascript, Racket (un Scheme), OCaml, Python et Scala. Il y est aussi parfois un peu question d’autres langages, comme Erlang. Nous y discutons aussi de la plupart des autres langages connus des élèves ingénieurs.
En Racket, nous voyons les continuations et un peu de programmation réactive. C’est aussi la seule occasion pour la plupart des élèves ingénieurs de programmer dans un Lisp en TP.
En 2015-2016, ce cours fait une large place à une introduction aux monades.
-
Devoir (deuxième partie)
4 décembre 2015, par Pierre
Partie concernant les générateurs en Python 3.4/3.5 (ne vous perdez pas dans la documentation, c’est trivial).
-
Devoir (première partie)
28 novembre 2015, par Pierre
Comme promis un petit devoir pour vous aider à découvrir quelques aspects de Scala.
-
Exercices 1
20 novembre 2015, par Pierre
-
Cours 1 compléments
30 octobre 2015, par Pierre
– Le papier de Peter van Roy. Programming Paradigms for Dummies : What Every Programmer Should Know (2009)
https://www.info.ucl.ac.be/ pvr/VanRoyChapter.pdf
– Une bonne tranche de (rigolade au sujet de) javascript :
JavaScript Isn’t Scheme, par Bob Nystrom.
– Un peu de Bash bashing [video], en avant-goût de Scala :
https://vimeo.com/143819744
Bonus : comment effacer 3To de données utilisateur accidentellement.
https://github.com/ValveSoftware/steam-for-linux/issues/3671
Extra bonux (...)
-
Quelques lignes de code (à compléter)
21 mars 2015, par Pierre
Quelques lignes de code utilisées dans le cours de paradigmes de la programmation.
def ajouteur(x) : def incrementer(y) : return x + y return incrementer f = ajouteur(3) g = ajouteur(0) print "f(1) = 0 et g(1) = 1".format(f(1),g(1))
let ajouter = function x -> function y -> x + y ; ; let f = ajouter 3 ; ; let g = ajouter 4 ; ; f 1 ; ; g 1 ; ;
def nimp(x) : def incrementer(y) : return x + y def setter(y) : x = y # ici x est une nouvelle variable (...)