Recomendar temas para ser incluidos en un curso de Informática para Tecnologías Geoespaciales

24

Voy a dar un curso en la universidad local titulado Computer Science for Geospatial Technologies. Este es un curso introductorio destinado a presentar conceptos de informática a estudiantes de tecnologías geoespaciales (SIG y Teledetección). En el pasado, introduje conceptos de programación, pero descubrí que esto pasó por encima de muchas de las cabezas de los estudiantes.

Actualmente, planeo discutir el hardware de la computadora, los tipos de datos espaciales (es decir, los shapefiles frente a las geodatabases), el modelo de geodatabase ESRI (la universidad trabaja en una plataforma ESRI), la teoría básica de bases de datos con ArcSDE Personal.

¿Alguien podría recomendar otros temas relacionados con la informática que los profesionales de SIG y Teledetección deberían conocer antes de ingresar a la fuerza laboral?

ACTUALIZACIÓN: El currículo de los últimos años incluyó:

  • API de JavaScript de Google Maps / HTML / Google Earth / KML - 5 semanas
  • Python Scripting - 6 semanas
  • Teoría de la base de datos / MS Access - 2 semanas
  • VBA - 2 semanas

La respuesta que recibí de los estudiantes fue que no se dedicaba suficiente tiempo a cada tema. Estoy hablando con la universidad para ofrecer un curso de siguiente nivel en Programación SIG usando Python.

Brian
fuente
2
Definitivamente agregaría secuencias de comandos y proyecciones. Otra nota, ¿es un resumen de ESRI? Trataría de hacerlo agnóstico en las plataformas GI. Intentaría presentar más proyectos de código abierto también, ya que muchas más empresas y organizaciones están buscando eso. También introduciría marcos de programación si es posible. Sé que has dicho que pasó por alto la última vez, pero las secuencias de comandos, al menos, son necesarias incluso para el practicante de GI más básico, imo.
Peludo
1
Incluí las secuencias de comandos el año pasado, pero creo que las secuencias de comandos deberían ser un curso propio. Hay demasiado para exprimir en solo unas pocas semanas de un curso más grande. Me gustaría ofrecer un curso avanzado en Programación SIG usando Python.
Brian
2
Buenos puntos, @Hairy. ¿Por qué no los compartes como respuesta?
whuber
1
Es curioso, Brian, que aunque el propósito del curso se caracteriza por "introducir conceptos informáticos", solo 2 de las 15 semanas parecen dedicadas a esto (la teoría de la base de datos). El resto parece aplicaciones prácticas en lugar de conceptos. ¿Quizás están destinados a ser vehículos para enseñar conceptos que de otro modo no se mencionarán específicamente en el plan de estudios? Si ese es el caso, sería útil indicar qué conceptos espera enseñar en los segmentos GM / GE / KML, Python y VBA.
whuber
1
@whuber - El año pasado el curso fue diseñado para tener habilidades más prácticas. Supuse que la mayoría de los estudiantes habían recibido suficiente teoría en sus cursos introductorios tradicionales de SIG. Después de sumergirse en la práctica sin los antecedentes adecuados, muchos de los estudiantes se perdieron. Recuerdo haber discutido cómo las secuencias de comandos de un flujo de trabajo en Python de una manera u otra pueden influir en el uso de la memoria y el procesador, y muchos de los estudiantes parecían no entender qué son la memoria y el procesador. Es por eso que este año, creo que debería ser un poco más conceptual, llenando los vacíos de otros cursos.
Brian

Respuestas:

29

En 15 años de responder preguntas SIG en servidores de listas y, ahora, en páginas web, he notado algunos problemas recurrentes que sugieren la necesidad de que los profesionales aprendan ciertos conceptos informáticos específicos. Ninguno de estos es profundo; todos estos son bien conocidos; pero todos parecen ser deficiencias comunes en el fondo o la comprensión de una minoría significativa (¿mayoría?) de personas con SIG. En muchos casos, poco se necesita aprender aparte de una definición o ejemplo. El punto es alertar a los estudiantes sobre las dificultades que surgirán y darles los principios o herramientas que necesitan para abordarlos cuando surjan, sin necesariamente convertirse en expertos.

Los enlaces en la siguiente lista van a preguntas en este sitio. La mera existencia de estos enlaces proporciona evidencia del valor de los conceptos. Al seguir los enlaces, puede encontrar ejemplos de cómo conocer estos conceptos puede resolver problemas, evitar que sucedan y ayudar a las personas a ser más competentes con SIG.

Sistemas de computación

  • Los componentes de una computadora: abra una caja, desmóntela, identifique las piezas (CPU, RAM, discos, placa base, tarjeta de red, etc.) y explique sus funciones en el sistema. Desmitificarlo y hacerlo concreto para los estudiantes.

  • Comprensión de cómo los sistemas informáticos almacenan datos en dispositivos externos . Conceptos de formatos físicos y lógicos. La distinción entre ASCII (y codificaciones similares) y binario sin formato.

  • Los detalles de la representación binaria interna de los datos numéricos, incluyendo flotante IEEE de precisión simple y doble y números enteros con y sin signo . Limitaciones de cada uno. Cómo elegir qué tipo de datos usar para representar los atributos SIG.

  • La distinción entre almacenamiento externo y RAM . (Sé que esto es increíblemente elemental, pero hay mucha confusión por ahí).

Ciencias de la Computación

  • Análisis asintótico de algoritmos . Comprender, en un nivel práctico, las diferencias entre O (n), O (n log (n)), O (n ^ 2), (y peor) sincronización. Cómo probar cómo se escala un algoritmo de recuadro negro.

  • Principios de interacción humano-computadora. Esto es demasiado amplio, pero algunos principios de diseño de formularios y diseño de páginas web pueden ser muy útiles.

  • Principios de los lenguajes de computación: qué esperar de un lenguaje, la diferencia entre la orientación procesal y la orientación a los objetos, a qué tipos de estructuras de datos y lenguajes de objetos pueden admitir y referirse, la diferencia entre los lenguajes compilados e interpretados (y las compensaciones entre ellos) .

  • Principios básicos del diseño de la estructura de datos . La interacción entre las estructuras utilizadas para representar datos y los algoritmos que los utilizan. Los usos de matrices, listas y diccionarios.

  • La distinción entre objetos y referencias a ellos. (¡ Muchos errores son cometidos por personas que no reconocen la diferencia entre un nombre de variable y su cadena citada !)

  • Qué es un sistema operativo, qué servicios esperar de él y cómo interactuar con él.

  • Qué es una red, qué servicios esperar de ellos, comparación de algunas arquitecturas y una sensación de compensaciones entre la obtención de servicios de computación local y remota.

  • Algoritmos teóricos de gráficos: muchos análisis SIG pueden representarse de manera abstracta en términos de problemas en gráficos; ser capaz de hacer esto da acceso a algoritmos eficientes. Un buen ejemplo en nuestro sitio es aquí un problema que inicialmente parece no tener nada que ver con los gráficos.

  • Recursividad Un buen ejemplo para los profesionales de SIG es la creación de un índice espacial como este algoritmo para un quadtree de punto adaptativo .

Datos SIG

Sistemas de bases de datos

SIG

  • Algoritmos típicos para realizar procedimientos básicos de SIG, incluido el punto en el polígono y el almacenamiento en búfer. Por qué diferentes algoritmos pueden ser deseables para cálculos únicos en comparación con cálculos repetidos con los mismos datos, o para datos estáticos en comparación con datos dinámicos (en tiempo real).

  • Cómo se pueden organizar los datos SIG para la búsqueda y el procesamiento, como los cuadrúpedos .

  • Evaluación de compensaciones entre resolución / precisión / velocidad en el almacenamiento de datos SIG (especialmente datos ráster).

Miscelánea


Debido a que esto está fuera de mi cabeza, seguramente está incompleto. Si la gente encuentra útil la lista, trabajaré para mejorarla, o ayudarme y agregarme si tiene suficiente reputación. Para mantener esto práctico y enfocado, aborde solo los conceptos que ayudarán a las personas a evitar problemas que usted haya observado realmente (en su propio trabajo o en el de otros).

5 revoluciones
fuente
No estoy seguro de que su ejemplo sobre 'La distinción entre almacenamiento externo y RAM' signifique lo que cree que significa. Existen discos RAM y este es un uso válido de uno.
tomfumb
@tom Lo que realmente quería abordar con este punto es la confusión común entre los usuarios que llaman a todo el almacenamiento y la "memoria" RAM sin comprender las diversas características de los dispositivos de almacenamiento o las formas de RAM. Es casi imposible apreciar qué es una unidad de RAM o cómo funciona hasta que comprenda ... ¿debo decirlo de nuevo? ... la distinción entre almacenamiento externo y RAM. Además, un disco RAM no puede considerarse un dispositivo de almacenamiento, debido a su volatilidad; pero los SSD ciertamente están borrando las líneas, y también lo es el almacenamiento basado en la nube a través de redes de alta velocidad.
whuber
1
Desearía haber prestado más atención a los conceptos de programación concurrente presentados en clase. Probablemente estaba demasiado ocupado haciendo múltiples tareas :) Con procesos de larga ejecución distribuidos en la web, creo que esto se ha vuelto muy importante. También sería útil para tratar problemas de subprocesamiento con COM heredado.
Kirk Kuykendall
@ Kirk Buena sugerencia. Estoy descubriendo que casi tan rápido como la programación paralela se está volviendo común, sus detalles se están abstrayendo con éxito hasta el punto de que en muchos casos no necesitamos saber mucho para poder usarla. Caso en cuestión: en Mathematica todo lo que tiene que hacer es envolver una sección de código dentro de un Parallelizecomando y se encarga del resto. (Sin embargo, comprender la tecnología subyacente sigue siendo útil para aprovechar al máximo esta capacidad.)
whuber
11

Me gradué de un programa centrado en ESRI en el que la facultad hizo un trabajo bastante bueno separando el concepto (conferencia) y la utilidad (laboratorio). Mis debilidades principales al salir de la academia fueron: 1) No tenía habilidades de SQL, no conocía los principios básicos de la base de datos; y 2) no estaba preparado para el preprocesamiento programático requerido para la mayoría de los conjuntos de datos.

Recomiendo un taller de "manejo de datos" para presentar un RDBMS adecuado (probablemente PostreSQL con PostGIS) y un lenguaje de programación (probablemente Python) para usar en la limpieza de archivos CSV, TXT o SHP. Con solo una muestra de cada uno, sus estudiantes estarán más preparados para pararse por sí mismos "allá afuera".

rec.thegeom
fuente
1
+1 para PostGIS. Ni Access ni ArcSDE fomentan un buen diseño de la base de datos. A la larga, un buen conocimiento de SQL es mucho más valioso que aprender "la forma ESRI" de manejar datos espaciales en "algo así" como un RDBMS.
oscuro
@ rec.thegeom: me gradué de un tipo de programa similar (en la misma universidad donde doy clases) con los mismos inconvenientes y me he visto obligado a aprender en el trabajo. Creo que la comunidad académica tiende a no comprender qué habilidades y conocimientos son necesarios para tener éxito en una carrera de SIG. Creo que el almacenamiento y la gestión de datos deberían ser la columna vertebral de cualquier educación SIG. Después de todo, los SIG son solo otra forma de análisis y visualización de datos. Debido a que los estudiantes están familiarizados con el entorno ESRI (ya está instalado), espero utilizar SQL Server Express para el trabajo de la base de datos.
Brian
10

Incluso si la universidad usa ESRI, recomendaría introducir o describir equivalentes de código abierto. Por un lado, es mucho más fácil para los estudiantes instalar QGIS en sus computadoras portátiles que ArcGIS si quieren probar la apertura de un archivo shape ya que QGIS es significativamente más pequeño (ArcGIS 10 es 2 - 3GB) y los estudiantes no necesitan una conexión a Internet. Mi universidad tiene currículos centrados en ArcGIS en lugar de GIS; Personalmente, creo que esto es al revés.

La introducción de KML con Google Earth o Google Maps podría ser una forma de involucrar a los estudiantes. KML es popular, y hacer un mapa interactivo es bastante más emocionante que un mapa en papel; particularmente cuando puedes compartir un enlace web con otros.

djq
fuente
2
Estoy de acuerdo en que enseñar solo ESRI es al revés. Lamentablemente, la universidad no está de acuerdo. Además, debido a limitaciones de TI, no puedo instalar ningún software adicional en el laboratorio de computación en el que se lleva a cabo el curso.
Brian
1
@Brian entiendo. Todavía puede haber una forma de enmarcar la enseñanza de manera que se centre en varias preguntas, y los productos ESRI son una forma de responder esas preguntas. Creo que la herramienta influye en el pensamiento y la expresión (como el lenguaje humano), y esto es importante de resaltar.
DJ
introducir KML parece una gran manera de atraer a algunos estudiantes en.
rec.thegeom
Incluso si no hace que los estudiantes instalen o usen productos de código abierto, aún sería muy beneficioso tener un día o una semana que discutan las alternativas de código abierto que están disponibles solo para exponerlos al hecho de que hay otras opciones que ESRI. Si desean experimentar o usar el software SIG en casa, tendrían algunas opciones alternativas para investigar por su cuenta.
RyanDalton
4

Definitivamente agregaría secuencias de comandos y proyecciones. Otra nota, ¿es un resumen de ESRI? Trataría de hacerlo 'agnóstico GI' ya que hay tantos ahora, que ESRI no tiene un monopolio completo y, a medida que los presupuestos se reducen, su cuota de mercado también se reducirá. Así que trataría de presentar también más proyectos de código abierto, ya que muchas más empresas y organizaciones se están moviendo de esa manera.

También introduciría marcos de programación si es posible. Sé que has dicho que se les pasó por alto la última vez, pero al menos, el practicante GI más básico necesita una secuencia de comandos.

También se necesitan habilidades de base de datos. Una vez más, incluso el profesional de GI más básico, probablemente tendrá que mantener algún tipo de almacén de datos y manipular esos datos será un elemento clave de su trabajo diario.

Una de las cosas más comunes que tengo que hacer es enseñar a los usuarios qué es realmente un SIG. Me sorprende, a veces, lo poco que la gente sabe sobre los SIG, aparte de los mapas de Google. Por lo tanto, poder hacer que demuestren una comprensión clave sobre lo que es, de manera integral, desde los usuarios hasta los sistemas, sería beneficioso para todos los usuarios. Estuve trabajando, recientemente, con un desarrollador de Java con cierta experiencia, y con alguien a quien califiqué como especialista, pero no entendía realmente qué era un SIG en su totalidad.

También sería bueno demostrarles la ubicación, ya que no hay suficientes personas que piensen fuera de la caja qué es una ubicación.

Sin embargo, tiene el potencial de ser más grande que Ben Hur. Estudié informática en la universidad, con un módulo de SIG. A pesar de que luego completé una maestría en SIG, luego trabajé 15 años en la industria, todavía estoy aprendiendo, por lo que es imposible obtener todo.

Peludo
fuente