推荐主题包含在“地理空间技术计算机科学”课程中


24

我将在当地大学教授一门名为“地理空间技术计算机科学”的课程。这是一门入门课程,旨在向地理空间技术学生(GIS和遥感)介绍计算机科学概念。过去,我曾介绍过编程概念,但是我发现这已超出了许多学生的头脑。

目前,我正计划与ArcSDE Personal讨论计算机硬件,空间数据类型(即shapefile与地理数据库),ESRI地理数据库模型(该大学在ESRI平台上工作),基础数据库理论。

有人可以推荐一些其他与计算机科学相关的主题,这些主题是GIS和遥感技术从业人员入职前应该知道的?

更新:去年的课程包括:

  • Google Maps Javascript API / HTML / Google Earth / KML-5周
  • Python脚本编写-6周
  • 数据库理论/ MS访问-2周
  • VBA-2周

我从学生那里得到的答复是,在每个主题上没有花费足够的时间。我正在与大学交流,以提供使用Python进行GIS编程的下一级课程。


2
我一定要添加脚本和投影。另一个说明是ESRI简介吗?我会尝试使其在GI平台上不可知。我也会尝试引入更多开放源代码项目,因为越来越多的公司和组织正以这种方式出现。如果可能的话,我还将介绍编程框架。我知道您上次说过的话很费劲,但是即使最基本的GI从业人员imo也至少需要脚本。

1
去年我加入了脚本编写,但我认为脚本编写应该是自成体系的。那里太多了,无法挤进一个更大的课程的几个星期。我想提供使用Python进行GIS编程的高级课程。
Brian

2
好点,@ Hairy。您为什么不分享他们的回复?
ub

1
布赖恩很好奇,尽管本课程的目的是“介绍计算机科学概念”,但15周中只有2周专门用于此(数据库理论)。其余的看起来像实际的应用程序,而不是概念。也许它们是用作教授概念的工具,而这些概念在课程中并未特别提及?如果真是这样,这将有助于表明您希望在GM / GE / KML,Python和VBA细分市场中教授哪些概念。
ub

1
@whuber-去年,该课程旨在提高实用性。我认为大多数学生在传统的GIS入门课程中都接受了足够的理论。在没有适当背景的情况下投入实践后,许多学生迷路了。我回想起曾经讨论过如何以一种方式与另一种方式用Python编写工作流程脚本会影响内存和处理器的使用,许多学生似乎似乎并不了解内存和处理器是什么。这就是为什么我认为今年应该更具概念性,以填补其他课程的空白。
布莱恩

Answers:


29

在回答列表服务器和现在的Web页面上的GIS问题的15年中,我注意到一些反复出现的问题,这些问题表明从业人员需要学习某些特定​​的计算概念。这些都不是深奥的。所有这些都是众所周知的;但是所有这些似乎都是背景知识或对少数GIS人(多数?)的理解上的普遍缺陷。在许多情况下,除定义或示例外,几乎不需要学习。这样做的目的是提醒学生注意会出现的陷阱,并为他们提供解决之道所需的原理或工具,而不必成为专家。

以下列表中的所有链接均转到该网站上的问题。 这些链接的存在提供了这些概念的价值的证据。通过链接,您可以找到一些示例,这些示例了解如何理解这些概念可以解决问题,防止问题发生并帮助人们更加精通GIS。

计算系统

  • 计算机的组成部分:打开一个盒子,拆开它,确定零件(CPU,RAM,磁盘,主板,网卡等)并说明它们在系统中的作用。使其神秘化,并使其适合学生。

  • 了解计算系统如何在外部设备上存储数据物理和逻辑格式的概念。ASCII(和类似的编码)与原始二进制文件之间的区别。

  • 数字数据的内部二进制表示形式的详细信息,包括IEEE单精度和双精度浮点数以及有符号和无符号整数。每个的局限性。如何选择用于表示GIS属性的数据类型。

  • 外部存储和RAM之间的区别。(我知道这是非常基础的,但是外面有很多困惑。)

计算机科学

  • 算法的渐近分析。在实践上了解O(n),O(n log(n)),O(n ^ 2)和(甚至更糟)计时之间的差异。如何测试黑盒算法如何扩展。

  • 人机交互原理。这太广泛了,但是表单设计和网页设计的某些原理可能会走很长一段路。

  • 计算语言的原理:对语言的期望,程序和面向对象之间的差异,可以支持和引用的数据类型和对象类型,编译和解释语言之间的差异(以及它们之间的权衡) 。

  • 数据结构设计的基本原理。用于表示数据的结构与使用它们的算法之间的相互作用。数组,列表和字典的使用。

  • 对象和对它们的引用之间的区别。(许多错误是由不认识变量名与其加引号的字符串之间区别的人犯的!)

  • 什么是操作系统,可以从中获得什么服务以及如何与之交互。

  • 什么是网络,可以从中获得什么服务,对某些体系结构的比较以及在本地获取和远程获取计算服务之间的权衡关系。

  • 图论算法:许多GIS分析都可以根据图上的问题抽象地表示;能够做到这一点可以访问有效的算法。我们的网站一个很好的例子,这里涉及到最初似乎都无关的图形问题。

  • 递归。对于GIS从业人员来说,一个很好的例子是创建空间索引,例如针对自适应点四叉树的这种算法。

GIS数据

数据库系统

地理信息系统

  • 执行基本GIS程序(包括多边形点和缓冲)的典型算法。与使用相同数据的重复计算相比,对于一次性计算而言,为什么可能需要不同的算法;对于与动态(实时)数据相比,对于静态数据而言,为什么还要使用不同的算法呢?

  • 如何组织GIS数据以进行搜索和处理,例如四叉树

  • 在存储GIS数据(尤其是栅格数据)时评估分辨率/精度/速度之间的权衡。

杂记

  • 调试技术:如何隔离,识别和解决错误。如何描述和报告明显的错误和异常。如何在网上提出好问题!

  • 如何用寻根算法求函数求逆。(未能意识到这一点经常会导致效率极低的算法或无法完全解决问题。)

  • 如何在黑盒优化程序中进行选择(连续与整数,凸与非,单变量与多元,线性与非等)。有关更多示例,请参见设备位置问题多边形堆积问题

  • 如何浏览帮助系统。寻找什么和拒绝什么没用。(ESRI的在线ArcGIS帮助提供了关于优缺点的出色示例。)这甚至可能包括一些阅读对象图的说明


因为这不在我的脑海中,所以它肯定是不完整的。如果人们发现该列表有用,我将努力进行改进-如果您有足够的声誉,也可以帮助我,并随时添加到列表中。为了保持实用性和针对性,请仅提出能够帮助人们避免您实际观察到的问题(在您自己或他人的工作中)的概念。


我不确定您关于“外部存储和RAM之间的区别”的示例是否意味着您的意思。RAM磁盘确实存在,这是其中一个的有效使用。
tomfumb 2012年

关于这一点,我真正要解决的是在不了解存储设备的各种特性或RAM形式的情况下,将所有存储和RAM 称为“内存”的用户之间的普遍困惑。除非您了解...我要再说一遍?...外部存储与RAM之间的区别,否则几乎无法理解RAM驱动器是什么或它如何工作。另外,由于RAM磁盘易变,因此不能将其视为存储设备。但是SSD无疑在模糊界限,高速网络上基于云的存储也是如此。
ub

1
我希望我能对课堂上提出的并发编程概念给予更多的关注。我可能太忙于多任务处理了:)随着长时间分布在Web上的进程的运行,我认为这已经变得非常重要。在处理旧版COM的线程问题时也将有所帮助。
柯克·库肯达尔

@柯克好建议。我发现几乎与并行编程一样快,它的细节已被成功抽象为许多情况下,我们并不需要太多的知识来利用它。恰当的例子:在Mathematica中,您要做的就是将一段代码包装在Parallelize命令中,其余部分由它来处理。(不过,了解底层技术仍然有助于最大程度地利用此功能。)
更糟

11

我毕业于以ESRI为中心的课程,该学院的教师在将概念(讲座)和实用程序(实验室)分开方面做得很好。我离开学术界时的主要缺点是:1)我没有SQL技能,没有基本的数据库原理知识;2)我对大多数数据集所需的程序化预处理没有做好准备。

我建议举办一个“数据处理”研讨会,以介绍适当的RDBMS(可能是带有PostGIS的PostreSQL)和编程语言(可能是Python),用于清理CSV,TXT或SHP文件。仅凭每个人的品味,您的学生将更加准备好站在自己的“外面”。


1
+1用于PostGIS。Access和ArcSDE都不鼓励良好的数据库设计。从长远来看,对SQL的良好了解比学习RDBMS之类的“ ESRI方法”处理空间数据要有价值得多。
昏暗

@ rec.thegeom-我毕业于类似类型的程序(在我所教的同一所大学),但有相同的缺点,我被迫在工作中学习。我认为学术界往往对成功GIS事业所需的技能和知识缺乏了解。我认为数据存储和管理应该是任何GIS教育的基础。毕竟,GIS只是数据分析和可视化的另一种形式。因为学生熟悉ESRI环境(已经安装了ESRI环境),所以我希望使用SQL Server Express进行数据库工作。
布莱恩

10

即使大学使用ESRI,我也建议您介绍或描述开源等效项。一方面,如果学生想测试打开shapefile,因为QGIS显着较小(ArcGIS 10为2-3GB)并且学生不需要Internet连接,则与ArcGIS相比,将学生安装在笔记本电脑上的QGIS要容易得多。我的大学课程的重点是ArcGIS,而不是GIS。我个人认为这是倒退。

在Google Earth或Google Maps中引入KML可能是使学生参与的一种方式。KML很流行,制作交互式地图比纸质地图更令人兴奋。特别是当您可以与他人共享Web链接时。


2
我同意只讲ESRI是落后的。不幸的是,大学不同意。另外,由于IT限制,我无法在进行该课程的计算机实验室中安装任何其他软件。
布莱恩

1
@布莱恩我明白。仍然可能有一种以各种问题为重点的教学框架,而ESRI产品是回答这些问题的一种方法。我认为该工具会影响思维和表达方式(例如人类语言),这一点很重要。
djq 2011年

引入KML好像画一些学生的好方法。
rec.thegeom

即使您没有学生安装或使用开放源代码产品,也有一天或一周的时间讨论开放源代码替代方案仍然是非常有益的,这些替代方案仅使他们暴露于以下事实:比ESRI。如果他们想在家中进行实验或使用GIS软件,那么他们将有一些其他选择可以自己进行调查。
RyanDalton 2011年

4

我一定要添加脚本和投影。另一个说明是ESRI简介吗?我试图使它成为“不可知的地理标志”,因为现在有如此之多,以致ESRI没有完全的垄断地位,而且随着预算的缩减,imo的市场份额也将缩减。因此,我会尝试引入更多的开源项目,因为越来越多的公司和组织正朝着这种方向发展。

如果可能的话,我还将介绍编程框架。我知道您上次说过的话很费劲,但是即使最基本的GI从业人员也至少需要脚本。

还需要数据库技能。同样,即使是最基本的GI从业人员,也可能必须维护某种数据存储,并且操纵数据将成为他们日常工作的关键要素。

我要做的最常见的事情之一就是教用户GIS实际上是什么。有时候,除了谷歌地图之外,我对GIS知之甚少,这使我感到震惊。因此,使他们能够从整体上从用户到系统演示对它的关键理解将对所有用户都有利。最近,我正在与一位具有一定经验的Java开发人员一起工作,而我曾被某人评为专家,但他并没有真正理解GIS的全部含义。

向他们展示位置也将是一件好事,因为没有足够的人对位置是什么提出了异议。

但是,它的潜力可能大于Ben Hur。我在大学使用GIS模块学习了计算机科学。尽管后来继续攻读GIS硕士学位,然后在该行业工作了15年,但我仍在学习,所以不可能一it而就。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.