7 points par GN⁺ 2025-07-25 | 1 commentaires | Partager sur WhatsApp
  • Le cours "Mathematics for Computer Science" du MIT OpenCourseWare fournit les bases mathématiques essentielles à l'informatique et au génie logiciel
  • Il couvre notamment la combinatoire, la théorie des graphes et les mathématiques discrètes, en mettant l'accent sur le renforcement des capacités de résolution de problèmes en informatique
  • Les supports de cours incluent notes de cours, exercices et solutions, ce qui en fait une ressource très utile pour un apprentissage pratique
  • Ce cours s'applique aussi bien à la pratique qu'à la recherche, dans des domaines comme la conception d'algorithmes, la théorie du calcul et la vérification d'erreurs
  • Gratuitement accessible, il est ouvert à tous et s'appuie sur le cursus standard du MIT

Aperçu du cours

  • Le cours "Mathematics for Computer Science" du MIT OpenCourseWare est un enseignement fondamental de mathématiques destiné aux étudiants en informatique et en génie électrique
  • Les principaux sujets abordés incluent la combinatoire, la théorie des graphes, les structures discrètes et les probabilités ; ils fournissent les bases de la justification logique des programmes et de l'analyse des algorithmes

Principaux domaines d'apprentissage

  • Mathématiques discrètes : met l'accent sur les structures mathématiques fondamentales des programmes, comme les nombres, les fonctions, les ensembles et la logique
  • Combinatoire et probabilités : aide à comprendre l'efficacité des algorithmes, l'aléatoire et la distribution des données
  • Théorie des graphes : joue un rôle important dans les structures de données et la modélisation des réseaux, ainsi que dans la recherche de chemins et les problèmes d'optimisation
  • Preuve de la correction des algorithmes : garantit la fiabilité des programmes grâce au raisonnement logique et à l'induction mathématique

Ressources pédagogiques

  • Notes de cours : organisation structurée, centrée sur les explications théoriques et les exemples
  • Exercices : incluent des problèmes de difficulté variée pour renforcer la capacité à appliquer les concepts dans chaque chapitre
  • Solutions : fournissent des explications permettant de vérifier les résultats après avoir résolu les problèmes soi-même

Applications et intérêt

  • Établit les bases dans des domaines comme l'informatique, la conception de systèmes, l'intelligence artificielle et l'ingénierie logicielle
  • Grâce à son accès gratuit, il offre de larges opportunités d'apprentissage aussi bien aux futurs développeurs qu'aux ingénieurs en activité et aux chercheurs
  • Structuré selon le cursus standard du MIT, il propose une expérience d'apprentissage conforme aux standards mondiaux

Remarques complémentaires

  • En cas d'utilisation de sites externes, leurs conditions d'utilisation et licences peuvent différer de celles du MIT OCW
  • Le MIT OCW n'assume aucune responsabilité concernant le contenu des sites externes

1 commentaires

 
GN⁺ 2025-07-25
Commentaires Hacker News
  • C’est assez incroyable que des cours d’université de tout premier niveau, en particulier un cours de maths approfondi de 31 heures, soient accessibles gratuitement à tout le monde. Mais j’ai toujours eu du mal à aller au bout des longues séries de cours. Je finis par chercher des vidéos courtes qui expliquent juste les concepts, mais du coup ça manque souvent de profondeur et j’abandonne en cours de route. J’ai l’impression que la motivation qu’apporte une vraie inscription à l’université compte beaucoup. Je me demande si certains ici ont déjà réussi à terminer seuls ce type de cours, et comment ils maintiennent leur régularité et leur autodiscipline. Dans le cas des plateformes de cours (Coursera, KhanAcademy, etc.), il y a au moins une certaine contrainte avec les dates limites, ce qui aide davantage à rester motivé. Je crois que je suis habitué à une manière d’étudier centrée sur les deadlines. Si certains cherchent des cours plus courts à cause d’un manque de concentration (même si c’est parfois moins approfondi), je recommande aussi la playlist YouTube Professor Dave Explains

    • J’aime les maths, j’ai même mené un doctorat jusqu’au bout, et je suis plutôt bon en autodiscipline, mais au début ce n’était pas facile d’étudier uniquement avec des cours vidéo. J’ai eu le sentiment qu’il fallait atteindre un certain seuil de connaissances de base avant de pouvoir apprendre de façon autonome avec ce format. Je pense qu’un élément important est de suivre un programme avec des pairs, et surtout d’avoir un mentor expérimenté. Sans mentor, il me semble difficile d’atteindre en maths un niveau permettant de vraiment progresser en autodidacte. Il faut absolument quelqu’un pour corriger les erreurs et montrer la voie. C’est un peu comme un professeur de piano. L’autre point essentiel, c’est le temps investi. Si l’on veut vraiment être à l’aise en algèbre linéaire, en analyse, en calcul différentiel et intégral, etc., il faut y consacrer plus de 10 heures par semaine pendant un an. Avec seulement 2 heures, on finit avec une compréhension superficielle et sans profondeur

    • À propos de l’idée que la motivation viendrait du fait d’être réellement inscrit à l’université, je pense que, dans la plupart des cas, le facteur principal est la prime salariale obtenue après le diplôme. Contrairement à un vrai étudiant du MIT, suivre seulement les cours en ligne ne vous rapproche pas d’un diplôme du MIT, donc la motivation est plus faible. Si vous êtes habitué à étudier avec des échéances, vous pouvez aussi vous imposer une pénalité, ou prendre un engagement envers quelqu’un et devoir payer un coût si vous n’allez pas jusqu’au bout. Il m’est arrivé de terminer seul des cours ou des livres, et ma motivation venait de la pure curiosité, ainsi que du fait que je déteste ignorer quelque chose ou faire semblant de savoir

    • À l’université, le temps passé à apprendre des cours avancés de CS avec mes professeurs et mes camarades a été l’une des périodes les plus heureuses de ma vie. Après le diplôme, on est absorbé par le travail, et comme il n’y a plus de correction par les professeurs, d’examens ou de questions-réponses, apprendre de nouvelles choses est devenu bien plus difficile. Je réfléchis à m’inscrire pour le plaisir à une université en ligne, et je me demande s’il existe des programmes à la fois en ligne et abordables, proposant des cours avancés en CS/ML, avec une vraie interaction avec les enseignants. Si vous avez des suggestions, je suis preneur

    • Ce cours m’a énormément aidé dans mon projet actuel (un visualiseur G-code et système de modélisation 3D pour OpenPythonSCAD). Je recommande aussi SICP (Structure and Interpretation of Computer Programs), Euclid's Elements en ligne, Motion Mountain, ainsi que LibriVox et Project Gutenberg. J’ai aussi de bons souvenirs d’enfance à chercher des livres et à lire par toutes sortes de canaux : une petite bibliothèque de campagne, la tour de livres d’une prison, ou encore un grand magasin situé à 26 miles de chez nous

    • En suivant le cours, j’ai trouvé difficile de terminer une leçon d’une traite parce qu’il me manquait de l’entraînement et de la pratique en maths. Pour combler les bases, je cherchais des explications sur d’autres sites, et j’écoutais une seule leçon répartie sur plusieurs jours, voire plusieurs semaines. L’important, c’est d’ajuster ses attentes. Il faut parfois s’arrêter sur un blocage, y réfléchir posément, ou laisser passer du temps jusqu’à ce que cela devienne plus naturel. Si l’on note simplement dans un fichier mémo ou sur papier ce qu’on a compris et ce qu’on n’a pas compris, puis qu’on persévère pendant plusieurs mois, on finit à un moment par voir le chemin

  • La liste des sujets du cours est disponible sur la page MIT OCW, et les notes de cours sont fournies ici. Je ne connais pas bien l’ensemble du cours, mais la dernière leçon, « Large Deviations », a quelque chose d’assez original. Personnellement, j’ai bien aimé le cours sur les « State machines », qui introduit le concept d’invariant avec des exemples faciles à comprendre comme le taquin 15 plutôt qu’avec des variables booléennes. Le manuel (PDF) est ici. Les problèmes sont eux aussi assez concrets. Par exemple, au lieu d’une algèbre booléenne aride, on y formalise les conditions dans lesquelles un système de fichiers se retrouve verrouillé

    • Le cours « Large Deviations » est un sujet intéressant, mais en pratique les notes ne définissent pas vraiment ce que sont les grandes déviations. On y voit un exemple de borne de Chernoff (exponentielle) pour la somme de variables aléatoires IID, mais l’expression « large deviations » elle-même n’est pas employée directement, ce qui est un peu dommage. Ce genre de bornes apparaît souvent en informatique, notamment dans la théorie de l’apprentissage récente

    • Chaque chapitre semble indépendant des autres. Je me demande donc si on peut les étudier dans n’importe quel ordre. Je pose la question pour vérifier, puisque la théorie des ensembles et autres servent normalement de base mathématique

  • Je me demande si certains ont déjà réussi une reconversion professionnelle grâce à OpenCourseware. J’ai l’impression qu’à l’époque des MOOC, malgré toute la communication autour du sujet, c’était en réalité davantage adapté à des personnes déjà très diplômées, à des apprenants très autonomes, ou à un public de hobbyistes. Ce n’est pas une critique ; moi aussi, entre le travail et les tâches ménagères, j’étudie l’informatique quantique par petits bouts, mais à ce rythme j’aurai l’impression de rattraper le niveau seulement dans quelques dizaines d’années

  • J’ai un léger rejet pour les intitulés de cours comme « Mathematics for Computer Science ». J’ai toujours considéré l’informatique comme une branche des mathématiques

    • En théorie je suis d’accord, mais dans l’industrie réelle on a besoin de bien plus d’ingénieurs logiciel que de diplômés en mathématiques, et presque personne n’entre en CS par intérêt mathématique. Du coup, le cursus de CS est très pragmatique : algorithmes principaux, structures de données, façon de coder en Python, etc., avec un accent sur ce qu’il faut savoir pour entrer dans la big tech

    • Il n’y aurait rien d’étrange à ce que chaque sous-discipline des mathématiques ait un cours intitulé « Mathematics for [spécialité] ». Je n’ai jamais eu à nommer un cours moi-même, mais sur le fond cela ressemble à d’autres cours de type « Intro to »

  • Je compte formaliser ce cours en Lean. Je ne sais pas encore à quel point ce sera difficile, mais si cela vous intéresse, rejoignez-moi sur le dépôt github

    • Ce travail correspond aussi très bien aux objectifs de l’initiative CSLib. Pour l’instant, je n’ai que ce post LinkedIn à partager

    • Je me demande ce qu’on gagne concrètement avec ce travail

  • J’aimerais qu’il y ait aussi un recueil d’exercices corrigés. Je me demande comment je suis censé vérifier mes réponses

    • En utilisant un LLM, on peut au moins obtenir quelques indications. Sinon, demander une réponse sur MathExchange est aussi une option
  • Les vidéos du cours sont disponibles sur MIT OCW et dans la playlist YouTube

  • Je me demande où trouver des solutions ou corrigés pour les problèmes de ce cours

  • Les sujets du cours sont intéressants, mais j’ai l’impression qu’il y a peu de choses vraiment indispensables pour un ingénieur logiciel ordinaire. Quand j’ai commencé à programmer, j’ai été surpris de voir à quel point le contenu mathématique intervenait peu dans le travail réel. Bien sûr, ces cours du MIT s’adressent aux computer scientists, pas aux software engineers. Dans les universités américaines, la distinction est assez nette

    • Si vous touchez un tant soit peu à la physique ou à la robotique, ce discours ne tient plus. Sans maths, on ne comprend plus rien

    • J’ai travaillé comme ingénieur logiciel à la fois avec et sans bagage mathématique, et dans les deux cas la nature de mes contributions et leur efficacité étaient complètement différentes

    • Le premier sujet est « Predicates, Sets, and Proofs », et moi aussi j’utilise souvent des prédicats et des ensembles dans la programmation quotidienne

    • Ce n’est pas parce que moi je ne les utilise pas que les autres ne les utilisent pas. Le génie logiciel ne peut pas exister sans l’informatique théorique

    • Même sans tout maîtriser en profondeur, je pense qu’une compréhension conceptuelle est indispensable pour écrire des programmes corrects par rapport à leur spécification. Les humains peuvent résoudre des problèmes algorithmiques de façon instinctive et ad hoc, mais les mathématiques apportent de la structure et de la rigueur à la pensée, et permettent de systématiser le problème pour rendre le processus de résolution presque mécanique. Rien qu’avec la théorie des ensembles, la logique et l’algèbre relationnelle, on comprend déjà beaucoup mieux le lien entre programmation et mathématiques. Je recommande Introductory Logic and Sets for Computer Scientists de Nimal Nissanke, ainsi que Understanding Formal Methods de Jean-Francois Monin

  • Attendez une seconde… la CS est à l’origine un diplôme de mathématiques. Ce titre donne l’impression d’être des mathématiques pour les mathématiques