浙江萬里學院 李小青
Python 程序設計課程是高校很多專業的一門基礎必修課程,該課程抽象性強,算法枯燥,學生不易學習和掌握。傳統的Python 程序設計課程,按照概念、示例、上機練習等步驟組織教學,學生普遍反映上課聽懂了,看老師的演示操作很簡單,但自己上機實驗時仍有很多問題,書上的程序能看懂,但自己編寫程序卻無從下手,學生學習的興趣的逐漸減弱。本文在分析目前教學中存在問題的基礎上,嘗試采用PBL 應用于Python 程序設計課程教學當中, 將基礎知識及計算思維有效應用到實際項目中,激發學生興趣,提高學生的學習主動性及教學實效。
PBL (Problem-Based Learning,基于問題的學習,也稱作問題式學習),是基于現實世界的以學生為中心的教育方式。PBL 提倡以問題為學習的起點,用問題來吸引并維持學生的興趣,使學生積極地尋求解決問題的方法。學生是致力于解決問題的人;教師是問題的設計者,也是學生解決問題過程的引導者與評價者;在傳授知識的過程中以學生的主動參與、主動思考為主,學生通過主動解決問題來達到更好的學習知識的目的?;赑BL 的教學實施過程如圖1 所示。

圖1 PBL 教學流程圖Fig.1 PBL teaching flow chart
課程教學內容圍繞知識傳授、能力培養及價值塑造三方面,通過Python 程序設計課程的學習,為學生提供后續專業領域數據處理的一個工具支撐,也為后續學習人工智能、機器學習、數據挖掘等奠定了知識基礎,制定了如圖2 所示的教學內容體系。

圖2 Python 程序設計內容體系Fig.2 Python programming content system
Python 程序設計語言是一門實踐性很強的課程,學生不僅要有獨立的編程及實際的操作能力,還需具有一定的創新能力及終身學習的思想。該課程非常適用PBL教學法,在教學過程中,由教師根據教學的內容與目標來進行問題情境的設計,以“問題”為核心,學生的一切學習內容是以問題為主線,以“學習者”為主體,學生必須擔負起學習的責任。如表1 所示為教學計劃實施表。

表1 Python 的教學安排Tab.1 Teaching arrangement of Python
以下是Python 課程中循環結構部分用PBL 教學法的實施過程。

單元名稱循環結構知識目標:理解Python 中循環結構的語法格式、功能及流程圖,掌握Python 中循環程序設計的編寫。教學目標學習內容技能目標:通過案例學會循環結構語句,培養學生能編程解決實際生活中問題能力。價值目標:通過小組學習討論,培養學生相互協作能力,激發學生學習程序編寫的興趣及使用編程解決實際問題的思維。學習重點:For、while 循環語句格式、功能。學習難點:循環條件的設定和變化,嵌套循環的使用。學習者分析學生已經學完了選擇結構程序設計,具備了一定的程序設計思想和知識,學生對編程有一定的興趣,但循環結構是本章的重點與難點,應該采取切實有效措施讓學生理解循環結構編寫及保持學生學習程序的興趣。學習環境設計創設問題情境:假如你從今年開始,1 月份為“希望工程”存入1 元錢,2 月份存入2,3 月份存入3 元錢…依次類推,請問:兩年時間里你將為“希望工程”存入多少錢?學習工具:小組討論、Python 編程環境及Internet學習資源:網絡課堂、PPT 課件及相關教案實例教學流程設計images/BZ_66_1459_2637_2325_3055.png學習過程教師活動學生活動

呈現問題情境閱讀、思考假如你從今年開始,1 月份為“希望工程”存入1 元錢,2 月份存入2,3 月份存入3 元錢…依次類推,請問:兩年時間里你將為“希望工程”存入多少錢?分析問題激發學生思考,回答教師問題引導學生分析該實例的循環變量是什么?初值、終值是多少?循環體是什么?該循環體執行了多少次?教師啟發誘導學生認真聽教師講解,熟悉語句格式給出while 語句格式,并講解語句執行流程組織分組 探究學習學生瀏覽相關資源,開展討論,繪制流程圖,填寫小組活動記錄表 對學生進行分組,組織小組討論,引導學生利用各種資源用網絡教學綜合平臺上的資源分析問題協作解決問題編寫出程序代碼,調試運行查看輔導,對于疑難問題給予指導建議,幫助問題的解決反饋評價小組自評及互相討論,糾正存在問題引導小組互評和自評,展示作業成果,總結編程中存在問題及學習過程經驗。提出新的探究問題學生小組討論,找出問題,并利用網絡課堂資源分析問題如果問題是“當你為希望工程存入50 元錢時,需要多長時間?”程序可以怎么樣修改鞏固與知識的遷移學生對比分析總結:while 循環在給定的判斷條件為 true 時執行循環體,否則退出循環體;for 循環重復執行語句引入For 循環結構,分析語句格式,并講解語句執行流程。對For 循環結構與while 循環結構進行比較,可以找出它們之間有什么異同?深入學習①求水仙花數②回猴子分桃③打印菱形、三角形、矩形……思考:在我們的日常生活中,有哪些問題可以用循環結構來解決?并請編寫出程序。課堂總結延伸展示學習成果,提出存在的疑問,以小組為代表對知識點進行總結。啟發學生總結本節知識點,掌握For 與while 循環類型;循環控制語句break、continue、pass 語句。
強化過程管理,加大平時考核的力度和手段。課程的考核方式包括課堂考核、實踐考核、自主學習考核以及期末考核等環節,如表2 所示。利用雨課堂課件學習、單元自測等手段,對學生自主學習的情況進行過程考核;實訓的實驗報告和附加題作為實踐考核,自主學習考核包含組長評價、成員互評及自我評價。

表2 Python 課程考核Tab.2 Python course assessment
PBL 教學特征是基于問題的學習,因此,教師設計的教學問題要能激發學習動機鼓勵學習的;對學生學習過程的評價具有多元化、多樣化的特點;合理安排每個環節的時間,適時的引導、啟發學生圍繞問題進行討論,同時加深對知識點的學習理解;要找準切入點,引入課程思政元素。
基于PBL 的《Python 程序設計》課程教學模式過程中,學生有更多的機會去分析問題,收集資料、自主探究,從而培養了學生的解決問題能力和協作學習能力,學生體驗到了成功的樂趣,激發了他們學習的興趣和熱情,學習的主動性更高。
引用
[1] 余波,羅莉霞,易晨暉.新工科建設背景下Python 程序設計課程教學改革與實踐[J].計算機教育,2021(11):80-83.
[2] 朱鵬飛.論Python程序設計語言對大學生計算思維能力的培養[J].數字技術與應用,2017(3):238-239.
[3] 董艷,和靜宇.PBL項目式學習在大學教學中的應用探究[J].現代教育技術,2019(9):53-58.
[4] 許洪云,陳朝焰.新工科背景下Python教學探討與實踐[J].計算機時代,2021(9):96-98.
[5] 李秀香.PBL模式下高職院校C語言程序設計課程教學改革與實踐[J].電腦與電信,2018(7):68-70.
[6] 張敏,賈強.基于計算思維的Python程序設計課程教學案例設計[J].微型電腦應用,2021(3):48-50.