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