Journal #Occupy… vos soirées d'hiver en étudiant.

37
18
nov.
2011

Sommaire

Introduction

Bonsoir à tous

Peut-être avez-vous retenu le contenu d'un journal passé ici il y a un peu plus d'un mois, vous proposant différents cours en ligne, ayant la particularité par rapport à d'autres disponible en ligne uniquement en vidéo d'apporter une interactivité (certes limitée) par l'intermédiaire de questionnaires et d'exercices, corrigés par le site, dont certains seront retenus pour une évaluation de l'étudiant. À la fin de ce journal, je donnerai mon retour sur ces trois cours que j'ai suivi jusqu'ici (ils en sont à un peu plus de la moitié de leur déroulement)

Car si je vous écris ce soir, c'est avant tout pour vous informer que cette expérience va être prolongée par (au moins ?) six nouveaux cours ainsi qu'une nouvelle session du cours de machine learning. Tout ceci commencera courant janvier ou février 2012. Ces cours sont donnés, comme les précédents, par différents professeurs d'universités californiennes. Une petite différence toute fois, là où les premiers cours étaient uniquement donnés par des enseignants de Stanford (et en partie par Peter Norvig, directeur de recherche chez google, pour le cours sur l'intelligence artificielle), une des nouveaux cours sera enseigné par un prof de Berkeley.

Pour tous ces cours, vous aurez besoin de temps, et de connaissances en anglais (être capable de suivre la vidéo, même s'il y aura probablement des sous-titre comme dans les trois cours en cours. En anglais) Notez que pour voir les vidéos il me semble que flash est indispensable. Certains cours demandent quelque pré-requis, mais rien d'insurmontable, je pense. Il faut noter, comme c'est précisé dans plusieurs des pages des cours, qu'ils ne donnent pas de diplômes des universités dont dépendent les professeurs, par contre il y aura peut-être des "certificats" délivrés au nom des professeurs (en fonction de vos résultats). Personnellement si je suis les cours, c'est plus pour apprendre pour moi, de toute façon.

Avant de revenir sur l'expérience que j'ai eue jusqu'à présent et qui pourrait vous donner envie (ou pas d'ailleurs), je vais vous présenter les nouveaux sujets disponibles. Je ne prétends pas connaître les domaines, ça va juste être une traduction de ce qui est disponible sur les différents sites. (Si je me plante à certains endroits, désolé, n'hésitez pas à me corriger)

En résumé pour les daïssideurs pressés et autres clicouilleurs précoces des nouveaux cours en ligne, cliquez sur les liens de la partie "Présentation des nouveaux courts". Et un retour sur d'autres, encore plus bas. Voila. Pour les autres, lisez la suite.

Présentation des nouveaux cours

Computer Science 101

À mon avis celui qui intéressera le moins de personnes ici, car c'est un cours s'adressant à une audience "non expérimentée".

CS101 enseigne les idées principales de l'informatique* pour un public néophyte. Les ordinateurs peuvent paraître très compliqués, mais en réalité ils fonctionnent juste en utilisant quelque modèles simples. CS101 démystifie et explique ces modèles, ce qui est utile à toute personne devant utiliser un ordinateur.
Dans ce cours, les étudiants manipulent et expérimentent quelque bouts de code pour illustrer la puissance et les limitations des ordinateurs. Tout fonctionnera dans un navigateur, et il ne sera pas nécessaire d'installer de logiciels spécifiques. CS101 vous donnera également des connaissances générales sur les ordinateurs : Qu'est-ce qu'un ordinateur . Qu'est-ce que le matériel ? Le logiciel ? Qu'est-ce qu'internet ?

* Informatique est-elle la bonne traduction pour Computer Science ? Ça ne me semble pas vraiment adéquat, pour "Monsieur Toutlemonde époux Michu" qui voit "informatique" comme un peu tout allant du montage d'un PC au développement de logiciel, en passant par l'utilisation d'un logiciel de traitement de texte ou l'installation d'un jeu sur ordinateur.

Software Engineering for Software as a Service

Encore une fois, je pense qu'une partie des lecteurs de DLFP connaissent ce sujet en partie, même si ce n'est pas nécessairement sous ce terme. Il s'agit (si j'ai bien compris) de développement agile. Une partie a peut-être la chance de l'appliquer tous les jours au travail, et une autre partie les envie peut-être lorsqu'ils sont noyés dans les procédures lourdes et figées (en tout cas, moi ça m'arrive) Pour ce cours il vous faudra être à l'aise avec un langage objet ainsi qu'avoir une connaissance basique de la ligne de commande. Il vous faudra aussi un ordinateur capable de faire tourner VirtualBox et 512 Mo ou 1Go de mémoire.

Ce cours enseigne les fondamentaux de l'ingénierie pour des logiciels durables, en utilisant des méthodes de développement agile et Ruby on Rails. Les développeurs agiles améliorent et refactorisent sans cesse un prototype fonctionnel mais incomplet jusqu'à la satisfaction du client, qui doit offrir un retour continu à ce développement.
La méthode agile met l'accent sur la vision de l'utilisateur pour valider les exigences du client, sur le développement guidé par les tests, des livraisons de logicielles bi-hebdomadaires et une mesure rapide des progrès.
Ce cours introduira tous les éléments du cycle de développement agile et parcourra une itération en ajoutant des des fonctionnalités à une application simple et en la déployant dans les nuages en utilisant des outils comme Github, Cucumber, RSpec, Rcov, Pivotal Tracker et Heroku.

Natural Language Processing

Un sujet qui peut aller de la reconnaissance à la synthèse vocale, en passant par la traduction ou la notation du potentiel trollesque d'un journal de DLFP (quoiqu'il est probablement plus simple de compter le nombre de commentaires de pfff et Zenitram). Ce cours vous demandera des notions (de base) de probabilité, d'espaces vectoriels, d'analyse, ainsi que des connaissances en programmation.

Le traitement automatique du langage est la technologie qui s'occupe d'un des "produits" les plus omniprésents : le langage humain, tel qu'il apparait dans les emails, pages webs, tweets, descriptions de produit, journaux, médias sociaux et articles scientifiques, dans des milliers de langages et variétés. Dans la dernière décennie, des applications de traitement du langage ont pris part à notre vie de tous les jours, de la correction orthographique et grammaticale dans les traitements de texte à la traduction automatique sur internet, de la détection de spams aux réponses automatiques aux questions, de la détection de l'opinion des gens jusqu'à l'extraction de rendez-vous dans un email. Dans ce cours, vous apprendrez les algorithmes et les modèles mathématiques pour le traitement automatique du langage et comment les utiliser pour résoudre des problèmes pratique quand vous les rencontrez.

Game Theory

Vous rêvez de coder un bot qui vous fera gagner de l'argent tout seul au poker ? Vous voulez boursicoter automatiquement ? (Méfiez-vous si votre programme vous dit d'acheter de la dette grecque quand même) Ou alors vous voulez juste devenir schizophrène et avoir un film sur votre vie ? Alors peut-être que ce cours est fait pour vous. Vous aurez besoin d'être capable de tenir un raisonnement mathématique ainsi que de connaître, à nouveau, les bases de la probabilité et de l'analyse.

Popularisé par des(?) films tel que "Un homme d'exception", la théorie des jeux est la modélisation mathématique de l'interaction stratégique entre agents (ir)rationnels. En plus de ce qui est appelé "jeux" dans le langage courant, tel que les échecs, le poker, le football, etc, la théorie des jeux englobe également la modélisation des conflits entre pays, les campagnes politiques, la compétition entre entreprises et le comportement des marchés boursiers. Comment pourriez-vous commencer à modéliser eBay, les adwords google et les réseau de partage p2p sans prendre en compte les motivations des gens les utilisants ?
Ce cours vous donnera les bases : représentation des jeux et des stratégies, les arbres de jeu (les jeux de l'arbre ? J'ai un petit doute : "the extensive form (which computer scientists call game trees)"), les jeux Bayésiens, les jeux répétés et stochastiques, et plus. Nous parcourrons toute une gamme d'exemples, des jeux classiques et quelque applications.

Probabilistic Graphical Models

Alors là, franchement, en lisant le titre comme ça, je ne sais pas trop quoi vous dire. Ça ne me parle pas beaucoup. Donc je vous livre juste la traduction, qui a l'air alléchante. La description est plus longue que ce que j'ai traduit ici, donc n'hésitez pas à aller voir plus loin.

Dans ce cours vous apprendrez les bases de la représentation PGM et comment les construire, en utilisant à la fois des connaissances humaines et des techniques d'apprentissage automatique (machine learning). Vous apprendrez aussi des algorithmes pour utiliser un PGM pour atteindre des conclusions à propos du monde à partir d'observations limitées et bruitées, et de prendre de bonnes décision dans l'incertitude.
Le cours couvre à la fois les bases théoriques des PGM et les compétences pratiques nécessaires pour appliquer ces techniques à des nouveaux problèmes. Les sujets couvrent :
- les réseaux bayésiens et de markov, en ce compris les extensions pour raisoner sur des domaines changeants au cours du temps et les domaines avec un nombre variable d'entités
- méthode de raisonnement et inférence, incluant l'inférence exacte (élimination de variable, clique trees (?)) et l'inférence appriximée (belief propagation message passing, Markov chain Monte Carlo methods(?)
- méthodes d'apprentissage pour les paramètres et la structure dans un PGM
- utilisation des PGM pour la prise de décision dans l'incertain
Le cours sera illustré par de nombreuses études de cas et applications, afin de vous montrer comment appliquer ces méthodes à la vision par ordinateur, la compréhension de texte, la prise de décision médicale, et dans d'autre domaines

Human-Computer Interfaces

Vous rêvez de devenir le nouveau Steve Jobs (et voir vos peaux mortes bouffées par des vers), ou au contraire pour vous la référence de l'interface est emacs (et vous préférez manger vous-même… euh non rien), alors ce cours est fait pour vous. Non, en fait, je n'en sais rien, je n'ai pas encore lu la description, mais cette accroche me plaisait. Donc voici la description.

Vous trouverez dans cet enseignement comment concevoir des technologies qui rendront les gens heureux plutôt que de les frustrer. Vous apprendrez plusieurs techniques pour rapidement prototyper et évaluer plusieurs interfaces possibles, et pourquoi il est important de le faire pour concevoir un bon design d'interaction. Vous apprendrez comment faire des prototypes papier et des maquettes de basse fidélité interactives, et comment en obtenir un retour de vos collègues, clients et utilisateurs. Vous étudierez aussi les principe des design visuels pour organiser et présenter l'information. Vous apprendrez comment exécuter et analyser des expériences en ligne.
Dans beaucoup de cas, nous utiliserons le design web comme ancrage. Beaucoup d'exemples viendront du web, et nous parlerons un peu de ces technologies en particulier. Quand nous le ferons, ce sera pour appuyer l'objectif principal de ce cours, qui est de vous aider à construire des interfaces centrées sur l'humain.

Retour d'expérience personnel

Comme promis, un court retour d'expérience sur les trois cours que j'ai suivi. Ils ont des points communs et des différences. Dans les points communs, il y a tout d'abord la partie enseignement, qui est commune. Ce sont dans les trois cas des vidéos montrant essentiellement un support fixe sur lequel les profs écrivent tout en parlant. (le support contient certains informations dès le début, un peu comme un professeur donnant un cours sur un rétroprojecteur avec des transparents qu'il complète au fur et à mesure, si vous avez connu ça.) Tous les cours comportent également certains quizs principalement utile pour vérifier la compréhension d'un cours juste dans la foulée. En dehors des sujets, c'est essentiellement dans l'évaluation de l'étudiant que les différentes matières divergent.

Du point de vue du contenu, je suis plutôt content de ce que j'ai appris, même si parfois j'ai l'impression qu'ils ne vont pas très loin dans les détails. D'un autre côté, peut-être veulent-ils rester accessible au plus grand nombre de personnes possibles. Je connaissais aussi certains morceau à l'avance, du coup c'est probablement plus simple que pour quelqu'un qui n'a jamais abordé ces domaines. Mais globalement je suis satisfait.

Au niveau du temps passé, je ne sais pas vraiment. J'ai l'impression qu'il y a entre une et deux heures de vidéo par cours et par semaine, mais je n'ai pas vérifié précisément, ce qui fait quand même 4 ou 5 heures, sans compter les questions et exercices donc.

Machine learning

Dans ce cours, il y a deux types d'évaluation. Des QCM récapitulatifs sur des séries de vidéos (groupées par sujet), que vous pouvez soumettre plusieurs fois. Seul le meilleur score est gardé, ce qui fait qu'il est assez simple de l'atteindre (même si vous n'êtes pas très attentifs parfois, ou que vous butez sur une double négation en anglais…) Il faut répondre à ces questions avant une certaine date, généralement entre 10 et 15 jours après la publication des vidéos de ce sujet et du quiz.

Le deuxième type d'évaluation est un peu plus intéressant, il s'agit de coder, dans octave, les différents algorithmes et méthodes expliqués dans le cours théorique. On récupère une archive contenant un énoncé, des données, des morceaux de code octave, et l'énoncé nous demande de compléter les fonctions manquantes. C'est plutôt détaillé, donc ce n'est pas trop compliqué, mais pour des gens comme moi qui lisent plein de trucs mais ne sortent jamais de la théorie, c'est bien, ça m'oblige à me bouger un peu.

Database

Comme pour le premier, une série de quizs sur un ensemble de vidéo, qu'on peut soumettre plusieurs fois. En plus de cela, des exercices à effecteur dans un environnement de test, sur le site, où l'on pratique du SQL ou du xpath/xquery/xslt, avec des données d'exemple et quelque questions précises. Il faut trouver une requête permettant de répondre à la question demandée. C'est plutôt bien fait, je trouve, et certaines questions demandent quelque temps de réflexion.

En plus de cela, un examen, ressemblant au quizs, a eu lieu. La différence, outre le fait qu'il porte sur toute la matière jusqu'à présent, est qu'il est limité en temps, même si le compteur était largement suffisant, et surtout, on ne peut le soumettre qu'une seule fois. Un second examen aura lieu à la fin du cours.

Artificial Intelligence

Dans ce dernier cours, il y a également des quizs hebdomadaires sur les sujets de la semaine, mais on ne peut y répondre qu'une fois. Enfin, on peut y revenir tant que la solution n'est pas donnée, mais la correction se fait pour tout le monde à minuit UTC un jour donné, et on ne sait qu'à ce moment là son score.

En plus de ceux-ci, des examens, sur le même mode que dans le cours de db seront donnés, mis à part qu'on aura tout un weekend pour y répondre (si j'ai bien compris)

Conclusion

D'un point de vue personnel, ce genre de truc me plaît, car j'aime bien apprendre de nouveaux trucs. Je vais probablement reprendre certains cours, même si je ne sais pas encore de combien de temps je disposerai, vu que je change de boulot/métier/pays/… d'ici décembre. A priori, j'opterai probablement au moins vers le langage, le pgm et la théorie des jeux, mais peut-être que j'irai peut-être jusque 5, qui sait…

Je vous encourage à suivre un ou plusieurs de ce cours si vous avez un peu de temps à consacrer à ça.

Bravo à ceux qui ont tout lu. Et bonne nuit.

PS : Merci à l'auteur du journal initial, weeber, de m'avoir fait découvrir ces cours.
FG : Mon journal fait seulement 1/42e de news de voussavezqui, et vu le temps que ça m'a pris, je suis maintenant convaincu qu'en fait, c'est un fou.
EELV : Je m'excuse pour l'orthographe ou la grammaire probablement massacrée par endroit, même si j'espère ne pas avoir fait trop de fautes, mais vous avez vu l'heure aussi ? TL;DR /o

  • # "computer science" --> science informatique NT

    Posté par . Évalué à -4.

    NT

  • # Informatique

    Posté par . Évalué à 6.

    Informatique est-elle la bonne traduction pour Computer Science ? Ça ne me semble pas vraiment adéquat, pour "Monsieur Toutlemonde époux Michu" qui voit "informatique" comme un peu tout allant du montage d'un PC au développement de logiciel, en passant par l'utilisation d'un logiciel de traitement de texte ou l'installation d'un jeu sur ordinateur.

    C'est à dire qu'aujourd'hui, définir « informatique », c'est comme définir « aviation ». Qu'est-ce que l'aviation ? Est-ce le pilotage ? Est-ce l'avionique ? Est-ce l'ingénierie aéronautique ? Est-ce que c'est la gestion d'une compagnie aérienne ? Est-ce que ce sont les vieux avions ? Est-ce que ce sont les mécaniciens au sol ? Est-ce la gestion aéroportuaire ? Ou bien est-ce tout simplement l'esprit du voyage lorsque l'on prend l'avion ?

    Il est clair que c'est tout cela à la fois, et que c'est un monde dans lequel tout le monde a un rôle à jouer. Et c'est très bien comme ça.

    « Informatique » n'est donc probablement pas un terme qui s'est dévoyé, mais plutôt quelque chose qui couvre tout ce qui a trait au traitement automatisé de l'information, ce qui, initialement, ne couvrait que ce qui est aujourd'hui « l'informatique théorique » pour la bonne raison que c'est par là que tout a commencé.

  • # Mise à jour de la liste

    Posté par (page perso) . Évalué à 3.

    [...] cette expérience va être prolongée par (au moins ?) six nouveaux cours [...]

    Comme attendu dans le journal, de nouveaux cours se sont rajoutés.

    • [^] # Re: Mise à jour de la liste

      Posté par . Évalué à 2.

      Il y a encore quelque cours supplémentaires :

      C'est pas mal, les sujets se diversifient, même si le département de sciences informatique reste largement majoritaire. Et ils feraient bien de se trouver un nom de domaine commun, plutôt que d'avoir un domaine complètement différent pour chaque cours. En plus ça leur permettrai de se faire un petit portail global. Enfin bon, comme ils ne risquent pas de lire mon commentaire…

      Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.

  • # thx

    Posté par . Évalué à 1.

    merci pour la news ça me donne une bonne perspective pour l'année prochaine. Je suis largué en math et je n'arrive plus à suivre les cours. Uniquement celui sur les bases de données (celui qui m'intéressait le moins). Du coup, avec un peu d'avance, je vais peut-être pouvoir me mettre à niveau pour suivre ces cours là correctement. Il faut connaitre les probabilités, espaces vectoriels et l'analyse. Question de noob qu'est-ce que tu appelle l'analyse en math ?

    Sinon tous les cours on l'air intéressants surtout Human-Computer Interfaces

    Personnellement, j'ai trouvé leurs cours très bien fait malheureusement trop axé sur les math pour moi. Je me débrouillais très bien en AI avec la recherche du chemin le plus court, avec le path cost, etc... Et soudain c'est partis en pure probabilité sans réelle exemple informatique/algorithmique (Hey teacher ! You lost me there).

    Est-ce que les cours sur la bases de données ton appris quelque chose ?

    • [^] # Re: thx

      Posté par . Évalué à 2.

      L'analyse en math, c'est l'étude des fonctions, limites, dérivées, intégrales, etc.

      C'est vrai que je n'ai pas abordé le sujet de la difficulté des cours, mais j'ai du mal à l'évaluer, car j'ai toujours eu des facilités en math et en sciences (et me études ne sont pas si loin, 4-5 ans, donc j'ai encore des bons restes, enfin je trouve.)

      Oui j'ai appris quelque trucs en bases de données, mais pas beaucoup, car même si je n'en fais jamais dans la vie de tous les jours, j'ai eu un cours qui recoupe pas mal les sujets abordés. Ce cours c'est plutôt un rafraichissement de ce que je connaissais, et quelque trucs nouveaux. Par contre, j'apprends plus dans les deux autres.

      Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.