黃靜 謝紹敏

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