«Une des raisons de vraiment entrer à l'université est de franchir le cap d'une simple formation professionnelle pour s'accrocher à des idées plus profondes.»

Réfléchissons un peu à cette question. Il y a quelques années, les départements d'informatique m'ont invité à donner des conférences dans plusieurs universités. Presque par hasard, j'ai demandé à mon premier auditoire, composé d'étudiants en dernière année, de doctorants et de professeurs, leur définition de l'« informatique ». Tous n'ont pu donner qu'une définition technique. J'ai fait cela dans chaque nouvel endroit, et les résultats étaient similaires partout.
Une autre question était : « Qui est Douglas Engelbart ? ». Plusieurs personnes ont dit : « n'était-il pas lié à la souris d'ordinateur ? » (et cela m'a beaucoup déçu, car ma communauté scientifique a beaucoup travaillé pour que la réponse à cette question soit accessible après deux ou trois clics de souris, et pour confirmer qu'Engelbart était effectivement lié à la souris d'ordinateur).
En partie, le problème résidait dans le manque de curiosité, en partie dans l'étroitesse des objectifs personnels qui n'étaient pas liés à l'apprentissage, en partie dans l'absence de compréhension de ce qu'est cette science, et ainsi de suite.
Je travaille à temps partiel au département d'informatique de l'Université de Californie depuis plusieurs années (en fait, je suis professeur, mais je n'ai pas à assister aux réunions du département). Je donne périodiquement des cours, parfois aux étudiants de première année. Au fil des ans, le faible niveau de curiosité pour l'informatique a considérablement diminué (mais le niveau de popularité a augmenté, car l'informatique est considérée comme un moyen d'accéder à un emploi bien rémunéré si vous savez programmer et avez obtenu un diplôme dans l'un des 10 meilleurs établissements). Par conséquent, aucun étudiant ne s'est encore plaint que le premier langage à l'Université de Californie soit le C++ !
Il me semble que nous avons rencontré une situation où les termes « Ordinateur » et « Science » ont été dévalorisés par des concepts massifs et faibles, pour créer un nouveau terme — une sorte d'étiquette sur un jean — qui sonne bien, mais qui est assez vide. Un terme associé, qui a également été dévalorisé, est « ingénierie logicielle », qui, encore une fois, n’a pas utilisé les idées les plus brillantes de « programmation » et « ingénierie », mais les a simplement combinées (cela a été intentionnellement fait dans les années soixante, lors de l'invention du terme).
Une des raisons de réellement entrer à l'université est de sortir du simple apprentissage professionnel et de s'attaquer à des idées plus profondes. Je trouve assez raisonnable, pour une introduction à la spécialité, d'essayer — si possible, avec des exemples — de faire en sorte que les apprenants s'attaquent à de véritables problèmes et commencent à comprendre ce qui est vraiment intéressant, important et central dans ce domaine.
Les élèves de première classe se réjouissent lorsqu'on leur montre comment une règle sur une autre règle devient un instrument à calculer, avec lequel ils peuvent surpasser les élèves de cinquième année dans l'addition de fractions. Ensuite, ils seront ravis de participer à l'élaboration d'instruments à calculer améliorés. Ils ont touché à un véritable ordinateur — un outil physique et mental qui nous aide à penser. Ils ont appris une façon réellement efficace de représenter des nombres — plus efficace que la façon dont on enseigne à l'école !
Ils ont pu relier leur idée saine « d'addition » en tant que « cumul » à quelque chose d'analogue avec de nouvelles propriétés puissantes. Ils l'ont programmé pour qu'il puisse résoudre divers problèmes.
Ils l'ont également élargi. Et ainsi de suite. Ce n’est pas un ordinateur numérique. Et ce n’est pas un ordinateur à programme enregistré. Mais c’est l’essence même d’un ordinateur. De même que — c'est en fait l'essence même de l'ordinateur et des calculs.

Le mécanisme d'Anticythère
Jusqu'où pouvons-nous aller et que pouvons-nous accomplir avant que tout ne devienne ingérable et que nous nous perdions dans les abstractions ? J'ai toujours été sensible à la caractéristique le premier lauréat du prix Turing, qui a peut-être inventé le terme « informatique » — qui dans les années 60 a déclaré : « L'informatique est la science des processus ». Tous les processus.
Pour le compte de Quora, ne tentons pas d'en faire plus ou d'en faire une doctrine religieuse. Utilisons simplement l'idée avec bonheur. , pour mieux réfléchir à notre domaine. Et particulièrement à la manière de l'enseigner. Nous devons maintenant examiner la signification contemporaine de « science », et Perlis était assez convaincu qu'elle ne devrait pas être diluée par de anciennes significations (par exemple, comme « l'accumulation de connaissances ») et utilisations (comme « bibliothéconomie » ou même « sciences sociales »). Par « science », il essayait de comprendre le phénomène, en créant des modèles/cartes qui essaient de montrer, de « suivre » et de prédire des phénomènes.

J'ai donné quelques interviews sur la façon dont les meilleures cartes et modèles peuvent souvent convenir à un T-shirt, tout comme les équations de Maxwell et d'autres. L'analogie est qu'il existe une « science des ponts », même si la plupart des ponts sont fabriqués par l'homme. Mais une fois le pont construit, il reflète des phénomènes, les scientifiques peuvent les étudier, et à partir des ponts, il est possible de créer des modèles de différents types et de former des « théories des ponts » complètes et utiles. L'amusement réside dans le fait qu'ensuite, on peut concevoir et construire de nouveaux ponts (j'ai déjà mentionné qu'il est peu probable qu'il y ait quelque chose de plus amusant que la collaboration entre scientifiques et ingénieurs pour résoudre de grands et importants problèmes !)

Herbert Simon, lauréat du prix Turing et prix Nobel, a tout cela appelé « sciences de l'artificiel » (et a écrit un superbe livre portant ce même titre).

Permettez-moi de donner un exemple. Dans les années 50, les entreprises et les universités construisaient des ordinateurs à programme enregistré et commençaient à les programmer — et il y a eu un moment particulier, en 1956, avec l'arrivée de Fortran — qui n'était pas le premier langage de haut niveau, mais peut-être le premier conçu de manière suffisamment adéquate pour être utilisé dans de nombreux domaines différents, y compris de nombreux domaines qui n'avaient jusque-là été effectués qu'en langage machine.
Tout cela a engendré des « phénomènes ».

John McCarthy
L'histoire de Lisp est plus complexe, mais John McCarthy était intéressé par la recherche d'une « théorie mathématique du calcul » et était déterminé à faire en sorte que tout fonctionne à merveille. La fonction eval, qui interprète Lisp, se retrouve facilement sur un t-shirt ! Comparé à un « système de programmation », c'est dérisoire. Plus important encore, cette « théorie du calcul » possédait une conception plus puissante que Fortran ! C'était la meilleure idée de passerelle !
La miniaturisation de Lisp permet à toute l'idée de la programmation d'être saisie avec quelques frappes à un niveau plus profond et d'être réfléchie à un niveau qui semble tout simplement impossible lorsque l'on regarde les énormes artefacts (c'est l'une des raisons pour lesquelles les scientifiques aiment que les mathématiques soient compactes et puissantes). Les mathématiques utilisées ici sont de nouvelles mathématiques, car elles admettent des concepts comme « avant » et « après », et cela conduit à la « logique de la variable », qui permet de conserver à la fois la dépendance fonctionnelle et le raisonnement logique, tout en tenant compte de la position et du cours du temps. (C'est encore incompris de nos jours dans le cruel monde de la programmation contextuelle).
Lisp, en tant que puissant langage de programmation et méta-langage capable de représenter sa propre théorie, est un exemple de véritable science informatique. Si vous en apprenez ainsi que d'autres choses similaires, vous serez en mesure de penser plus profondément et d'assumer une plus grande responsabilité pour votre propre destin, que si vous appreniez simplement à programmer en Fortran ou dans ses équivalents modernes (… ainsi vous pourrez vous rapprocher des programmeurs !).
Vous en apprendrez beaucoup plus sur les types de conception spécialisés nécessaires en informatique (par exemple, il n'est généralement pas apprécié lorsque les calculs nécessitent souvent de sortir du cadre informatique : l'une des caractéristiques spéciales des calculs programmés stockés est que ce n'est pas juste du matériel pour un programme, mais du matériel pour un ordinateur complètement nouveau).
Une autre raison de choisir la définition de Perlis est que, dans l'ensemble, le calcul est beaucoup plus lié à la création de systèmes de plusieurs types qu'aux algorithmes, aux « structures de données » ou même à la programmation en tant que telle. Par exemple, un ordinateur est un système, le calcul est un système, un réseau local et Internet sont des systèmes, et la plupart des programmes devraient constituer de bien meilleurs systèmes que ceux qu'ils sont (le vieux style de programmation des années 50 a survécu jusqu'à un moment où il semble que la programmation doive être ainsi - rien n'est plus éloigné de la vérité).
Internet est un bon exemple - contrairement à la plupart des programmes de notre époque, Internet n'a pas besoin d'être arrêté pour réparer ou améliorer quelque chose - il ressemble davantage à un système biologique - par notre intention, plutôt qu'à ce que la plupart des gens considèrent comme un système informatique. Et il est beaucoup plus évolutif et fiable que presque tous les systèmes logiciels existants aujourd'hui. Cela vaut vraiment la peine d'y réfléchir avant d'enseigner aux débutants en programmation des concepts moins puissants !
Donc, ce que nous devons faire dans le premier cours de Computer Science, c'est prendre en compte ce que les étudiants peuvent réellement faire au tout début, puis essayer de rester dans leur « charge cognitive » pour les aider à atteindre ce qui est vraiment important. Il est très important de « rester authentique » et de trouver des voies qui soient intellectuellement honnêtes et qui conviennent à ceux qui commencent à apprendre. (S'il vous plaît, ne transmettez pas de mauvaises idées simplement parce qu'elles semblent un peu plus simples - de nombreuses mauvaises idées sont en réalité plus simples !)
Les étudiants doivent commencer par créer quelque chose qui aurait de nombreuses caractéristiques importantes que j'ai discutées ici. Ce doit être un système composé de plusieurs parties interagissant dynamiquement, et ainsi de suite. Un bon moyen de décider quel langage de programmation utiliser est simplement de faire quelque chose qui a des milliers de parties interactives ! Sinon, vous devriez en trouver un. Le pire que l'on puisse faire, c'est de mettre les étudiants sur un chemin de fluidité trop faible, qui limiterait considérablement leurs idées à grande échelle. Cela les tue tout simplement — et nous voulons les faire grandir, pas les anéantir.
À l'école GoTo

- 17-30 juin, 15-28 juillet, 12-25 août
Source : habr.com
