Đề xuất các chủ đề được đưa vào khóa học Khoa học máy tính cho công nghệ không gian địa lý


24

Tôi sẽ hướng dẫn một khóa học tại trường đại học địa phương có tên Khoa học máy tính cho công nghệ không gian địa lý. Đây là một khóa học giới thiệu nhằm giới thiệu các khái niệm khoa học máy tính cho sinh viên công nghệ không gian địa lý (GIS & Viễn thám). Trước đây tôi đã giới thiệu các khái niệm lập trình, nhưng tôi thấy điều này đã đi qua nhiều đầu của sinh viên.

Hiện tại, tôi đang lên kế hoạch thảo luận về phần cứng máy tính, các loại dữ liệu không gian (ví dụ: shapefiles vs geodatabase), ESRI Geodatabase Model (trường đại học hoạt động trên nền tảng ESRI), lý thuyết cơ sở dữ liệu cơ bản với ArcSDE Personal.

Bất cứ ai cũng có thể giới thiệu một số chủ đề liên quan đến khoa học máy tính khác mà các học viên của GIS và Viễn thám nên biết trước khi vào lực lượng lao động?

CẬP NHẬT: Giáo trình năm ngoái bao gồm:

  • API Google Maps / HTML / Google Earth / KML - 5 tuần
  • Python Scripting - 6 tuần
  • Lý thuyết cơ sở dữ liệu / Truy cập MS - 2 tuần
  • VBA - 2 tuần

Phản hồi tôi nhận được từ các sinh viên là không có đủ thời gian dành cho mỗi chủ đề. Tôi đang nói chuyện với trường đại học để cung cấp một khóa học cấp độ tiếp theo về Lập trình GIS bằng Python.


2
Tôi chắc chắn sẽ thêm kịch bản và dự đoán. Một lưu ý khác, đó có phải là tóm tắt ESRI không? Tôi sẽ thử và biến nó thành bất khả tri trên nền tảng GI. Tôi cũng sẽ thử và giới thiệu nhiều dự án nguồn mở hơn, cũng như nhiều công ty và tổ chức khác đang theo cách đó. Tôi cũng muốn giới thiệu các khung lập trình nếu có thể. Tôi biết bạn đã nói rằng nó đã đi qua đầu của họ thời gian qua, nhưng ít nhất, kịch bản, ít nhất, là cần thiết bởi ngay cả người thực hành GI cơ bản nhất, imo.
Lông

1
Tôi đã bao gồm kịch bản vào năm ngoái, nhưng tôi nghĩ kịch bản nên là một khóa học của riêng nó. Có quá nhiều thứ để chen lấn chỉ trong vài tuần của một khóa học lớn hơn. Tôi muốn cung cấp một khóa học nâng cao về Lập trình GIS bằng Python.
Brian

2
Điểm tốt, @Herry. Tại sao bạn không chia sẻ chúng như một câu trả lời?
whuber

1
Thật tò mò, Brian, mặc dù mục đích của khóa học được đặc trưng là "giới thiệu các khái niệm khoa học máy tính", chỉ có 2 trong số 15 tuần xuất hiện dành cho việc này (lý thuyết cơ sở dữ liệu). Phần còn lại trông giống như các ứng dụng thực tế hơn là các khái niệm. Có lẽ chúng được dự định là phương tiện để dạy các khái niệm mà nếu không được gọi cụ thể trong chương trình giảng dạy? Nếu đó là trường hợp, nó sẽ giúp chỉ ra những khái niệm mà bạn hy vọng sẽ dạy trong các phân đoạn GM / GE / KML, Python và VBA.
whuber

1
@whuber - Năm ngoái khóa học được thiết kế để có nhiều kỹ năng thực tế hơn. Tôi hình dung hầu hết các sinh viên đã nhận đủ lý thuyết trong các khóa học giới thiệu truyền thống của họ. Sau khi lao vào thực hành mà không có nền tảng thích hợp, nhiều sinh viên đã bị mất. Tôi nhớ lại việc thảo luận về cách tạo kịch bản công việc trong Python theo cách này so với cách khác có thể ảnh hưởng đến việc sử dụng bộ nhớ và bộ xử lý và nhiều sinh viên dường như không hiểu bộ nhớ và bộ xử lý là gì. Đó là lý do tại sao năm nay, tôi nghĩ nó nên mang tính khái niệm hơn một chút, lấp đầy những khoảng trống từ các khóa học khác.
Brian

Câu trả lời:


29

Trong 15 năm trả lời các câu hỏi về GIS trên máy nghe nhạc và bây giờ, các trang Web, tôi đã lưu ý một số vấn đề định kỳ gợi ý rằng các học viên cần phải học một số khái niệm điện toán cụ thể. Không ai trong số này là sâu sắc; tất cả những điều này đều được biết đến; nhưng tất cả dường như là những thiếu sót phổ biến trong nền tảng hoặc sự hiểu biết về một nhóm thiểu số đáng kể (đa số?) của người GIS. Trong nhiều trường hợp, thực tế ít cần phải học ngoài một định nghĩa hoặc ví dụ. Vấn đề là cảnh báo sinh viên về những cạm bẫy sẽ phát sinh và cung cấp cho họ các nguyên tắc hoặc công cụ họ cần để giải quyết chúng khi chúng xuất hiện, mà không nhất thiết phải trở thành chuyên gia.

Liên kết trong danh sách sau đây tất cả đi đến câu hỏi trên trang web này. Sự tồn tại đơn thuần của các liên kết này cung cấp bằng chứng về giá trị của các khái niệm. Bằng cách theo các liên kết, bạn có thể tìm thấy các ví dụ về cách biết các khái niệm này có thể giải quyết vấn đề, ngăn chặn chúng xảy ra và giúp mọi người thành thạo hơn với GIS.

Hệ thống máy tính

  • Các thành phần của máy tính: mở một hộp, tách nó ra, xác định các phần (CPU, RAM, đĩa, bo mạch chủ, card mạng, v.v.) và giải thích vai trò của chúng trong hệ thống. Làm sáng tỏ nó và làm cho nó cụ thể cho các sinh viên.

  • Hiểu về cách các hệ thống máy tính lưu trữ dữ liệu trên các thiết bị bên ngoài . Khái niệm về định dạng vật lý và logic. Sự khác biệt giữa ASCII (và mã hóa tương tự) và nhị phân thô.

  • Chi tiết về biểu diễn nhị phân nội bộ của dữ liệu số, bao gồm IEEE nổi đơn và đôi chính xácsố nguyên signed và unsigned . Hạn chế của từng. Cách chọn loại dữ liệu sẽ sử dụng để biểu diễn các thuộc tính GIS.

  • Sự khác biệt giữa bộ nhớ ngoài và RAM . (Tôi biết điều này là vô cùng cơ bản, nhưng có rất nhiều nhầm lẫn ngoài kia.)

Khoa học máy tính

  • Phân tích tiệm cận của các thuật toán . Hiểu, ở mức độ thực tế, sự khác biệt giữa thời gian O (n), O (n log (n)), O (n ^ 2), (và tệ hơn). Làm thế nào để kiểm tra làm thế nào một quy mô hộp đen quy mô.

  • Nguyên tắc tương tác giữa người và máy tính. Điều này quá rộng, nhưng một số nguyên tắc thiết kế biểu mẫu và thiết kế trang Web có thể đi một chặng đường dài.

  • Nguyên tắc của ngôn ngữ điện toán: những gì mong đợi từ một ngôn ngữ, sự khác biệt giữa định hướng thủ tục và đối tượng, loại cấu trúc dữ liệu và ngôn ngữ đối tượng nào có thể hỗ trợ và tham khảo, sự khác biệt giữa ngôn ngữ được biên dịch và giải thích (và sự đánh đổi giữa chúng) .

  • Nguyên tắc cơ bản của thiết kế cấu trúc dữ liệu . Sự tương tác giữa các cấu trúc được sử dụng để biểu diễn dữ liệu và các thuật toán sử dụng chúng. Việc sử dụng mảng, danh sách và từ điển.

  • Sự phân biệt giữa các đối tượng và tham chiếu đến chúng. ( Nhiều lỗi được thực hiện bởi những người không nhận ra sự khác biệt giữa tên biến và chuỗi được trích dẫn của nó !)

  • Hệ điều hành là gì, dịch vụ nào mong đợi từ nó và cách tương tác với nó.

  • Mạng là gì, dịch vụ nào mong đợi từ họ, so sánh một số kiến ​​trúc và cảm giác đánh đổi giữa việc có được các dịch vụ điện toán cục bộ so với từ xa.

  • Các thuật toán lý thuyết đồ thị: nhiều phân tích GIS có thể được trình bày một cách trừu tượng về các vấn đề trên biểu đồ; có thể làm điều này cho phép truy cập vào các thuật toán hiệu quả. Một ví dụ hay trên trang web của chúng tôi là ở đây liên quan đến một vấn đề ban đầu dường như không liên quan gì đến đồ thị.

  • Đệ quy. Một ví dụ điển hình cho các học viên GIS là việc tạo ra một chỉ số không gian như thuật toán này cho một góc phần tư thích nghi .

Dữ liệu GIS

Hệ thống cơ sở dữ liệu

GIS

  • Các thuật toán điển hình để thực hiện các quy trình GIS cơ bản, bao gồm đa giác điểm và bộ đệm. Tại sao các thuật toán khác nhau có thể được mong muốn cho các tính toán một lần so với các tính toán lặp lại với cùng một dữ liệu hoặc cho dữ liệu tĩnh so với dữ liệu động (thời gian thực).

  • Làm thế nào dữ liệu GIS có thể được tổ chức để tìm kiếm và xử lý, chẳng hạn như tứ giác .

  • Đánh giá sự đánh đổi giữa độ phân giải / độ chính xác / tốc độ trong việc lưu trữ dữ liệu GIS (đặc biệt là dữ liệu raster).

Sai

  • Kỹ thuật sửa lỗi: cách cô lập, xác định và khắc phục lỗi. Làm thế nào để mô tả và báo cáo lỗi và dị thường rõ ràng. Làm thế nào để đặt câu hỏi hay trên Web!

  • Làm thế nào để đảo ngược các chức năng với các thuật toán tìm kiếm gốc . (Việc không đánh giá cao điều này thường xuyên dẫn đến các thuật toán cực kỳ kém hiệu quả hoặc không thể giải quyết vấn đề hoàn toàn.)

  • Cách chọn trong số các chương trình tối ưu hóa hộp đen (liên tục so với số nguyên, lồi so với không, đơn biến so với đa biến, tuyến tính so với không, v.v.). Để biết thêm ví dụ, xem vấn đề vị trí thiết bịvấn đề đóng gói đa giác .

  • Làm thế nào để điều hướng các hệ thống trợ giúp. Cái gì để tìm và cái gì để từ chối là vô dụng. (Trợ giúp ArcGIS trực tuyến của ESRI cung cấp các ví dụ tuyệt vời về điều rất tốt và điều rất xấu.) Điều này thậm chí có thể bao gồm một số hướng dẫn trong việc đọc sơ đồ đối tượng .


Bởi vì điều này nằm ngoài đỉnh đầu của tôi, nó chắc chắn là không đầy đủ. Nếu mọi người thấy danh sách này hữu ích, tôi sẽ làm việc để cải thiện nó - hoặc giúp tôi ra ngoài và thoải mái thêm vào danh sách nếu bạn có đủ danh tiếng. Để giữ cho thực tế và tập trung này, vui lòng chỉ giải quyết các khái niệm sẽ giúp mọi người tránh các vấn đề mà bạn đã thực sự quan sát (trong công việc của bạn hoặc của người khác).


Tôi không chắc chắn ví dụ của bạn về 'Sự khác biệt giữa bộ nhớ ngoài và RAM' có nghĩa là bạn nghĩ nó có nghĩa gì. Đĩa RAM tồn tại và đây là cách sử dụng hợp lệ.
tomfumb

@tom Điều tôi thực sự muốn giải quyết với điểm này là sự nhầm lẫn phổ biến giữa những người dùng gọi tất cả bộ nhớ và RAM là "bộ nhớ" mà không hiểu các đặc điểm khác nhau của thiết bị lưu trữ hoặc các dạng RAM. Khó có thể đánh giá được ổ đĩa RAM là gì hoặc nó hoạt động như thế nào cho đến khi bạn hiểu ... tôi sẽ nói lại chứ? ... sự khác biệt giữa bộ nhớ ngoài và RAM. Ngoài ra, một đĩa RAM không thể được coi là một thiết bị lưu trữ, do tính dễ bay hơi của nó; nhưng SSD chắc chắn làm mờ các dòng và lưu trữ dựa trên đám mây cũng qua các mạng tốc độ cao.
whuber

1
Tôi chắc chắn mong muốn tôi đã chú ý hơn đến các khái niệm lập trình đồng thời được trình bày trong lớp. Tôi có lẽ đã quá bận rộn đa nhiệm :) Với các quy trình chạy dài được phân phối trên web, tôi nghĩ rằng điều này đã trở nên rất quan trọng. Cũng sẽ hữu ích trong việc xử lý các vấn đề luồng với COM kế thừa.
Kirk Kuykendall

@Kirk Đề nghị tốt. Tôi thấy rằng gần như nhanh chóng khi lập trình song song đang trở nên phổ biến, các chi tiết của nó đang được trừu tượng hóa thành công đến mức trong nhiều trường hợp chúng ta không cần biết nhiều để sử dụng nó. Trường hợp cụ thể: trong Mathicala, tất cả những gì bạn phải làm là bọc một phần mã trong một Parallelizelệnh và nó sẽ giải quyết phần còn lại. (Tuy nhiên, hiểu được công nghệ cơ bản vẫn hữu ích để tận dụng tối đa khả năng này.)
whuber

11

Tôi đã tốt nghiệp một chương trình tập trung vào ESRI, trong đó các giảng viên đã thực hiện một khái niệm phân tách công việc khá tốt đẹp (bài giảng) và tiện ích (phòng thí nghiệm). Điểm yếu chính của tôi khi rời khỏi học viện là: 1) Tôi không có kỹ năng SQL, không có kiến ​​thức về các nguyên tắc cơ sở dữ liệu cơ bản; và 2) Tôi đã không chuẩn bị cho việc xử lý trước lập trình cần thiết cho hầu hết các tập dữ liệu.

Tôi đề xuất một hội thảo "xử lý dữ liệu" để giới thiệu một RDBMS thích hợp (có thể là PostreQuery với PostGIS) và ngôn ngữ lập trình (có thể là Python) để sử dụng để dọn dẹp các tệp CSV, TXT hoặc SHP. Chỉ với một sở thích của mỗi học sinh, học sinh của bạn sẽ sẵn sàng hơn để tự đứng lên "ngoài kia".


1
+1 cho PostGIS. Cả Access và ArcSDE đều không khuyến khích thiết kế cơ sở dữ liệu tốt. Về lâu dài, một kiến ​​thức tốt về SQL có giá trị hơn nhiều so với việc học "cách ESRI" để xử lý dữ liệu không gian trong "một cái gì đó giống như" một RDBMS.
underdark

@ rec.thegeom - Tôi đã tốt nghiệp một loại chương trình tương tự (tại cùng một trường đại học tôi đang giảng dạy) với cùng một danh sách ngắn và tôi đã bị buộc phải học trong công việc. Tôi nghĩ rằng cộng đồng học thuật có xu hướng thiếu hiểu biết về những kỹ năng và kiến ​​thức cần thiết để thành công trong sự nghiệp GIS. Tôi nghĩ rằng việc lưu trữ và quản lý dữ liệu phải là xương sống của bất kỳ nền giáo dục GIS nào. Xét cho cùng, GIS chỉ là một hình thức phân tích và trực quan hóa dữ liệu. Vì các sinh viên quen thuộc với môi trường ESRI (nó đã được cài đặt), tôi hy vọng sẽ sử dụng SQL Server Express cho công việc cơ sở dữ liệu.
Brian

10

Ngay cả khi trường đại học sử dụng ESRI, tôi vẫn khuyên bạn nên giới thiệu hoặc mô tả các tương đương nguồn mở. Đối với một người, các sinh viên cài đặt QGIS trên máy tính xách tay của họ dễ dàng hơn nhiều so với ArcGIS nếu họ muốn thử nghiệm mở một shapefile vì QGIS nhỏ hơn đáng kể (ArcGIS 10 là 2 - 3 GB) và sinh viên không cần kết nối internet. Trường đại học của tôi có chương trình giảng dạy tập trung quanh ArcGIS thay vì GIS; Cá nhân tôi nghĩ rằng điều này là ngược.

Giới thiệu KML với google earth hoặc google maps có thể là một cách để thu hút sinh viên tham gia. KML là phổ biến và việc tạo một bản đồ tương tác thú vị hơn một chút so với bản đồ giấy; đặc biệt là khi bạn có thể chia sẻ một liên kết web với những người khác.


2
Tôi đồng ý rằng chỉ dạy ESRI là ngược. Thật không may, trường đại học không đồng ý. Ngoài ra, do các hạn chế về CNTT, tôi không thể cài đặt bất kỳ phần mềm bổ sung nào trong phòng thí nghiệm máy tính nơi khóa học diễn ra.
Brian

1
@Brian tôi hiểu. Vẫn có thể có một cách đóng khung cho việc giảng dạy tập trung vào các câu hỏi khác nhau và các sản phẩm ESRI là một cách để trả lời những câu hỏi đó. Tôi nghĩ rằng công cụ ảnh hưởng đến suy nghĩ và biểu hiện (như ngôn ngữ của con người), và điều này quan trọng để làm nổi bật.
djq

giới thiệu KML có vẻ như là một cách tuyệt vời để thu hút một số sinh viên tham gia.
rec.thegeom

Ngay cả khi bạn không có sinh viên cài đặt hoặc sử dụng các sản phẩm nguồn mở, vẫn sẽ rất có lợi khi có một ngày hoặc tuần thảo luận về các lựa chọn thay thế nguồn mở có sẵn chỉ để đưa ra cho họ biết rằng có các tùy chọn khác hơn ESRI. Nếu họ muốn thử nghiệm hoặc sử dụng phần mềm GIS tại nhà, thì họ sẽ có một số tùy chọn thay thế để tự mình điều tra.
RyanDalton

4

Tôi chắc chắn sẽ thêm kịch bản và dự đoán. Một lưu ý khác, đó có phải là tóm tắt ESRI không? Tôi sẽ thử và biến nó thành 'bất khả tri GI' vì hiện tại có rất nhiều, ESRI không có độc quyền hoàn toàn và khi ngân sách co lại, imo, thị phần của họ cũng sẽ bị thu hẹp. Vì vậy, tôi cũng sẽ thử và giới thiệu nhiều dự án nguồn mở hơn, cũng như nhiều công ty và tổ chức đang di chuyển theo cách đó.

Tôi cũng muốn giới thiệu các khung lập trình nếu có thể. Tôi biết bạn đã nói rằng nó đã đi qua đầu của họ thời gian qua, nhưng ít nhất, kịch bản, ít nhất, là cần thiết bởi ngay cả người thực hành GI cơ bản nhất.

Kỹ năng cơ sở dữ liệu cũng cần thiết. Một lần nữa, ngay cả người hành nghề GI cơ bản nhất, có lẽ sẽ phải duy trì một loại kho dữ liệu nào đó và thao túng dữ liệu đó sẽ là một yếu tố chính trong công việc hàng ngày của họ.

Một trong những điều phổ biến nhất mà tôi phải làm là dạy cho người dùng biết GIS thực sự là gì. Đôi khi, điều đó làm tôi kinh ngạc về việc mọi người ít biết về GIS, ngoài bản đồ Google. Vì vậy, việc có thể khiến họ thể hiện sự hiểu biết chính về nó, về mặt tổng thể, từ người dùng, đến các hệ thống sẽ có lợi cho tất cả người dùng. Gần đây, tôi đang làm việc với một nhà phát triển Java có một số kinh nghiệm và một người mà tôi đánh giá là một chuyên gia, nhưng anh ta thực sự không hiểu về GIS là gì, nói chung.

Nó cũng sẽ là tốt để chứng minh vị trí cho họ, vì không đủ người nghĩ bên ngoài hộp như là một vị trí là gì.

Nó có tiềm năng lớn hơn Ben Hur. Tôi đã học ngành Khoa học máy tính tại Đại học, với một mô-đun về GIS. Mặc dù sau đó tiếp tục hoàn thành bằng thạc sĩ về GIS, sau đó làm việc 15 năm trong ngành, tôi vẫn đang học, vì vậy không thể có được tất cả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.