Recomendar tópicos a serem incluídos em um curso de Ciência da Computação para Tecnologias Geoespaciais

24

Vou ministrar um curso na universidade local, intitulado Ciência da Computação para Tecnologias Geoespaciais. Este é um curso introdutório destinado a introduzir conceitos de ciência da computação para estudantes de tecnologias geoespaciais (GIS e Sensoriamento Remoto). No passado, introduzi conceitos de programação, mas descobri que isso passou por muitas das cabeças dos alunos.

Atualmente, estou planejando discutir hardware de computador, tipos de dados espaciais (por exemplo, shapefiles x geodatabases), Modelo de Geodatabase da ESRI (a universidade trabalha em uma plataforma ESRI), teoria básica de banco de dados com o ArcSDE Personal.

Alguém poderia recomendar outros tópicos relacionados à ciência da computação que os profissionais de GIS e Sensoriamento Remoto deveriam conhecer antes de ingressar na força de trabalho?

ATUALIZAÇÃO: O currículo dos últimos anos incluiu:

  • API Javascript do Google Maps / HTML / Google Earth / KML - 5 semanas
  • Script Python - 6 semanas
  • Teoria de banco de dados / MS Access - 2 semanas
  • VBA - 2 semanas

A resposta que recebi dos alunos foi que não havia tempo suficiente em cada tópico. Estou falando com a universidade para oferecer um curso de próximo nível em Programação GIS usando Python.

Brian
fonte
2
Eu definitivamente adicionaria scripts e projeções. Outra observação, é um resumo da ESRI? Eu tentaria torná-lo independente de plataformas GI. Eu tentaria introduzir mais projetos de código aberto também, assim como muito mais empresas, e as organizações estão se saindo dessa maneira. Eu também introduziria estruturas de programação, se possível. Eu sei que você disse que isso passou pela cabeça deles da última vez, mas pelo menos os scripts são necessários até mesmo para o praticante de GI mais básico, o IMO.
Hairy
11
Incluí scripts no ano passado, mas acho que os scripts devem ser um curso próprio. Há muito para se espremer em apenas algumas semanas de um curso maior. Eu gostaria de oferecer um curso avançado em Programação GIS usando Python.
28711 Brian
2
Bons pontos, @Hairy. Por que você não os compartilha como resposta?
whuber
11
É curioso, Brian, que, embora o objetivo do curso seja caracterizado como "introduzir conceitos de ciência da computação", apenas 2 das 15 semanas parecem dedicadas a isso (a teoria do banco de dados). O resto parece mais aplicações práticas do que conceitos. Talvez eles se destinem como veículos para ensinar conceitos que, de outra forma, não são especificamente mencionados no currículo? Se esse for o caso, ajudaria a indicar quais conceitos você espera ensinar nos segmentos GM / GE / KML, Python e VBA.
whuber
11
@whuber - No ano passado, o curso foi projetado para ter habilidades mais práticas. Imaginei que a maioria dos estudantes havia recebido teoria suficiente em seus cursos introdutórios tradicionais de GIS. Depois de mergulhar na prática sem a devida experiência, muitos dos alunos se perderam. Lembro-me de discutir como o script de um fluxo de trabalho em Python, de uma maneira ou de outra, pode influenciar o uso da memória e do processador e muitos dos alunos pareciam não entender o que são memória e processador. Por isso, este ano, acho que deveria ser um pouco mais conceitual, preenchendo as lacunas de outros cursos.
28711 Brian

Respostas:

29

Em 15 anos respondendo perguntas de GIS sobre servidores de listas e, agora, páginas da Web, observei alguns problemas recorrentes que sugerem a necessidade de os profissionais aprenderem certos conceitos específicos de computação. Nada disso é profundo; tudo isso é bem conhecido; mas todas parecem ser deficiências comuns nos antecedentes ou no entendimento de uma minoria significativa (maioria?) das pessoas de GIS. Em muitos casos, pouco precisa realmente ser aprendido além de uma definição ou exemplo. O objetivo é alertar os alunos sobre as armadilhas que surgirão e fornecer a eles os princípios ou ferramentas de que precisam para lidar com eles quando surgirem, sem necessariamente se tornarem especialistas.

Todos os links da lista a seguir vão para perguntas neste site. A mera existência desses links fornece evidências do valor dos conceitos. Seguindo os links, você pode encontrar exemplos de como o conhecimento desses conceitos pode resolver problemas, impedir que eles aconteçam e ajudar as pessoas a serem mais proficientes em GIS.

Sistemas de computação

  • Os componentes de um computador: abra uma caixa, desmonte-a, identifique as peças (CPU, RAM, discos, placa-mãe, placa de rede etc.) e explique suas funções no sistema. Desmistifique-o e torne-o concreto para os alunos.

  • Compreensão de como os sistemas de computação armazenam dados em dispositivos externos . Conceitos de formatos físicos e lógicos. A distinção entre ASCII (e codificações similares) e binário bruto.

  • Detalhes da representação binária interna de dados numéricos, incluindo IEEE flutua precisão simples e dupla e inteiros assinados e não assinados . Limitações de cada um. Como escolher qual tipo de dados usar para representar atributos GIS.

  • A distinção entre armazenamento externo e RAM . (Eu sei que isso é incrivelmente elementar, mas há muita confusão por aí.)

Ciência da Computação

  • Análise assintótica de algoritmos . Compreendendo, em um nível prático, as diferenças entre O (n), O (n log (n)), O (n ^ 2) e (e pior) o tempo. Como testar como um algoritmo de caixa preta é escalado.

  • Princípios de interação humano-computador. Isso é muito amplo, mas alguns princípios de design de formulário e design de página da Web podem percorrer um longo caminho.

  • Princípios das linguagens de computação: o que esperar de uma linguagem, a diferença entre orientação processual e de objeto, que tipos de estruturas de dados e linguagens de objetos podem suportar e se referir, a diferença entre linguagens compiladas e interpretadas (e as compensações entre elas) .

  • Princípios básicos do design da estrutura de dados . A interação entre estruturas usadas para representar dados e os algoritmos que os utilizam. Os usos de matrizes, listas e dicionários.

  • A distinção entre objetos e referências a eles. ( Muitos erros são cometidos por pessoas que não reconhecem a diferença entre um nome de variável e sua sequência de caracteres citada !)

  • O que é um sistema operacional, quais serviços esperar dele e como interagir com ele.

  • O que é uma rede, quais serviços esperar deles, comparação de algumas arquiteturas e um senso de troca entre obter serviços de computação local ou remotamente.

  • Algoritmos teóricos dos grafos: muitas análises GIS podem ser abstratamente representadas em termos de problemas nos gráficos; poder fazer isso dá acesso a algoritmos eficientes. Um bom exemplo em nosso site está aqui envolvendo um problema que inicialmente parece não ter nada a ver com gráficos.

  • Recursão. Um bom exemplo para os profissionais de GIS é a criação de um índice espacial como esse algoritmo para um quadtree de ponto adaptativo .

Dados GIS

Sistemas de banco de dados

SIG

  • Algoritmos típicos para executar procedimentos básicos de GIS, incluindo point-in-polygon e buffering. Por que algoritmos diferentes podem ser desejáveis ​​para cálculos pontuais em comparação com cálculos repetidos com os mesmos dados ou para dados estáticos comparados com dados dinâmicos (em tempo real).

  • Como os dados GIS podem ser organizados para pesquisa e processamento, como quadríceps .

  • Avaliação de trocas entre resolução / precisão / velocidade no armazenamento de dados GIS (especialmente dados rasterizados).

Miscelânea


Porque isso está fora do topo da minha cabeça, certamente está incompleto. Se as pessoas acharem a lista útil, trabalharei para melhorá-la - ou me ajude e sinta-se à vontade para adicioná-la se você tiver reputação suficiente. Para manter isso prático e focado, trate apenas de conceitos que ajudarão as pessoas a evitar problemas que você realmente observou (em seu próprio trabalho ou no de outras pessoas).

whuber
fonte
Não sei se o seu exemplo sobre 'A distinção entre armazenamento externo e RAM' significa o que você pensa que significa. Existem discos de RAM e esse é um uso válido de um.
precisa saber é
@ tom O que realmente queria abordar neste ponto é a confusão comum entre usuários que chamam todo o armazenamento e RAM de "memória" sem entender as várias características dos dispositivos de armazenamento ou as formas de RAM. É quase impossível apreciar o que é uma unidade de RAM ou como ela funciona até que você entenda ... devo dizer novamente? ... a distinção entre armazenamento externo e RAM. Além disso, um disco RAM não pode ser considerado um dispositivo de armazenamento devido à sua volatilidade; mas os SSDs certamente estão atrapalhando as linhas, assim como o armazenamento baseado em nuvem em redes de alta velocidade.
whuber
11
Eu certamente gostaria de ter prestado mais atenção aos conceitos de programação simultâneos apresentados em aula. Eu provavelmente estava muito ocupado em multitarefa :) Com processos de execução longa distribuídos na Web, acho que isso se tornou muito importante. Também seria útil para lidar com problemas de encadeamento com COM herdado.
Kirk Kuykendall
@ Kirk Boa sugestão. Estou descobrindo que quase tão rapidamente quanto a programação paralela está se tornando comum, seus detalhes estão sendo abstraídos com sucesso a tal ponto que, em muitos casos, não precisamos saber muito para fazer uso dela. Caso em questão: no Mathematica, tudo o que você precisa fazer é agrupar uma seção de código dentro de um Parallelizecomando e ele cuida do resto. (Entendendo a tecnologia subjacente ainda é útil para tirar o máximo desse recurso, no entanto.)
whuber
11

Eu me formei em um programa centrado na ESRI, no qual o corpo docente fez um bom trabalho separando conceito (palestra) e utilidade (laboratório). Minhas principais fraquezas ao sair da academia foram: 1) eu não tinha habilidades em SQL, nenhum conhecimento dos princípios básicos do banco de dados; e 2) eu não estava preparado para o pré-processamento programático necessário para a maioria dos conjuntos de dados.

Eu recomendo um workshop de "manipulação de dados" para introduzir um RDBMS adequado (provavelmente PostreSQL com PostGIS) e uma linguagem de programação (provavelmente Python) para uso na limpeza de arquivos CSV, TXT ou SHP. Com apenas um gostinho de cada um, seus alunos estarão mais preparados para permanecer sozinhos "lá fora".

rec.thegeom
fonte
11
+1 para PostGIS. Nem o Access nem o ArcSDE incentivam um bom design de banco de dados. A longo prazo, um bom conhecimento de SQL é muito mais valioso do que aprender "a maneira ESRI" de lidar com dados espaciais em "algo como" um RDBMS.
Underdark
@ rec.thegeom - Eu me formei em um tipo de programa semelhante (na mesma universidade em que estou ensinando) com as mesmas deficiências e fui forçado a aprender no trabalho. Eu acho que a comunidade acadêmica tende a não entender quais habilidades e conhecimentos são necessários para ter sucesso em uma carreira de GIS. Eu acho que o armazenamento e gerenciamento de dados devem ser a espinha dorsal de qualquer educação em GIS. Afinal, o GIS é apenas outra forma de análise e visualização de dados. Como os alunos estão familiarizados com o ambiente ESRI (e já está instalado), espero usar o SQL Server Express para o trabalho no banco de dados.
28711 Brian
10

Mesmo que a universidade use ESRI, eu recomendaria a introdução ou descrição de equivalentes de código aberto. Por um lado, é muito mais fácil para os alunos instalar o QGIS em seus laptops do que o ArcGIS, se eles querem testar a abertura de um shapefile, pois o QGIS é significativamente menor (o ArcGIS 10 é de 2 a 3 GB) e os alunos não precisam de uma conexão à Internet. Minha universidade tem currículos focados no ArcGIS e não no GIS; Pessoalmente, acho que isso é inverso.

A introdução do KML com o Google Earth ou Google Maps pode ser uma maneira de envolver os alunos. O KML é popular, e criar um mapa interativo é um pouco mais emocionante do que um mapa em papel; especialmente quando você pode compartilhar um link da web com outras pessoas.

djq
fonte
2
Concordo que ensinar apenas ESRI é invertido. Infelizmente, a universidade não concorda. Além disso, devido a restrições de TI, não consigo instalar nenhum software adicional no laboratório de informática em que o curso ocorre.
28711 Brian
11
@ Brian eu entendo. Ainda pode haver uma maneira de estruturar o ensino de maneira que se concentre em várias perguntas, e os produtos ESRI são uma maneira de responder a essas perguntas. Eu acho que a ferramenta influencia o pensamento e a expressão (como a linguagem humana), e isso é importante destacar.
DJQ
a introdução do KML parece ser uma ótima maneira de atrair alguns alunos.
rec.thegeom 28/11
Mesmo que você não tenha estudantes para instalar ou usar produtos de código aberto, ainda seria muito benéfico ter um dia ou uma semana que discutisse as alternativas de código aberto disponíveis apenas para expô-los ao fato de que existem outras opções. do que ESRI. Se eles quiserem experimentar ou usar o software GIS em casa, terão algumas opções alternativas para investigar por conta própria.
precisa saber é o seguinte
4

Eu definitivamente adicionaria scripts e projeções. Outra observação, é um resumo da ESRI? Eu tentaria torná-lo “independente de IG”, como há tantos agora, que a ESRI não possui um monopólio completo e, à medida que os orçamentos diminuem, sua participação no mercado também diminui. Então, eu tentaria introduzir mais projetos de código aberto também, muito mais empresas e organizações estão se movendo dessa maneira.

Eu também introduziria estruturas de programação, se possível. Eu sei que você disse que isso passou pela cabeça deles da última vez, mas os scripts, pelo menos, são necessários até mesmo para o praticante de GI mais básico.

Também são necessárias habilidades de banco de dados. Novamente, mesmo o profissional mais básico de IG, provavelmente terá que manter algum tipo de armazenamento de dados e manipular esses dados será um elemento-chave do seu dia-a-dia.

Uma das coisas mais comuns que tenho que fazer é ensinar aos usuários o que realmente é o GIS. Às vezes me surpreende o quão pouco as pessoas sabem sobre SIG, além do Google Maps. Portanto, conseguir que eles demonstrem um entendimento importante sobre o que é, holisticamente, dos usuários para os sistemas seria benéfico para todos os usuários. Recentemente, eu estava trabalhando com um desenvolvedor Java de alguma experiência e com alguém que eu classifiquei como especialista, mas ele realmente não entendeu o que era um GIS, na totalidade.

Também seria bom demonstrar a localização para eles, pois poucas pessoas pensam fora da caixa sobre o que é uma localização.

No entanto, tem o potencial de ser maior que Ben Hur. Estudei Ciência da Computação na Universidade, com um módulo de SIG. Apesar de depois concluir o mestrado em SIG, trabalhar 15 anos na indústria, ainda estou aprendendo, por isso é impossível obter tudo.

Peludo
fonte