宋鴻梅 韓連福 呂秀麗 周圍 付長鳳 韓建



摘要:python是當今最受歡迎的編程軟件之一,在大學本科中也廣泛開設python編程課程,但是大部分學生未能達成學習目標。返璞歸真,回歸學習的本質,以應用需求驅動學習,以生活實例探討語法規則,激發學生學習興趣,使學生學了python會用python,提升教學效果,讓學生從被動學習變為主動學習。
關鍵詞:python教學;教學方式;案例驅動
中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)12-0018-02
、
蘋果創始人喬布斯說過“每個人都應該學習編程”,奧巴馬也曾表示“編程關乎美國的未來”。早在1984年,鄧小平就發出了“計算機的普及要從娃娃抓起”。編程語言是工科大學生必須學習一門課程,尤其是電子、計算機相關專業。Python是一種面向對象的解釋型語言,是自由語言,源代碼和解釋器遵循GPL協議,代碼簡潔清晰。Python語言在各個領域有著廣泛的應用:如系統編程、圖形處理、數學處理、文本處理、數據庫編程、網絡編程、Web編程、多媒體應用,尤其是在人工智能領域和數據分析領域有著廣泛的應用。
1python教學中存在的問題
Python編程語言強大的功能和豐富的擴展庫讓其成為很多大學教學采用的編程語言,同時也受到同學們的歡迎。但是本科的課業繁重,python編程語言的課時也非常有限,python入門的例子往往也是求階乘,判斷素數,判斷完全數等和生活脫節的例子,使得學生的學習枯燥乏味。最后往往興趣殆盡,只學會了屏幕打印“Hello world!”,背離了學習的初衷。
2以需求促學習,讓學習效果體現在生活中
需求是科技進步最為重要的動力,對于學生學習來說也不外于此。現代學習、生活往往離不開電腦的使用,如果可以自己編程實現一些學習、生活的需求,定會在一定程度上刺激學習興趣,激發學習熱情、提升學習效率。
大學本科階段,學習任務繁重,學生伏案學習、工作的時間越來越長,或者有部分學生長時間沉迷游戲而沒有得到及時提醒,浪費了大量寶貴時間,但又沒有足夠的自我管理能力。而且緊張的腦力工作使得對時間的流逝感覺遲鈍,投入時往往兩三個小時往往轉瞬即過,站起來的時候才感到腰酸背痛,長此以往嚴重損耗了同學們的身體。養成良好的學習、工作習慣,每隔四五十分鐘起來活動一下是一個非常值得推薦的做法。
3以貼近生活的實例探討python語言要素
在程序語言設計的教學過程中,引導學生自己完成一款適合自己的桌面提醒軟件,不僅會很好地鍛煉學生的編程技能,并且加深對程序設計流程和相關編程語言知識的領會,激發學生編程愛好,長此以往一定會深層次的提升編程技能[1]。
借助于python語言來設計一款久坐提醒的桌面軟件,實現這一提醒功能,是非常方便的,是同學們稍加努力就可做到的。
圖1所示的代碼段可以實現在預定的時間彈出一個圖片,提示學生休息一下,編程時可以按照自己喜好選擇一個比較有趣的圖片,例如這里選擇的是從百度圖片里下載的如圖2。然后稍微停頓一下,打開一個運動視頻,學生可以跟著視頻做一下室內運動,如圖3所示。
程序雖然簡短,但是包含的信息并不少。第一行代碼“# -*- coding: utf-8 -*-”,編輯器自動生成,表示python3.x的采用的編碼是utf-8. 第二行到第六行是注釋信息,記錄程序編寫時間和作者,引導學生編程時,有詳細的注釋信息,養成良好的編程習慣。8、9、10、11行表明需要用到的模塊,從而引導學生對python的模塊進一步了解,模塊是python的一大特色,極大地提升了代碼的復用性。培養學生閱讀幫助文檔的習慣,例如webbrowser模塊提供了一個高級界面,允許用戶顯示基于web的文檔。這里采用的編程環境是spyder,在spyder的控制臺,輸入help(webbrowser), 會彈出簡短的幫助文檔[2]:
Help on module webbrowser:
NAME
webbrowser - Interfaces for launching and remotely controlling Web browsers.
MODULE REFERENCE
https://docs.python.org/3.8/library/webbrowser
然后按照提示便可以查找詳細模塊使用文檔
time是經常使用的內置模塊,time模塊有著非常豐富的函數和方法,time模塊為控制時間變量提供了豐富的函數。例如time.time()函數以秒為單位返回自第一臺計算機問世以來的系統時間。time.sleep()函數可以讓程序的執行暫停一段時間。通過time.gmtime()函數不止可以查詢日期、時間、星期幾,還可以知道一年過去了多少天。
Matplotlib是一個用于在Python中創建靜態、動畫和交互式可視化的綜合庫。是一個非常強大的繪圖工具,使用起來和MATLAB非常相似,不止可以通過help函數獲得使用信息,同樣官網上有著教程,并且Matplotlib有中文官網,給學生的學習提供極大便利[3]。
通過13行進行設定工作時間,這里引入input()函數的使用,同時強調,input()的參數雖然是可選的,但是要養成添加提示信息的編程習慣,著重向學生說明程序可讀性的重要性。input()輸入的數據是字符串類型,如果后續需要計算,需要轉換為數值類型,根據需要使用強制類型轉換int()、float()。還可使用eval()進行強制類型轉換,同時向學生介紹三種函數的特點和使用規則。
程序中用到幾個函數:input()、sleep()、imread()等,提醒學生這些函數的不同之處,從環境配置到調用方式的不同。使學生了解Python模塊函數的三個層次:
(1)內置函數,不需要import語句導入,函數可以直接調用,例如input()、eval()等;
(2)標準模塊函數,用import語句導入后再調用,但不需要安裝,例如time()模塊,調用時需要指明命名空間;
(3)第三方模塊函數,需要安裝后才能使用,例如webbrowser、matplotlib。培養學生搭建開發環境的能力,養成閱讀官網文檔的習慣。
一段小程序中包含了大量python語言知識,通過實例的訓練教學python語言要素,從理論到實際再到理論,加深對python的理解并逐漸使用python解決實際問題。諸如此類,由淺入深設立編程實例,鍛煉學生的編程思維,凝練對語法和算法的理解,鼓勵學生發散思維,如有突出表現,以成績鼓勵,用分數刺激學生主動學習[4]。
4總結
從Python教學中出現的問題出發,解決理論教學與生活實踐脫節,學習興趣逐漸減弱的問題,讓學生在學校里的知識、技能應用的生活中去,從而激發學生學習興趣。鼓勵學生深入生活,勤于思考,把生活的實際應用和學習內容聯系起來,用生活實例訓練編程技能,學與用融會貫通,激發學生的創新意識,引導學生利用自己的所學讓自己的生活更加科學、更加便利。
參考文獻:
[1] 朱雄泳,張菲菲,陳憶群,等.新工科《Python程序設計》課程改革探索[J].電腦知識與技術,2020,16(24):131-133.
[2] Spyder documention, https://www.spyder-ide.org/.
[3] Matplotlib documentation, https://matplotlib.org/contents.html.
[4] 馬文秀,李焱.Python程序設計從知識型課程向能力培養型課程的改革實踐[J].電腦知識與技術,2019,15(28):162-163,187.
【通聯編輯:代影】