李昂
摘 要:Python語言已經成為物聯網開發領域中最具活力的語言之一,因此,高校物聯網專業有必要開設相關課程,并形成課程體系。文中針對當前Python課程教學準備過程中遇到的主要問題展開分析,提出了具體的解決思路和方案。緊密結合物聯網專業特點,從學生興趣培養、教學內容和考評方法等方面進行了具體的闡述,其中一些創新方法對教學有一定的參考作用。
關鍵詞:Python;物聯網;教學準備;教學內容和方法
中圖分類號:TP39;G642.3 文獻標識碼:A 文章編號:2095-1302(2018)03-0-03
0 引 言
近年來,隨著人工智能在世界范圍內掀起新的智能化浪潮,一種全新的語言——Python,越來越被人們關注。據Stack Overflow最近的調查顯示,Python已成為發展最快的主流編程語言,且位列程序語言排行榜榜首[1,2]。
1 Python語言簡介及其與物聯網的關系
Python語言簡單易懂,入門門檻較低,所以很多非計算機專業的人都在學習Python[3]。這使得它具有極其廣泛的應用前景,主要包括以下五個方面[4-8]:
(1)Linux運營維護
物聯網應用主要依靠Linux實現,而如今對Linux的運營維護必須掌握Python語言,它可以幫助Linux工程師提高工作效率,尤其當運維工程師需要獨立開發一個完整的自動化系統時,Python可提供較大幫助。
(2)Python Web網站工程師
在智能互聯大潮中,Web一直都是不可忽視的存在,當今世界一刻也離不開Web。而利用Python框架可輕松完成網站制作,且前端界面十分精美。
(3)Python自動化測試
眾所周知,Python語言對于測試的作用較大。在自動化測試中,Python語言用途廣泛,Python能提供自動化的流程、方法和常用模板。目前為止,自動化測試應用Python最多。
(4)數據分析
大數據時代來臨,使得數據可以成為說明一切問題的原因。如今,數據分析已不同于以往,Python語言已成為數據分析師的首選,工作效率得到極大提升。
(5)人工智能
2016年,阿爾法狗戰勝了一眾圍棋大師,讓人工智能揚名四海。目前,人工智能還處于初期階段,而Python可幫助我們在不遠的將來進入一個全新的人工智能時代,世界將發生天翻地覆的變化。
上述五個方面的應用都與物聯網關系密切。物聯網開發涉及面較寬,且開發周期長,因此必須尋找一種覆蓋面廣的編程語言和方法。Python 作為一種膠水語言,其眾多免費和開源的科學計算庫讓用戶可以在任何計算機上自由使用[9,10],由此可在物聯網及嵌入式系統中承擔大量任務。
2 Python課程在物聯網專業課程體系中的位置
國內眾多高校都建立了物聯網專業,通過上述介紹可知,物聯網專業開設Python課程不僅完全可行,而且非常必要。由于Python語言的簡潔性、易讀性以及可擴展性,國外用Python做科學計算的研究機構日益增多,一些知名大學已采用Python來教授程序設計課程[11]。例如,卡耐基梅隆大學的《編程基礎》、麻省理工學院的《計算機科學及編程導論》都使用Python語言講授[11-13]。
應用型本科院校的物聯網工程專業在應用型人才培養目標的要求下,多數都強調物聯網應用的開發與設計。其培養方案大多分為兩類:無線傳感智能互聯,物聯網應用系統集成與工程設計。這兩個方向一般從本科三年級開始分設,此后往往缺乏交集,原因是無線傳感智能互聯方向較偏重于應用的早期開發,一般只停留在方案論證階段;而物聯網應用系統集成與工程設計方向則偏重于后期實施,更強調系統的建立過程和運營維護。顯而易見,實現方向一較為容易,方向二對院校和專業提出了較高要求,而缺乏工程實踐經驗恰恰是高校教學的一個短板。Python恰好可以起到橋梁和紐帶作用,既能為應用的早期開發提供較好的平臺和方案,又能通過其自身的廣泛應用性和靈活性,為后期工程實踐提供大量接口。這一點已在試點運行中得到了證實。因此Python語言課程在物聯網專業本科教學第五學期開設較為合理。
3 Python教學中可能存在的問題分析及對策
3.1 學生對語言類課程缺乏學習興趣
興趣是最好的老師。從目前已開設的語言類課程(如C語言、Java等)可以發現,學生對于此類課程普遍具有畏懼心理,從而很難提起學習興趣。因此可通過以下方式激發學生學習Python語言的熱情:
(1)教師要正確引導。在課程學習中,枯燥無味、晦澀難懂的課堂教學會讓教師失掉所有學生的關注,如何讓枯燥的編程語言變得簡單、生動、妙趣橫生,這就給教師們提出了更高的要求。
(2)要讓學生感受到一定的壓力。人生來具有惰性,沒有壓力就沒有動力。可通過行業現狀介紹、案例分析,使學生對當前Python的發展有一個清晰的認識,對行業形勢有所了解,體會到這門語言可為他們今后的學習與工作帶來較大幫助,這樣自然就有了壓力和動力。
所以在學生興趣培養上,教師不但要履行好自身責任,而且要通過現實引導讓學生從自身提高學習源動力,只有內外結合,才能真正培養起學生的學習興趣。
3.2 教師自身素質欠缺
物聯網發展至今,已不是一個新穎的概念,這方面的人才也并不缺乏。而Python則不然,人才缺口依然存在。很多高校都缺少可以講授Python課程的教師,甚至許多教師對Python一知半解,大大限制了Python課程的開設以及Python在物聯網中的應用。如何將教師培養成專門的Python人才迫在眉睫。
4 Python課程教學準備方案
4.1 教學目標制定
學習一門知識,首先要對該課程的學習目標有清晰的認識,這樣才能朝著目標持續前進,少走彎路,從學習中得到不斷提升。學習計算機編程語言更是如此,不能夠因為Python時下比較熱門,就憑著一時沖動去學習,首先應清楚地制定學習目標:因何種原因學習Python,如何學習,學習到何種深度。如此才能享受Python學習的過程。
物聯網應用領域的Python學習目標是學生通過學習,能夠使用Python基本開發環境,對Python編程語法較為熟悉;能夠編寫簡單的程序解決簡單的小項目;會使用Python庫,最終具備利用Python開發物聯網應用項目的能力。這是一個由淺入深,循序漸進的教學過程。
4.2 教學內容與進度規劃
通過分析Python語言特點及其主要應用方法,物聯網專業的Python課程教學計劃應包括以下內容[14-16]:
(1)了解Python,學會下載和安裝Python學習環境——Python 3.0以上版本。
(2)學習Python基本語法,掌握Python中的關鍵字語法、函數語法、數學表達式、變量、數據結構、語法等。知道什么是變量、算法、解釋器,牢記 Python基本數據類型,掌握列表和元組的操作方法、字符串操作方法,尤其是掌握基本的字典操作方法。
(3)通過一些小項目對上述基礎內容加以鞏固。Python具備良好的交互學習模式,對于書本上的例子可通過交互平臺操練,通過練習加深印象,達到掌握的目的。
(4)經過以上三個步驟的學習后,學生已大致掌握了Python的常用方法、關鍵字用法以及函數語法等。接下來,可以著手學習常用模塊的使用,比如OS,os.path,sys,string模塊等,可以在交互環境中先熟悉使用其中的函數。如果遇到函數使用上的問題,可以參考Python 安裝后的自帶chm幫助文件解決。
(5)為了更好地掌握Python,不能僅停留在語法學習或API階段。在此階段中,學生可以嘗試用Python解決一些簡單的實際問題。例如,用Python制作一些簡單的工具(utility),通過這些工具簡化一個復雜項目的任務,提高工作效率。
(6)Python庫是Python的精華所在,是Python開發者的利器,Python庫組成并造就了Python,所以學習Python庫顯得尤為重要。
(7)為了學以致用,能真正地將Python應用于項目開發或產品開發,還必須學習企業應用開發中的網絡和數據庫知識。
(8)除了掌握上述Python自帶的模塊外,還應掌握一些業界廣泛使用的開源框架,如Twisted,Peak,Django,XML等。通過熟練使用這些開源框架,能夠進行快速開發,從而大大節省項目時間。
任何知識都是基礎入門比較快,而要達到精通程度則需要較長時日的積累。只有通過不斷地看別人編寫的源碼,分享自己的代碼,才能夠精通Python的方方面面。從編程初始階段,就應不斷地動手編寫代碼,不停地實踐、修改、總結經驗,最終達到精通程度。一個對Python程序精通的程序員面對同樣一個問題的,會多種解決問題的方法,并能從中選擇最有效率的一種。
4.3 教材的選擇
選擇一本真正適合教學的教科書是做好教學工作的第一步。在選取編程語言類課程教材時,切忌選擇通篇只講解語法和編程思路的教材,而應選擇教材作者以第一人稱視角,站在一個初學者的角度,從技術、心理和思想上為學生做出引導,完美展現編程切入角度的教材。只有這樣的教材才是最理想的編程教材,而不只是提供了一部可供查詢的字典。
經過細致比較,物聯網專業Python課程可以選取《Python編程:從入門到實踐》《Python基礎教程(第2版)》《“笨辦法”學Python》作為教材。
4.4 教學方法
學習任何編程語言最重要的一點就是多用多實踐,其他所謂的好方法只能起到輔助作用。只有通過大量的實際訓練,才能盡快掌握開發技巧、將各主要技術要點融會貫通。同時,每次需求目標的實現都體現了編程人員的自身價值, 有利于提高他們的自信心和成就感[14],對于學習興趣的培養十分有利。
因此,除了在理論課教學中采取結合實際應用的講授方法外,還應加大實踐教學的比重,單獨設立基于Python開發的課程設計[17],進一步鞏固所學的理論知識。更為實際有效的方法是引進來自企業的工程技術人員直接授課,通過他們積累的開發經驗和切身體會,讓學生直接與行業實踐觸碰[18],使學生的印象更為深刻。
4.5 考核方式
傳統的編程語言類課程多側重于語法理論和編程規則的考核,而忽視了對實戰能力的考查,這種導向也使學生只重視語法理論而忽視了編程實踐能力。因此,對于Python這類新穎、靈活且用途廣泛的語言,課程考核的重點應當放在實踐能力上。例如,可以將理論考試比重和實踐能力考核比重各設置為50%[19],而且實踐能力的考核形式應當多樣,既可考查單人實戰能力,也可考查團隊實戰能力,還可考核對Python的創新應用能力,并將其作為加分項[20]。總之,應當以考核為手段,革新考核方法,突出Python的實踐特性和創新特性。
5 結 語
本文從應用型本科高校教學視角出發,首先分析了Python語言與物聯網的關系及其在物聯網專業課程體系中的位置,進而給出了對Python課程進行教學準備的方式,并針對可能出現的問題和面臨的困境給出了解決策略,不僅對Python課程,而且對其他新興的工科類課程都具有一定的借鑒意義和實用價值。
參考文獻
[1] 嵩天,黃天羽,禮欣.Python語言:程序設計課程教學改革的理想選擇[J].中國大學教學,2016(2):42-47.
[2] 狄博,王曉丹.基于Python語言的面向對象程序設計課程教學[J].計算機工程與科學,2014,36(S1):122-125.
[3] 張莉,金瑩,張潔.多樣化可擴展的Python教學體系探索與實踐[J].計算機教育,2017(8):18-22.
[4] 劉衛國, 奎曉燕.Python語言程序設計教學體系建設[J].計算機教育,2017(8):13-17.
[5] 秦科, 劉貴松.面向Python應用的大學教學改革初探[J].計算機教育,2017(9):21-25.
[6] 趙建兵.重拾程序設計教學,點燃信息技術課堂新活力[J].當代教育實踐與教學研究(電子刊),2017(3):4.
[7] 黃天羽,嵩天.以圖形牽引興趣的Python案例教學方法與實踐[J].計算機教育,2017(8):32-37.
[8] 肖斌濤,黃君強.Python語言在教學輔助軟件開發中的應用研究[J].現代計算機(專業版),2009(7):113-115.
[9] 喬亞男,李波,謝濤.基于Python的“大學計算機基礎”課程教學設計[J]. 科教導刊(中旬刊),2016(11):121-122.
[10] 王明松,錢靜媛.基于Python語言的面向對象課程實踐教學探討[J].電腦知識與技術,2017,13(4):136-137.
[11] 張茗芳.使用Python進行非計算機專業程序入門教學的探討[J].電子世界,2012(17):167-168.
[12] 王立翔.基于計算思維的Python語言課程教學改革芻議[J].教育現代化,2017(15):12-13.
[13] 仲曉芳,龐勝楠,尹百慧.面向非計算機類專業Python編程教學設計研究[J].無線互聯科技,2017(18):82-83.
[14] 劉梅彥,徐英慧,周淑一.基于成果導向的“Python程序設計”教學設計[J].電腦知識與技術,2017,13(20):105-107.
[15] 文欣秀,王家輝,馬軻,等.基于Python的輔助教學系統設計與開發[J].物聯網技術,2017,7(9):113-114.
[16] 朱贇.Python語言對程序設計基礎教學的意義[J].福建電腦,2017(6):176-177.
[17] 趙廣輝.面向新工科的Python程序設計交叉融合案例教學[J].計算機教育,2017(8):23-27.
[18] 嵇立安.網絡資源輔助下的Python程序設計教學[J].電子技術與軟件工程,2017(21):250-251.
[19] 裘鍇.Python語言編程在計算機理論教學上的應用探索[J].納稅,2017(21):188.
[20] 嵩天,黃天羽,禮欣.面向計算生態的Python語言入門課程教學方案[J].計算機教育,2017(8):7-12.