童鐘 上海應(yīng)用技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)與信息工程學(xué)院
程序設(shè)計(jì)基礎(chǔ)課程,在很長(zhǎng)一段時(shí)間里都是以C語言為主要教學(xué)內(nèi)容。車萬翔等人闡述了相比較于C語言,Python語言作為入門語言的若干優(yōu)勢(shì)[1]。Python程序設(shè)計(jì)語言在大數(shù)據(jù)、云計(jì)算及人工智能等熱門領(lǐng)域都有廣泛的應(yīng)用。學(xué)習(xí)Python語言是大勢(shì)所趨。高校也逐漸將Python語言作為最重要的編程入門基礎(chǔ)語言之一。計(jì)算機(jī)技術(shù)不斷發(fā)展的同時(shí),教師的教學(xué)方式與方法也需要與時(shí)俱進(jìn),在當(dāng)前信息技術(shù)日新月異的環(huán)境下,不斷探索更好的教學(xué)方法。如何在課程教學(xué)中強(qiáng)化實(shí)踐環(huán)節(jié),達(dá)到更好的教學(xué)效果,是每一位授課老師需要考慮的問題。李志義等人提出成果導(dǎo)向教育理念,重點(diǎn)培養(yǎng)學(xué)生解決實(shí)際問題的能力,更好地指導(dǎo)教師進(jìn)行教學(xué)改革實(shí)踐,提升教學(xué)質(zhì)量[2]。張思楊提出了三段式教學(xué)方法,激發(fā)學(xué)生學(xué)習(xí)興趣,不斷提升編程能力[3]。本文基于多年教學(xué)經(jīng)驗(yàn),借鑒各家所長(zhǎng),對(duì)Python基礎(chǔ)課程教學(xué)實(shí)驗(yàn)方法進(jìn)行探討,以期得到更好的教學(xué)效果。
在學(xué)習(xí)一門程序設(shè)計(jì)語言的過程中,理論性學(xué)習(xí)是必不可少的。對(duì)于每一個(gè)理論知識(shí)點(diǎn)的掌握,我們都要通過實(shí)驗(yàn)去加深理解與應(yīng)用。這一過程,不同的實(shí)現(xiàn)方式,可能得到截然不同的教學(xué)效果。
傳統(tǒng)的程序設(shè)計(jì)基礎(chǔ)課程,基本上是沿用C語言或Java語言等教學(xué)方法,更多的側(cè)重對(duì)于知識(shí)點(diǎn)的理解與掌握,理論內(nèi)容枯燥缺少趣味。實(shí)驗(yàn)課程的內(nèi)容,基本上是在章節(jié)知識(shí)點(diǎn)及例題的基礎(chǔ)上以拓展題的形式進(jìn)行理論驗(yàn)證,與實(shí)際應(yīng)用有一定的脫節(jié)。對(duì)于學(xué)生來說,直觀性的接受度不夠,對(duì)于學(xué)習(xí)編程語言興趣的提升十分有限。一旦開頭沒開好,學(xué)生望而生畏,繼而可能會(huì)對(duì)整門課程失去學(xué)習(xí)的動(dòng)力。鑒于此,現(xiàn)提出對(duì)于該課程的教學(xué)及實(shí)驗(yàn)環(huán)節(jié)提出一些改進(jìn)思路。
在理論課程教學(xué)中,針對(duì)不同層次不同專業(yè)的學(xué)生需要有不同的側(cè)重取舍。這就要求教師在教學(xué)的過程中,對(duì)于教材和知識(shí)點(diǎn)進(jìn)行更高的領(lǐng)悟與提煉,才能幫助學(xué)生在枯燥單調(diào)的語法學(xué)習(xí)中找尋規(guī)律和竅門。而另一方面,理論知識(shí)要聯(lián)合實(shí)踐,使學(xué)生在上機(jī)實(shí)驗(yàn)時(shí)不會(huì)望而卻步,知道如何理清思路按部就班地去解決問題。
在實(shí)驗(yàn)課程教學(xué)環(huán)節(jié),應(yīng)減少單純理論驗(yàn)證性實(shí)驗(yàn)的比例,更多地考慮貼近實(shí)際應(yīng)用的實(shí)例化實(shí)驗(yàn),提高學(xué)生對(duì)于編程理論的興趣度和認(rèn)知度??梢圆捎萌缦碌慕虒W(xué)方式與方法,循序漸進(jìn),提高理論與實(shí)驗(yàn)教學(xué)質(zhì)量。
本課程作為程序設(shè)計(jì)語言的入門課程,絕大部分學(xué)生都是第一次接觸Python,對(duì)該門編程語言的基本數(shù)據(jù)類型、語法等不熟悉,不知如何運(yùn)用Python語言編程解決實(shí)際問題,教師可以在起步階段選取一些學(xué)生熟知的小案例作為實(shí)驗(yàn)內(nèi)容(例如猜數(shù)字游戲、繪制簡(jiǎn)單游戲角色等),讓學(xué)生理解實(shí)驗(yàn)程序的結(jié)構(gòu)和含義,引導(dǎo)學(xué)生去掌握該程序是如何解決問題的,提高學(xué)生進(jìn)一步學(xué)習(xí)的興趣。
當(dāng)學(xué)生對(duì)于Python程序結(jié)構(gòu)有了一定的體會(huì)之后,教師就可以選擇一些簡(jiǎn)單的案例或項(xiàng)目任務(wù)(例如小場(chǎng)景模擬、任務(wù)指派問題等),讓學(xué)生理清解決問題的思路,明確解題步驟,然后試著編寫程序去完成,或者從修改一個(gè)已有的復(fù)雜程序開始,讀懂并掌握程序功能的實(shí)現(xiàn)方法,然后加以小的改動(dòng)或改進(jìn),使學(xué)生體驗(yàn)編程的成就感。
作為公共基礎(chǔ)課,教師需要針對(duì)學(xué)生的不同專業(yè)背景,選取與其相關(guān)的案例或項(xiàng)目任務(wù)(例如模擬網(wǎng)購平臺(tái)功能、小規(guī)模計(jì)算或預(yù)測(cè)系統(tǒng)等),將實(shí)驗(yàn)項(xiàng)目設(shè)計(jì)為多個(gè)不同規(guī)劃。使學(xué)生貼近自身專業(yè)方向,學(xué)以致用,進(jìn)行較為完整的項(xiàng)目規(guī)劃,討論任務(wù)需求及功能模塊,實(shí)現(xiàn)項(xiàng)目任務(wù)。董付國(guó)在Python程序設(shè)計(jì)基礎(chǔ)相關(guān)教材中融入了較為豐富的通用性案例,可供不同專業(yè)學(xué)生選擇使用[4]。
在進(jìn)行課上教學(xué)的同時(shí),可以利用當(dāng)下豐富的網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)及在線開放式課程資源,讓學(xué)生找到自己的興趣點(diǎn),化被動(dòng)學(xué)習(xí)為主動(dòng)學(xué)習(xí),充分地發(fā)揮學(xué)生的主觀能動(dòng)性,教師課后答疑與輔導(dǎo)作為其堅(jiān)強(qiáng)后盾。學(xué)習(xí)形式更加多元化,避免枯燥無味,學(xué)生得到鍛煉的同時(shí)也更具成就感,進(jìn)而增加學(xué)習(xí)興趣,提升學(xué)習(xí)效果。
本校的《程序設(shè)計(jì)基礎(chǔ)Python》課程逐步取代原先的C語言程序設(shè)計(jì)課程,面向全校各個(gè)理工科專業(yè)學(xué)生。該課程一共64課時(shí),其中包含16個(gè)實(shí)驗(yàn)共計(jì)32課時(shí),內(nèi)容以驗(yàn)證性實(shí)驗(yàn)和綜合性實(shí)驗(yàn)為主。我們教師嘗試以成果導(dǎo)向教育理念為指導(dǎo),以案例式教學(xué)為主要方法,以混合式教學(xué)為主要形式,不斷提高綜合性實(shí)驗(yàn)和設(shè)計(jì)性實(shí)驗(yàn)的比例,對(duì)課程進(jìn)行進(jìn)一步的優(yōu)化。希望與各位老師一起探討,使學(xué)生在該門課程的學(xué)習(xí)中獲得更多的收獲。