羅曉玲
【摘要】對已經(jīng)學習過python語言程序設計課程的學生進行了調(diào)查,得出了學生學習python的主要困難。針對這些困難和python語言自身的特點,提出了幾點解決方案,為后續(xù)的python課程教學提供參考。
【關鍵詞】python?程序設計?課程建設
一、引言
計算機程序設計類課程是大學計算機基礎教學的核心課程,通過對編程語言的學習,理解計算機解決問題的思維方式,是培養(yǎng)計算思維最重要的課程。
近年來,Python語言程序設計課程在國內(nèi)各大高校相繼開設,作為程序設計入門語言。相比與傳統(tǒng)的C語言程序設計,python語言更加的簡潔、清晰,易于理解。此外,python還具有大量開源的第三方庫,對于學生后續(xù)在各領域的應用提供了有力的支持。
二、python語言程序設計課程學習的困難
python語言程序設計課程開設時間善短,依然存在很多的問題。本文針對python語言程序設計課程教學中存在的問題和遇到的困難,對一個年級六百多名學生進行問卷調(diào)查,被調(diào)查的學生均學習過python語言程序設計這門課程。學生學習python語言程序設計主要的困難如下:
(一)算法設計
課程總是鼓勵學生首先理解問題的定義,然后采用計算機能夠理解的方式設計一個解決問題的算法。但是,30%的學生經(jīng)過一個學期的學習,拿到程序設計題還是不知道該從哪入手,完全沒有思路。還有一部分學生只會去背題,看似學會了,但是遇到一個新問題,仍然無從下手。
(二)將算法用python語言描述
將算法轉(zhuǎn)換為python語言,比算法的設計更加的因難。學生必須清楚的記住python語言所有的語法規(guī)則,這點大部份學生無法做到。他們經(jīng)常困擾于一些編程的語法細節(jié)問題,而無法實現(xiàn)自己設計的算法。
(三)語言庫的使用
python語言具有大量的第三方庫,但是對于初次學習編程語言的學生來說,在庫函數(shù)中搜索,找到合適的函數(shù)并正確地使用它,是非常困難的。因為學生還沒有充分理解函數(shù)的調(diào)用和參數(shù)的使用。
(四)調(diào)試程序
調(diào)試程序是編程中最困難的問題之一。調(diào)查結果顯示,理解編譯錯誤信息(主要指語法錯誤)對于發(fā)現(xiàn)和修改錯誤的學生來說同樣困難。一方面,可能是學生的英語水平有限。另一方面,學生往往會對提示信息視而不見,在程序中隨機地進行修改。
綜上所述,是學生在學習python語言程序設計中遇到的比較重要的困難。此外,還有復雜算法的學習和面向?qū)ο蟪绦蛟O計思路都是學生非常困擾的地方,這些屬于程序設計學習的提高部份,不作詳細表述。
三、解決方案
(一)采用偽代碼來講解
計算機基礎課程的側重點還是要培養(yǎng)學生的計算思維,對于程序設計課程來說,就是提高學生用計算機解決問題的能力而不是語法細節(jié)。如何提高學生的邏輯推演能力、算法設計和分析能力更為重要。偽代碼相對于編程語言來說要求不那么嚴格,讓學生可以不用關注語法細節(jié),幫助學生把精力集中在算法設計上。
(二)增加實踐課時間
程序設計課程是一門實踐性非常強的課程,講授的內(nèi)容通過語言和文字很難表述清楚。但是通過實踐,卻很容易讓學生理解。每次理論課輔以兩次的上機實踐時間,學生們可以以自己的速度學習,輔以老師的幫助。通過更多的上機實踐,調(diào)試解決問題,自然解決學生對于調(diào)試程序所述的困難。
(三)將知識融入到具體的應用場景
教師應多了解和學習python在各行業(yè)領域中的應用,選擇與學生專業(yè)相關的教學案例,提高學生對于第三方庫的使用的興趣。例如,對于計算機專業(yè)的學生來說,可以將語音識別技術、人臉識別技術等應用基本成熟、可視化效果好的技術作為課程教學案例;對于偵察情報專業(yè)的學生來說,可以將雷達圖像目標識別等作為教學案例。這樣不僅能夠讓學生體會到python第三方庫的強大,對學生將來專業(yè)上的學習也大有益處。
在課程結束之前,每個人完成一個python的應用實例,作為本課程的大作業(yè)。學生可以圍繞python語言在自己專業(yè)領域的相關應用自主選題,設計實現(xiàn)特定的功能程序。最后采用提交程序說明書、團隊答辯等形式進行考評。這樣,一方面,可以讓學生將python與自己的專業(yè)緊密聯(lián)系起來,另一方面,也可以讓學生對軟件開發(fā)和軟件工程有一些簡單的理解,并對今后的畢業(yè)論文答辯有初步的了解。
(四)引入在線考核平臺
學生在學習過程中,一旦落后,就會越來越難跟上后面的課程的內(nèi)容。然而,如果掌握了基本概念,學生們就會發(fā)現(xiàn)新的、更難的知識點學起來變得越來越容易。
在教學過程中引入在線考核平臺,學生只有在限定的時間內(nèi)通過了前面的考核才能進入后期的學習,否則會有相應的懲罰措施。多次的考核,可以讓學生時刻保持警惕,讓教師能夠及時掌握學生的水平,及時地對他們所存在的困難提供幫助。在線考核平臺需按知識點建立試題庫,并劃分難易程度。學生在統(tǒng)一時間地點抽題考試,系統(tǒng)自動評分。每一次的考核成績記入平時成績一部份。未通過考核人員,作為重點對象,給予補考機會。
(五)融入學科競賽
近年來,“藍橋杯”全國軟件和信息技術專業(yè)人才大賽、ACM大賽、各種物聯(lián)網(wǎng)大賽、機器人大賽等計算機類競賽日趨增多。學科競賽是對學生綜合能力的考核,不僅考查學生基礎知識是否掌握扎實,更為重要的是考查學生應用知識解決問題的能力、創(chuàng)新能力以及團隊協(xié)作能力。可以將歷年的一些競賽的題目作為小案例,融入到教學過程當中去,設計一些小競賽,把程序設計學習變?yōu)閷W生快樂的、有競爭意識的經(jīng)歷。同時也為后期學生參加相關競賽打下基礎。
(六)引入機器人程序控制
機器人近年來越來越熱,學習機器人控制的門坎也越來越低,有很多控制芯片都支持python語言進行編程。在python課程的教學中,引入機器人控制編程,可以極大的提高學生的學習興趣??梢詫W生分組,一級一套學習套件,學生通過編寫程序來控制機器人的動作,可以直觀的看到自己所編寫的程序所產(chǎn)生的效果。這樣,原來枯燥無味的編程課程變成了生動、直觀的形式。學生通過機器人的實際動作,可以很容易理解程序控制過程,掌握程序控制的思想。學生在具備了這些直觀認識的基礎上,再進行理論的學習,會更有方向和激情。
四、結語
Python語言程序設計課程雖然相對于傳統(tǒng)的語言教學降低了學習的難度,但是對于初次接觸程序設計的學生來說,還是存在很多困難。本文就該課程目前教學過程中存在的問題,提出了采用偽代碼來講解算法更方便學員理解和轉(zhuǎn)化成編程語言實現(xiàn),針對python語言的特點讓學生將程序設計與自己的學科專業(yè)緊密結合,引入在線測評平臺讓落后的學生及時跟上,融入機器人和學科競賽激發(fā)學生的學習興趣。在后續(xù)的教學過程中,將逐步引入上述方法,優(yōu)化教學設計,提高教學質(zhì)量。
參考文獻:
[1]Hetland M L.Python基礎教程[M].第二版.北京:人發(fā)郵電出版社,2010.
[2]?Georgantaki,S.,& Retalis,S.Using Educational Tools for Teaching Object Oriented Design and Programming. Journal of Information Technology Impact,2007,(2) :111.
[3]Xinogalos,S.Difficulties with Collection Classes in Java-The Case of the ArrayList Collection.Proceedings of the 2nd International Conference on Computer Supported Education (CSEDU),7-10April,Valencia,Spain,2010.120.