Rekomendasikan topik yang akan dimasukkan dalam kursus Ilmu Komputer untuk Teknologi Geospasial

24

Saya akan menginstruksikan kursus di universitas lokal berjudul Ilmu Komputer untuk Teknologi Geospasial. Ini adalah kursus pengantar yang dimaksudkan untuk memperkenalkan konsep ilmu komputer untuk siswa teknologi geospasial (GIS & Remote Sensing). Di masa lalu saya telah memperkenalkan konsep pemrograman, tetapi saya menemukan ini melampaui banyak kepala siswa.

Saat ini, saya berencana untuk membahas perangkat keras komputer, tipe data spasial (yaitu shapefile vs geodatabases), ESRI Geodatabase Model (universitas bekerja pada platform ESRI), teori basis data dasar dengan ArcSDE Personal.

Adakah yang bisa merekomendasikan beberapa topik terkait ilmu komputer lainnya yang harus diketahui oleh praktisi GIS dan Penginderaan Jauh sebelum memasuki dunia kerja?

UPDATE: Kurikulum tahun terakhir termasuk:

  • Google Maps Javascript API / HTML / Google Earth / KML - 5 minggu
  • Script Python - 6 minggu
  • Teori Basis Data / Akses MS - 2 minggu
  • VBA - 2 minggu

Tanggapan yang saya terima dari siswa adalah tidak cukup waktu dihabiskan untuk setiap topik. Saya berbicara dengan universitas untuk menawarkan kursus tingkat selanjutnya dalam Pemrograman GIS menggunakan Python.

Brian
sumber
2
Saya akan menambahkan skrip dan proyeksi. Satu catatan lain, apakah ini ESRI brief? Saya akan mencoba dan membuatnya agnostik pada platform GI. Saya akan mencoba dan memperkenalkan lebih banyak proyek open source juga, karena semakin banyak perusahaan, dan organisasi terlihat seperti itu. Saya juga akan memperkenalkan kerangka kerja pemrograman jika memungkinkan. Saya tahu Anda telah mengatakan itu melampaui pikiran mereka terakhir kali, tetapi penulisan skrip, setidaknya, diperlukan oleh bahkan praktisi GI paling dasar, imo.
Berbulu
1
Saya memasukkan skrip tahun lalu, tetapi saya pikir skrip harus menjadi kursus tersendiri. Ada terlalu banyak di sana untuk diperas hanya dalam beberapa minggu dari kursus yang lebih besar. Saya ingin menawarkan kursus lanjutan dalam Pemrograman GIS menggunakan Python.
Brian
2
Poin bagus, @Hairy. Mengapa Anda tidak membagikannya sebagai balasan?
whuber
1
Sangat mengherankan, Brian, bahwa meskipun tujuan dari kursus ini dicirikan sebagai "untuk memperkenalkan konsep-konsep ilmu komputer," hanya 2 dari 15 minggu muncul yang dikhususkan untuk ini (teori database). Sisanya terlihat seperti aplikasi praktis daripada konsep. Mungkin mereka dimaksudkan sebagai wahana untuk mengajarkan konsep-konsep yang sebaliknya tidak secara khusus disebutkan dalam kurikulum? Jika itu masalahnya, akan membantu untuk menunjukkan konsep apa yang ingin Anda ajarkan di segmen GM / GE / KML, Python, dan VBA.
whuber
1
@whuber - Tahun lalu kursus ini dirancang untuk menjadi keterampilan yang lebih praktis. Saya pikir sebagian besar siswa telah menerima cukup teori dalam kursus GIS pengantar tradisional mereka. Setelah menyelam ke latihan tanpa latar belakang yang tepat, banyak siswa hilang. Saya ingat pernah membahas bagaimana penulisan alur kerja dalam Python satu arah vs yang lain dapat memengaruhi penggunaan memori dan prosesor dan banyak siswa tampak seolah-olah mereka tidak mengerti apa itu memori dan prosesor. Itu sebabnya tahun ini, saya pikir itu harus sedikit lebih konseptual, mengisi celah dari kursus lain.
Brian

Jawaban:

29

Dalam 15 tahun menjawab pertanyaan GIS pada listservers dan, sekarang, halaman Web, saya telah mencatat beberapa masalah berulang yang menyarankan perlunya praktisi untuk mempelajari konsep komputasi tertentu. Tidak ada yang dalam; semua ini terkenal; tetapi semua tampaknya kekurangan umum di latar belakang atau pemahaman minoritas (mayoritas?) yang signifikan dari orang-orang GIS. Dalam banyak kasus, sedikit yang perlu dipelajari terlepas dari definisi atau contoh. Intinya adalah untuk mengingatkan siswa akan kesulitan yang akan muncul dan memberi mereka prinsip atau alat yang mereka butuhkan untuk mengatasinya ketika mereka muncul, tanpa harus menjadi ahli.

Tautan dalam daftar berikut semuanya ke pertanyaan di situs ini. Keberadaan tautan ini semata-mata memberikan bukti nilai konsep. Dengan mengikuti tautan, Anda dapat menemukan contoh bagaimana mengetahui konsep-konsep ini dapat menyelesaikan masalah, mencegahnya terjadi, dan membantu orang menjadi lebih mahir dengan GIS.

Sistem komputasi

Ilmu Komputer

  • Analisis algoritma asimptotik . Memahami, pada tingkat praktis, perbedaan antara waktu O (n), O (n log (n)), O (n ^ 2), (dan lebih buruk). Cara menguji bagaimana algoritma kotak hitam skala.

  • Prinsip interaksi manusia-komputer. Ini terlalu luas, tetapi beberapa prinsip desain formulir dan desain halaman Web dapat berjalan jauh.

  • Prinsip-prinsip bahasa komputasi: apa yang diharapkan dari suatu bahasa, perbedaan antara orientasi prosedural dan objek, jenis-jenis struktur data dan objek apa yang dapat didukung dan dirujuk oleh bahasa, perbedaan antara bahasa yang dikompilasi dan diinterpretasikan (dan kompromi di antara mereka) .

  • Prinsip dasar desain struktur data . Interaksi antara struktur yang digunakan untuk mewakili data dan algoritma yang menggunakannya. Penggunaan array, daftar, dan kamus.

  • Perbedaan antara objek dan referensi untuk mereka. ( Banyak kesalahan dilakukan oleh orang yang tidak mengenali perbedaan antara nama variabel dan string yang dikutip !)

  • Apa sistem operasi itu, layanan apa yang diharapkan darinya, dan bagaimana berinteraksi dengannya.

  • Apa jaringan itu, layanan apa yang diharapkan dari mereka, perbandingan beberapa arsitektur, dan rasa pertukaran yang dibuat antara memperoleh layanan komputasi secara lokal versus jarak jauh.

  • Algoritma graph-theoretic: banyak analisis GIS dapat diwakili secara abstrak dalam hal masalah pada grafik; Mampu melakukan ini memberikan akses ke algoritma yang efisien. Sebuah contoh yang bagus di situs kami di sini melibatkan masalah yang awalnya tampaknya tidak ada hubungannya dengan grafik.

  • Rekursi. Contoh yang baik untuk praktisi GIS adalah pembuatan indeks spasial seperti algoritma ini untuk quadtree titik adaptif .

Data GIS

Sistem basis data

GIS

  • Algoritma umum untuk melakukan prosedur GIS dasar, termasuk point-in-polygon dan buffering. Mengapa algoritma yang berbeda mungkin diinginkan untuk perhitungan satu kali dibandingkan dengan perhitungan berulang dengan data yang sama, atau untuk data statis dibandingkan dengan data dinamis (waktu nyata).

  • Bagaimana data SIG dapat diorganisasikan untuk pencarian dan pemrosesan, seperti quadtrees .

  • Mengevaluasi tradeoff antara resolusi / presisi / kecepatan dalam menyimpan data GIS (terutama data raster).

Varia

  • Teknik debugging: cara mengisolasi, mengidentifikasi, dan mengatasi kesalahan. Cara menjelaskan dan melaporkan bug dan anomali yang jelas. Bagaimana cara mengajukan pertanyaan yang bagus di Web!

  • Cara membalikkan fungsi dengan algoritma pencarian akar . (Kegagalan untuk menghargai ini sering menyebabkan algoritma yang sangat tidak efisien atau kegagalan untuk menyelesaikan masalah sama sekali.)

  • Bagaimana memilih di antara program optimalisasi black-box (kontinu vs integer, cembung vs tidak, univariat vs multivariat, linear vs tidak, dll.). Untuk lebih banyak contoh, lihat masalah lokasi peralatan dan masalah pengemasan poligon .

  • Bagaimana cara menavigasi sistem bantuan. Apa yang harus dicari dan apa yang harus ditolak sebagai tidak berguna. (Bantuan ArcGIS online ESRI memberikan contoh yang sangat baik tentang yang sangat baik dan yang sangat buruk.) Ini bahkan mungkin termasuk beberapa instruksi dalam membaca diagram objek .


Karena ini di atas kepala saya, itu pasti tidak lengkap. Jika orang menemukan daftar itu berguna, saya akan berusaha memperbaikinya - atau membantu saya dan merasa bebas untuk menambahkannya jika Anda memiliki reputasi yang cukup. Agar tetap praktis dan fokus ini, harap hanya membahas konsep-konsep yang akan membantu orang menghindari masalah yang telah Anda amati (dalam pekerjaan Anda sendiri atau orang lain).

whuber
sumber
Saya tidak yakin contoh Anda tentang 'Perbedaan antara penyimpanan eksternal dan RAM' berarti apa yang Anda pikirkan artinya. Disk RAM memang ada dan ini adalah penggunaan yang valid.
tomfumb
@tom Apa yang saya benar-benar ingin alamat dengan titik ini adalah kebingungan umum di antara pengguna yang menyebut semua penyimpanan dan RAM "memori" tanpa memahami berbagai karakteristik perangkat penyimpanan atau bentuk-bentuk RAM. Hampir tidak mungkin untuk menghargai apa itu RAM drive atau cara kerjanya sampai Anda mengerti ... haruskah saya mengatakannya lagi? ... perbedaan antara penyimpanan eksternal dan RAM. Juga, disk RAM tidak dapat dianggap sebagai perangkat penyimpanan, karena volatilitasnya; tetapi SSD jelas mengaburkan garis, dan begitu juga penyimpanan berbasis cloud melalui jaringan berkecepatan tinggi.
whuber
1
Saya yakin berharap saya lebih memperhatikan konsep pemrograman bersamaan yang disajikan di kelas. Saya mungkin terlalu sibuk melakukan banyak tugas :) Dengan proses yang berjalan lama didistribusikan di web, saya pikir ini telah menjadi sangat penting. Juga akan sangat membantu dalam menangani masalah threading dengan legacy COM.
Kirk Kuykendall
@Kirk Saran yang bagus. Saya menemukan bahwa hampir secepat pemrograman paralel menjadi biasa, rinciannya berhasil disarikan ke titik bahwa dalam banyak kasus kita tidak perlu tahu banyak untuk memanfaatkannya. Contoh kasus: di Mathematica yang harus Anda lakukan adalah membungkus bagian kode dalam sebuah Parallelizeperintah dan itu akan mengurus sisanya. (Memahami teknologi yang mendasarinya masih membantu untuk memanfaatkan kemampuan ini
sebaik
11

Saya lulus dari program yang berpusat pada ESRI di mana fakultas melakukan pekerjaan yang memisahkan konsep (kuliah) dan utilitas (lab). Kelemahan utama saya saat keluar dari dunia akademis adalah: 1) Saya tidak memiliki keterampilan SQL, tidak memiliki pengetahuan tentang prinsip-prinsip basis data dasar; dan 2) Saya tidak siap untuk pra-pemrosesan terprogram yang diperlukan untuk sebagian besar set data.

Saya merekomendasikan lokakarya "penanganan data" untuk memperkenalkan RDBMS yang tepat (mungkin PostreSQL dengan PostGIS) dan bahasa pemrograman (mungkin Python) untuk digunakan dalam membersihkan file CSV, TXT, atau SHP. Hanya dengan rasa masing-masing siswa Anda akan lebih siap untuk berdiri sendiri "di luar sana."

rec.thegeom
sumber
1
+1 untuk PostGIS. Baik Access maupun ArcSDE tidak mendorong desain database yang baik. Dalam jangka panjang, pengetahuan yang baik tentang SQL jauh lebih berharga daripada mempelajari "cara ESRI" dalam menangani data spasial dalam "sesuatu seperti" sebuah RDBMS.
underdark
@ rec.thegeom - Saya lulus dari program sejenis (di universitas yang sama dengan yang saya ajarkan) dengan kedatangan pendek yang sama dan saya terpaksa belajar di tempat kerja. Saya pikir komunitas akademik cenderung kurang memahami keterampilan dan pengetahuan apa yang diperlukan untuk berhasil dalam karier GIS. Saya pikir penyimpanan dan manajemen data harus menjadi tulang punggung pendidikan GIS. Bagaimanapun, GIS hanyalah bentuk lain dari analisis dan visualisasi data. Karena para siswa terbiasa dengan lingkungan ESRI (yang sudah diinstal) Saya berharap dapat menggunakan SQL Server Express untuk pekerjaan database.
Brian
10

Bahkan jika universitas menggunakan ESRI, saya akan merekomendasikan memperkenalkan, atau menggambarkan sumber terbuka yang setara. Pertama, jauh lebih mudah bagi siswa untuk menginstal QGIS pada laptop mereka daripada ArcGIS jika mereka ingin menguji membuka shapefile karena QGIS secara signifikan lebih kecil (ArcGIS 10 adalah 2 - 3GB) dan siswa tidak memerlukan koneksi internet. Universitas saya memiliki kurikulum yang berfokus pada ArcGIS daripada GIS; Saya pribadi berpikir ini mundur.

Memperkenalkan KML dengan google earth atau google maps bisa menjadi cara untuk melibatkan siswa. KML populer, dan membuat peta interaktif sedikit lebih menarik daripada peta kertas; khususnya ketika Anda dapat berbagi tautan web dengan orang lain.

djq
sumber
2
Saya setuju bahwa hanya mengajar ESRI mundur. Sayangnya, universitas tidak setuju. Selain itu, karena kendala TI, saya tidak dapat menginstal perangkat lunak tambahan apa pun di lab komputer tempat kursus berlangsung.
Brian
1
@ Brian saya mengerti. Mungkin masih ada cara untuk membingkai pengajaran seperti yang difokuskan pada berbagai pertanyaan, dan produk ESRI adalah salah satu cara untuk menjawab pertanyaan-pertanyaan itu. Saya pikir alat mempengaruhi pemikiran dan ekspresi (seperti bahasa manusia), dan ini penting untuk disoroti.
djq
memperkenalkan KML sepertinya cara yang bagus untuk menarik beberapa siswa.
rec.thegeom
Bahkan jika Anda tidak memiliki siswa menginstal atau menggunakan produk-produk open-source, masih akan sangat bermanfaat untuk memiliki satu hari atau minggu yang membahas alternatif-alternatif open-source yang tersedia hanya untuk mengekspos mereka pada kenyataan bahwa ada opsi ADA yang lain dari ESRI. Jika mereka ingin bereksperimen atau menggunakan perangkat lunak SIG di rumah, maka mereka akan memiliki beberapa opsi alternatif untuk menyelidiki sendiri.
RyanDalton
4

Saya akan menambahkan skrip dan proyeksi. Satu catatan lain, apakah ini ESRI brief? Saya akan mencoba dan membuatnya 'GI agnostik' karena ada begitu banyak sekarang, bahwa ESRI tidak memiliki monopoli lengkap, dan ketika anggaran menyusut, imo, pangsa pasar mereka akan menyusut juga. Jadi saya akan mencoba dan memperkenalkan lebih banyak proyek open source juga, karena semakin banyak perusahaan, dan organisasi bergerak seperti itu.

Saya juga akan memperkenalkan kerangka kerja pemrograman jika memungkinkan. Saya tahu Anda telah mengatakan itu melampaui pikiran mereka terakhir kali, tetapi penulisan skrip, setidaknya, diperlukan oleh bahkan praktisi GI paling dasar.

Keterampilan basis data juga dibutuhkan. Sekali lagi, bahkan praktisi GI paling dasar, mungkin harus mempertahankan beberapa jenis data dan memanipulasi data yang akan menjadi elemen kunci dari pekerjaan mereka sehari-hari.

Salah satu hal paling umum yang harus saya lakukan, adalah untuk mengajarkan pengguna apa sebenarnya GIS. Terkadang saya tercengang, betapa sedikit orang yang tahu tentang GIS, selain itu adalah peta Google. Jadi bisa membuat mereka menunjukkan pemahaman kunci tentang apa itu, secara holistik, dari pengguna, ke sistem akan bermanfaat bagi semua pengguna. Saya bekerja, baru-baru ini, dengan pengembang Java dari beberapa pengalaman, dan seseorang yang saya nilai sebagai spesialis, namun ia tidak benar-benar mengerti apa itu GIS, secara keseluruhan.

Akan lebih baik untuk menunjukkan lokasi kepada mereka, karena tidak cukup banyak orang berpikir di luar kotak tentang apa lokasi itu.

Namun memiliki potensi untuk menjadi lebih besar dari Ben Hur. Saya belajar ilmu Komputer di Universitas, dengan modul GIS. Meskipun kemudian melanjutkan untuk menyelesaikan gelar master di GIS, kemudian bekerja 15 tahun di industri, saya masih belajar, jadi tidak mungkin untuk mendapatkan semuanya.

Berbulu
sumber