999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于極限編程的潮流上機實踐教學探索

2012-06-21 09:57:56孫英云劉寶柱
電氣電子教學學報 2012年3期
關鍵詞:程序課程學生

孫英云,董 雷,劉寶柱,艾 欣

(華北電力大學電氣與電子工程學院,北京 102206)

0 引言

“電力系統潮流上機計算”是我校精品課程“電力系統分析基礎”的實踐課程,也是我校電氣工程及其自動化專業學生的必修課程。由于本專業C語言課程安排在大學一年級,而本課程安排在大三春季學期末,中間近兩年多的時間缺乏編程訓練,多數學生還不具有獨立編程能力。同時,學生在理論課的學習中對計算機潮流計算的理解也不夠深刻,還需要在本門實踐課程中加以深化。

我校“電力系統潮流上機計算”實踐課程要使學生理解電力系統的計算機潮流算法和原理,初步掌握利用計算機語言實現潮流計算軟件開發的基本方法[1]。

近年來軟件工程領域涌現出了諸多新成果,由Kent Beck在1996年提出的極限編程是一種新型輕量級的軟件工程方法[2]。該方法成為商業軟件開發的指導原則,其核心理念包括測試優先開發和雙人結對編程等。

我們將極限編程XP(Extreme Programming)思想的兩個核心理念引入到“電力系統潮流上機計算”課程教學當中,取得了較好的教學效果。

1 極限編程核心理念

測試優先是極限編程方法中的一條重要原則,即在編寫正式代碼前先編寫好測試代碼。測試優先的編程思路非常符合面向對象的編程技術原則:即面向接口而不是面向實現。這一方面可以幫助學生分析具體函數的輸入與輸出,實現通過接口設計將復雜程序進行解耦;另一方面也可幫助學生對程序邏輯錯誤進行定位,而這種程序邏輯錯誤在傳統編程方法中通常難于發現。

結對編程是極限編程的另外一條重要原則,即兩位程序員坐在同一臺電腦前合作完成同一段代碼或同一組測試。與兩位程序員各自獨立工作相比,結對編程的好處是通過相互討論,加深程序員對問題的理解,提高代碼的可讀性和質量,同時也可提高編程效率。

由于本專業全部學生都要完成潮流上機實踐課程,機房中的計算機數量不足。同時考慮參與上機實踐的學生計算機水平良莠不齊,我們要求計算機水平較高的學生和水平較低的學生結對,在答辯時問題主要由水平較低的學生回答。兩人結對編程,在碰到困難時通過兩人討論來克服,有效避免了單人編程時由于畏難情緒而消極等待的情況。

2 由淺至深的教學步驟

2.1 Hello World

此一步驟向學生講述VC6中工程的建立,幫助學生回憶C語言課程中編程、調試和運行程序的基本過程。

2.2 讀入輸出數據

計算機潮流計算需要準備數據,本例即是幫助學生完成潮流計算中的數據準備工作。學生應當從IEEE標準算例中讀取母線和線路數據,存入相應的結構數組當中,并通過輸出至屏幕和文件兩種方式驗證讀入數據程序的正確性。

教師首先給出讀入母線數據的示例程序,學生則根據示例程序完成讀入線路數據,并輸出到屏幕和文件的工作。在此步驟完成之后,絕大多數學生均基本掌握了C語言中數組和循環語句的用法,為下一步工作打好了基礎。

2.3 節點導納陣生成

在數據準備完畢之后,即可進行節點導納矩陣的生成工作。教師在本教學步驟中,指導學生利用已有的線路和母線數組建立節點導納陣。

2.4 節點不平衡功率的計算

在節點電壓、相角和節點導納陣已知的情況下,即可進行節點不平衡功率的計算。此例的主要難度在于節點不平衡功率中節點的排列順序和數據文件中給定的節點順序不一致。我們決定引入測試優先的編程思路:教師先行給出平啟動下節點不平衡功率的結果(一個一維數組),學生可利用測試代碼將自己的計算結果和所給結果進行對比,發現不一致結果出現的位置后進行相應的處理。

2.5 Jacobi矩陣的生成

Jacobi矩陣的生成是潮流計算中最困難的部分之一。其困難之處在于利用二維數組表示矩陣以及矩陣元素在矩陣中所處的位置問題。由于在前兩個示例中,學生已學會數組調用及如何處理數組元素排列順序的方法,因此可較順利的完成Jacobi矩陣的生成。

2.6 線性方程組的求解(選做)

由于在電力系統穩態分析的教學中,對線性方程組的計算機求解不做要求,因此教師提供了線性方程組的求解程序及其示例代碼。學生可根據示例程序直接調用該程序即可得出結果。對于部分編程能力較強,進度較快的學生可根據自己的實際情況選做這部分內容。這樣既保證了大多數學生的進度,也可使部分優秀學生有充分發揮其潛力的空間。

教學實踐中發現,在順利完成上述6個步驟的基礎上,絕大多數學生均可順利完成潮流上機實踐,并完成最終的報告。最終答辯時發現學生對潮流計算的理解及計算機能力均有了明顯的提高[3,4]。

3 測試優先的編程思路

在潮流上機實踐中,節點導納陣、節點不平衡功率的計算以及Jacobi矩陣的生成是主要難點。為此,我們采用了測試優先開發原則。下面以節點導納矩陣的生成為例進行說明。具體到潮流上機實踐中,我們提供了如下具體程序結果。

(1)給出節點排列順序,即可給出節點導納陣;

(2)給出節點電壓初值、潮流方程類型(極坐標或直角坐標)和方程排列順序情況下第一次功率不平衡量結果(一維數組);

(3)給出節點電壓初值、方程排列順序、潮流方程類型及變量排列順序后的Jacobi矩陣元素的值(二維數組);

先將節點導納陣、給定節點電壓初值(平啟動)的第一次Jacobi矩陣和節點不平衡功率,以文本文件的方式提供給上機學生。學生在編寫正式程序之前先編寫測試程序,只有當程序計算結果和所給結果一致(絕對值誤差小于1e-5)時測試才能通過。

在實際上機操作時發現,學生在實踐中所出問題主要可分為兩類,其一是公式寫錯,其二是矩陣或數組的索引寫錯。而不論是何種錯誤,測試優先的編程原則都可以幫助學生迅速定位錯誤,顯著提高了編程效率。

4 測試優先方法實踐

下面我們以節點導納陣的編寫為例,具體說明測試優先方法的實施過程。經過對現有單元測試工具的綜合比較之后,我們選用了Cppunit作為本教學實踐中單元測試的工具。Cppunit是開源和跨平臺的用于C++的單元測試工具[5],具有易于使用等、手冊翔實和例程豐富等優點。

在正式使用之前,需要教師在集成開發環境(IDE)中完成Cppunit的安裝。現以VC6為例,采用如下步驟。

1)首先從網站上下載Cppunit,并按照其說明進行編譯,也可直接下載相應操作系統下已編譯好的靜態或動態鏈接庫(lib或dll文件);

2)在VC6中將CppUnit的頭文件和庫文件引入到潮流計算工程當中,如圖1和圖2所示。

圖1和圖2的下方列表框中最后一行分別是Cppunit的頭文件和類庫所在目錄。點擊OK按鈕即可將其添加到VC6的工作目錄當中,這樣學生就可直接在自己的程序中調用Cppunit的類和方法。

3)學生在正式編程之前,需要完成測試代碼的編寫工作,測試代碼主要是判斷所生成節點導納矩陣的元素值和教師所給出的相應結果的誤差值是否小于1e-5。只有節點導納矩陣所有元素均滿足上述條件時才能通過測試。

圖1 Cppunit頭文件配置圖

圖2 Cppunit庫文件配置圖

4)學生在完成測試代碼后,方可進行節點導納矩陣生成代碼的編制工作。當編寫完成且編譯通過后,即可利用測試程序進行測試。如果沒有通過測試,學生可根據Cppunit提供的信息對節點導納矩陣中出錯的元素進行定位,進而對代碼進行檢查并修改,以通過測試。測試通過則說明學生編寫的節點導納矩陣生成程序是正確且可用的。

和傳統的潮流上機教學方法相比,測試優先的編程思路的優勢主要體現在兩個方面:①可以將復雜的潮流程序劃分成相對較小的模塊,每個模塊均可單獨測試,降低了問題的復雜度;②通過測試的代碼不但沒有編譯錯誤,同時也最大限度降低了邏輯錯誤發生的可能性,而后者往往是初學者常犯且難于定位的錯誤。

5 結語

電力系統潮流上機實踐的順利開展對于學生掌握計算機潮流計算流程,加深對穩態分析課程的理解極有幫助。筆者將軟件工程領域的最新理論—極限編程相關理念引入到課程教學當中,進行了有益的探索和嘗試。通過課程結束對所有上課學生的調查發現,不但所有學生都圓滿完成了潮流計算程序,而且90%多的學生都表示這門課程收獲很大,有60%多的學生表示有興趣進行更高難度的編程嘗試。這說明本教學探索在圓滿實現預定的課程目標的同時,也激發了學生動手實踐的興趣。

[1]沈才梁,宋雯霏,高職計算機類課程上機實踐環節教學研究,宜昌:三峽大學學報(人文社會科學版),2005,(27):272-273

[2]Kent Berk,Cynthia Andres.Extreme Programming Explained:Embrace Change(2nd Edition)[M].Addison-Wesley Professional,2004

[3]陳珩.電力系統穩態分析(第三版)[M].北京:中國電力出版社,2007

[4]王錫凡,現代電力系統分析,北京:科學出版社,2003

[5]CppUnit,http://sourceforge.net/projects/cppunit/[EB/OL]

猜你喜歡
程序課程學生
數字圖像處理課程混合式教學改革與探索
軟件設計與開發實踐課程探索與實踐
計算機教育(2020年5期)2020-07-24 08:53:38
為什么要學習HAA課程?
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
趕不走的學生
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
學生寫話
學生寫的話
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 国产高清在线观看91精品| 亚洲精品国产首次亮相| 超碰精品无码一区二区| 亚洲Va中文字幕久久一区| 亚洲欧美精品一中文字幕| 亚洲国产精品不卡在线| 99久视频| 国产精品女同一区三区五区| 色综合天天操| 欧美成人精品一级在线观看| 久久国产精品77777| 久久精品人人做人人爽电影蜜月| 茄子视频毛片免费观看| 91精品人妻一区二区| 一级毛片免费播放视频| 国内自拍久第一页| 成人中文在线| 久久黄色一级视频| 99精品在线视频观看| 国内精品久久久久久久久久影视| 中文天堂在线视频| 亚洲二三区| 日韩精品成人在线| 在线国产毛片手机小视频| 97亚洲色综久久精品| 国产在线拍偷自揄观看视频网站| 在线精品视频成人网| 噜噜噜久久| 毛片手机在线看| 在线另类稀缺国产呦| 99精品久久精品| 爆操波多野结衣| 国产视频欧美| 国产成人综合亚洲欧美在| 精品国产aⅴ一区二区三区| 日韩美一区二区| 午夜国产大片免费观看| 精品国产自在现线看久久| 久久人与动人物A级毛片| 欧美亚洲一区二区三区在线| 97成人在线观看| 在线观看免费国产| 2020精品极品国产色在线观看| 亚洲高清中文字幕| 国产麻豆福利av在线播放| 久久黄色影院| 欧美一级特黄aaaaaa在线看片| 久久综合丝袜长腿丝袜| 狠狠色狠狠综合久久| 人妻无码中文字幕一区二区三区| 欧美a级完整在线观看| 久久中文无码精品| 日韩小视频网站hq| 另类综合视频| 自拍亚洲欧美精品| 在线免费不卡视频| 中国成人在线视频| 亚洲欧美日韩中文字幕在线一区| 日本欧美一二三区色视频| 中文成人在线视频| 欧美精品亚洲精品日韩专| 精品三级网站| 久久天天躁夜夜躁狠狠| 全部无卡免费的毛片在线看| 99在线观看视频免费| 澳门av无码| 性激烈欧美三级在线播放| 日韩国产欧美精品在线| 无码在线激情片| 中文字幕久久精品波多野结| 精品国产污污免费网站| 国产在线八区| 欧美在线中文字幕| 欧美特黄一级大黄录像| 精品91视频| 国产在线无码一区二区三区| 久久黄色免费电影| 尤物成AV人片在线观看| 亚洲日本中文字幕乱码中文| 高清不卡一区二区三区香蕉| 成人在线综合| 天天色天天操综合网|