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