Recommander des sujets à inclure dans un cours d'informatique pour les technologies géospatiales

24

J'enseignerai un cours à l'université locale intitulé Computer Science for Geospatial Technologies. Il s'agit d'un cours d'introduction destiné à présenter des concepts informatiques aux étudiants en technologies géospatiales (SIG et télédétection). Dans le passé, j'ai introduit des concepts de programmation, mais j'ai trouvé que cela dépassait la tête de nombreux étudiants.

Actuellement, je prévois de discuter du matériel informatique, des types de données spatiales (c'est-à-dire des fichiers de formes vs géodatabases), du modèle de géodatabase ESRI (l'université travaille sur une plate-forme ESRI), de la théorie de base de base de données avec ArcSDE Personal.

Quelqu'un pourrait-il recommander d'autres sujets liés à l'informatique que les praticiens des SIG et de la télédétection devraient connaître avant d'entrer sur le marché du travail?

MISE À JOUR: Le programme des dernières années comprenait:

  • API Javascript Google Maps / HTML / Google Earth / KML - 5 semaines
  • Scriptage Python - 6 semaines
  • Base de données Théorie / MS Access - 2 semaines
  • VBA - 2 semaines

La réponse que j'ai reçue des étudiants était que le temps consacré à chaque sujet était insuffisant. Je parle à l'université pour offrir un cours de niveau supérieur en programmation SIG utilisant Python.

Brian
la source
2
Je voudrais certainement ajouter des scripts et des projections. Une autre remarque, est-ce un mémoire ESRI? J'essaierais de le rendre agnostique sur les plateformes GI. J'essaierais également d'introduire davantage de projets open source, car beaucoup plus d'entreprises et d'organisations recherchent de cette façon. J'introduirais également des cadres de programmation si possible. Je sais que vous avez dit que cela leur avait traversé la tête la dernière fois, mais les scripts, au moins, sont nécessaires même pour le praticien de l'IG le plus basique, imo.
Hairy
1
J'ai inclus le script l'année dernière, mais je pense que le script devrait être un cours à part. Il y a juste trop de choses pour se contenter de quelques semaines d'un cours plus vaste. Je voudrais offrir un cours avancé en programmation SIG utilisant Python.
Brian
2
Bons points, @Hairy. Pourquoi ne les partagez-vous pas comme réponse?
whuber
1
Il est curieux, Brian, que bien que le but du cours soit caractérisé comme "introduire des concepts informatiques", seulement 2 des 15 semaines semblent consacrées à cela (la théorie de la base de données). Le reste ressemble à des applications pratiques plutôt qu'à des concepts. Peut-être sont-ils destinés à véhiculer des concepts qui autrement ne sont pas spécifiquement mentionnés dans le programme? Si tel est le cas, il serait utile d'indiquer quels concepts vous espérez enseigner dans les segments GM / GE / KML, Python et VBA.
whuber
1
@whuber - L'année dernière, le cours a été conçu pour être plus pratique. Je pensais que la plupart des étudiants avaient reçu suffisamment de théorie dans leurs cours traditionnels d'introduction aux SIG. Après avoir plongé dans la pratique sans les antécédents appropriés, de nombreux étudiants ont été perdus. Je me souviens avoir discuté de la façon dont l'écriture d'un flux de travail en Python d'une manière ou d'une autre peut influencer l'utilisation de la mémoire et du processeur et de nombreux étudiants semblaient ne pas comprendre ce qu'est la mémoire et le processeur. C'est pourquoi cette année, je pense que cela devrait être un peu plus conceptuel, combler les lacunes des autres cours.
Brian

Réponses:

29

En 15 ans de réponse aux questions SIG sur les serveurs de listes et, maintenant, les pages Web, j'ai noté des problèmes récurrents qui suggèrent un besoin pour les praticiens d'apprendre certains concepts informatiques spécifiques. Aucun de ces éléments n'est profond; tout cela est bien connu; mais tous semblent être des déficiences communes dans le contexte ou la compréhension d'une minorité importante (la majorité?) de personnes SIG. Dans de nombreux cas, peu de choses doivent réellement être apprises, à part une définition ou un exemple. Le but est d'alerter les étudiants sur les écueils qui se présenteront et de leur donner les principes ou les outils dont ils ont besoin pour les aborder lorsqu'ils se présentent, sans nécessairement devenir des experts.

Les liens dans la liste suivante vont tous aux questions sur ce site. La simple existence de ces liens témoigne de la valeur des concepts. En suivant les liens, vous pouvez trouver des exemples de la façon dont la connaissance de ces concepts peut résoudre des problèmes, les empêcher de se produire et aider les gens à être plus compétents avec les SIG.

Systèmes informatiques

  • Les composants d'un ordinateur: ouvrez une boîte, démontez-la, identifiez les pièces (CPU, RAM, disques, carte mère, carte réseau, etc.) et expliquez leurs rôles dans le système. Démystifiez-le et concrétisez-le pour les élèves.

  • Comprendre comment les systèmes informatiques stockent les données sur des appareils externes . Concepts de formats physiques et logiques. La distinction entre ASCII (et encodages similaires) et binaire brut.

  • Les détails de la représentation binaire interne des données numériques, y compris IEEE flotteurs de précision simple et double et des entiers signés et non signés . Limitations de chacun. Comment choisir le type de données à utiliser pour représenter les attributs SIG.

  • La distinction entre stockage externe et RAM . (Je sais que c'est incroyablement élémentaire, mais il y a beaucoup de confusion là-bas.)

L'informatique

  • Analyse asymptotique des algorithmes . Comprendre, à un niveau pratique, les différences entre O (n), O (n log (n)), O (n ^ 2), (et pire) le timing. Comment tester comment un algorithme de boîte noire évolue.

  • Principes d'interaction homme-machine. C'est trop large, mais certains principes de conception de formulaire et de conception de page Web peuvent aller très loin.

  • Principes des langages informatiques: à quoi s'attendre d'un langage, la différence entre les procédures et l'orientation des objets, quels types de structures de données et de langages d'objets peuvent prendre en charge et auxquels se référer, la différence entre les langages compilés et interprétés (et les compromis entre eux) .

  • Principes de base de la conception de la structure des données . L'interaction entre les structures utilisées pour représenter les données et les algorithmes qui les utilisent. Les utilisations des tableaux, des listes et des dictionnaires.

  • La distinction entre les objets et leurs références. ( De nombreuses erreurs sont commises par des personnes qui ne reconnaissent pas la différence entre un nom de variable et sa chaîne entre guillemets !)

  • Qu'est-ce qu'un système d'exploitation, quels services en attendre et comment interagir avec lui.

  • Qu'est-ce qu'un réseau, quels services en attendre, comparaison de certaines architectures et sens des compromis entre l'obtention de services informatiques localement et à distance.

  • Algorithmes théoriques des graphes: de nombreuses analyses SIG peuvent être représentées de manière abstraite en termes de problèmes sur les graphes; pouvoir le faire donne accès à des algorithmes efficaces. Un bel exemple sur notre site est ici impliquant un problème qui semble initialement n'avoir rien à voir avec les graphiques.

  • Récursivité. Un bon exemple pour les praticiens des SIG est la création d'un index spatial tel que cet algorithme pour un quadruple point adaptatif .

Données SIG

Systèmes de bases de données

SIG

  • Algorithmes typiques pour effectuer des procédures SIG de base, y compris le point dans le polygone et la mise en mémoire tampon. Pourquoi différents algorithmes peuvent être souhaitables pour des calculs ponctuels par rapport à des calculs répétés avec les mêmes données, ou pour des données statiques par rapport à des données dynamiques (en temps réel).

  • Comment les données SIG peuvent être organisées pour la recherche et le traitement, comme les arbres quadruples .

  • Évaluer les compromis entre résolution / précision / vitesse dans le stockage des données SIG (en particulier les données raster).

Recueil


Parce que c'est du haut de ma tête, c'est sûrement incomplet. Si les gens trouvent la liste utile, je travaillerai pour l'améliorer - ou aidez-moi et n'hésitez pas à l'ajouter si vous avez une réputation suffisante. Pour que cela reste pratique et ciblé, veuillez aborder uniquement les concepts qui aideront les gens à éviter les problèmes que vous avez réellement observés (dans votre propre travail ou celui des autres).

whuber
la source
Je ne suis pas sûr que votre exemple sur «La distinction entre stockage externe et RAM» signifie ce que vous pensez que cela signifie. Les disques RAM existent et ceci est une utilisation valide de l'un.
tomfumb
@tom Ce que je voulais vraiment aborder avec ce point, c'est la confusion commune parmi les utilisateurs qui appellent tout le stockage et la RAM "mémoire" sans comprendre les différentes caractéristiques des périphériques de stockage ou les formes de RAM. Il est à peine possible d'apprécier ce qu'est un lecteur RAM ou comment il fonctionne jusqu'à ce que vous compreniez ... dois-je le répéter? ... la distinction entre stockage externe et RAM. En outre, un disque RAM ne peut pas être considéré comme un périphérique de stockage, en raison de sa volatilité; mais les SSD brouillent certainement les lignes, tout comme le stockage basé sur le cloud sur des réseaux à haut débit.
whuber
1
Je souhaite bien sûr avoir prêté plus d'attention aux concepts de programmation simultanée présentés en classe. J'étais probablement trop occupé en multitâche :) Avec des processus de longue durée distribués sur le web, je pense que cela est devenu très important. Serait également utile pour traiter les problèmes de thread avec COM hérité.
Kirk Kuykendall
@Kirk Bonne suggestion. Je constate que presque aussi rapidement que la programmation parallèle devient courante, ses détails sont réussis au point que, dans de nombreux cas, nous n'avons pas besoin d'en savoir beaucoup pour l'utiliser. Exemple: dans Mathematica, tout ce que vous avez à faire est d'envelopper une section de code dans une Parallelizecommande et elle s'occupe du reste. (Cependant, la compréhension de la technologie sous-jacente est toujours utile pour tirer le meilleur parti de cette capacité.)
whuber
11

Je suis diplômé d'un programme centré sur l'ESRI dans lequel la faculté a fait un travail assez agréable en séparant le concept (lecture) et l'utilité (laboratoire). Mes principales faiblesses à la sortie du monde universitaire étaient: 1) Je n'avais aucune compétence SQL, aucune connaissance des principes de base des bases de données; et 2) je n'étais pas préparé au prétraitement programmatique requis pour la plupart des ensembles de données.

Je recommande un atelier de "traitement des données" pour introduire un SGBDR approprié (probablement PostreSQL avec PostGIS) et un langage de programmation (probablement Python) à utiliser pour nettoyer les fichiers CSV, TXT ou SHP. Avec juste un avant-goût de chacun, vos élèves seront mieux préparés à se débrouiller seuls "là-bas".

rec.thegeom
la source
1
+1 pour PostGIS. Ni Access ni ArcSDE n'encouragent une bonne conception de base de données. À long terme, une bonne connaissance de SQL est beaucoup plus précieuse que d'apprendre "la manière ESRI" de gérer les données spatiales dans "quelque chose comme" un SGBDR.
underdark
@ rec.thegeom - J'ai obtenu mon diplôme d'un type de programme similaire (dans la même université que j'enseigne) avec les mêmes lacunes et j'ai été obligé d'apprendre sur le tas. Je pense que la communauté universitaire a tendance à ne pas comprendre quelles compétences et connaissances sont nécessaires pour réussir dans une carrière en SIG. Je pense que le stockage et la gestion des données devraient être l'épine dorsale de toute formation en SIG. Après tout, le SIG n'est qu'une autre forme d'analyse et de visualisation des données. Étant donné que les étudiants connaissent l'environnement ESRI (et qu'il est déjà installé), j'espère utiliser SQL Server Express pour le travail de base de données.
Brian
10

Même si l'université utilise ESRI, je recommanderais d'introduire ou de décrire des équivalents open source. D'une part, il est beaucoup plus facile pour les étudiants d'installer QGIS sur leurs ordinateurs portables qu'ArcGIS s'ils souhaitent tester l'ouverture d'un fichier de formes car QGIS est considérablement plus petit (ArcGIS 10 est de 2 à 3 Go) et les étudiants n'ont pas besoin d'une connexion Internet. Mon université a des programmes axés sur ArcGIS plutôt que sur les SIG; Personnellement, je pense que c'est à l'envers.

L'introduction de KML avec google earth ou google maps pourrait être un moyen d'engager les étudiants. KML est populaire, et faire une carte interactive est un peu plus excitant qu'une carte papier; en particulier lorsque vous pouvez partager un lien Web avec d'autres personnes.

djq
la source
2
Je suis d'accord que l'enseignement uniquement ESRI est à l'envers. Malheureusement, l'université n'est pas d'accord. De plus, en raison de contraintes informatiques, je ne suis pas en mesure d'installer de logiciel supplémentaire dans le laboratoire informatique où se déroule le cours.
Brian
1
@Brian je comprends. Il pourrait toujours y avoir un moyen de cadrer l'enseignement de manière à ce qu'il soit axé sur diverses questions, et les produits ESRI sont un moyen de répondre à ces questions. Je pense que l'outil influence la pensée et l'expression (comme le langage humain), et c'est important de le souligner.
djq
l'introduction de KML semble être un excellent moyen d'attirer certains étudiants.
rec.thegeom
Même si vous n'avez pas d'étudiants à installer ou à utiliser des produits open-source, il serait toujours très bénéfique d'avoir une journée ou une semaine pour discuter des alternatives open-source qui sont disponibles juste pour les exposer au fait qu'il existe d'autres options que ESRI. S'ils veulent expérimenter ou utiliser un logiciel SIG à la maison, ils auraient alors d'autres options à explorer par eux-mêmes.
RyanDalton
4

Je voudrais certainement ajouter des scripts et des projections. Une autre remarque, est-ce un dossier ESRI? J'essaierais de le rendre `` IG agnostique '' car il y en a tellement maintenant, que l'ESRI n'a pas un monopole complet et que les budgets diminuent, imo, leur part de marché diminuera également. J'essaierais donc d'introduire davantage de projets open source, car beaucoup plus d'entreprises et d'organisations évoluent dans ce sens.

J'introduirais également des cadres de programmation si possible. Je sais que vous avez dit que cela leur avait traversé la tête la dernière fois, mais les scripts, au moins, sont nécessaires, même pour les praticiens les plus basiques de l'IG.

Des compétences en bases de données sont également nécessaires. Encore une fois, même le praticien de l'IG le plus élémentaire, devra probablement maintenir une sorte de banque de données et manipuler ces données va être un élément clé de leur travail quotidien.

L'une des choses les plus courantes que je dois faire est d'enseigner aux utilisateurs ce qu'est réellement le SIG. Cela me stupéfie, parfois, quant au peu de gens qui connaissent le SIG, à part Google Maps. Ainsi, être en mesure de les amener à démontrer une compréhension clé de ce que c'est, globalement, des utilisateurs aux systèmes serait bénéfique pour tous les utilisateurs. Je travaillais, récemment, avec un développeur Java ayant une certaine expérience, et quelqu'un que je qualifiais de spécialiste, mais il ne comprenait pas vraiment ce qu'était un SIG, en totalité.

Il serait également bon de leur montrer l'emplacement, car pas assez de gens pensent en dehors de la boîte à ce qu'est un emplacement.

Il a cependant le potentiel d'être plus grand que Ben Hur. J'ai étudié l'informatique à l'université, avec un module de SIG. Bien qu'ayant ensuite poursuivi une maîtrise en SIG, puis travaillé 15 ans dans l'industrie, j'apprends toujours, il est donc impossible de tout intégrer.

Poilu
la source