于寧 聶清林
摘? 要: 針對大學計算機基礎課程教學基本要求中程序設計基礎(Python語言)的課程定位,結合2019版北京聯合大學指導性培養方案(普通本科教育),研究與實踐課堂教學+SPOC課程混合式教學模式,提出以案例導入、經典算法為基礎,以Python123在線編程平臺為訓練,以綜合實驗為應用的教學設計,培養學生的編程興趣,突出問題求解能力訓練,為后續學習Python縱深課程打下基礎。
關鍵詞: Python語言; 問題求解; 能力培養; 課程設計
中圖分類號:G642? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2022)03-110-04
Abstract: According to the position of the fundamentals of programming (Python language) in the teaching of college computer basic courses, and the 2019 Beijing Union University instructive training plan (general undergraduate education), the blended teaching mode of classroom teaching and SPOC teaching is studied and practiced. A teaching scheme is proposed based on case introduction and classic algorithms, with Python123 online programming platform for training, and general programming experiments as an application, to cultivate students' interest in programming, highlights the problem solving ability training, and lays the foundation for subsequent learning of Python in-depth courses.
Key words: Python language; problem-solving; ability training; course design
0 引言
Python語言作為一種最接近自然語言的通用編程語言,歷經30余年的發展,已經成為全球最流行、產業最急需的程序設計語言。2016年,教育部高等學校大學計算機課程教學指導委員會發布《大學計算機基礎課程教學基本要求》,首次將Python 語言作為首門程序設計課程的教學語言,在其推動下,國內高校先后開設Python 語言課程,增長十分迅速,成為當前教學改革熱點[1]。
2019年,北京聯合大學指導性培養方案(普通本科教育)中,根據專業需求,將Python 程序設計課程納入培養方案。目標預期是學生在畢業時能夠掌握數據統計分析、數據抓取與分析、可視化展示等技能和方法,會選擇、使用適當的技術手段、資源、現代專業工具和信息技術工具,解決專業領域問題。為此,北京聯合大學程序設計課程群以實施教學品質提升為抓手,以理解并實踐計算思維,突出問題求解能力訓練為導向,開始對Python語言程序設計課程進行建設。
1 課程設計指導思想
面對不知道編程是什么、編程很難、不感興趣、不知能為專業解決什么問題的非計算機專業學生講授Python語言,如何組織教學內容、設計教學案例,采用何種教學模式…都是課程建設面臨的挑戰。依據BLOOM認知模型科學合理的確定課程的教學目標,結合BOPPPS教學模型來設計課程教學環節,為設置合理的教學目標和有效的教學過程提供理論指導和啟示。
BLOOM(美國當代著名的心理學家、教育家)將認知領域的教學目標按由簡單到復雜的順序劃分為知識、領會、運用、分析、綜合、評價/創新六個層次[2]。這六個層次對知識的理解和把握的程度是逐步加深的,前一個水平是后一個水平的基礎。較低的三個層次(知識、領會、運用)描述了聚合思維的過程,較高的三個層次(分析、綜合、評價/創新)描述了發散思維的過程。前者使學生回憶起來知道和理解的內容并用以解決問題,后者使學生們創造出經驗中不存在的新見解和新發現。
BOPPPS 教學模型是近年來北美地區高校教學技能培訓機構提出一種教學模型。BOPPPS教學模型針對教學目標的達成將教學內容分為前后銜接的六個模塊,依次為導入(Bridgein)、學習目標(Outcomes)、先測(Pre-Assessment)、參與式學習(Participatory Learning)、后測(Post-Assessment)以及總結(Summary)[3]。這種教學互動和反思的閉環反饋教學模式遵循以學生為中心,以目標為導向的教學理念,注重教學互動和反思,指導學生開展自主學習。該模型也能幫助教師分解并分析教學過程,從而更有效地設計教學內容,改善并提升教學質量[4]。
2 Python課程設計與實施
非計算機專業程序設計課程定位是掌握程序設計的基本方法,了解從問題分析到程序維護的整套程序設計流程,初步具備利用Python語言解決各類實際問題的能力[5]。基于課程定位,結合專業培養目標,課程組經過一系列調研討論后,提出“以理解計算思維,強化對問題的分析和程序設計過程”的Python語言教學思路,采用問題導向、案例驅動的課堂精講+SPOC混合式教學模式。選用北京理工大學嵩天老師主編的教材《Python語言程序設計基礎》作為主要教材,同時引進中國大學MOOC嵩天老師主講的國家精品課程《Python語言程序設計》和Python123教學輔助平臺,在此基礎上,建設北京聯合大學《Python語言程序設計》SPOC課程,圖1給出Python課程全體系教學資源。
2.1 課前—領取自主學習任務單,觀看講解視頻
在中國大學MOOC嵩天老師主講課程基礎上建設北京聯合大學SPOC,針對我校學生特點,以夯實程序設計基本概念,訓練學生對程序設計方法、程序設計邏輯的理解和掌握利用程序解決實際問題的能力為出發點,增加七個教學單元,補充33段視頻,如圖2所示北京聯合大學SPOC課程講解視頻示例。利用SPOC提供的授課視頻、學習指導、在線討論、拓展知識等功能,延伸課堂教學,強化學生自主學習與合作學習能力培養,開展課堂教學與在線課程混合式教學模式的實踐。
每周課前,發給學生一份自主學習任務單,包括學習內容、達成目標、學習建議與方法、學習任務、思考與討論、課后作業等內容。要求學生在課前了解學習目標,觀看本周學習視頻,完成課前知識前測,并帶著問題進入課堂學習。
2.2 課中—問題導向、案例驅動的課堂精講
Python語言的教學內容分為三個階段:基礎部分(讀懂程序)、能力部分(會寫程序)、應用部分(會解決問題)?;A部分包括基本語法和基本程序結構,引導學生通過SPOC自主學習并掌握。能力部分包括基礎算法和高級程序結構,通過SPOC課程+課堂講解掌握。應用部分是面向專業需求組織不同的專題應用,這部分內容多由教師指導,學生結合學科需要,學習不同專題內容,為后續解決專業問題打下基礎。
案例教學是圍繞一定目標把實際中真實的情景加以典型化處理,形成供學生思考分析和決斷的例子[6]。凝練Python程序設計中基礎知識、程序結構、經典算法,將教學內容組織成相應案例,構建基于問題求解的教學方法。教學案例設計注重知識性、實用性和趣味性,表1所示給出部分教學案。
依照BOPPPS模型指導教學過程。課堂教學采用問題導向式、案例驅動式的精講多練,設計真實的情境、案例貫穿每一章內容。以問題引入、驗證實現、排除錯誤、思考總結四個步驟展開教學。首先引導學生理解問題需求,將問題轉化成計算機所能接受的表達方法。再運用抽象、概括、分類、比較等思維活動,找出解決問題的方法及最有效的方案。每完成一個任務,都要歸納總結,再一次強化教學活動成果。
對于程序的語法細節,學生通過SPOC課程學習,教師在課堂上答疑解惑,講授重點、難點及共性問題。在編程訓練環節,幫助學生分析問題與排查錯誤是其中的重要內容,學生編寫程序出錯是正常的,要正確對待,不怕出錯。其次是幫助學生學會如何調試程序,通過對語法和邏輯錯誤的查找與排除,使學生進一步認識程序設計語言語法要求,加深對程序結構和基本算法的理解。經過多次訓練,學生逐步減少錯誤,也能較快查出錯誤原因,增強了編程的信心和能力。在解決實際問題時,鼓勵學生產生質疑,從不同角度思考問題,探求多種解題答案。最終要讓學生明白,程序設計語言只是工具,求解問題的方法及思維過程才是解決問題的根本所在。
2.3 課后—運用Python123在線平臺助力編程訓練
Python123是嵩天老師帶領團隊開發和管理的一個在線編程平臺,向學生和老師免費開放。教師通過平臺認證后,就可以使用在線題庫,也可以自己創建課程,按照Bloom 教學目標分類法,組織教學相關的知識點,發布知識點與習題,測評學生的學習進度。Python123在線平臺還具有自動評閱功能,提高了教師的工作效率。平臺根據課程教學管理、教學研究的實際需求,提供教學研究數據支撐?;跀祿膶W情分析,幫助教師及時發現教學過程中存在的問題和盲區,不斷優化和改進教學。
每周的編程訓練題給出題目描述、編程點撥、主要步驟、拓展功能等要求。題目的設計主要考慮知識運用的綜合性、實用性和適當地趣味性,盡可能讓學生全身心參與到練習中。訓練重點放在解題思路上,故增設了編程點撥,幫助學生讀懂題目,找到問題,構思算法步驟等,如圖3所示給出的基礎算法編程訓練示例。編程點撥可以啟發學生,給學生預留一些思考的空間,讓學生帶著各自的理解和問題完成程序設計,同時鼓勵學生從教材或互聯網上獲取更多求解問題的方法。學生在Python123平臺以“互助學、總結學”的形式,營造編程氛圍,主動反思和互評,達到構建新的思想和知識體系的目的[7]。
教學過程的前一階段重點引導學生在編程的實踐中掌握規律性的知識,最終將感性認識升華到理性的高度。在教學的中后期,要求學生獨立設計一個具有一定實用性的Python小程序,可以自擬題目或選擇教師指定的題目。學期末統計學生提交的綜合作業,有使用習近平總書記的五四講話精神生成的詞云圖,有使用字典鍵值對查詢學生喜愛的足球聯賽當家球星及所屬球隊,有編制個人通訊錄、擊球游戲,有用turtle庫繪圖等,如圖4所示。這些小程序具有新穎獨特、美觀實用、信息豐富的特點。學生在完成作業的過程中,會遇到一些困難,但通過教師指導,學生間的互幫互助,不斷探究,最終完成綜合作業設計。學生一致表示,綜合作業設計使他們親身實踐了課堂所學、課堂外拓展的知識,提高了動手編程能力,同時也鍛煉了獨立學習與協作學習能力,達到理論與實踐互相滲透有機結合的目的。
有了Python語言程序設計的基礎,學生在面向專業解決實際問題時,重在掌握Python第三方庫的應用,進一步通過Python縱深課程、MOOC或自學等方式,掌握科學計算和可視化、數據抓取與分析、圖像處理等應用,真正達到學以致用。
3 結束語
編程語言本質上是解決問題的工具,問題能否被解決,更多的在于解決問題的思路和專業知識。Python語言正是這樣一種工具,優雅簡潔的語法、易學易用和豐富的開源庫帶給初學者一個全新的程序設計認識,讓初學者從語法細節中擺脫出來,而專注于解決問題的方法、分析程序本身的邏輯和算法[8]。
Python語言程序設計課程作為北京聯合大學一門新開設的課程,在BLOOM認知模型和BOPPPS教學模型的指導下,以能力培養為出發點建設Python課程,從課程定位、教學內容組織、教學案例設計和教學模式等方面進行研究實踐。目前課程正在建設中,課程群將結合專業培養目標和學生的特點不斷實踐,努力提升程序設計課程的教學品質和效果。
參考文獻(References):
[1] 嵩天,黃天羽.Python語言程序設計教學案例新思維[J].計算機教育,2017,12:11-14
[2] B.S.Bloom等.教育目標分類學:第一分冊認知領域[M].上海:華東師范大學出版社,1986
[3] 張禮廉,于瑞航,潘獻飛,等.“BOPPPS+BLOOM”模型在課程教學設計中的應用[J].科教導刊,2018,17:125-127
[4] 吳昌東,江樺,陳永強.BOPPPS教學法在MOOC教學設計中的研究與應用[J].實驗技術與管理,2019,36(2):218-222
[5] 教育部高等學校大學計算機課程教學指導委員會.大學計算機基礎課程教學基本要求[M].北京:高等教育出版社,2016.85
[6] 楊彩云,詹國華.引導性問題案例在Python數據分析基礎課程的教學[J].計算機教育,2021(1):154-157
[7] 童玲.基于元認知的文科專業Python課程教學設計[J].計算機教育,2020(1):148-150
[8] 劉衛國.Python語言程序設計[M].北京:電子工業出版社,2016
3965501908294