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.
Respuestas:
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
Cómo se almacenan los datos vectoriales y ráster, tanto internamente como para el intercambio de datos.
Cómo se pueden representar y procesar las topologías de multipuntos, polilíneas, polígonos y TIN .
Principios básicos de la compresión de datos, ya que se aplica a los datos SIG , especialmente la codificación de longitud de ejecución.
Sistemas de bases de datos
Qué es un sistema de gestión de bases de datos relacionales, cómo se diferencia de otros diseños de bases de datos importantes, cuáles son sus ventajas y desventajas.
Normalización y diseño de bases de datos .
Cómo consultar bases de datos (p. Ej., SQL).
Métodos de documentación, especialmente metadatos y diccionarios 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
Técnicas de depuración: cómo aislar, identificar y evitar errores. Cómo describir e informar errores y anomalías aparentes. ¡Cómo hacer buenas preguntas en la Web!
Cómo invertir funciones con algoritmos de búsqueda de raíz . (No apreciar esto con frecuencia conduce a algoritmos extremadamente ineficientes o falla para resolver un problema por completo).
Cómo elegir entre los programas de optimización de recuadro negro (continuo versus entero, convexo versus no, univariado versus multivariado, lineal versus no, etc.). Para obtener más ejemplos, vea un problema de ubicación del equipo y un problema de empaque del polígono .
Cómo navegar por los sistemas de ayuda. Qué buscar y qué rechazar como inútil. (La ayuda en línea de ArcGIS de ESRI proporciona ejemplos espléndidos de lo muy bueno y lo muy malo). Esto podría incluso incluir algunas instrucciones para leer diagramas de objetos .
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).
fuente
Parallelize
comando y se encarga del resto. (Sin embargo, comprender la tecnología subyacente sigue siendo útil para aprovechar al máximo esta capacidad.)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".
fuente
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.
fuente
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.
fuente