劉靜樂 常小紅 見偉平 李改霞 張國鵬



關鍵詞:程序設計課程;項目和任務驅動法;評價機制;實踐模式
當今是一個信息化的時代,計算機技術已廣泛應用在醫學領域,比如醫學圖像處理、計算機輔助診斷、醫學數據分析等。醫學生除了掌握專業知識外,還需要具備一定的計算機知識和能力,基于此,空軍軍醫大學開設了Python程序設計課程,該課程是所有醫學相關專業的一門必修課,具有概念多,邏輯性強、實踐性強的特點,該課程的教學目標旨在培養學生掌握程序設計的基本思想和方法,具備編程的技能,會用計算機解決以后專業實際問題。然而,對于醫學院校,該課程在一年級開設,后續沒有其他的程序設計類課程,是一門相對孤立的課程,學生在后續學習專業課時,程序設計課程所學知識和技能大多遺忘,很難將其應用在專業課領域。通過學期末的調查問卷,相當一部分學生反映程序設計課程難度很大,認為程序設計課程對以后的學習工作意義不大;在和學生交流中,部分學生反映理論課上知識點也能聽懂,但是一到實訓課就不知如何下手;我們在教學中也發現一些問題,上課打瞌睡的現象此起彼伏,課堂中,學生大多被動接受,不善于主動思考。
本文從教學方法、實踐教學模式、教學評價三方面進行了詳細的剖析,針對其存在的問題進行了改革研究,目的在于激發學生的學習興趣,發揮學生的主觀能動性,提升教學效果。
1 Python 程序設計課程教學問題分析
1.1 教學內容設置不合理,教學方法陳舊單一
Python程序設計課程歸屬于大學計算機基礎課程的一部分,內容多、課時量少,一共44學時,其中理論課18個學時,實踐課26個學時,選修本門課程的學生大概400多人,由于教室規模限制,理論課分3個軌道教學,每班大約100多人,為了在有限的學時內覆蓋所有的知識點,理論課通常采用滿堂灌的方式,先講解每個知識點的語法語義,之后再舉例說明,課堂上學生大多被動接受,師生間互動少,嚴重剝奪了學生思考問題與分析問題的時間,不利于發揮學生的主觀能動性,違背了以學生為中心的教育理念;其次,課堂上所舉案例往往是為了驗證語法知識點,各個案例之間是獨立的,隨著學習的深入,學生會對前面知識點有所遺忘,從而喪失興趣,產生畏難情緒,不利于培養學生系統分析問題,解決問題的能力;此外,課堂上所講案例和學生實際專業學習關聯性不大,以至于后續學生在專業課學習過程中很難有意識地應用計算機來解決學科問題,而計算機與學科知識的交叉融合正是新工科建設的必需途徑和潛在要求[1]。
1.2 實踐教學模式陳舊落后
Python程序設計課程是一門實踐性很強的課程, 學生只有通過大量的上機實踐練習才能將知識內化, 掌握編寫程序和調試程序的方法和技能,然而傳統的實踐教學模式存在以下問題:
1)實踐管理落后,嚴重制約教學效果
由于學生人數多,受機房條件的限制,實訓課共分為4個軌道,每個軌道100個學生左右,共4個老師輔導,學生課堂所學理論知識和機房上機實踐時間往往存在一定距離,會出現理論和實踐脫節情況。每次上機實訓前,老師會帶領學生回顧實訓所需知識點,然后布置本次實訓的題目,學生在機房進行編程練習,老師幫忙答疑,受時間地點的限制,學生上機時間非常有限;其次,學生提交作業后,由于學生人數多而教師人工批改效率低,評價結果不能及時反饋給學生,達不到“以評促學”的目的。
2)實踐案例與實際應用結合不足
實訓課上布置的作業以認知和驗證型為主,和實際應用結合不足,比如判斷一個數是否是素數,為什么要編寫這樣一個程序、如何編寫、有沒有更好的解決辦法,學生很少主動去思考,單純為了完成作業被動編程。這種實踐教學模式不足以培養學生分析實際問題、解決問題的能力,不利于激發學生的創新精神。課程改革后,所設計的實踐案例以設計型和創新型為主,貼近學生的實際生活,和學科專業的實際需求相結合。
1.3 評價模式不科學
加德納倡導的多智元理論強調,考核不應是檢測學習者記住了多少知識,而應考核學習者獲取知識和運用知識的能力[2],傳統的考核主要包括平時上機實訓作業和期末紙質卷考試,平時實訓作業成績占比55%,期末考試成績占比45%,期末考試題型包括判斷和選擇題,這種紙質卷考試變相鼓勵學生死記硬背知識點,很難考查學生的真實編程水平,從而出現考分高的學生不一定編程能力強,編程能力強的學生不一定考分高,而軍醫大學學習程序設計課程的目標旨在培養學生用計算機解決醫學領域相關問題的信息素養,而這種考核方式和教學目標是相背離的,所以急需改革。
2 教學模式改革
2.1 采用項目和任務驅動的教學方法
1)項目和任務驅動教學法概述
項目和任務驅動教學法都以學生為中心,重在引導學生自主發現問題、分析問題、解決問題[3]。
項目驅動教學法是利用項目驅動學生學習的一種教學方法與策略,重在項目的設計上。首先,所設計的項目須具有綜合性、真實性、實踐性,貼近學生的實際學習生活,這樣才能激發學生的學習興趣和主觀能動性;其次,所設計項目能將相關知識點串聯起來,要求學生運用所學知識點逐步完成一個完整的項目,提升學生綜合分析問題和解決問題的能力[3]。
任務驅動教學法是利用任務驅動學生學習的一種教學方法與策略。它將傳統的以傳授知識為主的教學理念,代之以解決問題、完成任務為主的多維互動式的教學理[4-5],所采用的教學方式不再按照教材中各個知識點的先后順序講解,而是精心設計一個完整的案例或項目,將案例或項目分解成一個個任務,各任務之間相互銜接,層層遞進,每節課老師引導學生完成一個或若干個任務,在完成任務的過程中講解任務所涉及的知識點,學生在解決一個個任務過程中,理解了知識點如何應用,提升了用計算機解決問題能力,逐步培養了計算思維。
2)項目和任務驅動法在理論課程中的具體探索和實施
在實際的理論課教學中,項目和任務驅動法是相輔相成的,如何選取合適的項目案例以及如何將其分解成一個個任務成為了改革的關鍵[6],考慮到軍校的學生每年都要進行體能測試,體能測試項目包括BMI 計算、三公里、引體向上、蛇形跑等,每次統計所有學生的考核成績需要耗費大量的人力,因此引導學生思考能否用Python實現體測成績管理系統。由于該項目貼近學生實際生活并有一定的實踐價值,學生普遍比較感興趣。為了實現完整的系統,首先可以將其分解成多個功能,而每一個功能相當于一個任務,引導學生用Python程序實現, 各個任務之間由易到難,循序漸進,在完成任務的過程中采用遞進的方式引出一個個相關知識點,從而給學生構建了一個完整系統的知識體系,使得學生明白知識點之間的關聯以及如何應用。
學生體測成績管理系統共包含8個任務: (1)打印學生的信息;(2)計算學生BMI指數;(3)計算任一個學生的成績等級;(4)學生成績排序;(5) 學生成績統計;(6) 輸出所有學生的最終綜合體測成績等級;(7) 對統計結果進行可視化展示;(8) 實現完整的學生體測成績管理系統。具體如表1所示,每次課程會引導學生完成1-2 個任務,任務之間是由淺入深、循序漸進的,每個任務所涉及的新知識點是1-3個,符合學生的認知規律,學生在完成一個個任務的過程中掌握知識點如何應用, 不斷增強自信心和成就感, 最終實現完整的學生體測成績管理系統,從而實現對知識點的融會貫通,提升綜合分析問題和解決問題的能力。
比如第三個任務是“計算任一個學生的成績等級”,任務要求:輸入任一個學生的各個項目成績,輸出相應的成績等級, 其中,優秀(>90),良好(80-90),中等(70-80),及格(60-70),不及格(<60)。首先引導學生主動思考并畫出具體的流程圖,之后如何將流程圖轉換成Python代碼,則需要用到分支結構,最后講解分支結構的語法以及注意事項,并鼓勵學生動手實踐操作,從而加深對知識點的理解。
從近兩年的教學效果可以看出,學生對該項目興趣濃厚,在完成項目中各個任務的過程中,學生積極思考,邏輯思維和綜合分析解決的問題能力有了較大提高。
2.2 改革實踐教學模式
1)采用在線評判系統進行實踐練習,提高實踐效率
空軍軍醫大學自主研發了在線評判系統,老師在上面布置實訓作業和日常練習題,學生只需要一臺電腦,可以不受時間地點的限制,隨時在線練習,提交之后,系統會給出具體錯誤提示,學生在作業截止日期前可以多次修改提交,大大的提高了學習效率;此外,學生提交的實訓作業通過系統實時批改,將老師從繁重的作業批改中解放出來,提升了教學效果。
2)巧設實踐案例,與學生學科專業相結合
傳統的驗證性實驗主要培養學生對知識點的掌握,而學習程序設計重在應用,改革后,在實踐案例的選取中以設計型和綜合型實驗為主,兼顧趣味性和實用性,重在培養學生的綜合運用知識分析問題和解決問題的能力。考慮軍醫大學學生專業主要是醫學相關,所以精心設計的實訓題目主要和醫學結合,比如在Python文件部分實訓時,題目為醫學數據分析案例,該案例包括多個數據文件,每個數據文件中都包含了某醫院檢驗科幾千條的血常規數據,其中包含病人的病人編號(ID),性別(Gender),紅細胞計數(RBC) 和白細胞計數(WBC),血紅蛋白(Hb)和淋巴細胞計數(LY)共6列數據。題目要求對用戶輸入的指定數據文件,分別統計男/女人數、男/女的RBC、WBC平均值共6個統計指標,將統計結果寫入文件。學生在做此類題目時,主觀能動性得到了發揮,用計算機技術解決醫學領域問題的能力也得到了鍛煉。
2.3 調整教學評價模式
高效合理的考核方式除了檢驗學生的學習效果外,還可以有效的培養學生正確的學習方式、激發學習的主動性和積極性,為了激發學生編程的內驅力和切實提高實踐能力,期末考試摒棄傳統的紙質卷考試,全部采用機考,題型包括代碼段填空和案例編程題,考試時學生可以查閱資料,因為程序設計課程重點要培養學生的編程思想和方法,而不是對語法點的死記硬背。考核方式的改革實現了從知識考核到能力考核的轉變,體現了程序設計課程實踐性的重要性,鼓勵學生平時學生多動手上機編程。
3 實踐應用效果
自2021年春季學期Python程序設計課程改革以來,取得了明顯的教學效果。
1)形成性考核成績明顯提升
將改革前2020年的成績和改革后2021年、2022 年的成績進行了分析對比,其中形成性成績為平時9 次實訓作業成績的平均值,占比55%,期末考核全部采用機試,占比45%,統計結果如表2所示。
從表中可以看出,改革后,學生形成性成績的平均分有了明顯提升,表明采用新的實踐模式后,學生學習興趣濃厚,主動實踐練習的機會增多;而期末成績有所下降,是因為改革前為紙質卷考試,存在一批學生考前突擊,效果顯著,而改革后全是機試,主要取決于學生平時的上機實踐積累,有利于反向激勵學生把功用在平時。此外,改革后學生的各項成績(尤其是形成性成績)的標準差有了下降,表明成績更加穩定,兩極分化的趨勢趨于平緩,是因為學生通過在線評判系統作答作業時,在截止日期前可以多次提交,每次提交后都有錯誤反饋,便于學生不斷完善,在這個過程中不斷提升編程能力。實踐證明,改革后的教學模式在發揮學生主觀能動性、提升動手實踐能力方面效果顯著。
2)學生對課程實用性的認可度有了較大提高
2022年春季學期課程前后,對342份有效問卷調查進行了統計,統計結果如圖1所示,開課前,只有8%的學生接觸過編程,6%的學生在一定的幫助下可以完成具體任務的程序編寫,而經過一個學期的學習后,73%的學生能完成程序編寫;開課前只有47%的學生認為Python對以后學習工作的實用性,而開課后,則93%學生認為是有用的。由此可見,改革后學生的觀念、動手編程能力確實有了較大提升。
4 結束語
通過教學模式的改革,Python程序設計課程在實踐教學中取得了良好的教學效果,學生對程序設計課程產生了濃厚的興趣,提升了實踐創新能力和計算機應用能力,值得廣大老師借鑒,但在實踐過程中,仍然發現有一些問題需要解決,比如:大班教學中,學生的基礎參差不齊,如何對學生做到因材施教,如何設計大量和專業相結合的實踐案例,這些是需要進一步研究和探索的,以不斷提升教學效果。