Retour sur DevFest Nantes : « La programmation dynamique pour sauver Jules Verne » par Gaëtan Eleouet

Publié le 14/11/2022 Par Meriteam

Le 20 et 21 octobre, Gaëtan Eleouet, développeur expert Java et Responsable du pôle Software Engineering et membre du Bureau Technique, était présent au DevFest de Nantes. À cette occasion, l’agence nantaise Meritis est venue le soutenir pour sa conférence « La programmation dynamique pour sauver Jules Verne ». L’objectif ? Voyager à travers les univers de Jules Verne pour découvrir ce qui se cache derrière la programmatique dynamique !

La programmation dynamique pour sauver Jules Verne

« J’ai envie de vous raconter le souvenir du moment où cela fait tilt. Car la programmation dynamique, ce n’est pas très intuitif et je me souviens de cette impression de Eurêka quand j’ai compris comment cela fonctionnait. Et j’aimerais essayer de vous partager cette expérience aujourd’hui »

Gaëtan Eleouet

« Rien à voir avec la programmation orientée objet ou la programmation fonctionnelle, la programmation dynamique est une famille d’algorithme.

De la terre à la lune ont été cartographiées des micrométéorites. La carte présente dans un quadrillage, la terre en bas à gauche et la lune en haut en droite, l’obus se dirige au plus court, soit vers le haut, soit vers la droite. Quel est le plus petit nombre de météorites que l’on risque de rencontrer ?

Le nautilus descend vers les profondeurs, à chaque minute, le capitaine Nemo peut changer son allure, pour descendre 1, 2 ou 3 lieues. De combien de façons différentes peut-il descendre jusqu’à 20 000 lieues ?

Pour fêter Jules Verne, je souhaitais disposer ses livres sur des grandes tables. Les livres sont identiques de tous les côtés et font 10cm par 20cm, les tables sont disposées en un grand rectangle de 1m par 20m, de combien de façons possibles puis-je disposer mes livres ? »

Gaetant Eleouet - Devfest Strasbourg
©RémyChautardDevFest2022

Replay de la conférence de Gaëtan Eleouet au Devfest de Nantes

Vos réactions

“La plus technique des confs auxquelles j’ai pu assister : il était dans un premier temps question de rappeler ce qu’était la programmation dynamique : une méthode pour trouver un algorithme. Puis dans un second temps de résoudre des problèmes avec de la mémoïsation et de l’itératif tabulaire, en parcourant des graphes… Bref des problèmes tout sauf triviaux, notamment à cause du fléau de la dimension. « 

Marvin GILLY de kaibee.fr

Découvrez nos postes à Nantes

Vous souhaitez prendre part à une belle aventure nantaise en intégrant une jeune équipe, dynamique et ambitieuse ?

🔍 Les Centres de Compétences de Meritis

Meritis a mis en place des Communautés d’experts, les Centres de Compétences afin de favoriser, et développer le partage de connaissances techniques et métiers.

La communauté Software Engineering travaille autour de la thématique du développement avec les différents langages et anime de nombreux concours de code tels que les challenges Codingame, BattleDev ou encore Google HashCode.

Nos développeurs sont également présents lors des plus grands évènements autour du développement.

ENVIE D’ALLER PLUS LOIN ?

Pratique du TDD, comment convertir des chiffres en nombres romains ?

La plus grande difficulté que l’on rencontre en débutant la pratique du TDD est de choisir le nouveau test à écrire. Il faut choisir la fonctionnalité qui va permettre un petit incrément, si possible le plus petit, mais la taille n’est pas le seul paramètre à prendre en compte…

Function Style : les continuations

Pourquoi les langages comme le Haskell, le OCaml, le F# et d’autres encore utilisent la syntaxe intégrant le mot clef let ? Quelle différence y a-t-il donc avec l’allocation des variables dans les langages impératifs ? Dans cet article, je vais tenter de répondre au mieux à ces questions et vous montrer comment étendre ce concept pour finalement présenter les continuations.

Git rebase vs git merge : quelles différences ?

Halte aux idées reçues ! Réussir son passage à une organisation agile Git rebase et git merge sont deux commandes utilisées pour synchroniser le travail entre deux branches. Il existe toutefois une certaine confusion entre les deux, notamment concernant leur usage. Comment fonctionne alors chacune de ces deux commandes, quels sont leurs effets et quelles sont utilités respectives ?