王潤鴻 劉燕
摘要:根據(jù)高校非計算機(jī)專業(yè)程序設(shè)計課程的教學(xué)現(xiàn)狀,分析了Python語言的特點和優(yōu)勢。闡述了面向全校非計算機(jī)專業(yè)學(xué)生開設(shè)Python語言程序設(shè)計課程的必要性。并探討了結(jié)合不同專業(yè)自身特點和Python 語言特性的教學(xué)方法。提升教學(xué)效果,為非計算機(jī)專業(yè)學(xué)生解決復(fù)雜的專業(yè)問題提供有效地信息技術(shù)支持。
關(guān)鍵詞:Python語言;案例教學(xué);教學(xué)方法;專業(yè)需求
中圖分類號:G434 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)12-0149-02
隨著人工智能和機(jī)器學(xué)習(xí)的發(fā)展,越來越多的人開始學(xué)習(xí)程序設(shè)計。非計算機(jī)專業(yè)編程課程的教學(xué)目標(biāo)是使學(xué)生掌握使用計算機(jī)的方法,理解用計算機(jī)處理專業(yè)問題的思路,進(jìn)而培養(yǎng)學(xué)生計算思維能力和初步的程序設(shè)計能力,使信息技術(shù)更好地融入其他專業(yè)學(xué)科。在傳統(tǒng)的大學(xué)計算機(jī)公共基礎(chǔ)課程教學(xué)中,多數(shù)以 C語言、Access等作為教學(xué)語言,但在“互聯(lián)網(wǎng)+”“大數(shù)據(jù)”時代,特別是面對信息采集、數(shù)據(jù)清洗、仿真建模、結(jié)果驗證與可視化展現(xiàn)時,他們就不再是最佳選擇。而Python語言作為一種解釋型超高級語言,具備可交互、可移植、面向?qū)ο蟮忍攸c。目前Python語言,已經(jīng)不僅是計算機(jī)專業(yè)學(xué)生所需要學(xué)習(xí)的技能, Python已經(jīng)逐漸成為大眾必備的一門編程技能。教育部考試中心也決定自2018年起,在計算機(jī)二級考試中加入了“Python語言程序設(shè)計”科目[1]。很多高校近年來也開始將 Python編程入門納入計算機(jī)類專業(yè)的技術(shù)技能型實踐環(huán)節(jié),將 Python程序設(shè)計納入非計算機(jī)專業(yè)的基礎(chǔ)課程,大力推動 Python教學(xué)。為其后續(xù)的計算機(jī)課程學(xué)習(xí)打下良好的基礎(chǔ)。以Python語言作為手段的計算機(jī)基礎(chǔ)教學(xué)必將成為公共課教學(xué)的趨勢。
1非計算機(jī)專業(yè)程序設(shè)計類課程現(xiàn)狀
我國高校非計算機(jī)專業(yè)本科生程序設(shè)計課程傳統(tǒng)教學(xué)中主要使用 C、 Java、 Access、 VB等編程語言,目前也有部分高校選擇 Python作為非計算機(jī)專業(yè)學(xué)習(xí)編程的工具。各種不同的編程語言都具有各自不同的特點有適用性。
C 語言程序設(shè)計是目前我國大學(xué)針對非計算機(jī)專業(yè)普遍開設(shè)的課程,其實際教學(xué)內(nèi)容主要詮釋計算機(jī)系統(tǒng)結(jié)構(gòu)時代的計算思維外延,即計算機(jī)體系結(jié)構(gòu)的抽象和自動化。通過這種計算思維的培養(yǎng),學(xué)生可以掌握程序的高效運(yùn)作模式。但是,非計算機(jī)專業(yè)的學(xué)生并沒有對計算機(jī)體系結(jié)構(gòu)的專業(yè)需求,因此沒有開設(shè)相關(guān)課程,缺少相關(guān)知識。即使他們通過 C語言考試,也很難將其應(yīng)用在日后的工作中,更難以用該語言解決自身專業(yè)領(lǐng)域中的計算問題。C 語言更適合作為計算機(jī)及部分信息類專業(yè)學(xué)生學(xué)習(xí)編程的工具。
Java 語言是面向?qū)ο笳Z言,該語言有很多的優(yōu)點:安全可靠、編譯和解釋型語言、分布式、多線程、面向?qū)ο?、跨平臺等等。體現(xiàn)了計算機(jī)網(wǎng)絡(luò)時代的需求。而非計算機(jī)專業(yè)學(xué)習(xí)計算機(jī)的目標(biāo)并非專業(yè)程序員。Java 語言適合的教學(xué)對象主要是計算機(jī)專業(yè)學(xué)生。
Access、 VB類語言主要教學(xué)內(nèi)容針對窗體對象、按鈕、文本框、圖形界面、事件響應(yīng)等開展,這些內(nèi)容體現(xiàn)了計算機(jī)視窗的計算思維,屬于基于視窗的語法設(shè)計體系。使用該類語言所開發(fā)的程序具有所見即所得,且能夠支持 Word 及 Excel 等辦公軟件的編程擴(kuò)展等特點,因此對非計算機(jī)專業(yè)學(xué)生有一定實際作用。直觀的視窗效果使學(xué)生更容易上手,教學(xué)效果相對較好。但使用具有較大局限性,應(yīng)用面狹窄,無法完全適用大數(shù)據(jù)的時代背景。
Python語言是一種重要的動態(tài)腳本語言,已經(jīng)開發(fā)了近30年,是目前美國大學(xué)生最喜歡的編程語言。近年來,隨著Web應(yīng)用程序的深入,許多項目都是基于Python等動態(tài)語言構(gòu)建的。 Python 語言實際教學(xué)內(nèi)容除了程序設(shè)計的基本結(jié)構(gòu)分支、循環(huán)、函數(shù)外,還具備功能強(qiáng)大的第三方開發(fā)庫。此外,Python還是目前最接近自然語言的編程語言。
2 Python語言的優(yōu)勢
Python語言具有 C、 Java、 VB等傳統(tǒng)程序設(shè)計語言所不具備的動態(tài)語言特征,且語法簡練、應(yīng)用范圍廣、易學(xué)易上手,在應(yīng)對數(shù)據(jù)采集、數(shù)據(jù)分析、機(jī)器人工智能學(xué)習(xí)等方面能力突出。Python語言有利于大學(xué)計算機(jī)公共課程教學(xué)的幾個特點:
1)在解決計算問題方面,C、C++等語言過分強(qiáng)調(diào)語法,加大學(xué)習(xí)難度,不適合非計算機(jī)專業(yè)學(xué)生用來解決一般計算問題,Python語言是適合非計算機(jī)專業(yè)學(xué)生學(xué)習(xí)的一種輕語法程序設(shè)計語言。
2)C語言門檻高、學(xué)習(xí)曲線陡峭、上手難,但Python語言代碼易學(xué)習(xí),代碼編寫效率高,便于程序的修改和調(diào)試,減少程序出錯率,有利于提升學(xué)生的編程興趣。
3)Python是面向?qū)ο笳Z言,提供了豐富的數(shù)據(jù)類型,完全支持繼承、重載、派生、多繼承等特性,同時隱藏了底層復(fù)雜的細(xì)節(jié),可以讓學(xué)生在學(xué)習(xí)語言本身上節(jié)省很多時間和精力。Python 語言抽象了問題及解決方案,實現(xiàn)問題自動化求解,使非計算機(jī)專業(yè)的學(xué)生能夠輕松理解編程的本質(zhì)。
4)Python允許以交互模式運(yùn)行。交互模式易于初學(xué)者理解,適合教師在教學(xué)過程中,對各種命令和語句進(jìn)行實時演示。
5)Python語言易學(xué)、易用、具有豐富的開源庫,具有良好的可擴(kuò)展性。Python擁有一個強(qiáng)大的標(biāo)準(zhǔn)庫和很多功能豐富的第三方庫[2],適用于多個領(lǐng)域,適合多專業(yè)學(xué)生學(xué)習(xí),通過增強(qiáng)學(xué)生的信息和應(yīng)用范圍,激發(fā)學(xué)生的學(xué)習(xí)興趣,便于后續(xù)的持續(xù)學(xué)習(xí),有利于利用計算機(jī)解決所面臨的各類計算問題。
3 Python融入大學(xué)計算機(jī)公共課教學(xué)的實施
鑒于上述 Python 語言程序設(shè)計的特點和優(yōu)勢,本次課改旨在將“Python語言程序設(shè)計“納入我院非計算機(jī)專業(yè)計算機(jī)二級的教學(xué)中。研究探討適合的教學(xué)內(nèi)容、教學(xué)方法。在計算機(jī)公共課教學(xué)改革過程中,利用 Python語言具有的第三方開發(fā)庫,逐步開發(fā)出滿足各專業(yè)需求的教學(xué)體系,使學(xué)生能夠?qū)崿F(xiàn)信息技術(shù)與本專業(yè)的融合。
1)“Python語言程序設(shè)計”教學(xué)目標(biāo)
“Python語言程序設(shè)計”是入門級編程課程,基本忽略學(xué)生背景的差異,旨在降低非計算機(jī)專業(yè)的學(xué)生對編程恐懼。其教學(xué)目的除了教授學(xué)生編程語言的概念、語法及使用,還要培養(yǎng)學(xué)生具有追求創(chuàng)新的態(tài)度和意識,掌握獨立思考,分析問題,并利用計算機(jī)編程解決實際問題的能力。結(jié)合不同專業(yè)特點和領(lǐng)域進(jìn)行教學(xué),為專業(yè)學(xué)習(xí)打好信息基礎(chǔ)。除了教授編程語言的概念,語法和使用外,學(xué)生還應(yīng)培養(yǎng)學(xué)生對追求創(chuàng)新的態(tài)度和意識。能夠獨立思考,分析問題,并使用計算機(jī)編程來解決實際問題。結(jié)合不同專業(yè)特點和領(lǐng)域進(jìn)行教學(xué),為專業(yè)學(xué)習(xí)打好信息基礎(chǔ)。
2)“Python語言程序設(shè)計”教學(xué)內(nèi)容
非計算機(jī)專業(yè)Python程序設(shè)計課程涵蓋的基本教學(xué)內(nèi)容包括:Python序列、流程控制語句、函數(shù)、面向?qū)ο蟪绦蛟O(shè)計等。并且應(yīng)當(dāng)著重針對學(xué)生的專業(yè)方向,有針對性地引入并講解Python的標(biāo)準(zhǔn)庫和擴(kuò)展庫,同時以案例的形式展現(xiàn)Python在各領(lǐng)域中的應(yīng)用。在教學(xué)過程中,要重視課下的自主學(xué)習(xí),僅靠上課時間達(dá)不到最佳的學(xué)習(xí)效果。在教授完每個知識點后,教師可以通過安排課下自主學(xué)習(xí)的作業(yè)以及與實際工作學(xué)習(xí)相關(guān)的案例,幫助學(xué)生更充分地掌握所學(xué)內(nèi)容。
3)“Python語言程序設(shè)計”教學(xué)方法
除了講授、實驗、作業(yè)等傳統(tǒng)教學(xué)方法,教學(xué)中應(yīng)充分分析學(xué)生基礎(chǔ)知識背景特點,并留意學(xué)生的每部分知識學(xué)習(xí)后的反應(yīng),保持及時溝通交流,根據(jù)需要調(diào)整教學(xué)過程中的每個環(huán)節(jié)。在引入新概念、新理論時要以學(xué)生熟知的內(nèi)容為切入點,通俗且邏輯性嚴(yán)謹(jǐn),既能解決問題,又能調(diào)動學(xué)生學(xué)習(xí)興趣,引發(fā)學(xué)生積極思考問題。
由于各專業(yè)學(xué)習(xí)內(nèi)容不同,教學(xué)準(zhǔn)備時,要了解Python在各個領(lǐng)域中典型應(yīng)用,并了解相關(guān)專業(yè)中的應(yīng)用背景與知識需求。將所教授的知識有效結(jié)合實際應(yīng)用情景,讓學(xué)生掌握理解用于解決實踐計算思維,為解決工作和學(xué)習(xí)中遇到的各類非通用計算問題做好準(zhǔn)備。
其中實驗環(huán)節(jié)是程序設(shè)計課程必不可少的一項內(nèi)容,學(xué)生可以通過實踐,加深理論知識的理解,并學(xué)習(xí)如何應(yīng)用所學(xué)知識解決實際問題。教師應(yīng)當(dāng)分專業(yè)設(shè)置適合學(xué)生專業(yè)特色的實驗項目,并且引導(dǎo)學(xué)生參與課題或項目中的部分模塊,給學(xué)生創(chuàng)造更多機(jī)會去實踐。實驗環(huán)節(jié)的有效完成,能夠讓學(xué)生充分體驗到程序設(shè)計的樂趣,激發(fā)學(xué)生學(xué)習(xí)興趣,拓展學(xué)生視野,增進(jìn)教與學(xué)的互動,提升教學(xué)效果。
隨著互聯(lián)網(wǎng)的發(fā)展以及人工智能的火熱,計算機(jī)的應(yīng)用與傳統(tǒng)行業(yè)處于深度融合,前沿性、基礎(chǔ)性、交叉性的學(xué)科研究越來越多,研究針對性的教學(xué)內(nèi)容與教學(xué)方法勢在必行,不斷培養(yǎng)學(xué)生的創(chuàng)新意識和開拓精神。
4)以專業(yè)需求為導(dǎo)向,設(shè)計教學(xué)
目前,在非計算機(jī)專業(yè)程序設(shè)計課程教學(xué)中普遍存在的一個問題是教學(xué)不夠關(guān)注有哪些專業(yè)問題是需要用程序求解的。教學(xué)沒有按專業(yè)需求來組織,過于關(guān)注語法和程序性能本身的學(xué)習(xí),而忽略了學(xué)生實際應(yīng)用能力的培養(yǎng)。教學(xué)案例基本是采用簡單數(shù)學(xué)問題求解和經(jīng)典算法的程序?qū)崿F(xiàn)。這些與學(xué)生專業(yè)問題不相關(guān)的教學(xué)案例無法將專業(yè)問題關(guān)聯(lián)起來,造成學(xué)生學(xué)習(xí)目標(biāo)不明確,學(xué)習(xí)動力不足,這也是目前非計算機(jī)專業(yè)程序設(shè)計課程教學(xué)效果普遍較差的主要原因。由于各專業(yè)學(xué)生計算機(jī)基礎(chǔ)不一樣,對程序設(shè)計的應(yīng)用場景不同,需求也不一樣,因此需要對不同專業(yè)學(xué)生制定不同的 Python 教學(xué)方案。
不同專業(yè)對程序設(shè)計有著不同的需求,有些專業(yè)關(guān)注科學(xué)計算,有些專業(yè)關(guān)注數(shù)據(jù)采集,有些專業(yè)關(guān)注過程控制,有些關(guān)注數(shù)據(jù)清洗與展現(xiàn)。比如人文社科類學(xué)生更側(cè)重基礎(chǔ)問題的求解和數(shù)據(jù)分析,而理工類學(xué)生更側(cè)重科學(xué)計算、應(yīng)用建模、數(shù)據(jù)分析等高級問題的求解。
對于理工科學(xué)生,工程教育專業(yè)認(rèn)證標(biāo)準(zhǔn)中要求學(xué)生具備能夠應(yīng)用信息技術(shù)對復(fù)雜工程問題進(jìn)行預(yù)測、模擬和求解的能力[3]。這就要求程序設(shè)計課程內(nèi)容能夠?qū)I(yè)問題求解提供有效地信息技術(shù)支撐,使學(xué)生掌握解決復(fù)雜專業(yè)問題的編程能力。這個能力要貫穿整個教學(xué)過程,在教學(xué)大綱的制定,教學(xué)材料的準(zhǔn)備,實驗案例的選擇等方面充分體現(xiàn)出來。這種支撐作用能夠激發(fā)學(xué)生的學(xué)習(xí)動力,才不會導(dǎo)致非計算機(jī)專業(yè)開設(shè)程序設(shè)計課程的必要性被質(zhì)疑。
與理工科學(xué)生不同,人文社科類的專業(yè)需求對邏輯思維和計算思維能力要求會弱些,因此在教學(xué)設(shè)計中盡量將知識點融入案例場景中,選擇與專業(yè)結(jié)合度高的、簡單直觀的案例作為切入點,調(diào)動學(xué)生學(xué)習(xí)的興趣,讓學(xué)生在案例中體會到程序設(shè)計解決問題的方法途徑。
Python具有強(qiáng)大的第三方庫,適用于不同的領(lǐng)域,解決不同的問題,面對不同的需求,不能單純地將程序設(shè)計課程定位于通識課程,不能只講授編程基礎(chǔ)知識,要將專業(yè)需求凝練成案例、作業(yè)和練習(xí)題,將通識教育與專業(yè)需求有機(jī)結(jié)合在一起。
4 總結(jié)
傳統(tǒng)程序設(shè)計教學(xué)側(cè)重于語法、算法等基礎(chǔ)知識的講授,重知識、輕能力。隨著信息技術(shù)的迅猛發(fā)展,這種教學(xué)模式難以滿足社會對專業(yè)人才的需求。Python能夠簡化開發(fā)的復(fù)雜度,使得非計算機(jī)專業(yè)的學(xué)生更容易掌握編程的過程;輕語法的特點能夠讓學(xué)生將更多的精力投入到應(yīng)用與問題的求解上;豐富的開源庫能夠應(yīng)用于更多的領(lǐng)域,適用于不同專業(yè)的學(xué)生學(xué)習(xí)。因此將Python融入計算機(jī)公共課教學(xué),設(shè)計出適合專業(yè)需求的教學(xué)體系和模式,將極大地提升非計算機(jī)專業(yè)學(xué)生對編程的興趣,從而提高程序設(shè)計課程的教學(xué)質(zhì)量。
參考文獻(xiàn):
[1] 韓志豪.人工智能背景下的 Python 教學(xué)探索[J]Computer Era ,2018.(7):76.
[2]徐衛(wèi)克.面向文科專業(yè)開設(shè)Python 程序設(shè)計課程的可行性分析[J].科技文匯,2018.(11).
[3] 趙廣輝.面向新工科的 Python 程序設(shè)計交叉融合案例教學(xué)[J].計算機(jī)教育,2017.(8):23-26.
[通聯(lián)編輯:聞翔軍]