張權 艾學山
摘要:應用軟件是工科大學生專業課學習的重要工具,開發應用軟件對促進大學生對專業課程相關知識的理解與掌握至關重要。文章以水利應用開發技術課程為背景,提出了工科大學生應用軟件開發課程的建設思路、建設方案,并對近幾年的教學效果進行總結,為工科大學生應用軟件開發類課程的建設提供參考。
關鍵詞:工科;應用軟件開發;教學實踐
中圖分類號:G642? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)27-0163-03
開放科學(資源服務)標識碼(OSID):
1 引言
2016年6月,中國成為第18個《華盛頓協議》正式成員。這標志著我國工程教育質量得到國際認可,工程教育國際化邁出重要步伐[1]。這也為提高我國工程類大學生教育提出新的要求和挑戰。工程教育與產業發展緊密聯系、相互支撐。教育部推動高校主動應對新一輪科技革命和產業變革的挑戰,建設發展新工科。以應對變化、塑造未來為指引,以繼承與創新、交叉與融合、協同與共享為主要途徑,深入開展新工科研究與實踐,推動思想創新、機制創新、模式創新,實現從學科導向轉向以產業需求為導向,從專業分割轉向跨界交叉融合,從適應服務轉向支撐引領。大力發展大數據、云計算、物聯網應用、人工智能、虛擬現實、基因工程、核技術等新技術和智能制造、集成電路、空天海洋、生物醫藥、新材料等新產業相關的新興工科專業和特色專業集群。新工科的建設,一方面要設置和發展一批新興工科專業,另一方面要推動現有工科專業的改革創新。在新工科建設的背景下,培養多元化復合型和創新型工程人才對程序設計類課程的實踐教學提出了更高的要求[2]。
高校工科課程既具有普遍的理論性、又具有特殊的工科領域的專業性、實踐操作性和一定的可創新性,存在著鮮明而突出的專業特點。課程教學既需要解決工科專業基礎理論的認知,也需要解決專業技能的培養,特別是對工程建設的實踐能力[3]。工科專業課程通常具有應用性強、數據量大、模型復雜、方法眾多等特點。為推動傳統工科專業的改革創新,以數據庫為基礎的專業應用軟件成為工科學生的重要工具,開發專業應用軟件不僅對專業知識點的理解、模型的結構、算法的邏輯關系等都是一個全面整理、總結和提高的過程,而且對各知識點的數據需求,參數敏感性分析,計算結果展示等都有很好的認識,對問題的理解也更加透徹。本文結合水文學及水資源工程專業的學科背景,依托水利應用開發技術課程,探索了基于新工科背景下的專業應用軟件開發課程教學理念、教學方法,取得了一定的教學效果,學生們在軟件開發過程中熟練掌握了數據庫的使用和計算機軟件界面設計開發基本技能,鍛煉了嚴謹的思維能力,提高了專業知識的認識水平,增強了專業軟件設計開發的信心。
2 軟件開發工具的選擇
軟件開發工具能夠搭建一個基本的開發框架,編程人員在這個框架上進行開發,無須編寫太多的代碼便可快速開發出企業級應用系統[4],目前可用的軟件開發工具很多,根據工科大學生的專業特點,考慮軟件的可持續性要求,軟件開發平臺的選擇以主流軟件為主,通常主流軟件具有用戶量大、操作簡便、資源豐富等優勢,適用于學生的持續學習。
另外,在選擇軟件開發平臺時要考慮學生課時少的現狀,以生成C/S模式操作界面為目標,選擇容易上手的開發工具,最好與大學生已學過的軟件相銜接,這樣可讓大多數學生都能夠很快掌握,同時使先修的軟件課程得到延伸。在水利應用開發技術課程的軟件開發平臺選擇的過程中,根據專業軟件開發的特點,選用的是微軟公司的Microsoft Visual Studio開發工具包,最早是以Visual C++為程序設計工具,經過幾年的教學實踐后發現學生難以在一個學期內掌握,也很難實現獨立開發專業軟件的目的。后來經過多個語言的比較,最近幾年選擇了C#作為開發語言,重點講解控制臺應用程序和界面應用程序開發。由于C#具有簡潔實用易上手等優勢,逐漸成為目前主流軟件開發工具之一,在互聯網上有海量學習資源,便于大學生在軟件開發過程中遇到問題時及時找到解決方法。雖然C++和C#都是學生在低年級普遍學習過的C語言的基礎上發展起來的優秀程序語言,但C#在界面開發方面更顯優秀。使用Visual C#作為開發工具,不僅是對學生以前C語言學習內容的一次回顧和提升,同時在軟件開發過程中可以實現編程語言的連續性。經過近3年的針對武漢大學水利水電學院本科生教學實踐表明,該開發工具比較適用于本課程的需要,在課堂上受到學生的普遍好評。
3 應用軟件開發課程內容的設計
課程內容本著以學生為中心、循序漸進的原則,從學生現有的知識情況入手,兼顧零基礎學習的同學進行設計,主要從以下幾個方面考慮。
3.1 快速入門
入門是深入學習的基礎,對于一門新的編程語言,首先要能在電腦上正確安裝所需要的開發平臺,微軟提供了Visual Studio的學習版本,在官網即可下載,安裝時選擇C#等主要功能語言模塊,按步驟安裝即可。此外需要能夠新建工程并運行,開始學習新建控制臺應用程序,在編輯界面中給出簡單的代碼并能夠運行出結果,理解各代碼的作用,在掌握了C#語法中幾個關鍵語句后,就可以將以前學習過的C語言的編程內容在C#語言環境中進行重現了,這樣學生就很快掌握了開發C#的控制臺應用程序。學生可以快速入門,一方面節約了學生寶貴的學習時間,另一方面則提高了學生學習的積極性,為課堂教學效果打下了基礎。
3.2 基本語法
C#語言的主要特點是面向對象編程的思想,在基礎及語法上,C#語言基礎與C語言差異不大,可概括地講解;面向對象是目前主流軟件均采用的編程思想,需要較詳細地講解及實例演練。讓學生理解并掌握面向對象編程的精髓所在,這樣對任何的編程題目都能夠很快找到解決思路。通過實例練習,使學生能夠編寫并學會如何調試控制臺應用程序,掌握編程要領及出現錯誤時的調試方法。
3.3 界面編程
控制臺應用程序雖然可以解決專業中需要解決的問題,但不直觀,不方便使用和傳播。窗體界面是目前主要的界面形式,易于使用,把專業軟件轉化成窗體界面軟件有助于軟件的長久使用和分享。首先學習創建窗體,了解窗體的基本結構和界面與代碼間的邏輯關系;其次,通過一些簡單的實例了解窗體應用程序的基本使用方法;再次,學習各種工具箱控件的使用方法,以及菜單欄、工具欄和狀態欄的創建和使用。最后,學習各要素的綜合使用以及一些組件、外部控件的引入方法等。
3.4 數據庫應用
工科的一大特點就是數據量大,如果管理和使用數據成為工科學生的重要能力之一。在學習軟件開發過程中,可以選擇諸如Access,SQL Server等常用數據庫作為數據庫管理工具,學習用C#調用數據庫并使用數據的方法,C#中提供了很好的控件能使數據庫中的數據與界面控件靈活交互,即界面可以從數據庫中讀取數據,也可以向數據庫寫入數據,這樣界面軟件的數據處理能力提升,使用數據庫就更加方便。
3.5 綜合應用軟件開發
有了以上的基礎,就可以著手開發專業領域的各知識點軟件了。在開發時,首先要明確該知識點需要哪些基礎數據、輸入數據和輸出結果數據。基礎數據可以放在數據庫中,軟件啟動或計算時調用;輸入數據可放在界面上,便于設置和調整;輸出結果數據可以表格和圖形形式展示在界面上,在計算完成后直接可以看到,也可同時寫入到數據庫或其他文件(如Excel、txt文件等)中,成為永久文件在需要時查看。因此,可以實現具有一定功能的軟件封裝的開發,從而實現課程教學的預期效果。
4 水利應用開發技術課程的探索與實踐
4.1 水利應用開發的特點
1)數據量大:水利應用開發涉及水文基礎數據、水庫特性資料數據、水電站運行數據、水生態環境變化過程數據等多種數據,且數據多呈現不斷累積、逐漸增大等特點。
2)模型多:在水文預報中就有非常多的模型,通常在應用過程中都是多個模型同時計算,以方便進行結果的互相比較分析;在水庫調度中,根據目標函數的不同也有多個模型需要進行同時計算。
3)求解方法多:無論是水文預報模型還是水庫調度模型均有很多種求解方法,也經常出現對同一個模型應用多種方法同時進行求解的情況。
4)影響因素復雜:對有些知識點模塊的開發(如水文預報)需要考慮的參數非常多,且不容易得到合適的參數值,需要不斷地試算或通過優化算法優化參數。
4.2 界面設計
為使軟件更加方便實用,通常將不必要的信息放在后臺,不在主界面上顯示,主界面主要顯示各參數輸入框、各模型方法的選擇控件、計算結果表和圖形以及計算結果的統計值等信息。基本信息可以通過菜單或按鈕等在其他頁面查詢顯示。界面程序設計好還可以很方便地進行參數敏感性分析,可從各參數的變化與計算結果的變化關系進行統計得到。界面設計可以較好地實現人機交互功能,從而使得開發的軟件具有“用戶友好”的特點。
4.3 教學過程
為了克服部分同學對軟件開發的畏懼心理,在開課前給同學們錄了一段如何使用開發工具的錄像,同學們可以熟悉開發的基本操作,前幾次課程在上課時注重學生的理解程度,課后安排與課程內容相近的內容作為作業,使學生能夠掌握本節內容。當學生有一定基礎后,課后的作業就可以適當加大難度,不局限于課上的內容,還需要在網上查找相關資料才能完成。因此課程內容的設置通常遵循由簡入深的原則,不斷調動學生的積極性,并發揮自身的能動性,投入探索性的軟件開發實踐中。
4.4 結課作業
課程結束不安排考試,而是以結課作業的形式進行考核,在結課的安排上,讓學生每4人一組,每人需要開發一項本專業領域某知識點的軟件,每組共同開發一項指定的專業領域較為復雜的軟件。每組設置組長一名,負責組內成員的分工、進度與協調等工作。同時要求每位同學都要進行結課匯報,以幻燈片形式介紹自己開發的軟件和在小組中的工作。同學們在完成結課作業的過程中,在組內會有充分的交流溝通,組間也經常溝通,最后每位同學都開發出了自己的專業軟件,每組也協作開發出了相對較復雜的基于數據庫的水利專業軟件,起到了互相促進、共同提高的效果。
軟件開發的實踐類課程,以軟件開發形式作為結課大作業,可以有效地考核同學們掌握課程知識和開發實踐能力。此外,結課作業可以采用同學們以往課程內開發過的程序作為基礎,有效地促進了同學們對課程知識體系建設的理念,將以往的專業課知識有效地串聯起來。
4.5 教學效果
在近3年的課程教學實踐中,均取得了較好的教學效果,且教學效果與產出逐年提高。每屆約70人規模的課堂,都能申請10項以上與專業緊密結合的軟件著作權,如水文資料的皮爾遜3型頻率曲線分析、應用遺傳算法進行水文預報新安江模型參數的率定、水庫興利調節計算中的興利庫容-調節流量-保證率關系、水庫調度中的等流量調節計算和水利工程經濟中的財務評價計算等,該課程的學習對同學們自信心的培養、成就感的取得起到了積極作用。該課程的實踐表明,通過引導學生進行創新性的實踐探索,學生便可在課堂內完成最基礎的軟件開發以及軟件著作權申請的實踐,這為本科生進一步深造以及進行更深層次的軟件開發,打下良好的基礎。
當學生們將自己開發的軟件申請了軟件著作權,并能將自己開發的軟件應用于課程實踐和項目研究時,大大促進了學生們對專業的認可程度,這在當前高等教育過于重視分數、績點情況下,是一個很好的嘗試。從而通過提升同學們實踐能力,促進人才培養的新路徑探索。
4.6 教學啟示
工科教育重點在于培養學生的動手實踐能力,尤其解決工程實際問題的能力,這一點不僅限于筆者所在的水利工程行業,對所有工科專業都應如此。軟件開發課程的教學,首先教師要自我提高,能適應新工科教學的需要;其次,合適的軟件開發工具可以起到事半功倍的效果;再次,課程講授及課后練習的設計對提高教學效果發揮重要作用;最后,使學生能夠開發出自己喜歡的軟件作品能起到學生主動學習、持續學習的動力,從而培養學生終身學習的習慣。工科教育中的動手能力,需要通過課程設置,進行積極地培養和引導,這需要教育者在課程設計之時就要做好規劃。在當前我國面臨工科轉型的外部壓力情況下,是對工科人才培養,尤其是實踐動手能力的培養,本課程的教學實踐提供了較好的教學改革嘗試。工科教育開展得好,可為社會不斷輸送工程技術人才,這對于當前我們諸多領域面臨“卡脖子”問題來說,是值得格外重視的教育方面。
5 結束語
工程改變世界,行動創造未來。在當前通識教育已經大規模開展之時[5],我們需要思考專才的教育。而專業應用軟件是工科大學生的重要學習工具,工科大學生既有理論基礎,又有較強的實踐動手能力,在任課老師的正確引導下,提高自己動手開發專業應用軟件,不僅可以提高軟件編程能力,同時也對專業知識有了更深刻的認識,起到事半功倍的效果。應用軟件開發能力的培養也為大學生繼續學習深造或參加專業領域工作都打下了堅實的基礎。專業軟件開發課程的學習,對增強學生的就業創業能力,培養具有較強行業背景知識、工程實踐能力、勝任行業發展需求的應用型和技術技能型人才具有重要的推動作用。隨著我國對新工科建設行動的常態化,培養出更多優秀的工科人才,為應對我國在發展過程中不斷面臨的各種挑戰,支撐國家的創新發展將起到重要作用。
參考文獻:
[1] 賀迎春,熊旭.中國成為《華盛頓協議》第18個正式成員[EB/OL].(2016-06-02)[2021-10-18].http://edu.people.com.cn/n1/2016/0602/c1006-28407215.html.
[2] 高俊鋒,張淑麗,劉歡,等.新工科背景下程序設計類課程的實驗教學改革[J].高校實驗室科學技術,2019(4):42-44.
[3] 王廣政,李相峰,段金輝,等.基于能力培養的高校工科課程混合式教學模式構建[J].教育現代化,2018,5(33):200-201.
[4] 王永連,李樹虎,張麗娜.軟件開發平臺綜述[J].電腦編程技巧與維護,2018(4):65-66,69.
[5] 張權.關于我國高等通識教育的若干思考[J].教育教學論壇,2019(42):44-45.
【通聯編輯:謝媛媛】