[摘 要] 傳統(tǒng)程序設(shè)計語言C、Java等對計算機(jī)理論知識要求高、入門難,對地理學(xué)專業(yè)學(xué)生而言,在學(xué)習(xí)過程中會出現(xiàn)大量的語法錯誤,導(dǎo)致學(xué)生編程學(xué)習(xí)興趣不濃。Python作為一門易學(xué)、易用的編程語言,與地理學(xué)專業(yè)學(xué)習(xí)有機(jī)結(jié)合,具有明顯優(yōu)勢并深受學(xué)生歡迎。針對教學(xué)過程中出現(xiàn)的問題,可運(yùn)用科學(xué)合理的教學(xué)方法、注重基礎(chǔ)性與前沿性相結(jié)合、加強(qiáng)案例教學(xué)、鼓勵學(xué)生積極參加地理學(xué)相關(guān)知識競賽、充分利用網(wǎng)絡(luò)教學(xué)以及強(qiáng)化學(xué)生上機(jī)實驗?zāi)芰Φ呐囵B(yǎng)等,并在本科教學(xué)中起到良好的效果。
[關(guān)鍵詞] Python語言;地理學(xué)專業(yè);程序設(shè)計;教學(xué)改革
[基金項目] 2020年度廣東省高等教育教學(xué)改革項目“在線教學(xué)效果評測與質(zhì)量保障”(粵教高函〔2020〕20號);2018年01月—2020年12月國家重點研發(fā)計劃項目“深圳市洪澇實時調(diào)度決策支持平臺及示范”(2017YFC1502706);2019年01月—2021年12月中山大學(xué)本科教學(xué)質(zhì)量工程類項目“面向地學(xué)專業(yè)的程序設(shè)計核心通識課程建設(shè)”(37000-18832606)
[作者簡介] 杜國明(1971—),男,山東安丘人,博士,中山大學(xué)地理科學(xué)與規(guī)劃學(xué)院副教授,主要從事地學(xué)專業(yè)教學(xué)研究。
[中圖分類號] G642.0? ? ?[文獻(xiàn)標(biāo)識碼] A? ?[文章編號] 1674-9324(2021)20-0049-04? ? [收稿日期] 2021-01-12
一、引言
地理學(xué)是研究地理要素和地理綜合體的空間分異規(guī)律、時間演變過程及區(qū)域特征的學(xué)科,具有綜合性、交叉性的特點,其研究內(nèi)容是地球表層人與環(huán)境相互作用的機(jī)理,研究過程需要耦合自然要素和人文要素,是一門“探索自然規(guī)律,昭示人文精華”的學(xué)科[1]。作為一種綜合性學(xué)科,地理學(xué)的應(yīng)用范圍非常廣泛,常常需要處理和分析復(fù)雜地物,程序設(shè)計往往能起到事半功倍的作用。正如蘋果公司的CEO庫克說過:學(xué)習(xí)編程要比學(xué)習(xí)英語更重要。因此,程序設(shè)計是地理學(xué)專業(yè)中的一門重要課程。常見的程序設(shè)計語言有Java、C、Python等。由于Python語言功能強(qiáng)大且語法簡潔、易讀及可擴(kuò)展性,是目前美國大學(xué)最受歡迎的程序設(shè)計語言,如麻省理工學(xué)院的計算機(jī)科學(xué)及編程導(dǎo)論課程就使用Python語言授課[2]。又如,斯坦福大學(xué)從2009年開設(shè)Python語言程序設(shè)計類課程,替換了之前的Java和C語言課程[3]。因此,我們面向地理學(xué)專業(yè)選用Python語言作為本科生程序設(shè)計的教學(xué)語言。
二、面向地理學(xué)專業(yè)程序設(shè)計的教學(xué)改革與課程規(guī)劃
(一)傳統(tǒng)程序設(shè)計語言在地理學(xué)專業(yè)教學(xué)中存在的問題
目前,針對我國地理學(xué)專業(yè)開設(shè)的程序設(shè)計語言大多為C、C++、C#、JAVA等。這些編程語言語法復(fù)雜,對計算機(jī)理論知識要求高、入門難[5]。例如,C與C++語言要求變量在使用前先定義,嚴(yán)格區(qū)分大小寫,每行語句以分號結(jié)尾,數(shù)組在使用前要先定義大小(易造成數(shù)據(jù)冗余或不足),指針和鏈表難學(xué)難用……對于編程基礎(chǔ)薄弱的地理學(xué)專業(yè)學(xué)生來說,程序代碼晦澀難懂,出現(xiàn)錯誤的時候又難以區(qū)分是運(yùn)行錯誤還是邏輯錯誤,很容易挫傷學(xué)生學(xué)習(xí)程序設(shè)計的積極性。C#對計算機(jī)的配置要求較高,造成應(yīng)用上的局限性。Java語言主要針對對象方法展開教學(xué),教學(xué)內(nèi)容主要是類、對象、封裝、繼承、多態(tài)、接口、多線程等,運(yùn)行效率不及C或C++語言,易學(xué)性不及Python,所以與Python相比,實際教學(xué)價值不大。
上述程序設(shè)計語言都存在復(fù)雜的語法結(jié)構(gòu),對地理學(xué)專業(yè)學(xué)生而言,由于缺少計算機(jī)體系結(jié)構(gòu)的相關(guān)知識,在學(xué)習(xí)程序設(shè)計過程中會出現(xiàn)大量的語法錯誤,因此無法與地理學(xué)專業(yè)學(xué)習(xí)有機(jī)結(jié)合起來,學(xué)生也難以得到系統(tǒng)的培養(yǎng)。學(xué)生雖然學(xué)習(xí)了編程語言,但并不能應(yīng)用于實際的編程工作中,導(dǎo)致地理學(xué)專業(yè)學(xué)生編程學(xué)習(xí)興趣不濃,僅為了考試而學(xué),“考完即忘”的現(xiàn)象普遍存在。
Python作為一種輕語法的程序設(shè)計語言,具有易學(xué)、易用的特點,降低了學(xué)生學(xué)習(xí)的難度,可以彌補(bǔ)上述程序設(shè)計語言的不足,非常適合地理學(xué)專業(yè)程序設(shè)計課程。
(二)Python語言用于地理學(xué)教學(xué)的優(yōu)勢
Python是一門高級程序設(shè)計語言,由吉多·范羅蘇姆(Guido van Rossum)于1989年底發(fā)明,是開源、免費(fèi)的,簡單、易學(xué)[4],比Matlab等商業(yè)軟件具有先天優(yōu)勢,不會出現(xiàn)因授權(quán)而被“卡脖子”。Python的代碼書寫規(guī)則、語法簡潔,不需要在使用變量前定義。同樣輸出一段文字,三種語言分別如下所示。
C語言需要4行代碼,如下所示:
#include
int main()
{
printf("學(xué)好程序設(shè)計!");
return 0;
}
Java語言要定義一個類Main,代碼如下:
public Class Main(){
public static void main(String[] args){
System.out.println("學(xué)好程序設(shè)計!");
}
}
python語言僅需要一行即可,如下:
print("學(xué)好程序設(shè)計!")
Python的優(yōu)勢顯而易見。另外,它還能夠與地理信息科學(xué)最常用的商業(yè)軟件ArcGIS有機(jī)結(jié)合在一起,為解決復(fù)雜的地理問題提供有力支持。這是因為,ArcGIS開發(fā)語言默認(rèn)安裝Python,為地理學(xué)專業(yè)學(xué)生學(xué)習(xí)程序二次開發(fā)提供了極大的便利,非常適合地理學(xué)專業(yè)程序設(shè)計課程。Python的科學(xué)計算功能強(qiáng)大,方便數(shù)字圖像處理,提供高效的數(shù)據(jù)組織與處理功能、多種數(shù)值計算、種類豐富的圖形繪制功能。