黃勝 劉偉煒
湖南涉外經濟學院 湖南 長沙 410205
隨著信息技術的快速發展,手機、平板、筆記本電腦等移動設備逐漸融入了人們的生活。對比過去,移動設備帶來的移動式學習和碎片化學習更能滿足當代學生自主學習和個性化學習的需求,而這是傳統的大學課堂和簡單的在線課程不能提供的。面對以上問題,高校教育者應積極尋求變革,對傳統的課堂教學模式進行改變,對多種教學模式進行大膽嘗試,用以來滿足學生不斷變化的學習需求。
Python程序設計不僅作為全校公選課,用于培養和提高在校大學生的計算思維能力,更是計算機類專業學生學習大數據處理和數據分析的先修課程。如何在課程體系中構建統一的平臺,其中設置低階內容適合于所有專業的學生用于進行基礎編程能力的學習;設置中階內容適合于理工類的學生和有強烈學習興趣并有一定編程基礎的文科學生學習,用于運用Python語言解決專業中遇到的實際工程問題;設置高階內容適合于本專業的學生學習,例如:中文分詞、正則化處理、網絡爬蟲、非結構化數據庫連接等內容,為后續課程學習打下堅實的基礎。筆者結合多年教學經驗,針對Python語言的特點,采用線上線下混合教學模式對該門課程進行教學改革試點,通過幾個教學周期的觀察發現,對比傳統的課堂教學模式,混合教學模式在提高學生理論知識的掌握程度上、在提高學生的實踐動手能力上都有顯著的效果,而且對不同能力水平的學生更具有包容性。
Python語言是一種跨平臺、開源的解釋型編程語言,它的特點是代碼簡潔、語法優美且簡單易學[1-2]。然而從教學實踐情況看,一門看似“簡單”的課程,卻讓很多學生感覺無法適從。那么在Python程序設計課程的教學過程中,存在哪些問題呢?
Python程序設計不僅在計算機相關專業開設,也在非計算機專業作為公共選修課開設,相當部分高校將其定位于編程入門課程,通過這門課的學習,學生只是要求具有用 Python 編寫程序的基本能力。然而Python語言應的最大特點就是擁有強大的第三方庫,這使得它在Web開發、科學計算、自動運維、多媒體應用和爬蟲開發等領域受到廣泛的應用。因而只在課堂中講述Python語言的基礎知識和語法結構,遠遠滿足不了學生的學習預期,不能激起學生的學習興趣,其授課效果、課堂吸引力可想而知。
Python程序設計作為計算機相關專業大數據處理和數據分析的先導課程,除了安排學習Python編程精講以外,還要涉及中英文分詞、JSON庫、正則化、網絡爬蟲、數據庫編程、并行處理和數據可視化等內容,而該門課程的總課時只有32節,學習緊任務重,這就造成了老師為了符合教學進度,就大水漫灌,導致了學生學習起來叫苦不迭,最終導致的結果是教師教得累,學生學得辛苦,學習效果卻非常差,讓后續課程的開展設置了很大的障礙。因此,開辟第二學習戰場,擴展課堂教學時間是非常必要的。課程組將選擇部分簡單的教學內容轉移到線上教學,通過學生線上自學,不僅減輕了教師課堂的教學壓力,增加了學生的自信心,還提高了學生的自主學習能力。
對于非計算機專業的學生來說,Python程序設計只是作為公選課,很多學生的學習目的就是為了拿學分,其底層的學習驅動力不強,學習積極性不高;對于計算機專業的學生來說,已經在前期學習了C語言和Java語言,重新再學習一門編程語言,尤其是還要按照要求重新學習基本語法知識,容易產生學習惰性,積極性不高。如何調動不同專業,不同層次的學生學習積極性,是課題組需要研究的一個長期問題。
現階段關于Python程序設計的網絡視頻教學資源非常豐富,然而網上的教學資源為了追求普及性和受眾面,其所涉及的知識點往往全而不專,并不完全適合本校的學生,例如:本校學生需要經常分析處理金融數據,需要在課程中開設Tushare+Pandas+Matplotlib庫的講解,而這些內容在很多教學資源中是沒有提及的。其二,網上資源多是采用視頻講解的方式,缺乏網上實踐練習,學生的動手能力得不到鍛煉。因而,課程組需要根據學校的教學定位和學生的能力水平,建設從教材、到案例、到平臺等相配套的系統性、高質量的教學資源。
針對上述問題,課程組根據不同專業學生的編程能力和需求出發,將Python課程的知識點劃分為低階、中階和高階三個層次,并在課程講解中依據學生所處專業的特點,將對應專業的真實案例和知識點進行串聯,在解題過程中掌握和運用知識,鞏固知識的同時還提升了學生的學習興趣。與此同時,我們通過制定“自主獲取知識(課前)+實踐構建知識(課堂)+鞏固知識(課后)”的教學模式,并已初步建設完成超星課程平臺和線上實踐平臺,把理論知識與實際應用相結合,不斷激發學生的學習興趣和積極性,讓學生在教學的每個過程中都能獲得學習的成就感,從而取得良好的教學效果[3]。
課程建設必須以立德樹人為根本,教師在課堂教學中不能僅僅傳授知識,還要充分發揮教師的人格魅力,通過自己的師風師德引導學生培養良好的科學素質和職業道德。另一方面教師需要整合課內課外的資源,將思政教育方法引入到課程教學中,并充分挖掘課程知識中所包含的思想價值,在增加課程趣味性的同時,著力培養學生正確的唯物史觀和價值觀,讓學生在課程教學中堅定自己愛黨、愛國、愛社會主義的理想信念,實現價值、知識和能力相統一。
課程組按照不同專業的需求,將課程內容劃分為3個層次。其中低階內容包括課程導學、Python初體驗、Python集成開發環境的安裝與配置、Python基本數據類型、流程控制、函數和代碼復用、組合數據類型、文件和數據格式化、基本擴展模塊(datatime模塊、算術模塊、持久化模塊、文件讀寫模塊)等內容,適合所有專業學生進行選擇性學習;中階內容包括類和面向對象、圖形化用戶界面、數據庫編程、中級擴展模塊(中英文分詞、PIL、正則化、Requests、Beautiful Soup、TuShare等)適合于理工類專業學生進行選擇性學習;高階內容包括高級擴展模塊(Numpy、Pandas、Scipy)、多線程編程、數據可視化和網絡爬蟲框架等內容,適合于計算機類不同專業學生進行選擇學習。
Python程序設計課程的混合式教學設計主要由課前預習、課中討論、課后知識鞏固三部分組成。課前教學通過發布課前任務的形式,讓學生通過微視頻學習和教學課件學習提前自主獲取課堂知識,并針對學習難點提出疑問。課堂教學運用研討式及啟發式情景教學方法,幫助學生構建知識體系。例如:引入π的求解案例,將學生分成3組,分別通過蒙特卡洛方法、萊布尼茨公式和Machin公式分別進行求解,在過程中植入復雜工程計算、random庫和循環的知識點,并最終由小組進行成果展示。課后教學通過課后專項練習、線上實踐練習、學習總結和論壇交流的形式,鞏固學生課堂知識,并通過與學生交流和定期發布問卷調查等方式獲取學生反饋,并根據反饋意見課程組將進行教學反思和教學方案優化,提高學生的滿意度。
針對非計算機專業的學生,課程組可以通過在教學過程中穿插學生對應專業的案例,通過計算機+專業的形式,讓學生在學習中感覺到課程中學習的知識是對自己專業有所幫助,提高學生的學習興趣。例如:可以針對商學院的特點,添加python+金融數據分析的案例分析,針對文法學院的特點,添加python+文學作品分詞分析的案例,針對機械學院的特點,增加python+工程應用案例。
計算機專業學生不僅需要學生掌握Python語言的語法知識,還需要學生掌握其強大的生態工具,能夠初步解決例如:大數據處理、圖形圖像處理、科學計算可視化等領域中的實際問題,為后續大數據處理等課程奠定堅實的基礎。因此,課程組在教學內容中引入第三方庫的內容,利用章節知識和第三方庫解決實際工程問題。例如,課程組在流程控制章節添加了Random庫的講解,讓學生利用章節所學知識(循環結構和分支結構)和Random庫結合,使用蒙特卡洛思想求解圓周率π。讓學生在解決實際問題過程中,不僅加深了對教學知識點的理解,還拓展了Python的第三方庫知識,激勵了學生的實踐探索興趣。
具體而言,從過程考核和結果考核兩個維度考慮。從過程考核來看,通過專家評審、同行評價、學生調查問卷等多種形式進行效果評估(如圖1所示)。例如:隨機抽選了125名學生分別對教學目標、教學內容、教學考核方式和評分標準、內容是否有挑戰度等問題進行調研,結果總體滿意度達到90%。
圖1 某班問卷調查部分截圖
從結果考核來看,將傳統教學和混合式教學通過SPSS并結合問卷調查與學情數據對學生成績進行分析,具體如下所示,平均成績提高了12分,標準差由原來的5.53降為5.30,均值的標準差由0.78降為0.75。總體上看,線上線下混合模式更能提高學生的學習興趣,提高學生對知識點的掌握,也更具有包容性(實際效果如圖2、圖3所示)。
圖2 學生平均學習時長
圖3 學生成績分布圖
逐步形成了較為系統化教學支撐資源,以支撐混合式教學模式的完成。 具體包括: ①以教材和在線教學視頻為主的課程教學資源建設(現有授課視頻78個,視頻總時長817分鐘,非視頻資源206個,習題庫448題,線上實踐教學項目57個,現累計頁面瀏覽量952454,累計選課人數832人),具體內容如圖4所示;②充分利用以實踐教學為主的頭歌教學平臺(www.educoder.net)[4];③具備合作關系、面向不同行業的本地化企業為主的“第二校園” 。
圖4 線上教學基礎數據
Python程序設計不僅肩負著大學計算機教育的普及工作,也是計算機專業深入大數據處理和數據分析的基礎入門課程,在大學本科教育中占據了非常重要的地位。本文立足于本校學生的學習特性,引入混合式教學模式,切合實際的改進教學流程、更新教學內容、改革考核評價模式,并付諸實際教學過程中。實踐表明,該方案充分發揮了線上教學的優勢,將部分基礎教學內容搬上了網絡,既變相的擴展了教學時間,提高了學生學習自主性,又能利用線上教學的功能,收集學生的學習的數據,便于教師實時動態的調整教學進度。與此同時,教師在課堂教育中將擁有更多的時間來進行課程思政教育和開展例如課堂討論、專題匯報多種形式的教學,提高學生的學習參與度。Python程序設計課程的教學改革不是一蹴而就的過程,這需要教育工作者投入更多的時間和精力,進行深入的教學改革,使其教學內容不斷的貼合社會發展的需要,培養出更多的高素質計算機應用人才[5]。