Geospatial Technologiesのコンピューターサイエンスコースに含めるトピックを推奨する


24

私は、地理空間テクノロジーのためのコンピューターサイエンスというタイトルの地元の大学のコースを指導します。これは、地理空間技術の学生(GISとリモートセンシング)にコンピューターサイエンスの概念を紹介するための入門コースです。過去にプログラミングの概念を紹介しましたが、これが学生の頭の多くを超えていることがわかりました。

現在、コンピューターハードウェア、空間データタイプ(シェープファイルとジオデータベースなど)、ESRIジオデータベースモデル(大学はESRIプラットフォームで動作)、ArcSDE Personalとの基本的なデータベース理論について議論する予定です。

GISやリモートセンシングの実践者が従業員になる前に知っておくべき、他のコンピューターサイエンス関連のトピックをお勧めできますか?

更新:昨年のカリキュラムに含まれるもの:

  • Google Maps Javascript API / HTML / Google Earth / KML-5週間
  • Pythonスクリプト-6週間
  • データベース理論/ MSアクセス-2週間
  • VBA-2週間

学生から受け取った回答は、各トピックに十分な時間が費やされていなかったというものでした。私は大学と話し合い、Pythonを使用したGISプログラミングの次のレベルのコースを提供しています。


2
スクリプトとプロジェクションを明確に追加します。もう1つの注意点は、ESRIの概要ですか?GIプラットフォームでは不可知論者にしようと思います。さらに多くの企業や組織がその方法を模索しているので、私はより多くのオープンソースプロジェクトも紹介しようと思います。可能であれば、プログラミングフレームワークも紹介します。前回は頭をよぎったと言っていましたが、少なくとも基本的なGIプラクティショナーであるimoでも、スクリプティングが必要です。
毛深い

1
私は昨年スクリプトを含めましたが、スクリプトはそれ自体のコースであるべきだと思います。数週間の大きなコースに絞るには多すぎます。Pythonを使用したGISプログラミングの上級コースを提供したいと思います。
ブライアン

2
良い点、@ Hairy。返信として共有してみませんか?
whuber

1
興味深いのは、コースの目的が「コンピューターサイエンスの概念を紹介する」ことであると特徴付けられているにもかかわらず、15週間のうち2週間だけがこれに専念しているように見えることです(データベース理論)。残りは概念ではなく実用的なアプリケーションのように見えます。おそらく、それらはそうでなければカリキュラムで具体的に呼び出されない概念を教えるための手段として意図されていますか?その場合は、GM / GE / KML、Python、VBAの各セグメントで教えたいコンセプトを示すと役立ちます。
whuber

1
@whuber-昨年、コースはより実践的なスキルになるように設計されました。ほとんどの学生は、従来の入門GISコースで十分な理論を受け取っていたと思います。適切な背景なしで練習に飛び込んだ後、学生の多くは失われました。ある方法と別の方法でPythonでワークフローをスクリプト化することがメモリとプロセッサの使用にどのように影響するかを議論したことを思い出します。だから今年は、もう少し概念的で、他のコースとのギャップを埋めるべきだと思っています。
ブライアン

回答:


29

リストサーバーおよび現在のWebページでGISの質問に15年間答えたところ、特定のコンピューティング概念を習得するための実践者の必要性を示唆する繰り返し発生する問題に気付きました。これらはどれも深いものではありません。これらはすべてよく知られています。しかし、すべては、GISの人々のかなりの少数派(多数派?)の背景や理解に関する一般的な欠陥のようです。多くの場合、定義や例から離れて実際に学ぶ必要はほとんどありません。重要なのは、発生する落とし穴を生徒に警告し、必ずしも専門家になることなく、生徒が立ち上がるときに対処するために必要な原則またはツールを提供することです。

次のリストのリンクはすべて、このサイトの質問に移動します。 これらのリンクの単なる存在は、概念の価値の証拠を提供します。リンクをたどることで、これらの概念を理解することで問題を解決し、発生を防ぎ、GISの習熟度を高める方法の例を見つけることができます。

計算システム

  • コンピューターのコンポーネント:箱を開けて分解し、部品(CPU、RAM、ディスク、マザーボード、ネットワークカードなど)を特定し、システムでの役割を説明します。それを分かりやすく説明し、学生のために具体的にしましょう。

  • コンピューティングシステムが外部デバイスにデータを保存する方法の理解。物理および論理形式の概念。ASCII(および同様のエンコーディング)と生のバイナリの区別。

  • IEEEの単精度および倍精度の浮動小数点数符号付きおよび符号なし整数を含む、数値データの内部バイナリ表現の詳細。それぞれの制限。GIS属性の表現に使用するデータタイプの選択方法。

  • 外部ストレージとRAMの区別。(これは非常に初歩的ですが、そこには多くの混乱があります。)

コンピュータサイエンス

  • アルゴリズムの漸近解析。実際のレベルで、O(n)、O(n log(n))、O(n ^ 2)、および(さらに悪い)タイミングの違いを理解する。ブラックボックスアルゴリズムのスケーリング方法をテストする方法。

  • 人間とコンピューターの相互作用の原則。これは広すぎますが、フォームデザインとWebページデザインのいくつかの原則は大いに役立ちます。

  • コンピューティング言語の原則:言語に期待すること、手続き型とオブジェクト指向の違い、言語がサポートおよび参照できるデータ構造とオブジェクトの種類、コンパイル言語とインタープリター言語の違い(およびそれらの間のトレードオフ) 。

  • データ構造設計の基本原則。データとそれを使用するアルゴリズムを表すために使用される構造間の相互作用。配列、リスト、および辞書の使用。

  • オブジェクトとそれらへの参照の区別。(多くの間違いは、変数名と引用符で囲まれた文字列違いを認識しない人々によって行われます!)

  • オペレーティングシステムとは何か、それから期待されるサービス、およびそれと対話する方法。

  • ネットワークとは何か、それらに期待するサービス、アーキテクチャの比較、コンピューティングサービスをローカルで取得するかリモートで取得するかというトレードオフの感覚。

  • グラフ理論アルゴリズム:多くのGIS分析は、グラフ上の問題に関して抽象的に表現できます。これを実行できると、効率的なアルゴリズムにアクセスできます。私たちのサイト上での素敵な例をここで最初にグラフとは何の関係もないように思われる問題を伴います。

  • 再帰。GIS実践者にとっての良い例は、適応ポイント4分木用のこのアルゴリズムのような空間インデックスの作成です。

GISデータ

データベースシステム

GIS

  • ポイントインポリゴンやバッファリングなど、基本的なGIS手順を実行するための一般的なアルゴリズム。同じデータを使用した繰り返し計算と比較した1回限りの計算、または動的(リアルタイム)データと比較した静的データに異なるアルゴリズムが望ましい理由。

  • quadtreesなど、検索および処理のためにGISデータを編成する方法。

  • GISデータ(特にラスターデータ)の保存における解像度/精度/速度のトレードオフの評価。

その他


これは私の頭上にあるので、確かに不完全です。人々がリストを役に立つと思うならば、私はそれを改善するために働きます-あるいは、あなたが十分な評判を持っているならば、私を助けて、それを自由に加えてください。これを実用的かつ集中的に保つために、あなたが実際に観察した問題を回避するのに役立つ概念のみに対処してください(あなた自身または他の人の問題)。


「外部ストレージとRAMの区別」に関するあなたの例は、あなたがそれが何を意味すると思うかを意味しません。RAMディスクは存在しますが、これは有効な使用方法です。
tomfumb

@tomこの点で本当に対処したかったのは、ストレージデバイスやRAMの形式のさまざまな特性を理解せずに、すべてのストレージとRAMを「メモリ」と呼ぶユーザーの間でよくある混乱です。RAMドライブが何であるか、またはそれがどのように機能するかを理解するまでは、...もう一度言いましょうか...外部ストレージとRAMの違いを理解することはほとんど不可能です。また、RAMディスクは揮発性があるため、ストレージデバイスと見なすことはできません。しかし、SSDは確かに回線を曖昧にしており、高速ネットワーク上のクラウドベースのストレージも同様です。
whuber

1
クラスで提示される並行プログラミングの概念にもっと注意を払っていたらいいのにと思います。私はおそらくマルチタスクに忙しすぎました:)長時間実行されるプロセスがWeb上に分散されると、これは非常に重要になったと思います。また、レガシーCOMのスレッド化の問題に対処するのに役立ちます。
カーククイケンドール

@カーク良い提案。並列プログラミングが一般的になりつつあるのとほぼ同じくらい急速に、その詳細がうまく抽象化され、多くの場合、それを利用するために多くを知る必要がないことがわかりました。適切なケース:MathematicaではParallelizeコマンド内でコードのセクションをラップするだけで、残りは処理されます。(ただし、基礎となるテクノロジーを理解することは、この機能を最大限に活用するのに依然として役立ちます。)
whuber

11

私は、ESRI中心のプログラムを卒業しました。このプログラムでは、学部がコンセプト(講義)とユーティリティ(研究室)を分離する非常に素晴らしい仕事をしました。大学を退学する際の主な弱点は次のとおりです。2)ほとんどのデータセットに必要なプログラムによる前処理に備えていませんでした。

CSV、TXT、またはSHPファイルのクリーンアップに使用する適切なRDBMS(おそらくPostGISとPostreSQL)およびプログラミング言語(おそらくPython)を導入するための「データ処理」ワークショップをお勧めします。それぞれを味わうだけで、生徒は自分の「外」に立つ準備ができます。


1
PostGISの場合は+1。AccessもArcSDEも、優れたデータベース設計を推奨していません。長い目で見れば、SQLの優れた知識は、RDBMSのようなもので空間データを処理する「ESRIの方法」を学ぶよりもはるかに価値があります。
暗闇

@ rec.thegeom-私は同じ短所で同様のタイプのプログラムを(私が教えている同じ大学で)卒業し、仕事で学ぶことを余儀なくされました。アカデミックコミュニティは、GISキャリアで成功するために必要なスキルと知識を理解していない傾向があると思います。データの保存と管理は、GIS教育のバックボーンである必要があると思います。結局のところ、GISはデータ分析と視覚化の別の形にすぎません。学生はESRI環境(既にインストールされている)に精通しているため、データベース作業にはSQL Server Expressを使用したいと考えています。
ブライアン

10

大学がESRIを使用している場合でも、同等のオープンソースを紹介または説明することをお勧めします。たとえば、QGISは非常に小さく(ArcGIS 10は2-3GB)、学生はインターネット接続を必要としないため、シェープファイルを開いてテストする場合、ArcGISよりも学生がラップトップにQGISをインストールする方がはるかに簡単です。私の大学は、GISではなくArcGISに焦点を当てたカリキュラムを持っています。個人的にはこれは逆行だと思います。

Google EarthまたはGoogleマップでKMLを導入することは、生徒の興味を引く方法です。KMLは人気があり、インタラクティブなマップを作成することは、紙のマップよりもかなり刺激的です。特に、Webリンクを他の人と共有できる場合。


2
ESRIのみを教えるのは逆行であることに同意します。残念ながら、大学は同意しません。さらに、ITの制約により、コースが行われるコンピューターラボに追加のソフトウェアをインストールすることはできません。
ブライアン

1
@ブライアン私は理解しています。さまざまな質問に焦点を当てた教育を組み立てる方法がまだあるかもしれません。ESRI製品はそれらの質問に答える1つの方法です。このツールは、思考と表現(人間の言語のような)に影響を与えると思います。
djq

KMLを紹介することは、何人かの生徒を引き込む素晴らしい方法のように
思え

学生にオープンソース製品をインストールまたは使用していない場合でも、他の選択肢があるという事実を公開するために利用可能なオープンソースの代替案について議論する日または週があることは依然として非常に有益ですESRIより。自宅でGISソフトウェアを実験または使用する場合は、自分で調査するための代替オプションがいくつかあります。
ライアンダルトン

4

スクリプトとプロジェクションを明確に追加します。もう1つの注意点は、ESRIブリーフですか?ESRIには完全な独占がなく、予算が縮小すると、市場シェアも縮小するので、「GI不可知」にしようと思います。だから私はもっと多くの企業や組織がそのように動いているので、より多くのオープンソースプロジェクトも紹介しようと思います。

可能であれば、プログラミングフレームワークも紹介します。前回は頭をよぎったと言っていましたが、少なくとも基本的なGIプラクティショナーでさえ、スクリプトを作成する必要があります。

データベースのスキルも必要です。繰り返しますが、最も基本的なGIプラクティショナーでさえ、おそらく何らかの種類のデータストアを維持する必要があり、そのデータを操作することが日々の仕事の重要な要素になるでしょう。

私がしなければならない最も一般的なことの1つは、GISが実際に何であるかをユーザーに教えることです。Googleマップ以外に、GISについてほとんどの人が知らないことについては、時々驚かされます。そのため、ユーザーからシステムまで、それが全体として何であるかについて重要な理解を実証できるようにすることは、すべてのユーザーにとって有益です。私は最近、経験のあるJava開発者と私が専門家として評価した誰かと働いていましたが、彼は全体としてGISが何であるかを本当に理解していませんでした。

また、場所について何も考えていない人がいるため、場所を示すことも良いでしょう。

ただし、Ben Hurよりも大きくなる可能性があります。GISモジュールを使用して、大学でコンピューターサイエンスを学びました。その後、GISの修士号を取得し、業界で15年間働いていますが、私はまだ学んでいるので、すべてを取り入れることは不可能です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.