{"id":1872,"date":"2017-01-18T14:30:38","date_gmt":"2017-01-18T12:30:38","guid":{"rendered":"http:\/\/variances.eu\/?p=1872"},"modified":"2020-04-29T10:31:32","modified_gmt":"2020-04-29T08:31:32","slug":"la-chevauchee-des-algorithmes","status":"publish","type":"post","link":"https:\/\/variances.eu\/?p=1872","title":{"rendered":"La chevauch\u00e9e des algorithmes"},"content":{"rendered":"<p>Je coordonne et j&rsquo;anime environ 60 heures de cours et travaux pratiques \u00e0 l&rsquo;ENSAE chaque ann\u00e9e depuis trois ans et la cr\u00e9ation de la voie datascience. Si vous allez sur mon <span style=\"text-decoration: underline;\"><em><a href=\"http:\/\/www.xavierdupre.fr\/app\/ensae_teaching_cs\/helpsphinx3\/index.html\">site<\/a><\/em><\/span>, vous d\u00e9couvrirez que la plupart de ces heures s&rsquo;appuient sur des exercices \u00e9crits sous formes de notebooks et qu&rsquo;une bonne partie fonctionne par paire, un \u00e9nonc\u00e9, une correction, d&rsquo;autres contiennent la correction des examens, d&rsquo;autres r\u00e9pondent \u00e0 des questions d&rsquo;\u00e9tudiants, d&rsquo;autres&#8230;<\/p>\n<p>Le notebook est apparu il y a une dizaine d&rsquo;ann\u00e9es et est r\u00e9cemment devenu populaire sous le nom Jupyter. Un <span style=\"text-decoration: underline;\"><em><a href=\"http:\/\/www.xavierdupre.fr\/app\/ensae_teaching_cs\/helpsphinx3\/_downloads\/td1a_cenonce_session1.html\">notebook<\/a><\/em><\/span> Jupyter est un endroit o\u00f9 on \u00e9crit du texte, des formules, du code et o\u00f9 on garde la trace des graphiques et des sorties que ces petits bouts de code ont produits. C&rsquo;est m\u00eame un lieu o\u00f9 l&rsquo;on peut ins\u00e9rer une carte interactive pour zoomer ou d\u00e9-zoomer \u00e0 volont\u00e9. C&rsquo;est un outil qui a rapidement trouv\u00e9 son public. Rares sont les professeurs de math\u00e9matiques ou d&rsquo;informatique qui n&rsquo;ont pas de notebooks d&rsquo;autant plus que les \u00e9tudiants peuvent les t\u00e9l\u00e9charger, les ex\u00e9cuter, que tout le monde peut ais\u00e9ment les convertir en PDF, html ou pr\u00e9sentations.<\/p>\n<p>Essayez, allez sur un moteur de recherche, \u00e9crivez le nom d&rsquo;un professeur, d&rsquo;une universit\u00e9 suivi de notebook et GitHub&#8230; (<span style=\"text-decoration: underline;\"><em><a href=\"https:\/\/www.bing.com\/search?q=berkeley+github+notebook&amp;qs=n&amp;form=QBLH&amp;sp=-1&amp;pq=berkeley+github+notebook&amp;sc=0-24&amp;sk=&amp;cvid=7527A906F4D04924BAA903CD8A46BCD9\">berkely notebook github<\/a><\/em><\/span>). C&rsquo;est un sacr\u00e9 chemin parcouru depuis les polycopi\u00e9s qui sentaient l&rsquo;alcool ! Ils furent les premi\u00e8res reproductions de support p\u00e9dagogique qu&rsquo;il m&rsquo;a \u00e9t\u00e9 donn\u00e9 de d\u00e9couvrir. Cela vous donne d&rsquo;ailleurs une id\u00e9e de mon \u00e2ge. J&rsquo;ai d\u00e9couvert l&rsquo;\u00e9cole, j&rsquo;ai v\u00e9cu la transition du polycopi\u00e9 vers la photocopie. Un pas fou !<\/p>\n<p>Et depuis je mets en ligne tout ce que je produis pour mes cours, plus d&rsquo;une centaine de notebooks. Tout est accessible depuis <span style=\"text-decoration: underline;\"><em><a href=\"https:\/\/github.com\/sdpython\">GitHub<\/a><\/em><\/span>, le lieu des projets open source, tout est compil\u00e9 en plusieurs sites web.<\/p>\n<p>Lorsque je cr\u00e9e un notebook, je ne l&rsquo;ajoute pas simplement \u00e0 la liste d\u00e9j\u00e0 existante, s&rsquo;il est long, je lui ajoute un menu pour aider \u00e0 la navigation. Je dois m&rsquo;assurer que ce notebook fonctionne depuis plusieurs environnements Windows, Linux, je dois aussi m&rsquo;assurer que je n&rsquo;aurai pas trop de travail l&rsquo;ann\u00e9e prochaine pour le faire fonctionner \u00e0 nouveau, et qu&rsquo;il ne sera pas trop perturb\u00e9 par un changement de version des librairies qu&rsquo;il utilise. Je dois aussi le convertir au format html ou PDF ou pr\u00e9sentation. Alors, quand je cr\u00e9e un notebook ou que je re\u00e7ois celui d&rsquo;un contributeur, je lui ajoute un menu, je remplace les chemins absolus vers des fichiers locaux en fichiers t\u00e9l\u00e9chargeables, je remplace les mots de passe s&rsquo;il est besoin, je lui enl\u00e8ve les num\u00e9ros d&rsquo;ex\u00e9cution afin de pouvoir facilement tracer les modifications sur GitHub (<span style=\"text-decoration: underline;\"><em><a href=\"https:\/\/github.com\/sdpython\/ensae_teaching_cs\/commit\/834ed6575a2dd23ca85dd9c9a32c835ae57d5a37\">diff<\/a><\/em><\/span>), je l&rsquo;inclus dans la suite des tests unitaires que je fais tourner une fois par semaine sur une machine virtuelle lou\u00e9e chez Azure &#8211; un reliquat du partenariat <span style=\"text-decoration: underline;\"><em><a href=\"http:\/\/news.microsoft.com\/fr-fr\/2014\/09\/23\/microsoft-partenaire-de-la-filiere-data-science-de-lensae-paristech-avec-microsoft-azure-machine-learning\/#sm.00001t60ys5gcvdrrthqu0l9aqtsb%234QJSQd5wMSsBTK1A.97\">ENSAE &#8211; Microsoft<\/a><\/em><\/span> qui a cess\u00e9 cette ann\u00e9e. Enfin, je mets \u00e0 jour le site. Et voil\u00e0, apr\u00e8s tout cela, le notebook est disponible en ligne et pr\u00eat \u00e0 l&#8217;emploi.<\/p>\n<p>R\u00e9guli\u00e8rement, je m&rsquo;assure que les tests unitaires passent et je corrige les erreurs en pr\u00e9vision de l&rsquo;ann\u00e9e prochaine. C&rsquo;est comme cela que je peux vous convier sans trop d&rsquo;inqui\u00e9tude \u00e0 aller t\u00e9l\u00e9charger un notebook et \u00e0 l&rsquo;utiliser. C&rsquo;est comme cela que je peux aller en cours sans avoir pris le temps de regarder si un notebook fonctionne encore. Mais je triche un peu avec cette peinture idyllique. Je sais que certaines parties ne sont pas encore test\u00e9es car je n&rsquo;ai pas encore \u00e9crit le code qui le ferait (Spark), que d&rsquo;autres ne le sont plus car elles n\u00e9cessitent un cluster que je n&rsquo;ai plus pour cause de partenariat interrompu. L&rsquo;important est que je sache ce qui ne marche plus pour la plupart de ce que j&rsquo;ai produit.<\/p>\n<p>J&rsquo;ai \u00e9chafaud\u00e9 toute cette machinerie en trois ans, \u00e9crit quelques 15.000 lignes de codes pour automatiser le test des notebooks et les incorporer au sein d&rsquo;une documentation que je compile sous la forme d&rsquo;un site web. Et je coupe et je red\u00e9coupe pour l&rsquo;ineffable expansion de ce cours qui monopolise une machine pendant plus de deux heures avant sa mise en ligne et cinq heures pour tout tester. Alors je d\u00e9coupe et cr\u00e9e une myriade de petits points d&rsquo;entr\u00e9e. Mon livre sur le langage python, \u00e9crit il y a huit ans, que je transforme sous forme de site, ma th\u00e8se que je transforme n\u00e9gligemment au m\u00eame format, les deux \u00e0 trois mille lignes de codes \u00e9crites pour siphonner ma bo\u00eete mail et r\u00e9cup\u00e9rer tous les projets qu&rsquo;on m&rsquo;envoie et que je dois \u00e9valuer &#8211; pas tout seul, je vous rassure-. J&rsquo;ai re\u00e7u depuis le 15 d\u00e9cembre pr\u00e8s de 1Go compress\u00e9 de mails et pi\u00e8ces jointes, PDF ou notebooks car les \u00e9tudiants m&rsquo;envoient eux aussi des notebooks en guise de rendus. Trois ans, plus de 150 notebooks, 7000 commits sur GitHub, pr\u00e8s de 200 \u00e9tudiants, certains que je revois plusieurs fois, 15 lettres de recommandation par an, deux hackathons et deux sponsors Microsoft et EY et deux associations La Croix-Rouge et Cr\u00e9sus et deux nuits blanches pass\u00e9es avec soixante-dix \u00e9tudiants passionn\u00e9s et passionnants, une soutenance de projets d&rsquo;\u00e9tudiants dans les locaux de la Croix-Rouge, d&rsquo;autres \u00e0 venir cette ann\u00e9e j&rsquo;esp\u00e8re, des \u00e9tudiants qui se sont amus\u00e9s sur des projets propos\u00e9s par l&rsquo;association <span style=\"text-decoration: underline;\"><em><a href=\"http:\/\/www.dataforgood.fr\/\">DataForGood<\/a><\/em><\/span>,\u00a0il y avait quasiment un \u00e9tudiant dans chacun des dix projets lors de la <span style=\"text-decoration: underline;\"><em><a href=\"https:\/\/www.meetup.com\/Data-for-Good-FR\/events\/236236094\/\">derni\u00e8re session<\/a><\/em><\/span>. DataForGood a contribu\u00e9 \u00e0 la cr\u00e9ation des sujets pour le premier hackathon et le bouche \u00e0 oreille a fait le reste. Sans oublier les \u00e0-c\u00f4t\u00e9s, participation au premier jury des <span style=\"text-decoration: underline;\"><em><a href=\"http:\/\/www.gouvernement.fr\/entrepreneur-interet-general\">Entrepreneurs d&rsquo;int\u00e9r\u00eat g\u00e9n\u00e9ral<\/a><\/em><\/span> ou des <span style=\"text-decoration: underline;\"><em><a href=\"http:\/\/blog.codeweekfrance.org\/best-of-jour-2-4-bordeaux-troyes-le-touquet-vannes-paris-2\/\">coding go\u00fbters<\/a><\/em><\/span>, au Touquet.<\/p>\n<p>Et vous savez quoi, j&rsquo;ai encore faim !<\/p>\n<p>J&rsquo;ai envie, j&rsquo;ai envie de louer un th\u00e9\u00e2tre et de faire parler les donn\u00e9es fa\u00e7on Shakespeare, de r\u00e9nover les Chiffres et les Lettres en rempla\u00e7ant la partie chiffres par un puzzle algorithmique, et d&rsquo;autres choses un peu moins farfelues dont vous entendrez peut-\u00eatre parler bient\u00f4t.<\/p>\n<p>&nbsp;<\/p>\n<p>Bonne ann\u00e9e !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je coordonne et j&rsquo;anime environ 60 heures de cours et travaux pratiques \u00e0 l&rsquo;ENSAE chaque ann\u00e9e depuis trois ans et la cr\u00e9ation de la voie datascience. Si vous allez sur mon site, vous d\u00e9couvrirez que la plupart de ces heures s&rsquo;appuient sur des exercices \u00e9crits sous formes de notebooks et qu&rsquo;une bonne partie fonctionne par [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":1873,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[99,135],"tags":[],"class_list":["post-1872","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-big-data","category-tribune","et-has-post-format-content","et_post_format-et-post-format-standard"],"_links":{"self":[{"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/posts\/1872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/variances.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1872"}],"version-history":[{"count":0,"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/posts\/1872\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/variances.eu\/index.php?rest_route=\/wp\/v2\/media\/1873"}],"wp:attachment":[{"href":"https:\/\/variances.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/variances.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/variances.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}