Article original : 10 Best Computer Science Courses to Take in 2022

Par Elham Nazif

Vous cherchez les meilleures introductions à l'informatique ? J'ai classé les meilleurs cours disponibles en ligne, en suivant une méthodologie robuste. Et ils sont tous gratuits à auditer. Vous pouvez en lire plus ci-dessous.

Mais si vous êtes pressé, voici mes meilleurs choix. Cliquez sur l'un d'eux pour accéder directement aux détails du cours :

Classement & Cours Charge de travail En bref
1. Introduction à l'informatique de CS50 (Harvard) 100–200 heures Enquête complète et de très haute qualité sur l'informatique.
2. Pensée informatique pour la résolution de problèmes (Penn) 70 heures Acquérir l'état d'esprit et les méthodes de résolution de problèmes.
3. Introduction à l'informatique et à la programmation en utilisant Python (MIT) 80–140 heures Enquête complète sur l'informatique à travers le prisme de Python.
4. Principes de l'informatique (Rice) 40 heures Aperçu pratique des fondamentaux de l'informatique, comme les probabilités.
5. Informatique 101 (Stanford) 36 heures Enquête sur les principaux sujets de l'informatique, y compris le réseau.
6. Comment fonctionnent les ordinateurs de Coursera (UoL) 40 heures Vue de bas en haut du fonctionnement des ordinateurs.
7. Comprendre la technologie de CS50 (Harvard) 36 heures Les bases de la technologie, si vous n'êtes pas prêt pour le CS50 principal.
8. Introduction à l'informatique théorique (Udacity) 25 heures Théorie de la complexité et de la calculabilité.
9. Mathématiques pour l'informatique (UoL) 40 heures Aperçu complet des mathématiques pour l'informatique.
10. Mathématiques pour l'informatique (Université de Hull) 9 heures Excellente introduction aux mathématiques si vous commencez de zéro.

Qu'est-ce que l'informatique ?

La définition de l'informatique est presque aussi large que celle de la physique. Dire que l'informatique est l'étude des ordinateurs et des concepts de calcul est donc tout aussi 'utile' que de dire que la physique est l'étude de la nature et de ses phénomènes.

Au lieu de cela, je vais vous dire les principaux sous-domaines de l'informatique que la plupart des universités incluent dans leur programme.

Vous comprenez l'idée. Je suis sûr que vous avez déjà eu l'une de ces pensées intrigantes qui vous ont traversé l'esprit. Heureusement, ce sont les questions auxquelles l'informatique tente de répondre.

En étudiant l'informatique, vous pouvez devenir un meilleur programmeur. Tout comme un vétérinaire est susceptible de comprendre les animaux mieux que le propriétaire moyen d'un animal de compagnie, en étudiant l'informatique, vous pouvez mieux comprendre les caractéristiques, les capacités et les limitations de ces machines incroyables qui exécutent du code et que nous appelons 'ordinateurs'.

Méthodologie de classement des cours

J'ai suivi un processus en trois étapes pour établir ce classement :

Premièrement, permettez-moi de me présenter. Je fais partie de Class Central, le principal moteur de recherche pour les cours en ligne. J'ai (@elham) établi ce classement en collaboration avec mon ami et collègue @manoel, en suivant la même approche que nous avons utilisée avec un certain succès dans nos précédents classements des meilleurs cours de Python et meilleurs cours de machine learning. À ce stade, je dirais que c'est une méthode assez robuste.

Nous avons commencé à établir ce classement en regardant notre base de données de 50K+ cours en ligne. Nous nous sommes intéressés à des choses comme les notes, les avis et les signets de cours. Cela nous a permis de faire une première sélection. Donc cette phase était purement basée sur les données.

Cette première étape tentative a rapidement permis de faire émerger certaines des meilleures options disponibles. Le bouche-à-oreille est très efficace dans l'apprentissage en ligne. Les bons cours se font remarquer. Et les meilleurs attirent beaucoup d'attention et des avis enthousiastes.

Cela dit, les avis ne racontent pas toujours toute l'histoire. En fait, certains cours sont si bons pour attirer l'attention tôt qu'autres ressources excellentes peuvent passer inaperçues. Donc l'étape suivante a été d'intégrer notre connaissance personnelle de l'éducation en ligne.

Deuxièmement, nous avons utilisé notre expérience en tant qu'apprenants en ligne pour évaluer chacun de nos premiers choix.

Nous venons tous les deux de milieux informatiques et sommes des apprenants en ligne prolifiques, ayant terminé environ 45 MOOC entre nous. De plus, Manoel a un baccalauréat en ligne en informatique, et je suis actuellement en train de compléter ma formation en informatique.

Manoel a rassemblé les cours tandis que j'ai écrit l'article que vous lisez actuellement. Tout au long de ce processus, nous avons échangé des idées et apporté des améliorations itératives au classement jusqu'à ce que nous soyons tous les deux satisfaits du résultat final.

Troisièmement, lors de nos recherches, nous avons rencontré des cours qui semblaient bien faits mais qui n'étaient pas bien connus. Si nous avions adopté une approche purement centrée sur les données, nous aurions dû laisser ces cours hors du classement, ne serait-ce que parce qu'ils avaient moins d'inscriptions et de notes.

Mais non. Ce classement est délibérément subjectif et holistique. Lorsque nous étions convaincus qu'un cours méritait d'être inclus, même si le cours n'avait pas encore autant de critiques que certains de ses concurrents, nous avons suivi notre instinct et l'avons inclus.

Nous avons également diversifié la liste en incluant une grande variété de cours d'informatique qui, espérons-le, répondront à la diversité des apprenants, que vous soyez un vrai débutant ou quelqu'un ayant quelques bases en informatique, ou un intérêt pour des sujets spécifiques comme les mathématiques.

Après avoir suivi ce processus — combinant les données de Class Central, notre expérience d'apprenants tout au long de la vie, et beaucoup d'édition — nous sommes arrivés à notre classement final. Jusqu'à présent, nous avons passé plus de 10 heures à établir ce classement, et nous avons l'intention de continuer à le mettre à jour à l'avenir.

Statistiques du classement des cours

Voici quelques statistiques globales sur le classement :

  • Au total, les cours de ce classement ont accumulé plus de 5 millions d'inscriptions, avec 2 cours ayant chacun plus de 1 million d'inscriptions.
  • Le cours le plus populaire de la liste compte 3,5 millions d'inscriptions.
  • Tous les cours de ce classement sont soit entièrement gratuits, soit gratuits à auditer.
  • Avec 4 cours chacun, edX et Coursera sont à égalité pour le fournisseur le plus représenté dans ce classement.
  • Environ 480 000 personnes suivent les cours d'informatique sur Class Central.

Sans plus attendre, passons aux meilleurs choix.

1. Introduction à l'informatique de CS50 (Université Harvard)

Image Le professeur du cours, Prof. Malan, avec ses étudiants

Mon premier choix doit être Introduction à l'informatique de CS50, proposé par l'Université Harvard sur edX. Lancé sur edX en 2012, CS50 est le cours d'informatique sur Internet. Il est célèbre pour sa qualité de production splendide et ses mises à jour annuelles du programme.

Il fournit un aperçu succinct mais complet de ce qu'est l'informatique. Que vous soyez un novice qui n'a jamais entendu parler de 'Hello World !', ou un programmeur qui connaît une ou deux choses sur les ordinateurs, vous ressortirez de ce cours en ayant appris quelque chose de nouveau.

Une chose à noter

Bien que les exercices du cours existent en deux versions, facile et difficile, j'ai trouvé que même les exercices faciles peuvent être un peu délicats. Si vous ne connaissez rien à la programmation, je vous recommande de trouver quelqu'un pour étudier ce cours avec vous.

Heureusement, CS50 possède l'une des plus grandes et des plus actives communautés de cours en ligne : consultez leur Discord.

Ou si vous cherchez un cours plus court et plus pratique, vous pourriez vouloir jeter un coup d'œil à mon classement Python, qui inclut quelques introductions plus douces dans le monde de la programmation.

L'instructeur

Nous ne pouvons pas parler de CS50 sans mentionner David J. Malan, le professeur de Harvard qui enseigne le cours. Rarement un instructeur a été aussi instrumental dans le succès d'un cours.

Au-delà d'être un excellent éducateur, le Prof. Malan est un vrai divertisseur, avec une livraison presque parfaite. Et lorsque vous abordez un cours académique qui peut vous prendre des dizaines d'heures à compléter, avoir un instructeur capable de capter l'attention de l'apprenant fait une énorme différence.

Donc, si malgré un désir sincère d'apprendre, vous vous endormez en suivant des cours en ligne, celui-ci pourrait bien être le cours qu'il vous faut. L'énergie du Prof. Malan est contagieuse !

Ce que vous apprendrez

Le cours commence par le postulat que l'informatique est, à sa base, la résolution de problèmes. Il vous introduit au binaire, le langage fondamental des ordinateurs, et explique comment des séquences de 1 et de 0 peuvent représenter du texte, des images, des vidéos, et même des sons.

Vous apprendrez que les algorithmes sont des instructions étape par étape conçues pour résoudre un problème. Le type d'algorithmes le plus courant que vous rencontrerez tout au long du cours sont les algorithmes de tri et de recherche, comme le tri à bulles, le tri par fusion et la recherche binaire.

Vous pourriez vous demander, 'Quel est l'intérêt d'avoir de nombreux algorithmes différents s'ils font tous la même chose ?'. C'est alors que vous apprendrez à mesurer l'efficacité d'un algorithme avec la notation Big O.

Le premier langage de programmation que le cours enseigne est le langage convivial pour débutants, Scratch. Grâce à la programmation par blocs, vous utiliserez Scratch pour illustrer des concepts de programmation fondamentaux comme les fonctions, les instructions conditionnelles, les expressions booléennes, les boucles et les variables.

Plus tard dans le cours, vous remarquerez que ces concepts fondamentaux reviennent sans cesse, car ils se retrouvent dans presque tous les langages de programmation que CS50 vous enseignera.

Le cours enlève ensuite vos roues d'entraînement et vous plonge dans les profondeurs des langages de programmation de bas niveau. Par 'bas niveau', je ne veux pas dire 'moins précieux'. En informatique, les langages de programmation de bas niveau sont des langages proches du code machine : plus ils sont proches du code machine, plus ils sont 'bas'.

Le langage d'assemblage est aussi proche que nous pouvons l'être du binaire, et le cours en discutera brièvement. Mais notre première plongée profonde dans la programmation traditionnelle (écrire des lignes de code au lieu d'arranger des blocs colorés comme avec Scratch) se fera avec C, un langage de programmation de bas niveau où vous gérerez la mémoire à la main et implémenterez vos premières structures de données.

Vous apprendrez que les ordinateurs stockent les données dans des séquences d'emplacements en mémoire, et comment les ordinateurs peuvent localiser et accéder aux données avec des adresses et des pointeurs. Vous apprendrez également les différentes façons dont nous pouvons créer et stocker des listes de valeurs, comme les tableaux, les listes chaînées et les arbres.

Vous comparerez les avantages et les inconvénients de chaque structure de données. Par exemple, les tables de hachage peuvent être accessibles en temps constant, mais nécessitent de mitiger le risque de collision de données.

Vous serez ensuite ramené à la surface vers la programmation 'de haut niveau', où vous pourrez respirer confortablement en commençant à travailler avec Python, et en continuant à sauter d'un sujet à l'autre.

Vous explorerez SQL, le langage de programmation de nombreuses bases de données. Les dernières semaines du cours culminent avec la construction et la conception d'un site web interactif avec HTML, CSS, JavaScript et un framework Python appelé Flask.

Comment vous apprendrez

Le cours dure dix semaines, plus un projet final ouvert qui peut prendre une semaine supplémentaire (ou plus, si vous voulez travailler sur quelque chose de vraiment ambitieux).

Le cours est enregistré annuellement sur le campus de Harvard avant d'être lancé en ligne le printemps suivant. Pendant l'enregistrement, vous pourriez pouvoir rejoindre via un flux en direct avec une centaine d'autres apprenants, ou si vous vivez près du campus, même assister en personne — bien que la pandémie puisse empêcher cela pour un avenir prévisible. Sinon, vous aurez accès à des enregistrements à la demande sur edX ou via Harvard OCW.

En ce qui concerne les évaluations, vous complèterez dix séries de problèmes, huit laboratoires et un projet final de fin de cours que vous devrez concevoir et réaliser vous-même ou avec une équipe. Vous pourrez coder et soumettre ces travaux via un éditeur pratique basé sur VS Code dans le navigateur.

Institution Université Harvard
Fournisseur edX
Instructeurs David J. Malan, Brian Yu
Niveau Débutant
Charge de travail 100–200 heures au total
Inscriptions 3,4M
Certificat Gratuit et payant (voir ci-dessous)

Lignée CS50

Beaucoup de gens ont entendu parler de l'Introduction à l'informatique de CS50, mais peu réalisent qu'il existe 10 autres cours sous la marque CS50. Voici quelques cours de suivi qui méritent d'être mentionnés :

Ce qui est encore mieux : beaucoup de ces cours offrent un certificat gratuit. Si vous souhaitez en savoir plus sur les cours CS50 et comment obtenir un certificat gratuit, vous pouvez lire le guide CS50 de Manoel.

Faits amusants

  • L'instructeur du cours, David J. Malan, enseigne CS50 depuis 15 ans, d'abord sur le campus de Harvard, et sur edX depuis 2012.
  • CS50 a été ajouté aux favoris environ 30 000 fois et compte plus de 100 avis sur Class Central.
  • Chaque année, CS50 organise Puzzle Day, une compétition amicale de résolution de problèmes où vous aurez l'occasion de collaborer avec des apprenants du monde entier.
  • CS50 fait partie de notre liste des cours les plus populaires de tous les temps et des meilleurs cours gratuits de tous les temps.
  • David J. Malan était le fondateur et président de Diskaster, une entreprise de récupération de données de disques durs et de cartes mémoire. L'un des exercices du cours est un clin d'œil à son travail précédent.
  • CS50 est le cours le plus long de ce classement, grâce à son exhaustivité.

Si vous êtes intéressé par ce cours, vous pouvez trouver plus d'informations sur le cours et comment vous inscrire ici.

2. Pensée informatique pour la résolution de problèmes (Université de Pennsylvanie)

Image Les instructeurs du cours, Susan Davidson et Chris Murphy

Mon deuxième choix serait Pensée informatique pour la résolution de problèmes de l'Université de Pennsylvanie sur Coursera.

Ce cours se concentre sur les compétences sous-jacentes à l'informatique — la pensée informatique.

La pensée informatique est le processus de décomposition d'un problème en parties, puis de trouver une méthode de résolution qui peut être exécutée par un ordinateur.

Une fois que vous aurez adopté la pensée informatique, vous serez dans le bon état d'esprit pour aborder des cours supplémentaires en informatique. Vous pourriez donc voir ce cours comme une fondation avant la fondation. Cela dit, si votre intérêt réside dans la résolution de problèmes en tant que telle plutôt que dans l'informatique dans son ensemble, ce cours devrait également être un excellent choix.

Vous n'avez besoin d'aucune expérience préalable en informatique ou en programmation pour suivre ce cours, bien que quelques connaissances de base en mathématiques de lycée seraient utiles.

Ce que vous apprendrez

Le cours couvre quatre sujets principaux : la pensée informatique, les algorithmes, l'architecture des ordinateurs et Python.

Tout d'abord, le cours décrit les quatre piliers de la pensée informatique. Vous commencerez par la décomposition, en décomposant un problème complexe en problèmes plus petits et plus simples. Ensuite, grâce à la reconnaissance de motifs, vous comparerez le problème à d'autres problèmes similaires qui ont été résolus précédemment.

Par la suite, lors de la représentation des données et de l'abstraction, vous simplifierez encore plus le problème en identifiant les caractéristiques du problème qui sont importantes et en filtrant celles qui ne le sont pas.

Le dernier pilier de la pensée informatique, les algorithmes, forme la deuxième section du cours. Le cours définit les algorithmes comme un ensemble d'instructions étape par étape pour résoudre un problème. Avec les algorithmes, vous pouvez enseigner à l'ordinateur comment résoudre des problèmes sans lui dire explicitement comment faire. Au lieu de cela, votre algorithme sera capable de gérer un certain nombre de cas différents, tant que ceux-ci satisfont certaines préconditions.

Vous explorerez une variété d'algorithmes, comme la recherche linéaire et binaire. Vous apprendrez comment représenter les algorithmes avec des organigrammes, analyser la complexité des algorithmes (Big O), et calculer le nombre de solutions possibles à un problème d'optimisation. Enfin, vous comparerez les avantages et les limitations des approches algorithmiques courantes pour la résolution de problèmes.

La troisième partie du cours donne un bref historique des ordinateurs, avant de se concentrer sur l'architecture des ordinateurs utilisée par les ordinateurs modernes — l'architecture Von Neumann.

Elle se compose de trois unités fondamentales : la mémoire, le CPU et les E/S. Vous apprendrez comment les données et les instructions sont stockées et accessibles dans les ordinateurs sous forme de bits et d'octets, et aussi comment l'exécution de code revient à déplacer des morceaux de données en mémoire et à les traiter dans le CPU.

Dans la quatrième et dernière section, le cours vous instruira sur les bases de la programmation Python. Vous explorerez les itérations, les classes et le débogage. Et vous terminerez le cours en codant votre propre programme Python, où vous pourrez implémenter les algorithmes que vous avez appris précédemment en code.

Comment vous apprendrez

Le cours dure 4 semaines, chaque semaine ayant environ 18 heures de matériel de cours. Vous apprendrez principalement à partir de conférences vidéo, et après chaque vidéo, il y aura un court quiz pour tester votre rappel. Il y a du matériel supplémentaire disponible sur les mathématiques, pour ceux qui ne sont pas très confiants dans leurs capacités mathématiques.

À la fin de chaque semaine, vous serez présenté à une étude de cas où vous verrez des exemples de pensée informatique utilisés pour résoudre des problèmes de la vie réelle. Ensuite, vous complèterez un projet où vous appliquerez ce que vous avez appris. Notez que les évaluations de ce cours sont pour les apprenants vérifiés.

Institution Université de Pennsylvanie
Fournisseur Coursera
Instructeurs Susan Davidson et Chris Murphy
Niveau Débutant
Charge de travail 70 heures au total
Inscriptions 74K
Note 4,7 / 5,0 (1K)
Certificat Payant

Faits amusants

  • Ce cours est recommandé par Google, qui a décidé de l'inclure dans son Digital Garage, une collection de cours et de ressources pour les apprenants souhaitant acquérir des compétences technologiques.
  • La Prof. Susan Davidson de Penn, l'instructrice du cours, a été nommée Fellow de l'American Association for the Advancement of Science en 2021.
  • La Prof. Davidson enseigne également certains des cours du Master en informatique et technologie de l'information (MCIT) de Penn, qui est proposé en ligne via Coursera.

Si vous êtes intéressé par ce cours, vous pouvez trouver plus d'informations sur le cours et comment vous inscrire ici.

3. Introduction à l'informatique et à la programmation en utilisant Python (Institut de technologie du Massachusetts)

Image Prof. Eric Grimson, instructeur du cours

Mon troisième choix pour le meilleur cours d'informatique est Introduction à l'informatique et à la programmation en utilisant Python, proposé par le MIT sur edX.

Ce cours aborde le domaine de l'informatique et de la programmation à travers Python. Le cours se concentre sur la largeur plutôt que sur la profondeur, donnant aux étudiants des connaissances de base sur les nombreuses applications du calcul.

Donc, ce cours est similaire à notre premier choix en ce sens qu'il s'agit d'un cours d'enquête : il couvre beaucoup de choses, mais pas en détail. Mais il est différent en ce sens qu'il se concentre entièrement sur un langage de programmation, Python, tandis que le cours de Harvard implique plusieurs langages.

Selon vos objectifs, cette concentration sur Python pourrait être vue comme un point positif ou négatif. Pour ce qu'il vaut, je crois que Python est un excellent premier langage de programmation.

Attention ! Ce cours essaie de refléter l'expérience sur le campus du MIT, donc ne vous attendez pas à une promenade de santé. Vous n'aurez besoin d'aucune expérience préalable en informatique ou en programmation pour le suivre, mais vous aurez besoin d'un bagage en mathématiques de lycée.

Ce que vous apprendrez

Les principaux sujets que le cours explore sont la pensée informatique, les structures de données, l'itération et la récursion, la décomposition, l'abstraction, et les algorithmes et la complexité.

Vous recevrez une brève introduction à la computation et à la pensée informatique. Vous apprendrez ce que sont les ordinateurs, comment ils fonctionnent et quelles sont leurs limitations.

En comprenant que les ordinateurs ne savent que ce que vous leur dites (et ce qu'ils peuvent déduire de ce que vous leur dites), vous réaliserez que pour que l'ordinateur accomplisse une tâche, ils ont besoin d'une 'recette' contenant une séquence d'instructions qu'ils doivent suivre. C'est ce que les informaticiens appellent un algorithme.

Votre voyage en programmation commence par l'apprentissage de Python et de sa syntaxe de base. Avec Python, vous explorerez des concepts communs à la plupart des langages de programmation. Ceux-ci incluent les variables, les instructions conditionnelles et les flux de contrôle.

De plus, vous serez introduit aux fonctions et au rôle qu'elles jouent dans la décomposition, l'abstraction et la récursion, qui sont des concepts fondamentaux pour la résolution de problèmes en informatique.

À ce stade, vous devriez être capable de coder des programmes simples qui peuvent trouver des solutions approximatives à des équations mathématiques difficiles grâce à une méthode de devinette et de vérification.

Enfin, vous apprendrez les différentes façons dont nous pouvons représenter l'information en Python, appelées structures de données. Vous travaillerez avec des listes, des tuples et des dictionnaires, et comprendrez quand utiliser une structure de données plutôt qu'une autre.

Comment vous apprendrez

Le cours dure 9 semaines avec une charge de travail attendue de 14 à 16 heures chaque semaine. Le principal mode d'apprentissage est les conférences vidéo, et le cours inclut de nombreuses activités pour mettre en pratique vos compétences durement acquises. Vous aurez également accès à un forum d'apprenants où vous pourrez discuter avec d'autres apprenants.

Il y a 3 séries de problèmes contenant des exercices de codage difficiles qui vous aideront à consolider vos connaissances. Si vous êtes un apprenant vérifié, vous devrez compléter un examen intermédiaire et un examen final chronométrés afin de recevoir votre certificat.

Institution Institut de technologie du Massachusetts
Fournisseur edX
Instructeurs John Guttag, Eric Grimson, Ana Bell
Niveau Intermédiaire
Charge de travail 80–140 heures au total
Inscriptions 1,5M
Certificat Payant

Faits amusants

Si vous êtes intéressé par ce cours, vous pouvez trouver plus d'informations sur le cours et comment vous inscrire ici.

4. Principes de l'informatique (Partie 1) (Université Rice)

Image Prof. Scott Rixner, instructeur du cours

Principes de l'informatique (Partie 1), par l'Université Rice sur Coursera, est mon quatrième choix pour la meilleure introduction à l'informatique. Le cours met l'accent sur le faire plutôt que sur le regarder, vous demandant de compléter de nombreuses affectations de codage.

Ce cours vise à vous aider à améliorer vos compétences en programmation en vous enseignant la résolution de problèmes informatiques, une compétence qui sous-tend l'informatique, et qui était également le focus de notre deuxième choix. Cela impliquera d'apprendre des pratiques de programmation importantes et de développer une base mathématique pour la résolution de problèmes.

Pour suivre ce cours, vous devrez être à l'aise avec l'écriture de petits programmes (100+ lignes) en Python, ainsi qu'avoir quelques connaissances en mathématiques de lycée. Donc, celui-ci ne commence pas de zéro, et est donc destiné aux apprenants qui ont également quelques bases.

Si vous cherchez un cours de résolution de problèmes avec moins de prérequis, vous pourriez vouloir jeter un coup d'œil à notre deuxième choix.

Ce que vous apprendrez

Le cours comprend des rappels sur Python, les tests de code, les probabilités et l'aléatoire, la combinatoire et la croissance des fonctions.

Après une brève révision de Python, le cours expliquera comment construire des tests et pourquoi avoir des tests pour vos programmes Python peut être utile.

De nombreux programmeurs n'aiment pas ou ne se donnent simplement pas la peine d'écrire des tests pour leur code, mais comme l'explique l'un des instructeurs, c'est une meilleure pratique à traiter comme une partie intégrale du processus de programmation.

Écrire des tests vous aidera à économiser du temps et des efforts, et sert de vérification de santé réutilisable que votre programme fait réellement ce qu'il est censé faire. Pour votre premier mini-projet, vous recréerez le jeu bien connu 2048 en Python.

Ensuite, le cours passe au rôle de la probabilité et de l'aléatoire en informatique. Vous apprendrez à identifier les résultats déraisonnables en probabilité, ainsi qu'à calculer la valeur attendue de plusieurs résultats.

Par exemple, quelle est la chance qu'un dé roule sept six sur dix lancers ? Et si cela devait arriver, dans quelle mesure pourrions-nous conclure que le dé est truqué — c'est-à-dire que les lancers étaient injustes ?

Vous verrez également comment nous pouvons utiliser Python pour simuler la probabilité des résultats, un outil précieux utilisé dans la modélisation statistique. Et pour votre deuxième mini-projet, vous travaillerez avec des probabilités pour créer un adversaire auquel vous pourrez faire face dans un jeu de Tic-Tac-Toe.

Le cours aborde également la combinatoire, qui traite des énumérations, des permutations et des combinaisons. Vous découvrirez comment calculer le nombre total de façons dont un événement peut se dérouler.

Cela aide grandement à calculer le nombre d'étapes qu'un algorithme prendrait, permettant ainsi d'estimer le temps d'exécution de l'algorithme, et à son tour, de déterminer si l'algorithme serait intéressant à implémenter. Vous pouvez voir pourquoi la combinatoire joue un rôle majeur dans la sécurité des mots de passe et des ordinateurs. Pour votre troisième mini-projet, vous coderez le jeu de dés familier Yahtzee.

Dans la dernière partie du cours, vous apprendrez l'importance du comptage dans la résolution de problèmes complexes. Le comptage répond à la question de savoir combien de temps un algorithme pourrait prendre pour s'exécuter étant donné une tâche. Un autre nom pour le comptage auquel vous pourriez être plus familier est la 'complexité temporelle'.

Vous apprendrez également les fonctions d'ordre supérieur en Python, c'est-à-dire les fonctions qui prennent d'autres fonctions comme algorithmes, comme la fonction map. Dans votre dernier mini-projet, vous utiliserez ces concepts pour créer votre propre version de Cookie Clicker.

Comment vous apprendrez

Le cours est divisé en 5 semaines, chaque semaine impliquant 7 à 10 heures d'étude. Vous apprendrez principalement par le biais de conférences vidéo et de devoirs notés, bien que le cours fournisse des notes et des activités supplémentaires pour une lecture et une pratique approfondies.

Vous coderez et soumettrez les devoirs et les mini-projets sur leur site compagnon CodeSkulptor, un éditeur de code dans le navigateur qui éliminera le besoin de configurer un environnement de codage local.

Institution Université Rice
Fournisseur Coursera
Instructeurs Scott Rixner, Joe Warren, Luay Nakhleh
Niveau Intermédiaire
Charge de travail 40 heures au total
Inscriptions 30K
Note 4,7 / 5,0 (600)
Certificat Payant

Faits amusants

  • Le cours a environ 15k signets sur Class Central.
  • Ce cours est le troisième de sept cours qui composent la Spécialisation Fondamentaux de l'informatique. Après avoir reçu le certificat de spécialisation, vous aurez complété 20+ projets, y compris un projet de synthèse.
  • Si vous n'êtes pas intéressé à suivre une spécialisation complète après ce cours, mais que vous souhaitez en savoir plus sur le sujet du cours, comme le nom du cours l'implique, il y a un cours de suivi : Principes de l'informatique (Partie 2).
  • L'instructeur du cours, le Prof. Scott Rixner, est directeur de la faculté de deux programmes de diplôme en ligne à l'Université Rice. Donc son engagement envers l'éducation en ligne s'étend au-delà de la portée de ses propres MOOC.

Si vous êtes intéressé par ce cours, vous pouvez trouver plus d'informations sur le cours et comment vous inscrire ici.

5. Informatique 101 (Université Stanford)

Image Prof. Nick Parlante, instructeur du cours

L'informatique 101 vise à démystifier la magie des ordinateurs en démontrant qu'ils fonctionnent en suivant quelques motifs relativement simples.

Ce cours vous aidera à vous familiariser avec ces motifs. Il donnera un aperçu de la façon dont les ordinateurs fonctionnent et quelles sont leurs limitations.

De plus, le cours aborde le réseau et d'autres sujets majeurs de l'informatique. Aucune connaissance préalable en informatique n'est requise !

Ce que vous apprendrez

Le cours commence par l'équation fondamentale des ordinateurs : Ordinateur = Puissant + Stupide. Les ordinateurs sont puissants car ils peuvent effectuer des milliards d'opérations par seconde. Mais ils sont stupides car ils ont besoin de quelqu'un pour leur dire quoi faire. C'est là que les programmeurs entrent en jeu.

Ce cours utilise de petits extraits de JavaScript pour vous initier à la programmation et à d'autres concepts d'informatique. Vous acquerrez une compréhension des concepts de programmation comme les variables, les boucles et les itérations, les instructions conditionnelles, et ainsi de suite. Le cours aborde ensuite les langages de bas niveau et de haut niveau, ainsi que les compilateurs et les interpréteurs.

L'ordinateur est un outil et le programmeur manie l'outil. Par conséquent, pour programmer efficacement, il est important de comprendre comment fonctionne l'outil. Le cours couvre de nombreux aspects de cet outil, y compris le matériel. Vous apprendrez les parties qui composent un ordinateur et verrez comment les ordinateurs peuvent représenter différents formats d'information.

Le format principal avec lequel vous travaillerez est les images. L'une des choses que vous ferez est de 'greenscreen' des images ainsi que de transformer des images en couleur en niveaux de gris en opérant au niveau des pixels individuels.

Un autre sujet que le cours aborde est les réseaux informatiques, c'est-à-dire comment les ordinateurs communiquent entre eux. Vous apprendrez les différents types de réseaux.

Vous étudierez ce que sont les adresses IP et comment elles permettent aux ordinateurs de se localiser mutuellement. Le cours discute de la manière dont les ordinateurs transmettent des informations par le biais de paquets de données, ainsi que du protocole de communication sur lequel fonctionne Internet — TCP/IP.

Le cours aborde également brièvement une variété d'autres sujets comme les bases de données et les feuilles de calcul, la sécurité informatique, et les données analogiques et numériques.

Comment vous apprendrez

Le cours dure 6 semaines, chaque semaine prenant 4 à 6 heures à compléter. Les leçons sont fournies par le biais de conférences vidéo et sont complétées par des notes et des évaluations. Cependant, vous devrez être un apprenant vérifié pour accéder aux évaluations.

Institution Université Stanford
Fournisseur edX
Instructeur Nick Parlante
Niveau Débutant
Charge de travail 36 heures au total
Inscriptions 100K
Certificat Payant

Faits amusants

  • L'instructeur remercie Google pour avoir soutenu ses premières recherches dans la création de la classe. Je pense que cela vaut pour nous tous !
  • Ce cours a 3k signets sur Class Central.
  • L'instructeur du cours, Nick Parlante, s'intéresse actuellement à CodingBat Java, un outil expérimental en ligne pour la pratique du code.

Si vous êtes intéressé par ce cours, vous pouvez trouver plus d'informations sur le cours et comment vous inscrire ici.

6. Comment fonctionnent les ordinateurs (Université de Londres)

Image Dr. Marco Gillies, instructeur du cours

Ce cours concis enseigné par l'Université de Londres sur Coursera aborde quelques sujets clés en informatique, mais il s'intéresse principalement à vous aider à construire une compréhension fondamentale du matériel. C'est dans le titre vraiment : à la fin du cours, vous saurez comment fonctionnent les ordinateurs.

Et à travers cette compréhension, vous formerez également une image plus claire de la manière dont les ordinateurs peuvent être utilisés pour aider à résoudre les problèmes quotidiens.

Le cours est tout aussi adapté à quelqu'un souhaitant construire des bases solides pour des études supplémentaires en informatique, qu'à quelqu'un simplement curieux de savoir comment fonctionnent les ordinateurs et souhaitant explorer quelques sujets clés en informatique mais pas nécessairement une plongée en profondeur.

Vous n'avez pas besoin de connaissances préalables en informatique pour suivre ce cours.

Ce que vous apprendrez

Ce cours couvre le matériel informatique, l'abstraction, la modularité, les réseaux informatiques et la communication.

Le cours commence par l'abstraction — l'art d'attirer l'attention sur les détails importants tout en filtrant le bruit. De nombreuses disciplines reposent sur l'abstraction, et l'informatique le fait abondamment, tant au niveau matériel que logiciel.

Ce concept deviendra apparent lorsque le cours commencera à discuter du matériel informatique, comme la mémoire, le CPU et d'autres dispositifs. Vous utiliserez des machines notionnelles comme moyen de capturer ces abstractions.

Ensuite, vous passerez à une autre idée clé : l'état et la modularité. Cela vous aidera à répondre à la question, 'Pourquoi éteindre et rallumer mon ordinateur résout-il la plupart des problèmes ?'

En utilisant des machines notionnelles, vous expliquerez comment les applications informatiques fonctionnent en passant par différents états, et comment la modularité leur permet d'interagir avec d'autres applications. Vous apprendrez à déboguer des choses, une compétence très utile en effet.

Ensuite, vous apprendrez comment les ordinateurs communiquent entre eux sur Internet via des réseaux et des protocoles de communication. Vous apprendrez également les types de menaces de sécurité auxquelles les ordinateurs (et les utilisateurs) sont confrontés, et comment vous protéger des acteurs malveillants.

Enfin, vous explorerez le développement web de base. En appliquant vos nouvelles connaissances en abstraction, état et modularité, vous serez en mesure de comprendre clairement comment fonctionnent les sites web.

Comment vous apprendrez

Le cours dure 4 semaines, avec 10 heures de matériel par semaine. Il se compose de conférences vidéo et de quiz pour tester vos connaissances du matériel. Vous aurez l'occasion de partager vos pensées dans des prompts de discussion.

Institution Université de Londres
Fournisseur Coursera
Instructeur Marco Gillies
Niveau Débutant
Charge de travail 40 heures au total
Inscriptions 25K
Note 4,6 / 5,0 (440)
Certificat Payant

Faits amusants

Si vous êtes intéressé par ce cours, vous pouvez trouver plus d'informations sur le cours et comment vous inscrire ici.

7. Comprendre la technologie de CS50 (Université Harvard)

Image Prof. Malan (encore !), instructeur du cours

Il s'agit d'un autre cours de la famille CS50. Mais contrairement à notre premier choix, qui est le cours principal CS50, ce cours est destiné à ceux qui travaillent avec la technologie tous les jours mais ne comprennent pas comment tout fonctionne sous le capot ou comment résoudre les problèmes lorsque quelque chose ne va pas. Et il est également destiné à ceux qui ne travaillent pas (encore) avec la technologie — plus particulièrement, les ordinateurs — mais qui souhaiteraient néanmoins comprendre son fonctionnement.

Le cours vise à combler les lacunes dans vos connaissances sur le matériel, l'internet, le multimédia, la programmation et le développement web, vous préparant ainsi à la technologie d'aujourd'hui et de demain.

Ce cours n'a pas de prérequis.

Ce que vous apprendrez

Le cours commence par une introduction au langage des ordinateurs, le binaire. Il explique comment les ordinateurs utilisent le binaire pour représenter du texte et d'autres informations. Ensuite, vous passerez au matériel de l'ordinateur : CPU, RAM et mémoire principale. Vous apprendrez les fonctions de chacun de ces composants.

Le cours traite de l'Internet et du multimédia, ainsi que des technologies qui les sous-tendent. Il vous expliquera comment les ordinateurs peuvent se trouver et communiquer entre eux. Vous apprendrez le protocole Internet courant TCP/IP et plus encore.

Vous apprendrez les différentes représentations de données du multimédia, comme l'audio, les images et la vidéo. Il existe de nombreux formats de fichiers et techniques de compression — le cours vous donnera un aperçu de certains des principaux.

Ensuite, vous apprendrez à rester en sécurité sur Internet. Vous découvrirez plusieurs façons de protéger vos données et votre vie privée. Cette section inclura des leçons sur les cookies, les mots de passe, l'authentification à deux facteurs, le chiffrement, et plus encore.

Vous continuerez avec les bases du développement web. Vous apprendrez comment les navigateurs web accèdent au web avec des requêtes HTTP. Avez-vous déjà vu une erreur 404 ou 500 en essayant de visiter une page web ? Vous avez probablement déjà vu cela. Eh bien, dans ce cours, vous apprendrez ce que signifient ces erreurs. Un aperçu des langages qui nous permettent de construire et de styliser des pages web, HTML et CSS, est fourni.

Enfin, mais non des moindres, vous découvrirez les bases de la programmation. Vous utiliserez principalement le langage basé sur des blocs, Scratch, pour explorer des concepts communs à presque tous les langages de programmation, comme les variables, les expressions, les boucles, et ainsi de suite.

De plus, pour démontrer ce qu'est un algorithme (et plus spécifiquement le paradigme diviser-pour-régner), vous regarderez l'instructeur déchirer un annuaire en deux moitiés… Je devais mentionner cela parce que c'est à la fois très instructif et mémorable !

Comment vous apprendrez

Le cours dure 6 semaines, chaque semaine prenant de 2 à 6 heures à compléter, selon votre familiarité préalable avec le contenu. Chaque semaine contient au moins une heure de conférence.

En ce qui concerne les évaluations, vous devrez compléter une affectation pour chacun des six sujets présentés dans le cours afin d'obtenir un certificat.

Institution Université Harvard
Fournisseur edX
Instructeur David J. Malan
Niveau Débutant
Charge de travail 36 heures au total
Inscriptions 100K
Certificat Gratuit et payant (voir ci-dessous)

Faits amusants

  • Après avoir suivi ce cours, vous serez plus que prêt à aborder CS50, notre choix n°1.
  • Ce cours a 1,6k signets sur Class Central.
  • Un autre fait sur David J. Malan, l'instructeur du cours : il est un membre actif du SIGCSE, la branche de l'ACM concernée par l'éducation en informatique.

Si vous êtes intéressé par ce cours, vous pouvez trouver plus d'informations sur le cours et comment vous inscrire ici.

8. Introduction à l'informatique théorique (Udacity)

Image Capture d'écran du cours

Pour ceux qui ont une certaine familiarité avec la programmation et les algorithmes, et qui souhaitent approfondir leur compréhension de la résolution de problèmes en informatique, ce cours rigoureux mais perspicace pourrait être ce que vous cherchez.

Proposé par Udacity, Introduction à l'informatique théorique explore ce qui rend un problème 'difficile' à résoudre, même pour un ordinateur. Ensuite, il montre comment réduire et simplifier ces problèmes 'difficiles' pour les rendre plus faciles à résoudre par le calcul.

Ce que vous apprendrez

Le cours couvre deux principaux domaines de l'informatique théorique : la théorie de la complexité et la calculabilité.

La théorie de la complexité demande combien de ses ressources, comme le temps ou la mémoire, un ordinateur nécessitera pour résoudre un problème. La calculabilité, en revanche, demande si un ordinateur peut résoudre un problème du tout, même lorsqu'on lui donne plus de temps et de mémoire.

Le cours vous présente une variété de problèmes du monde réel issus des télécommunications, de la bioinformatique et de la finance. Vous reconnaîtrez ce qui rend un problème difficile, et la valeur de reconnaître de tels problèmes. Cela vous préparera à comprendre ce qu'est la NP-complétude. Ensuite, vous comprendrez ce qui rend un problème 'difficile' à résoudre, et serez capable de le prouver.

Le reste du cours discute de ce qu'il faut faire avec le problème une fois que nous avons prouvé qu'il est difficile (ou même impossible à résoudre).

L'une des façons de surmonter cet obstacle est d'employer des algorithmes efficaces et intelligents. Une autre façon est d'accepter que le problème ne soit peut-être pas parfaitement résoluble, et de trouver plutôt une solution approximative. Et encore une autre façon est d'utiliser l'aléatoire et la probabilité pour explorer et trouver une solution.

Vous serez en mesure de décrire et d'utiliser ces techniques dans des situations pratiques : le cours discute de la théorie mais il est également pratique.

Enfin, vous passerez à des problèmes qu'aucun ordinateur ne peut jamais résoudre en théorie. Vous apprendrez l'indécidabilité et reconnaîtrez les limites de la calculabilité.

Comment vous apprendrez

Le cours dure 8 semaines, avec un total de 14 heures de conférences vidéo. Certaines vidéos ont un quiz pour vous aider à pratiquer le rappel de ce que vous avez appris. Il y a 7 chapitres, et à la fin de chaque chapitre, vous complèterez une série de problèmes pour mettre vos nouvelles compétences à bonne utilisation.

Enfin, il y a un examen sommatif à la fin du cours.

Fournisseur Udacity
Instructeurs Sebastian Wernicke, Sean Bennett, Sarah Norell
Niveau Intermédiaire
Charge de travail 25 heures
Certificat Aucun

Faits amusants

  • Ce cours a 2,2k signets sur Class Central.
  • L'un des instructeurs du cours, Sebastian Wernicke, a parlé à plusieurs reprises à TED.
  • Pour aborder ce cours, vous pourriez vouloir apprendre d'abord les algorithmes. Les instructeurs recommandent un autre cours Udacity sur les algorithmes comme rappel. De plus, de bonnes bases en mathématiques seraient également utiles. Consultez nos choix ci-dessous si nécessaire.

Si vous êtes intéressé par ce cours, vous pouvez trouver plus d'informations sur le cours et comment vous inscrire ici.

9. Mathématiques pour l'informatique (Université de Londres)

Image Dr. Sara Santos, co-instructrice du cours

Proposé par l'Université de Londres, ce cours vous introduit aux mathématiques et à la pensée mathématique que les informaticiens utilisent dans leur travail. Ce qui distingue ce cours des autres cours de mathématiques, c'est son côté ludique, avec des exercices amusants et interactifs.

Plus spécifiquement, le cours combine des éléments d'algèbre, d'analyse et de géométrie — des sujets soigneusement choisis pour servir de colonne vertébrale à votre éducation en informatique.

Le cours traite, entre autres, des bases numériques, un sujet essentiel pour comprendre le binaire, et de la conversion entre le binaire et d'autres bases, comme l'hexadécimal. Il explore les progressions numériques, comme la célèbre suite de Fibonacci. Et il abordera la géométrie et le traçage de fonctions.

À la fin du cours, vous aurez acquis les bases nécessaires pour comprendre les mathématiques qui sous-tendent d'autres cours d'informatique, et vous serez prêt à aborder des sujets mathématiques plus avancés.

Le cours suppose que vous connaissez quelques mathématiques de lycée ainsi que la programmation Python de base.

Ce que vous apprendrez

Le cours étudie cinq sujets principaux : les bases numériques, l'arithmétique modulaire, les séquences, les séries, le traçage de graphiques et la cinématique.

Le cours commence par l'étude des bases numériques. Vous savez peut-être que le binaire est la base numérique utilisée par les ordinateurs. Mais saviez-vous que les informaticiens utilisent également l'hexadécimal ?

Vous couvrirez les concepts clés des valeurs de position et des systèmes de numération, ce qui impliquera de convertir entre le binaire, l'hexadécimal et le décimal, ainsi que d'additionner, de soustraire et de multiplier ensemble. Oh, une chose cool que le cours vous apprend est la stéganographie, l'art de cacher des messages dans des images !

Ensuite, vous couvrirez l'arithmétique modulaire. Vous êtes-vous déjà demandé ce que signifie 'modulo 7' ? Vous apprendrez l'utilité de la congruence et des opérations d'arithmétique modulaire en informatique (psst, cela peut être utilisé pour le chiffrement).

Vous identifierez, décrirez et calculerez des séquences de nombres et leurs sommes. Vous étudierez une famille spéciale de séquences appelée progressions, qui se compose de progressions arithmétiques et géométriques. Vous apprendrez comment les séquences peuvent être utilisées pour générer des nombres aléatoires. De plus, vous serez en mesure de dire quand une série converge (se rencontre en un point) ou diverge (approche l'infini).

Enfin, le cours décrit comment représenter et décrire l'espace numériquement en utilisant des coordonnées et des graphiques. Vous verrez comment les graphiques peuvent nous aider à visualiser et à transformer des fonctions comme des lignes droites, des quadratiques, des cubiques, des réciproques et plus encore. Un exemple de modélisation du mouvement sera donné : le domaine des mathématiques appelé cinématique.

Comment vous apprendrez

Le cours dure 6 semaines, avec environ 40 heures de matériel. Chaque semaine est accompagnée d'un ou plusieurs quiz, vous permettant d'apprendre en faisant. Cependant, vous devrez payer pour le certificat afin que le correcteur automatique du cours note vos réponses.

Institutions Université de Londres
Fournisseur Coursera
Instructeurs Matthew Yee-King et Sara Santos
Niveau Débutant
Charge de travail 40 heures au total
Inscriptions 22K
Note 4,1 / 5,0 (200)
Certificat Payant

Faits amusants

Si vous êtes intéressé par ce cours, vous pouvez trouver plus d'informations sur le cours et comment vous inscrire ici.

10. Mathématiques pour l'informatique : Compétences essentielles (Université de Hull)

Image Laura Broddle, instructrice du cours, enseignant les diagrammes de Venn

Si vous avez jeté un coup d'œil aux deux cours précédents mais que vous n'avez pas encore les bases mathématiques pour les suivre, ce cours peut vous aider avec les bases.

Ce cours est un court cours sur les compétences mathématiques pour l'informatique, proposé par l'Université de Hull sur FutureLearn.

Destiné aux apprenants commençant ou envisageant d'étudier l'informatique au niveau universitaire, ce cours couvre les diagrammes de Venn et la théorie des ensembles, les techniques d'algèbre, et les vecteurs et matrices — tous des concepts fondamentaux omniprésents en informatique.

Le cours ne suppose aucune connaissance mathématique préalable. Vous commencez de zéro.

Ce que vous apprendrez

En commençant par les diagrammes de Venn et la théorie des ensembles, vous apprendrez comment les 'ensembles' (des sacs d'objets, si vous voulez) peuvent être formalisés et opérés. Vous apprendrez à raisonner sur les calculs et les objets de calcul. Les diagrammes de Venn vous aideront à visualiser ce type de raisonnement.

Vous passerez ensuite à l'algèbre et ses techniques. Vous recevrez un aperçu de l'algèbre (qui pourrait être décrite comme faire des mathématiques en utilisant des variables au lieu de nombres explicites) et de son utilisation dans les algorithmes et le calcul scientifique. Le cours vous apprendra à résoudre des équations linéaires et quadratiques en utilisant l'algèbre.

Le cours se termine par un aperçu des vecteurs et des matrices. Vous apprendrez ce que sont les vecteurs, et pourquoi ils sont particulièrement importants en programmation graphique. Vous apprendrez comment nous pouvons représenter les vecteurs sous forme de matrices, et comment modifier, transformer et inverser les matrices pour résoudre des problèmes complexes.

Comment vous apprendrez

Ce cours dure 3 semaines, avec environ 3 heures de matériel par semaine. Vous apprendrez principalement par le biais de matériel vidéo, bien qu'il y ait des forums de discussion où vous pouvez discuter des problèmes avec d'autres apprenants.

À la fin de chaque semaine, il y a un quiz qui vous aidera à renforcer votre compréhension des concepts et applications mathématiques.

Institution Université de Hull
Fournisseur FutureLearn
Instructeur Laura Broddle
Niveau Débutant
Charge de travail 9 heures au total
Inscriptions 1,2K
Certificat Payant

Faits amusants

  • L'instructrice du cours, Laura Broddle, a rejoint l'Université de Hull en 2015 en tant que fellow enseignante en mathématiques de base.
  • Elle a également visité une école sœur en Ouganda et a été classée enseignante exceptionnelle par Ofsted en 2013.

Si vous êtes intéressé par ce cours, vous pouvez trouver plus d'informations sur le cours et comment vous inscrire ici.