Raccomandare argomenti da includere in un corso di Informatica per le tecnologie geospaziali


24

Terrò un corso presso l'università locale intitolato Computer Science for Geospatial Technologies. Questo è un corso introduttivo inteso a introdurre concetti di informatica agli studenti di tecnologie geospaziali (GIS e telerilevamento). In passato ho introdotto concetti di programmazione, ma ho scoperto che questo ha riguardato molte delle teste degli studenti.

Attualmente sto progettando di discutere di hardware del computer, tipi di dati spaziali (es. Shapefile vs geodatabase), ESRI Geodatabase Model (l'università lavora su una piattaforma ESRI), teoria di base del database con ArcSDE Personal.

Qualcuno potrebbe raccomandare alcuni altri argomenti relativi all'informatica che i professionisti di GIS e Telerilevamento dovrebbero conoscere prima di entrare nella forza lavoro?

AGGIORNAMENTO: curriculum degli ultimi anni incluso:

  • API JavaScript / HTML / Google Earth / KML di Google Maps - 5 settimane
  • Scripting Python - 6 settimane
  • Teoria del database / Accesso MS - 2 settimane
  • VBA - 2 settimane

La risposta che ho ricevuto dagli studenti è stata che non è stato dedicato abbastanza tempo a ciascun argomento. Sto parlando all'università per offrire un corso di livello successivo nella programmazione GIS usando Python.


2
Aggiungerei sicuramente script e proiezioni. Un'altra nota, è un brief ESRI? Proverei a renderlo agnostico su piattaforme IG. Proverei a introdurre anche altri progetti open source, così come molte più aziende e le organizzazioni stanno facendo pressioni in quel modo. Vorrei anche introdurre quadri di programmazione, se possibile. So che hai detto che è andato oltre la testa l'ultima volta, ma lo scripting, almeno, è necessario anche al più semplice praticante di IG, imo.
Peloso

1
Ho incluso lo scripting l'anno scorso, ma penso che lo scripting dovrebbe essere un corso a parte. C'è davvero troppo per entrare in poche settimane di un corso più ampio. Vorrei offrire un corso avanzato di programmazione GIS usando Python.
Brian,

2
Aspetti positivi, @Hairy. Perché non li condividi come risposta?
whuber

1
È curioso, Brian, che sebbene lo scopo del corso sia caratterizzato come "introdurre concetti di informatica", solo 2 delle 15 settimane sembrano dedicate a questo (la teoria del database). Gli altri sembrano applicazioni pratiche piuttosto che concetti. Forse sono intesi come veicoli per insegnare concetti che altrimenti non sono specificamente indicati nel curriculum? In tal caso, sarebbe utile indicare quali concetti speri di insegnare nei segmenti GM / GE / KML, Python e VBA.
whuber

1
@whuber - L'anno scorso il corso è stato progettato per essere più pratiche. Ho pensato che la maggior parte degli studenti avesse ricevuto abbastanza teoria nei loro tradizionali corsi introduttivi GIS. Dopo essersi immersi nella pratica senza il giusto background, molti studenti sono stati persi. Ricordo di aver discusso di come lo scripting di un flusso di lavoro in Python in un modo o nell'altro possa influenzare l'uso della memoria e del processore e molti studenti sembravano non capire cosa siano la memoria e il processore. Ecco perché quest'anno, penso che dovrebbe essere un po 'più concettuale, colmando le lacune di altri corsi.
Brian,

Risposte:


29

In 15 anni di risposta alle domande GIS sui server di elenchi e, ora, sulle pagine Web, ho notato alcuni problemi ricorrenti che suggeriscono la necessità per i professionisti di apprendere determinati concetti informatici specifici. Nessuno di questi è profondo; tutti questi sono ben noti; ma tutti sembrano essere carenze comuni nel background o nella comprensione di una minoranza significativa (maggioranza?) delle persone GIS. In molti casi in realtà poco deve essere appreso a parte una definizione o un esempio. Il punto è avvisare gli studenti delle insidie ​​che sorgeranno e fornire loro i principi o gli strumenti di cui hanno bisogno per affrontarli quando si presentano, senza necessariamente diventare esperti.

I collegamenti nel seguente elenco vanno tutti alle domande su questo sito. La semplice esistenza di questi collegamenti fornisce la prova del valore dei concetti. Seguendo i collegamenti, è possibile trovare esempi di come la conoscenza di questi concetti possa risolvere i problemi, impedire che si verifichino e aiutare le persone a essere più competenti con il GIS.

Sistemi informatici

  • I componenti di un computer: aprire una scatola, smontarla, identificare i pezzi (CPU, RAM, dischi, scheda madre, scheda di rete, ecc.) E spiegare i loro ruoli nel sistema. Demistificarlo e renderlo concreto per gli studenti.

  • Comprensione del modo in cui i sistemi informatici memorizzano i dati su dispositivi esterni . Concetti di formati fisici e logici. La distinzione tra ASCII (e codifiche simili) e binario non elaborato.

  • Dettagli della rappresentazione binaria interna dei dati numerici, tra cui IEEE carri di precisione singola e doppia e interi con e senza segno . Limitazioni di ciascuno. Come scegliere quale tipo di dati utilizzare per rappresentare gli attributi GIS.

  • La distinzione tra memoria esterna e RAM . (So ​​che è incredibilmente elementare, ma c'è molta confusione là fuori.)

Scienza del computer

  • Analisi asintotica di algoritmi . Comprendere, a livello pratico, le differenze tra i tempi O (n), O (n log (n)), O (n ^ 2), (e peggio). Come testare il ridimensionamento di un algoritmo black-box.

  • Principi di interazione uomo-computer. Questo è troppo ampio, ma alcuni principi di progettazione dei moduli e progettazione delle pagine Web possono fare molto.

  • Principi dei linguaggi informatici: cosa aspettarsi da una lingua, la differenza tra orientamento procedurale e degli oggetti, quali tipi di strutture dati e linguaggi di oggetti possono supportare e riferirsi, la differenza tra linguaggi compilati e interpretati (e i compromessi tra loro) .

  • Principi di base della progettazione della struttura dei dati . L'interazione tra le strutture utilizzate per rappresentare i dati e gli algoritmi che li utilizzano. Gli usi di matrici, elenchi e dizionari.

  • La distinzione tra oggetti e riferimenti ad essi. ( Molti errori vengono commessi da persone che non riconoscono la differenza tra un nome di variabile e la sua stringa tra virgolette !)

  • Che cos'è un sistema operativo, quali servizi aspettarsi da esso e come interagire con esso.

  • Cos'è una rete, quali servizi aspettarsi da loro, confronto di alcune architetture e un senso di compromessi tra l'ottenimento di servizi di elaborazione locale rispetto a quelli remoti.

  • Algoritmi grafico-teorici: molte analisi GIS possono essere rappresentate in modo astratto in termini di problemi sui grafici; essere in grado di farlo dà accesso ad algoritmi efficienti. Un bell'esempio sul nostro sito è qui che coinvolge un problema che inizialmente non sembra avere nulla a che fare con i grafici.

  • Ricorsione. Un buon esempio per i professionisti del GIS è la creazione di un indice spaziale come questo algoritmo per un quadrifoglio adattivo .

Dati GIS

Sistemi di database

GIS

  • Algoritmi tipici per l'esecuzione di procedure GIS di base, tra cui poligono e buffering. Perché potrebbero essere desiderabili algoritmi diversi per i calcoli una tantum rispetto ai calcoli ripetuti con gli stessi dati o per i dati statici rispetto ai dati dinamici (in tempo reale).

  • In che modo è possibile organizzare i dati GIS per la ricerca e l'elaborazione, come i quadrifici .

  • Valutazione dei compromessi tra risoluzione / precisione / velocità nella memorizzazione dei dati GIS (in particolare i dati raster).

Miscellanea


Perché questo è fuori dalla mia testa, sicuramente è incompleto. Se la gente trova utile l'elenco lavorerò per migliorarlo - o aiutarmi e sentirmi libero di aggiungerlo se hai una reputazione sufficiente. Per mantenere questo aspetto pratico e mirato, si prega di affrontare solo i concetti che aiuteranno le persone ad evitare i problemi che hai effettivamente osservato (nel tuo lavoro o in quello degli altri).


Non sono sicuro che il tuo esempio su "La distinzione tra memoria esterna e RAM" significhi ciò che pensi significhi. I dischi RAM esistono e questo è un uso valido di uno.
tomfumb,

@tom Ciò a cui volevo veramente rivolgermi a questo punto è la confusione comune tra gli utenti che chiamano tutta la memoria e la "memoria" della RAM senza comprendere le varie caratteristiche dei dispositivi di memorizzazione o le forme di RAM. Difficilmente è possibile apprezzare cos'è un'unità RAM o come funziona fino a quando non si capisce ... devo dirlo di nuovo? ... la distinzione tra memoria esterna e RAM. Inoltre, un disco RAM non può essere considerato un dispositivo di archiviazione, a causa della sua volatilità; ma gli SSD stanno certamente sfocando le linee, così come lo è lo storage basato su cloud su reti ad alta velocità.
whuber

1
Spero di aver prestato maggiore attenzione ai concetti di programmazione simultanea presentati in classe. Probabilmente ero troppo impegnato nel multitasking :) Con processi a lungo termine distribuiti sul web, penso che questo sia diventato molto importante. Sarebbe inoltre utile per gestire i problemi di threading con COM legacy.
Kirk Kuykendall,

@Kirk Buon suggerimento. Sto scoprendo che quasi altrettanto rapidamente come la programmazione parallela sta diventando un luogo comune, i suoi dettagli vengono astratti con successo al punto che in molti casi non abbiamo bisogno di sapere molto per farne uso. Caso in questione: in Mathematica tutto ciò che devi fare è racchiudere una sezione di codice all'interno di un Parallelizecomando e si occuperà del resto. (Comprendere la tecnologia di base è comunque utile per sfruttare al massimo questa capacità.)
whuber

11

Mi sono laureato in un programma centrato sull'ESRI in cui la facoltà ha svolto un lavoro piuttosto piacevole separando concetto (lezione) e utilità (laboratorio). I miei principali punti deboli all'uscita dal mondo accademico erano: 1) Non avevo abilità SQL, nessuna conoscenza dei principi di base del database; e 2) non ero preparato per la pre-elaborazione programmatica richiesta per la maggior parte dei set di dati.

Raccomando un seminario di "gestione dei dati" per introdurre un RDBMS adeguato (probabilmente PostreSQL con PostGIS) e un linguaggio di programmazione (probabilmente Python) da utilizzare per ripulire i file CSV, TXT o SHP. Con un assaggio di ciascuno i tuoi studenti saranno più preparati a stare da soli "là fuori".


1
+1 per PostGIS. Né Access né ArcSDE incoraggiano una buona progettazione del database. A lungo termine, una buona conoscenza di SQL è molto più preziosa dell'apprendimento del "modo ESRI" di gestire i dati spaziali in "qualcosa di simile" a un RDBMS.
underdark

@ rec.thegeom - Mi sono laureato in un simile tipo di programma (nella stessa università che sto insegnando) con le stesse carenze e sono stato costretto a imparare sul lavoro. Penso che la comunità accademica tende a mancare di una comprensione di quali abilità e conoscenze sono necessarie per avere successo in una carriera GIS. Penso che l'archiviazione e la gestione dei dati dovrebbero essere la spina dorsale di qualsiasi educazione GIS. Dopotutto, GIS è solo un'altra forma di analisi e visualizzazione dei dati. Poiché gli studenti hanno familiarità con l'ambiente ESRI (è già installato) spero di utilizzare SQL Server Express per il lavoro di database.
Brian,

10

Anche se l'università utilizza ESRI, consiglierei di introdurre o descrivere equivalenti open source. Per uno, è molto più facile per gli studenti installare QGIS sui loro laptop rispetto ad ArcGIS se vogliono testare l'apertura di uno shapefile poiché QGIS è significativamente più piccolo (ArcGIS 10 è 2 - 3 GB) e gli studenti non hanno bisogno di una connessione Internet. La mia università ha curricula incentrati su ArcGIS piuttosto che su GIS; Personalmente penso che questo sia al contrario.

L'introduzione di KML con google earth o google maps potrebbe essere un modo per coinvolgere gli studenti. KML è popolare e creare una mappa interattiva è un po 'più eccitante di una mappa cartacea; in particolare quando è possibile condividere un collegamento Web con altri.


2
Concordo sul fatto che insegnare solo ESRI è al contrario. Purtroppo l'università non è d'accordo. Inoltre, a causa di vincoli IT, non sono in grado di installare alcun software aggiuntivo nel laboratorio informatico in cui si svolge il corso.
Brian,

1
@Brian ho capito. Potrebbe esserci ancora un modo per inquadrare l'insegnamento in modo che sia focalizzato su varie domande, e i prodotti ESRI sono un modo per rispondere a queste domande. Penso che lo strumento influenzi il pensiero e l'espressione (come il linguaggio umano), e questo è importante evidenziare.
djq,

l'introduzione di KML sembra un ottimo modo per attirare alcuni studenti.
rec.thegeom

Anche se non hai studenti che installano o usano prodotti open-source, sarebbe comunque molto utile avere un giorno o una settimana in cui discutere delle alternative open-source disponibili solo per esporle al fatto che ci sono altre opzioni dell'ESRI. Se vogliono sperimentare o utilizzare il software GIS a casa, allora avrebbero alcune opzioni alternative per indagare da soli.
Ryan Dalton,

4

Aggiungerei sicuramente script e proiezioni. Un'altra nota, è un brief ESRI? Proverei a renderlo "IG agnostico" dato che ce ne sono così tanti ora, che ESRI non ha un monopolio completo e, man mano che i budget si riducono, quindi, anche la loro quota di mercato diminuirà. Quindi proverei a introdurre anche altri progetti open source, come molte più aziende e le organizzazioni si stanno muovendo in quel modo.

Vorrei anche introdurre quadri di programmazione, se possibile. So che hai detto che è andato oltre la testa l'ultima volta, ma lo scripting, almeno, è necessario anche al più semplice praticante di IG.

Sono necessarie anche le competenze del database. Anche in questo caso, anche il professionista IG di base, probabilmente dovrà mantenere un qualche tipo di archivio dati e manipolare i dati sarà un elemento chiave del loro lavoro quotidiano.

Una delle cose più comuni che devo fare è insegnare agli utenti cosa sia realmente il GIS. A volte mi stupisce di quanto poco sappiano i GIS, a parte le mappe di Google. Pertanto, essere in grado di dimostrare loro una comprensione chiave di ciò che è, olisticamente, dagli utenti ai sistemi sarebbe vantaggioso per tutti gli utenti. Di recente, stavo lavorando con uno sviluppatore Java con una certa esperienza e qualcuno che ho valutato come uno specialista, ma non capiva davvero cosa fosse un GIS, nella sua totalità.

Sarebbe anche bello dimostrare loro la posizione, in quanto non abbastanza persone pensano fuori dagli schemi su cosa sia una posizione.

Tuttavia, ha il potenziale per essere più grande di Ben Hur. Ho studiato informatica all'università, con un modulo di GIS. Nonostante continui a completare un master in GIS, quindi lavoro 15 anni nel settore, sto ancora imparando, quindi è impossibile ottenere tutto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.