Fermer

mai 20, 2018

5 sujets chaque étudiant en informatique devrait apprendre



Cette année, j'ai eu la chance d'assister à la conférence SIGCSE de l'Association for Computer Machinery (Groupe d'intérêt spécial sur l'éducation en informatique), où il y avait beaucoup de discussions sur ce que devrait inclure un programme informatique moderne.

rapidement et il peut être difficile pour les programmes académiques de suivre le rythme. Pourtant, si les étudiants en informatique doivent contribuer de manière significative au domaine dans l'industrie ou les emplois de recherche, il est essentiel qu'ils apprennent les compétences informatiques modernes. Voici cinq sujets que je pense que chaque établissement d'enseignement supérieur devrait enseigner à leurs majors de premier cycle en informatique:

1. Programmation parallèle

Le seul serveur autonome avec un processeur a pris le chemin de l'oiseau dodo, déplacé par le nuage, les fermes de serveurs et les processeurs parallèles multithread. Pourtant, les collèges et les universités continuent d'enseigner leurs programmes séquentiels de premier cycle – des programmes qui exécutent les instructions les uns après les autres – comme ils le font depuis des décennies.

Les environnements informatiques modernes et les ensembles de données massifs exigent non seulement (informatique répartie), mais aussi que des programmes soient écrits pour traiter plusieurs instructions simultanément sur des puces multicoeurs dans plusieurs serveurs et dispositifs.

Trop souvent, la programmation parallèle est reléguée à un seul chapitre dans un manuel, facilement ignoré au semestre court court. Pour préparer les étudiants à l'informatique de haute performance, au big data, à l'apprentissage automatique, à la blockchain et à bien d'autres choses, nous devons leur apprendre à penser et à programmer en parallèle.

2. Programmation verte

Avec l'omniprésence des ordinateurs à piles, l'efficacité énergétique est plus importante que jamais. Plus nous demandons à nos appareils intelligents, plus ils ont besoin d'énergie pour le faire et plus vite ils épuisent leurs batteries. Il en est de même pour les grappes de serveurs massives, où les incendies liés à la consommation d'énergie ne sont pas rares, car nous exigeons un traitement plus rapide et plus rapide des données.

Comment vous concevez un logiciel affecte directement la quantité d'énergie nécessaire le programme, mais peu de programmes de premier cycle enseignent aux élèves cette relation. Dans un monde qui se réchauffe rapidement, dans lequel nous rêvons de grands rêves à propos de toutes les façons dont l'intelligence artificielle et l'informatique à haute performance amélioreront nos vies, il est impératif d'écrire des logiciels optimisés pour l'énergie. Les étudiants ne seront pas capables de le faire si nous ne leur enseignons pas comment.

3. Développement collaboratif

Le milieu universitaire persiste à vouloir mesurer ce que les élèves savent. Dans la plupart des classes de programmation, les élèves commencent à partir d'un écran vide et écrivent du code propre indépendamment ou, moins souvent, avec un partenaire.

Mais ce n'est pas ainsi que le logiciel est conçu dans le monde réel. Les ingénieurs logiciels professionnels commencent presque toujours par le code de quelqu'un d'autre et travaillent en groupe pour modifier, améliorer et corriger ce code, qui est ensuite intégré au code écrit par d'autres ingénieurs d'autres groupes.

  • aujourd'hui

Il est commun pour les groupes de développement de logiciels d'inclure des personnes de différents pays, dans différents fuseaux horaires. Travailler efficacement exige que les membres de l'équipe communiquent bien dans différentes langues et dans différentes cultures. Cela signifie également que quelqu'un d'autre doit être capable de regarder votre code et de savoir ce qu'il fait, donc suivre les normes de formatage et fournir des commentaires clairs sont essentiels.

Cependant, dans notre désir de nous assurer que chaque étudiant comprend règle de syntaxe, nous négligeons les possibilités d'enseigner le développement collaboratif de logiciels et aider les étudiants à développer des compétences professionnelles critiques.

4. Architecture matérielle

Dans l'esprit de la plupart des étudiants, IBM, Intel et AMD – les inventeurs et les développeurs du processeur multicœur – sont de vieilles nouvelles … de vieilles entreprises fondées par des vieux. Les applications mobiles sont là où l'action est.

Mais les applications mobiles sont pilotées par les données, généralement par beaucoup de données, et elles ne seront pas très utiles sans les processeurs, les bases de données et les réseaux qui alimentent

L'informatique fonctionne et évolue en fonction de l'ensemble du système, de la source d'alimentation à l'interface utilisateur, et les étudiants auront plus de succès s'ils savent comment ouvrir la boîte et «lancer les pneus». l'efficacité énergétique et écrire du code parallèle qui utilise de nouvelles architectures matérielles. Ils peuvent gérer la mise en cache, l'architecture de la mémoire et les problèmes d'allocation des ressources. Ils peuvent expliquer et explorer l'informatique quantique.

L'informatique ne s'arrête pas au logiciel ou au codage. Les étudiants ont aussi besoin de fondations en architecture matérielle, y compris en génie électrique et en physique. Nous avons besoin d'informaticiens capables de tester et repousser les limites du matériel autant qu'ils poussent ce qui peut être réalisé avec un logiciel.

5. Histoire de l'informatique et éthique

Quelque chose que j'ai entendu à la célébration du 50e anniversaire de Turing l'été dernier est resté avec moi: L'informatique n'est pas neutre. Il peut être utilisé pour le bien ou le mal. Il peut être utilisé pour aider les gens et il peut être utilisé pour les manipuler et leur nuire.

Depuis plusieurs décennies, nous faisons des progrès informatiques pour l'informatique, parce que ce que nous pouvons faire, c'est que les ordinateurs Le défi de la prochaine chose est trop tentant pour laisser passer, parce qu'il y a de l'argent à faire si nous pouvons faire «X».

Ce n'est pas parce que nous pouvons faire quelque chose avec l'informatique que nous devrions le faire. Le pouvoir de calcul est si grand que nous avons besoin de politiques pour le réglementer et le gérer, afin de protéger et de profiter aux gens.

Il est important que les étudiants en informatique comprennent son histoire et suivent des cours d'éthique pour prendre des décisions responsables. guider les autres. Ils devraient connaître les méchants et les héros historiques de l'informatique, ses inventeurs et ses détracteurs, et comment ils ont été utilisés pour faire du bien et blesser les gens. La vieille scie s'applique ici: Si nous n'apprenons pas notre histoire, nous sommes condamnés à la répéter.

Même dans un programme serré, nous devons nous assurer que les étudiants acquièrent les compétences et les connaissances dont ils ont besoin pour devenir des innovateurs technologiques. contributeurs positifs à la société dans les décennies à venir. Cette liste est seulement un point de départ.

Alison Derbenwick Miller est vice-président de Oracle Academy .




Source link