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

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

更新:去年的课程包括:


Google Maps Javascript API / HTML / Google Earth / KML-5周
Python Scripting-6个星期
数据库理论/ MS访问-2个星期
VBA-2个星期

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

评论

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

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

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

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

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

#1 楼

在回答列表服务器和Web页面上的GIS问题的15年中,我注意到一些重复出现的问题,这些问题表明从业人员需要学习某些特定​​的计算概念。这些都不是深奥的。所有这些都是众所周知的;但是所有这些似乎都是背景知识或对少数GIS人(多数)的理解上的普遍缺陷。在许多情况下,除定义或示例外,实际上几乎不需要学习。这样做的目的是提醒学生注意会出现的陷阱,并在他们出现时就给他们提供解决它们的原理或工具,而不必成为专家。在这个网站上。这些链接的存在提供了概念价值的证据。通过链接,您可以找到一些示例,这些示例可以帮助您了解这些概念可以解决问题,防止问题发生并帮助人们更精通GIS。

计算系统


计算机的组成部分:打开一个盒子,拆开它,确定零件(CPU,RAM,磁盘,主板,网卡等)并说明它们在系统中的作用。使其神秘化,并使其适合学生。
了解计算系统如何在外部设备上存储数据。物理和逻辑格式的概念。 ASCII(和类似的编码)与原始二进制之间的区别。
数字数据的内部二进制表示的详细信息,包括IEEE单精度和双精度浮点数以及有符号和无符号整数。每个的局限性。如何选择用于表示GIS属性的数据类型。
外部存储和RAM之间的区别。 (我知道这是非常基础的,但是外面有很多困惑。)

计算机科学


算法的渐近分析。在实践上了解O(n),O(n log(n)),O(n ^ 2)和(甚至更糟)时序之间的差异。如何测试黑盒算法如何扩展。
人机交互原理。这太宽泛了,但是表单设计和Web页面设计的某些原理可能会走很长的路。
计算语言的原理:对语言的期望,过程和面向对象之间的区别,什么样的数据结构对象语言可以支持和引用编译和解释语言之间的差异(以及它们之间的取舍)。
数据结构设计的基本原理。用于表示数据的结构与使用它们的算法之间的相互作用。数组,列表和字典的使用。
对象及其引用之间的区别。 (许多错误是由无法识别变量名与其加引号的字符串之间的区别的人犯的!)
什么是操作系统,期望从中获得什么服务以及如何与之交互。 >什么是网络,可以从中获得什么服务,对某些体系结构的比较以及在本地获取和远程获取计算服务之间的权衡感。
图论算法:许多GIS分析可以用术语抽象表示图上的问题;能够做到这一点可以访问有效的算法。我们网站上的一个很好的示例涉及一个问题,该问题最初似乎与图形无关。
递归。对于GIS从业人员来说,一个很好的例子是创建空间索引,例如针对自适应点四叉树的这种算法。

GIS数据


矢量和栅格数据的方式在内部存储和用于数据交换。
如何表示和处理多点,折线,多边形和TIN的拓扑。
应用于GIS数据的数据压缩的基本原理,尤其是游程长度编码。

数据库系统


什么是关系数据库管理系统,它如何与其他一些主要的数据库设计不同,它的优缺点是什么。
数据库的规范化和设计。
如何查询数据库(例如SQL)。
文档化方法,尤其是元数据和数据字典。

GIS


典型的算法,用于执行基本的GIS程序,包括多边形点和缓冲。为什么对于一次性计算与具有相同数据的重复计算相比,或者对于静态数据与动态(实时)数据相比,可能需要不同的算法。
如何组织GIS数据进行搜索和处理,例如四叉树。
在存储GIS数据(尤其是栅格数据)时评估分辨率/精度/速度之间的折衷。

杂类


调试技术:如何隔离,识别和解决错误。如何描述和报告明显的错误和异常。如何在Web上问好问题!
如何使用根查找算法反转函数。 (未能意识到这一点通常会导致效率极低的算法或无法完全解决问题。)
如何在黑盒优化程序中进行选择(连续与整数,凸与非,单变量与多元,线性而不是等等)。有关更多示例,请参见设备位置问题和多边形包装问题。
如何导航帮助系统。寻找什么和拒绝什么没用。 (ESRI的在线ArcGIS帮助提供了很好的例子,很好的例子,非常糟糕的例子。)这甚至可能包括阅读对象图的一些说明。


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

评论


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

–tomfumb
2012年8月27日在21:37

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

– hu
2012年8月27日在22:21

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

– Kirk Kuykendall
13年5月31日在17:15

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

– hu
13年5月31日在17:33

#2 楼

我毕业于以ESRI为中心的课程,该学院的教师在将概念(讲座)和实用程序(实验室)分开方面做得很好。我离开学术界时的主要缺点是:1)我没有SQL技能,没有基本的数据库原理知识;和2)对于大多数数据集所需的程序化预处理,我还没有做好准备。可能是Python),用于清理CSV,TXT或SHP文件。只需品尝一下每种口味,您的学生就会更加准备好站在自己的“外面”。

评论


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

– Underdark♦
2011-11-28 17:53

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

–布赖恩
2011年11月28日在19:03

#3 楼

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

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

评论


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

–布赖恩
11年11月28日在16:07

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

– djq
2011年11月28日16:15



引入KML似乎是吸引一些学生的好方法。

–rec.thegeom
2011-11-28 17:41

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

– RyanKDalton
2011年11月28日在18:16

#4 楼

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

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

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

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

向人们展示位置也将是一件好事,因为没有太多的人会在盒子外面思考位置是什么。比本·胡尔我在大学使用GIS模块学习了计算机科学。尽管随后继续攻读GIS硕士学位,然后在该行业工作了15年,但我仍在学习,所以不可能一无所获。