Le cours est composé de trois grandes parties: dans la première
partie, on présente des rappels sur la programmation en C++ sans les
aspects « programmation orientée objets », ainsi que sur
l'environnement de développement (programmation séparée, notion de
bibliothèque logicielle, modèle mémoire, ...). La deuxième partie
présente les types abstraits de base (piles, files, ...) et les
étudiants sont amenés à les ré-implémenter pour comprendre les
mécanismes mis en jeu et s'approprier les connaissances acquises dans
le langage C++. Dans la troisième partie, les algorithmes de
résolution de problèmes (algorithmes gloutons, branch-and-bound,
...) sont présentés et les étudiants doivent les implémenter
pour résoudre des problèmes typiques de ceux rencontrés en
bio-informatique. L'accent est mis sur la complexité des algorithmes
en temps et en espace afin que les étudiants puissent faire un choix
éclairé lorsqu'ils seront amenés à résoudre des problèmes difficiles
de grandes tailles.

(Crédit photo: Timodenk)
"The best way to learn is to do;

the worst way to teach is to talk."

– Paul Halmos


Le module est composé de deux grandes parties qui se répondent:

Dans la première partie, on présentera le rôle et les caractéristiques des systèmes d'exploitation en insistant sur la dimension "gestion de fichiers";
Dans la deuxième partie, on utilisera les éléments présentés précédemment pour montrer comment automatiser les tâches d'accès et de mise en forme des fichiers manipulés par un(e) bio-informaticien(ne). La notion centrale de "pipeline" sert de pivot pour faire communiquer des scripts écrits en BASH et Python. Une introduction à la programmation dans ces deux langages est faite avec un accent mis sur leur coopération au sein de scripts plus complexes en utilisant au mieux leurs points forts respectifs.

(Crédit photo: geekflare)