Ce cours vous fera découvrir différents aspects de la conception d'un programme. Au travers de nombreuses études de cas, nous mettrons en exergue les structures de données et les algorithmes permettant d'apporter des solutions. Comme souvent en informatique, il n'existe pas de solution unique et nous serons amenés à découvrir différentes classes d'algorithme et à les comparer.
Nous introduirons à cet effet la notion de complexité d'un programme, c'est à dire à la fois une estimation du temps d'exécution de votre programme et de l'espace requis par celui-ci. Il est tentant de croire que le "meilleur" programme est celui qui minimise le temps d'exécution mais très souvent cette complexité est contrainte par la mémoire dont vous disposez. Ainsi, vous n'utiliserez peut-être pas le même algorithme selon que votre programme s'exécute sur un ordinateur ou un téléphone !
Description: Ce cours présentera les structures de données les plus classiques comme les tableaux, listes, piles, files, et arbres pour aller vers les graphes.
En parallèle, on découvrira les grands concepts de l'algorithmique à travers des études cas. Nous passerons ainsi en revue les tris, parcours, les arbres de recherche quaternaires, les algorithmes gloutons ainsi que les bases de la programmation dynamique.
Categories
Effort
Certification
Languages
Misc
Modéliser un problème, concevoir un algorithme de résolution et en proposer une implémentation correcte. Du problème à sa solution, ce cours combine approches pragmatique, pratique et théorique de l'informatique.