呂勇,王桂娜,張鑫
(蘇州大學(xué)機(jī)電工程學(xué)院,江蘇蘇州,215021)
隨著新工科[1]建設(shè)的到來,我們也迫切需要對相關(guān)課程的教學(xué)方法加以改革。作為增長最快的編程語言python,被越來越多的程序員們選作開發(fā)的首選語言,各大高校開始把python語言作為一本基礎(chǔ)編程語言進(jìn)行講授。國內(nèi)的上海交通大學(xué)、同濟(jì)大學(xué)、北京理工大學(xué)、哈爾濱工業(yè)大學(xué)、北京交通大學(xué)等也在《大學(xué)計算機(jī)》或《程序設(shè)計》課程中講授Python 語言[2]。
我們根據(jù)Python的學(xué)科知識體系[3]與相關(guān)崗位典型工作任務(wù)特點對知識點和技能點進(jìn)行組合,形成相應(yīng)的學(xué)習(xí)領(lǐng)域。描述學(xué)習(xí)領(lǐng)域應(yīng)該包含三個要素:學(xué)習(xí)目標(biāo),學(xué)習(xí)內(nèi)容以及學(xué)時安排。根據(jù)典型工作任務(wù)分析結(jié)果,將知識與能力有機(jī)組合形成學(xué)習(xí)項目與學(xué)習(xí)任務(wù)。學(xué)習(xí)項目是以典型工作任務(wù)為基礎(chǔ)設(shè)計的學(xué)習(xí)載體,是對典型工作任務(wù)進(jìn)行教學(xué)化處理的結(jié)果。
Python是一種跨平臺的計算機(jī)程序設(shè)計語言。是一個高層次的結(jié)合了解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言。該語言具有簡潔性、易讀性和可擴(kuò)展性等優(yōu)點,總的指導(dǎo)思想是,對于一個特定的問題,只要有一種最好的方法來解決就好了。和常用的MATLAB相比,Python是一門更易學(xué)、更嚴(yán)謹(jǐn)?shù)某绦蛟O(shè)計語言。它能讓用戶編寫出更易讀、易維護(hù)的代碼,同時開發(fā)者可以用Python語言實現(xiàn)完整應(yīng)用程序所需的各種功能。
Python語言的學(xué)習(xí)內(nèi)容和其它語言類似,主要包括基本的語法規(guī)則和應(yīng)用。如何講解枯燥的語法是每個老師教學(xué)過程中的常見問題,我們采取以問題為導(dǎo)向的方法來解決。在具體的案例中去學(xué)習(xí)語法,鑒于這個思路,本文例舉了兩個常見的案例,讓學(xué)生快速了解python語言的語法及其應(yīng)用。
在C語言編程中經(jīng)常遇到的問題是條件運(yùn)算符的嵌套,我們在python中加以解決,基本思路和C語言類似。常見的問題如下:學(xué)習(xí)成績>=90分的同學(xué)用A表示,60-89分之間的用B表示,60分以下的用C表示。我們采用python3完成程序的編寫,完整代碼圖1所示:
圖1 條件運(yùn)算符的嵌套代碼
在實際編程中經(jīng)常遇到數(shù)組的處理問題,比如求一個3*3矩陣主對角線元素之和。那么我們可以采用雙重for循環(huán)控制輸入二維數(shù)組,再將a[i][i]累加后輸出。完整代碼如圖2所示:
圖2 雙重循環(huán)代碼
當(dāng)我們依次輸入78,34,23,34,56,33,12,21,2時構(gòu)成一個3*3的矩陣,運(yùn)行結(jié)果為136.0.
通過這兩個簡單的案例我們發(fā)現(xiàn)python語言的便捷性,案例的設(shè)計宜與學(xué)生的學(xué)科專業(yè)進(jìn)一步結(jié)合,通過合適的、面向不同學(xué)科專業(yè)的實例達(dá)到既闡釋計算學(xué)科的普適思維,又給出面向特定學(xué)科專業(yè)的范例的教學(xué)效果。
新工科人才的培養(yǎng)不僅要與時俱進(jìn),同時也需要一定的創(chuàng)新性。在python教學(xué)中,我們首先通過幾個具體例子讓大家熟悉編程環(huán)境Spyder,了解python語言的基本語法,在此基礎(chǔ)上我們可以拓展思路,提出一些具有發(fā)散思維的問題,充分發(fā)揮學(xué)生的主觀能動性,一個問題可以通過不同的編程去解決。我們將正確的編程代碼進(jìn)行共享,讓學(xué)生直觀得了解不同的思路,同時也能夠與其他人進(jìn)行對比分析,取長補(bǔ)短,形成一個良性的循環(huán)。
近年來,全國大學(xué)生電子競賽、各種物聯(lián)網(wǎng)大賽、及“藍(lán)橋杯”全國軟件和信息技術(shù)等各種涉及python語言編程的競賽日益增多。學(xué)科競賽主要考察學(xué)生的知識應(yīng)用能力,創(chuàng)新能力以及合作能力。我們可以將歷年的競賽題目作為一個小項目,模擬實際比賽進(jìn)行分組,一方面可以讓學(xué)生更好的使用python語言這個工具,也為以后參加此類比賽打下堅實的基礎(chǔ)。
我們還可以將老師的科研項目融合進(jìn)來,目前計算機(jī)視覺是一個研究的熱點,很多項目都采用視覺處理的方法,尤其是目標(biāo)檢測已經(jīng)成為非常重要的研究方向。其中所采用的深度學(xué)習(xí)方法使用了python語言,我們可以讓學(xué)生完成一個簡單的二分類任務(wù),判斷圖片中是否存在某個物體,采集一些樣本作為訓(xùn)練集和測試集,為學(xué)生將來從事科研提供一個良好的平臺。
最后我們鼓勵學(xué)生在學(xué)習(xí)python語言的時候要觸類旁通,要學(xué)會各種語言之間的轉(zhuǎn)換,現(xiàn)在的互聯(lián)網(wǎng)提供了一個知識共享的平臺,我們可以在網(wǎng)上看到非常優(yōu)秀的代碼,如何將其它語言轉(zhuǎn)換成我們所學(xué)的python語言對學(xué)生的理解與再應(yīng)用能力提出了更高的要求,學(xué)生在有了一定的編程基礎(chǔ)之后要善于利用開源代碼,這也是將來工作中遇到的實際問題??傊?,要學(xué)有所用,提高分析問題和解決問題的能力。
我們結(jié)合具體的例子對python語言[4,5]進(jìn)行了實驗,學(xué)生可以專注于解決問題的方法。在教學(xué)過程中,應(yīng)不斷的改進(jìn)現(xiàn)有的教學(xué)方法,吸收先進(jìn)的教學(xué)理念,利用好python語言這個有力的武器,充分發(fā)揮學(xué)生的主觀能動性,讓理論和實踐充分結(jié)合。經(jīng)過不斷的探索,必將逐步完善教學(xué)體系,培養(yǎng)出更多的符合新工科建設(shè)的優(yōu)秀人才。