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