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

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

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

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

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

0 引言

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

我?!半娏ο到y潮流上機計算”實踐課程要使學生理解電力系統的計算機潮流算法和原理,初步掌握利用計算機語言實現潮流計算軟件開發的基本方法[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的安裝?,F以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
主站蜘蛛池模板: 蜜桃视频一区| 亚洲中文字幕日产无码2021| 无码国产伊人| 日韩黄色在线| 欧美三级视频网站| 国产色网站| 久久不卡精品| 亚洲欧洲自拍拍偷午夜色无码| 国产精品高清国产三级囯产AV| 日韩精品高清自在线| 精品国产免费观看一区| 亚洲第一区精品日韩在线播放| 凹凸国产熟女精品视频| 国产美女一级毛片| 深爱婷婷激情网| 国产成人综合久久精品下载| 精品無碼一區在線觀看 | 中文字幕人成人乱码亚洲电影| 一级在线毛片| 国产成人无码综合亚洲日韩不卡| 97视频免费看| 日韩经典精品无码一区二区| 久久青青草原亚洲av无码| 9啪在线视频| 亚洲第一色网站| 久久精品国产一区二区小说| 国产乱子伦一区二区=| 婷婷六月综合网| 亚洲成人黄色在线观看| 欧美激情视频二区| h视频在线播放| 亚洲精品中文字幕午夜| 天天色天天综合| 亚洲日韩日本中文在线| 亚洲第一成人在线| 国产精品专区第1页| 欧美三级视频网站| 韩日午夜在线资源一区二区| 香港一级毛片免费看| 精品伊人久久大香线蕉网站| 日日拍夜夜嗷嗷叫国产| 亚洲无码高清一区| 香蕉伊思人视频| 亚洲中文字幕久久无码精品A| 又粗又硬又大又爽免费视频播放| 国产高清在线丝袜精品一区| 久久一本日韩精品中文字幕屁孩| 亚洲伊人天堂| 欧美人与牲动交a欧美精品 | 国产亚洲精品自在线| 国产在线拍偷自揄观看视频网站| av一区二区三区高清久久| 国内精品免费| 久久人搡人人玩人妻精品| 国产成人做受免费视频| 91成人在线免费视频| 婷婷六月综合网| 国产精品成人不卡在线观看| 国产精品成人一区二区不卡 | 婷婷伊人五月| 国产精品女同一区三区五区| 色网站在线免费观看| 久草视频精品| 日韩专区第一页| 国产亚洲欧美日本一二三本道| 国产精品夜夜嗨视频免费视频| 免费一级大毛片a一观看不卡| 久久精品日日躁夜夜躁欧美| 波多野结衣久久精品| 国产精品一老牛影视频| 国产v精品成人免费视频71pao| 国产美女丝袜高潮| 黄色网页在线播放| 亚洲黄色激情网站| 亚洲精品卡2卡3卡4卡5卡区| 91福利在线观看视频| 婷婷六月综合| 日韩国产高清无码| 亚洲成人77777| 国产aaaaa一级毛片| 亚洲AⅤ波多系列中文字幕| 伊人久久久大香线蕉综合直播|