黃靜 謝紹敏
摘 ? 要:文章針對計算機(jī)工程學(xué)院網(wǎng)絡(luò)工程專業(yè)“Python程序設(shè)計與實驗”課程的教學(xué)情況及學(xué)生特點(diǎn),提出以項目案例為驅(qū)動、以實際需求為引導(dǎo)以不斷提升學(xué)生綜合能力為目標(biāo)的教學(xué)方法。
關(guān)鍵詞:Python;項目驅(qū)動;教學(xué)方法
1 ? ?Python介紹
2019年7月,在編程語言流行指數(shù)排行榜中,Python的占比達(dá)到28.08%,位居第一。隨著人工智能時代的來臨,Python語言成為人們掌握編程的首選語言[1]。相比于其他語言,Python有如下優(yōu)點(diǎn):(1)編程效率高,用Python編程可以用更少的代碼實現(xiàn)同樣的功能。(2)具有龐大的標(biāo)準(zhǔn)庫和成千上萬并且不斷增加的第三方庫。(3)Python語法簡單,容易上手。Python應(yīng)用在很多領(lǐng)域,如前后端開發(fā)、網(wǎng)絡(luò)編程、金融分析、大數(shù)據(jù)挖掘、爬蟲、云計算、自動化運(yùn)維、測試、科學(xué)計算等?;谶@些特點(diǎn),可以讓非軟件開發(fā)專業(yè)的學(xué)生也能在短時間內(nèi)掌握一門語言從事生產(chǎn)。網(wǎng)絡(luò)工程專業(yè)不僅要具備開發(fā)和維護(hù)計算機(jī)應(yīng)用系統(tǒng)的基本能力,還應(yīng)該具備實踐創(chuàng)新能力,“Python程序設(shè)計與實驗”是桂林電子科技大學(xué)計算機(jī)工程學(xué)院網(wǎng)絡(luò)工程專業(yè)的一門創(chuàng)新創(chuàng)業(yè)的課程。
2 ? ?課程安排
桂林電子科技大學(xué)計算機(jī)工程學(xué)院網(wǎng)絡(luò)工程專業(yè)于大三下學(xué)期開設(shè)本課程,該課程分為理論基礎(chǔ)課24學(xué)時和實驗課32學(xué)時。網(wǎng)絡(luò)工程專業(yè)對于該課程的培養(yǎng)注重實踐應(yīng)用,在課時安排上,實驗課分配更多的時間,理論課與實驗課交叉進(jìn)行。本課程的教學(xué)采用項目案例驅(qū)動的方式,在教學(xué)過程中,實驗課通過開發(fā)實際的項目案例穿插講解該課程主要知識點(diǎn),理論課上再強(qiáng)調(diào)該知識點(diǎn)的學(xué)習(xí)。因為經(jīng)過實驗課的項目案例開發(fā),學(xué)生對于知識點(diǎn)的掌握和項目開發(fā)的流程會有更加具體的認(rèn)識。
3 ? ?教學(xué)方法
3.1 ?語法基礎(chǔ)入門
學(xué)生在學(xué)習(xí)Python語言之前具備C語言編程的基礎(chǔ),再學(xué)習(xí)Python語言的時候?qū)τ诔绦蜷_發(fā)的邏輯思維會有許多共同點(diǎn)。在一開始學(xué)習(xí)Python語言的時候,讓學(xué)生快速了解這門語言的方法如下:首先,要了解這門語言的語法結(jié)構(gòu)、常用的知識點(diǎn)。其次,可以通過展示不同的項目實例快速了解該語言可以實現(xiàn)的功能,讓學(xué)生對于該語言有一個整體的認(rèn)識,激發(fā)學(xué)生的學(xué)習(xí)興趣。
在教學(xué)之初,讓學(xué)生快速了解Python語言的基本語法和常用知識點(diǎn),可以通過一個簡短的程序案例來實現(xiàn),程序如下:
# 猜拳游戲?qū)嵗?/p>
import random ?# 導(dǎo)入包
def game(parm1, parm2): ?# parm1:玩家參數(shù) parm2:電腦參數(shù)
cq = [‘石頭, ‘剪刀, ‘布] ?# 列表變量定義
if (parm1 == 0 and parm2 == 1) or (parm1 == 1 and parm2 == 2) \
or (parm1 == 2 and parm2 == 0):
print(“你出的是%s,電腦出的是%s,恭喜,你贏了!” % (cq[parm1], cq[parm2]))
elif parm1 == parm2:
print(“你們出的都是%s,平局!” % cq[parm1] )
else:
print(“你出的是%s,電腦出的是%s,你輸了!” % (cq[parm1], cq[parm2]))
while True:
try:
player = int(input(“請輸入數(shù)字0:石頭、1:剪刀、2:布 、3:不玩了 :”))
except ValueError:
print(“只能輸入數(shù)字!”)
continue
if player > 3 or player < 0:
print(“你輸錯了,請輸入0、1、2、3!”)
continue
if player == 3:
print(“休息下吧!”)
break
computer = random.randint(0, 2) ?# 電腦獲取隨機(jī)參數(shù)
game(player, computer) ?# 函數(shù)調(diào)用傳參
continue
猜拳游戲?qū)嵗婕叭缦轮R點(diǎn):
(1)Python的基本語法,包括注釋、行與縮進(jìn),變量和數(shù)據(jù)類型,標(biāo)識符和關(guān)鍵字,運(yùn)算符。
(2)Python的常用語句,包括if-else語句、while循環(huán)、continue語句、break語句。
(3)字符串的輸入和輸出以及字符串的格式化。
(4)列表的定義和訪問。
(5)函數(shù)的定義和調(diào)用。
(6)異常的處理。
(7)模塊的引入和模塊中函數(shù)的調(diào)用。
因為學(xué)生都有一定的編程基礎(chǔ),通過這樣一個簡單、直觀的案例,就可以讓學(xué)生總體了解Python這門語言的基礎(chǔ)知識點(diǎn),對于有編程基礎(chǔ)的學(xué)生來說,通過閱讀該程序就可以自己動手操作實現(xiàn)一些簡單的功能。
3.2 ?發(fā)散需求,進(jìn)階學(xué)習(xí)
在學(xué)生語法基礎(chǔ)入門后,通過對同一項目不斷擴(kuò)展需求引入更多的知識點(diǎn),如在完成猜拳游戲這一程序后,可以加入玩家角色、游戲圖像界面、游戲菜單、生成游戲日志文件、總勝局記錄統(tǒng)計存放數(shù)據(jù)庫、勝局統(tǒng)計查詢等需求。在需求不斷增加和實現(xiàn)的過程中,學(xué)生很好地掌握了GUI編程、類與對象、文件操作、數(shù)據(jù)庫運(yùn)用等進(jìn)階知識點(diǎn)。對同一項目案例進(jìn)行擴(kuò)展需求,從易到難,可以讓學(xué)生更有成就感,在不斷實現(xiàn)需求的過程讓學(xué)生能有更多的成就感,從而讓學(xué)生自覺自主地去動手學(xué)習(xí)編程。不同需求擴(kuò)展結(jié)果如圖1所示。
3.3 ?項目案例驅(qū)動,提升學(xué)生綜合能力
在學(xué)生對于該語言所有知識點(diǎn)都有了總體的了解后,在實驗課的教學(xué)中采用項目驅(qū)動的方式,提升學(xué)生解決問題的能力。選用的項目案例要貼合實際應(yīng)用,如微信小程序、網(wǎng)站開發(fā)、網(wǎng)絡(luò)爬蟲等案例,案例程序涵蓋課本中的知識點(diǎn),通過動手編程,學(xué)生可以熟悉知識點(diǎn)的應(yīng)用,學(xué)會在各種項目、不同需求中應(yīng)用所學(xué)的知識去解決問題,培養(yǎng)解決問題的能力。另外,要培養(yǎng)學(xué)生的自學(xué)能力,因為課本上所講的知識點(diǎn)在實際的項目開發(fā)中是遠(yuǎn)遠(yuǎn)不夠用的,所以讓學(xué)生動手去寫程序,自己通過書籍或搜索引擎解決問題尤為重要。教師在實踐教學(xué)過程中主要是給學(xué)生提供一個解決問題的思路或方向,讓學(xué)生自己動手去解決問題,調(diào)動學(xué)生的主動性,自己動手編程才能讓學(xué)生更好的掌握所學(xué)知識。
在項目案例教學(xué)的過程中,引導(dǎo)學(xué)生掌握運(yùn)用軟件工程開發(fā)的流程,完成需求分析、概要設(shè)計、詳細(xì)設(shè)計、代碼編寫、程序測試、交付、驗收、維護(hù)這一完整的流程。教師通過驗收學(xué)生所寫程序給出改進(jìn)意見,增加功能需求,讓學(xué)生對于軟件開發(fā)流程有更深的理解,開發(fā)流程中的每一項都要寫入文檔之中,最終形成項目案例文檔,作為學(xué)生學(xué)習(xí)這一門課程的考核依據(jù)。
4 ? ?Python課程項目驅(qū)動教學(xué)的關(guān)鍵問題及體會
Python課程項目案例驅(qū)動教學(xué)最大的問題就是不同學(xué)生動手解決問題能力的差異問題。不同學(xué)生做同樣的項目需求,花費(fèi)的時間有所不同,在教學(xué)過程中如何兼顧學(xué)生的能力問題,有以下幾點(diǎn)經(jīng)驗:
(1)通過簡單易懂的小程序讓不同的學(xué)生都能快速理解、掌握課程知識點(diǎn)。
(2)在案例開發(fā)教學(xué)前,教會學(xué)生遇到問題時進(jìn)行關(guān)鍵詞搜索,通過搜索引擎快速獲取問題答案,推進(jìn)項目進(jìn)程。
(3)考核項目文檔,評定項目質(zhì)量,給學(xué)生提供方向指引,促使學(xué)生自覺自主完成項目案例,只有動手編程才能提升解決問題的能力。
(4)實際應(yīng)用項目開發(fā)流程訓(xùn)練提升學(xué)生的綜合能力。
5 ? ?結(jié)語
Python在人工智能和大數(shù)據(jù)時代作為一種重要的編程語言,是高等教育的重中之重。Python課程的教學(xué)需要教師進(jìn)行更多的創(chuàng)新嘗試,對實際項目開發(fā)實踐能力有更高的要求,提高學(xué)生綜合能力的培養(yǎng)質(zhì)量,才能讓學(xué)生在進(jìn)入工作后學(xué)以致用。
[參考文獻(xiàn)]
[1]黑馬程序員.Python快速編程入門[M].北京:人民郵電出版社,2017.