Mathématiques pour un cursus d’informatique
Bonjour,
Je note que la catégorie "Système d’information" un lien vers votre ouvrage que je trouve très instructif. Mais il n’y a pas de billet sur lequel commenter.
Un des passages intéressant est sur la différence entre informatique et mathématique.
Une différence pointée est la notion d’état en math.
Je dirais plutôt qu’en programmation, on se fie plus à l’intuition et ce serait comme intuiter un théorème en math, avoir des éléments de preuve dans sa tête pas forcément complets sans prendre la peine de les écrire ce qui rend des erreurs bien plus probables (oublier des hypothèses clés...). Et ce serait difficile de publier dans une revue à comité de lecture dans ces conditions !
Les états constituent une différence très importante étant donné la complexité induite, mais ne constituent pas selon moi une différence fondamentale : en math, il arrive de raisonner avec (Gauss a sûrement démontré formellement sa méthode du pivot pour inverser une matrice où la notion d’état est bien présente, mais avec une complexité moindre que dans beaucoup de programmes, ce qui est une des différences importantes... mais on peut ergoter... Gauss faisait-il des maths ou de l’algorithmie ?).
Ne pas écrire les éléments de preuve a essentiellement une origine économique. L’article http://web1.cs.columbia.edu/~junfeng/09fa-e6998/papers/sel4.pdf est très intéressant au niveau de la partie sur le coût du développement. SeL4 a coûté 4 hommes.ans à développer... auxquels s’ajoutent 20 hommes.ans pour les preuves de conformité. (9 en recherche, 11 en application à SeL4). Et l’article indique que SeL4 a été prouvé de façon plus économique que selon le standard du domaine où il serait question de 10k$/LOC (un surcoût inabordable pour beaucoup de projets).
==
Côté programmation graphique, il y a des environnements qui proposent un langage vraiment complet. Je connais LabView proposé par National Instrument pour développer des bancs de mesure. Mais sauf sur des cas simples, ce n’est pas forcément une réussite : un algorithme complexe devient un ensemble important d’opérateurs reliés par des fils... et par défaut, sans mnémomiques pour désigner les résultats intermédiaires.
==
Concernant le problèmes de traçabilité des bibliothèques utilisées dans les programmes, il existe des logiciels pour dresser le Software Bill of Materials (SBOM) comme https://github.com/anchore/syft ... certains outils vont même croiser ces inventaires avec des bases de vulnérabilité (CVE) afin de mieux maîtriser la sécurité. Effectivement, il y a un vrai enjeux et l’analyse d’un parc de logiciels suite à la vulnérabilité de Log4J a montré la nécessité d’être bien préparé.
==
Bien cordialement