金傳洋 王麗輝 羅曉玲 鄭斯文

摘要:Python語言是目前國內高校非計算機專業語言課的首選。本文從課程定位與需求出發,深入分析Python語言特點和教學現狀,結合多年程序設計開發經驗,提出一些相應的改進措施,積極探索高效的教學思路、教學方法和教學手段。
關鍵詞:Python;教學改革;案例式教學;任務驅動;教學質量
中圖分類號:TP399? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)18-0114-02
1 引言
程序設計基礎(Python)是軍隊院校生長軍官學歷教育本科學員必修的科學文化基礎課程。通過本課程學習,使學員掌握Python語言的基本語法,能夠理解Python的編程模式;熟練使用集成開發環境和調試方法,掌握面向對象程序設計的基本概念以及設計方法;培養算法分析與程序設計能力,培養和提升學員以計算思維為核心的信息素養,學會運用計算思維方法發現問題、分析問題,積極尋找問題的有效解決辦法。課程內容主要包括:Python語言基礎知識、控制結構、運算符與表達式、函數、類與對象、文件操作及異常處理、圖形繪制、交互式應用程序的操作與使用等。采取教學活動主要有:MOOC視頻、操作實習、單元測驗、項目設計、考核評價(期中、期末)等。
本課程共48學時,教學內容共分為10個單元,包括為:第1單元程序設計概述(Python語言基礎)、第2單元程序控制結構(分支結構、循環結構)、第3單元數據類型(基本數據類型、字符串列表字典)、第4單元函數及使用(函數定義及使用、變量作用域)、第5單元算法與數據結構(算法與數據結構、典型算法實現)、第6單元文件與異常處理(文件與異常處理、文件與異常處理操作)、第7單元面向對象程序設計(面向對象概念、類與對象操作I、類與對象操作II)、第8單元圖像界面設計(Python數據實現、常用組件I、常用組件II)、第9單元綜合案例(綜合案例Python實現)、第10單元圖形繪制(圖形繪制操作I、圖形繪制操作II)。
結合往年教學實踐和今年教學安排,增加了課前MOOC自主學習環節,通過視頻資料學習,了解相關理論知識背景,實現精準導學、做好提前預習;課上對重點知識進行精講、對操作實踐知識采取機房模式,理論與實踐相結合,激發學員主動學習興趣,提高學員的動手能力。
2問題與目標需求
Python 是一種解釋型、面向對象和交互式的腳本語言,在1991年發行了第一個公開版本,其語法形式簡單、明確而優雅,和自然語言非常接近,無需花費大量時間學習枯燥的語法規則和計算機組成原理,學習門檻大大降低。
Python 語言開源,為我們提供了非常完善的基礎代碼庫,涵蓋了網絡、文件、GUI、數據庫、文本等大量內容。除了這些內置庫外,Python還擁有豐富的第三方擴展庫,供使用者直接調用,用戶結合本專業實際需求,能夠高效地編寫源代碼和可用程序,尤其在近年的人工智能、圖像識別、自然語言處理等領域得到深度應用。
當前,Python 語言已經成為美國大學最受歡迎的程序設計語言。在國內,自北京理工大學2013年開課以來,全國近百所高校都相繼開設Python語言設計課程,教學改革開展得如火如荼,Python已成為面向非計算機專業學習的首選語言了。
目前,Python語言程序設計課程存在如下問題:
(1)教學方式不夠靈活
近些年,中國教育在積極地探索新思路,取得了豐碩的成果,但是傳統教學模式依然沒有被徹底改變,學員仍被動接受,其主體地位也沒有被充分發揮出來,導致課堂教學質量不太理想。眾所周知,程序設計課是應用性很強的課程,應該更加突出實踐應用能力,盡管有些內容采取了機房授課模式,但實際效果并不好,很重要的原因,就是這種模式對教員駕馭課堂能力和素質要求很高,如果不能充分調動學員自主學習能力,授課質量將很難達到。
(2)授課教員發展受限
計算機公共基礎課授課對象一般面向全校學員,人數分布廣,需要配備大量教員,教學任務相對較重,通常面臨著“僧多粥少”的尷尬局面。由于授課任務飽滿,教員沒有更多精力投入到科研項目和教學研究,長此以往擔任基礎課教員都會遇到業績不飽滿、能力提升慢、職稱晉升難等問題,也對教員積極性有一定的挫敗,反過來,也會使教學效果受到影響。
(3)能力培養需要進一步強化
前面已經介紹,由于Python語法簡單,在教學實施過程中不需要花費大量時間講解其語法規則,應將更多的精力花費在實踐操作和應用上,但是,Python語言又具有靈活的面向對象和模塊化設計思想,能與其他語言協作完成復雜項目的混合編程,這些編程理念與技巧,大大地提升學員邏輯思維能力,也能培養學員利用Python語言工具解決綜合問題的能力,不過很難用一個個知識點的教學或者簡單的案例教學法實現,需要通過較綜合的項目實例或者課程大作業方式來實現教學目標。
3教學措施與實踐
在Python教學實施過程中,我們拋棄傳統語言程序設計中精講語法這種模式,采用由案例項目驅動,逐步推進的形式,抽取知識點,使這些知識點串起一個主線,教學過程就是為項目設計服務,當所有知識點學習完成,整個項目設計過程也水到渠成了。這種項目驅動式教學,需將課程結構分割為若干小單元,且使各單元之間保持完整的邏輯順序,其內容可以由易到難、由簡單到復雜、由少至多,循序漸進,逐漸增加難度,增強學員的學習興趣和成就感,如表1所示。
第一階段是認識Python,時間持續為兩周。教學內容包括計算機基礎知識、Python基礎知識,有趣小程序等,比如:楊輝三角、九九乘法口訣表、冒泡法排序、二分法查找、求100以內素數、菱形繪制等。課后練習是讓學員自主閱讀程序,執行代碼,深刻體會結果與代碼之間的對應關系,讓學員深刻理解計算機解決實際問題基本步驟:輸入—處理—輸出,從而構建Python程序整體框架,為后續學習打好基礎。
第二階段是會讀階段。通過實例拆解、程序閱讀、重點剖析等方式引導學員總結計算機解決實際問題的整個流程。一個好程序就好比一件藝術品,內涵豐富,包含了很多要素,無法用一段文字來具體地描述,要求學員仔細品味程序代碼,通過深入剖析總結,學員可以歸納出Python程序設計的基本框架、基本技巧與方法,其重要性不言而喻。這種教學模式,從第3周開始就能一直持續下去,學習者研讀的程序越多越深入,其編程技能也將更加嫻熟。
第三階段是會寫階段。編寫任何語言的程序,都是很嚴謹認真的事情,需要正確的方法、準確的思維和縝密的判斷,一方面培養學員的科學嚴謹的治學作風,另一方面養成積極思考、主動解決問題意識,這對于學習能力培養非常有必要。對于編程零基礎學員來說,教員需要花點時間教會他們熟練使用集成環境、調試程序的基本方法,這樣,在遇到一些簡單的語法問題,學員就可以自主地去完成。當然,編寫源代碼可以從簡單問題入手,逐步加大難度,從嘗試解決1到2行代碼開始,接著嘗試修改一個10行左右復雜代碼,逐漸增加難度,循序漸進,最后,能獨立編寫具有一定難度的問題了。
第四階段是會解決問題。學期過半后,學員已經學完了Python 的基本數據類型、程序控制結構、函數、圖形繪制等內容。教員可以結合全國計算機等級考試大綱要求,引導學員講授第三方常見庫的使用方法和基本功能,并嘗試解決一些實際問題。通過復雜的實際問題,教員講授Python編程解決問題的基本思路:如何抽象、如何表達抽象、算法流程圖描述與優化、代碼復用與優化問題等。
整個教學過程緊緊圍繞“四個階段”任務而逐步推進,以一個開發學員信息管理系統的綜合案例為任務牽引,將課堂教學中各部分知識點進行有機聯系,然后采取增量模式逐步推進,隨著問題的逐步解決,依次引入新的知識點,隨著任務逐步展開,按從易到難、從單一知識點到多個知識點的有序組織。與此同時,在實驗教學和課后作業中設置類似任務,讓學員們通過模仿并創造性地學習,順利完成教員布置的實驗任務。
4 結束語
開設Python語言程序設計這門課程,目的就是為了培養學員動手實踐能力,培養其分析問題、解決問題的能力與素質。因此,將Python課程設計分解為四個階段,分別設置各階段學習任務和教學目標,循序漸進,最終達到理想的教學效果。
參考文獻:
[1]劉梅彥,徐英慧,周淑一.基于成果導向的“Python 程序設計”教學設計[J].電腦知識與技術,2017,13(20) :105-107.
[2]鄭戟明.Python程序設計課程中計算思維的應用[J].大學教育,2016,8(1):127-129.
[3]趙霞,張珣,韓忠明. Python 語言教學中問題解決能力和創新能力的培養實踐[J].計算機教育,2017,9(1):6-9.
[4]魏冬梅,王影,鐘世芬.基于CDIO模式的Python程序設計課程教學實踐,2018,2(1):129-131.
[5]楊愛琴.基于計算思維的Python 程序設計語言教學探討[J].福建電腦,2017,11(1):173-174.
[6]秦科,劉貴松.面向Python應用的大學教學改革初探[J]. 計算機教育,2017,9(1):21-24.
[7]姚競.面向項目的"Python 程序設計"教學實踐與研究[J].福建電腦,2009,7(1):198-200.
[8]吳萍,朱敏,蒲鵬.基于思維培養的Python程序設計類課程之實踐[J].電腦知識與技術,2017,6(1):166-168。
【通聯編輯:王力】