呂勇,王桂娜,張鑫
(蘇州大學機電工程學院,江蘇蘇州,215021)
隨著新工科[1]建設的到來,我們也迫切需要對相關課程的教學方法加以改革。作為增長最快的編程語言python,被越來越多的程序員們選作開發的首選語言,各大高校開始把python語言作為一本基礎編程語言進行講授。國內的上海交通大學、同濟大學、北京理工大學、哈爾濱工業大學、北京交通大學等也在《大學計算機》或《程序設計》課程中講授Python 語言[2]。
我們根據Python的學科知識體系[3]與相關崗位典型工作任務特點對知識點和技能點進行組合,形成相應的學習領域。描述學習領域應該包含三個要素:學習目標,學習內容以及學時安排。根據典型工作任務分析結果,將知識與能力有機組合形成學習項目與學習任務。學習項目是以典型工作任務為基礎設計的學習載體,是對典型工作任務進行教學化處理的結果。
Python是一種跨平臺的計算機程序設計語言。是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。該語言具有簡潔性、易讀性和可擴展性等優點,總的指導思想是,對于一個特定的問題,只要有一種最好的方法來解決就好了。和常用的MATLAB相比,Python是一門更易學、更嚴謹的程序設計語言。它能讓用戶編寫出更易讀、易維護的代碼,同時開發者可以用Python語言實現完整應用程序所需的各種功能。
Python語言的學習內容和其它語言類似,主要包括基本的語法規則和應用。如何講解枯燥的語法是每個老師教學過程中的常見問題,我們采取以問題為導向的方法來解決。在具體的案例中去學習語法,鑒于這個思路,本文例舉了兩個常見的案例,讓學生快速了解python語言的語法及其應用。
在C語言編程中經常遇到的問題是條件運算符的嵌套,我們在python中加以解決,基本思路和C語言類似。常見的問題如下:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。我們采用python3完成程序的編寫,完整代碼圖1所示:

圖1 條件運算符的嵌套代碼
在實際編程中經常遇到數組的處理問題,比如求一個3*3矩陣主對角線元素之和。那么我們可以采用雙重for循環控制輸入二維數組,再將a[i][i]累加后輸出。完整代碼如圖2所示:

圖2 雙重循環代碼
當我們依次輸入78,34,23,34,56,33,12,21,2時構成一個3*3的矩陣,運行結果為136.0.
通過這兩個簡單的案例我們發現python語言的便捷性,案例的設計宜與學生的學科專業進一步結合,通過合適的、面向不同學科專業的實例達到既闡釋計算學科的普適思維,又給出面向特定學科專業的范例的教學效果。
新工科人才的培養不僅要與時俱進,同時也需要一定的創新性。在python教學中,我們首先通過幾個具體例子讓大家熟悉編程環境Spyder,了解python語言的基本語法,在此基礎上我們可以拓展思路,提出一些具有發散思維的問題,充分發揮學生的主觀能動性,一個問題可以通過不同的編程去解決。我們將正確的編程代碼進行共享,讓學生直觀得了解不同的思路,同時也能夠與其他人進行對比分析,取長補短,形成一個良性的循環。
近年來,全國大學生電子競賽、各種物聯網大賽、及“藍橋杯”全國軟件和信息技術等各種涉及python語言編程的競賽日益增多。學科競賽主要考察學生的知識應用能力,創新能力以及合作能力。我們可以將歷年的競賽題目作為一個小項目,模擬實際比賽進行分組,一方面可以讓學生更好的使用python語言這個工具,也為以后參加此類比賽打下堅實的基礎。
我們還可以將老師的科研項目融合進來,目前計算機視覺是一個研究的熱點,很多項目都采用視覺處理的方法,尤其是目標檢測已經成為非常重要的研究方向。其中所采用的深度學習方法使用了python語言,我們可以讓學生完成一個簡單的二分類任務,判斷圖片中是否存在某個物體,采集一些樣本作為訓練集和測試集,為學生將來從事科研提供一個良好的平臺。
最后我們鼓勵學生在學習python語言的時候要觸類旁通,要學會各種語言之間的轉換,現在的互聯網提供了一個知識共享的平臺,我們可以在網上看到非常優秀的代碼,如何將其它語言轉換成我們所學的python語言對學生的理解與再應用能力提出了更高的要求,學生在有了一定的編程基礎之后要善于利用開源代碼,這也是將來工作中遇到的實際問題。總之,要學有所用,提高分析問題和解決問題的能力。
我們結合具體的例子對python語言[4,5]進行了實驗,學生可以專注于解決問題的方法。在教學過程中,應不斷的改進現有的教學方法,吸收先進的教學理念,利用好python語言這個有力的武器,充分發揮學生的主觀能動性,讓理論和實踐充分結合。經過不斷的探索,必將逐步完善教學體系,培養出更多的符合新工科建設的優秀人才。