1. 計算機圖形學論文
計算機圖形學(Computer Graphics,簡稱CG)是一種使用數學演算法將二維或三維圖形轉化為計算機顯示器的柵格形式的科學。
簡單地說,計算機圖形學的主要研究內容就是研究如何在計算機中表示圖形、以及利用計算機進行圖形的計算、處理和顯示的相關原理與演算法。圖形通常由點、線、面、體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性組成。從處理技術上來看,圖形主要分為兩類,一類是基於線條信息表示的,如工程圖、等高線地圖、曲面的線框圖等,另一類是明暗圖,也就是通常所說的真實感圖形。
計算機圖形學一個主要的目的就是要利用計算機產生令人賞心悅目的真實感圖形。為此,必須建立圖形所描述的場景的幾何表示,再用某種光照模型,計算在假想的光源、紋理、材質屬性下的光照明效果。所以計算機圖形學與另一門學科計算機輔助幾何設計有著密切的關系。事實上,圖形學也把可以表示幾何場景的曲線曲面造型技術和實體造型技術作為其主要的研究內容。同時,真實感圖形計算的結果是以數字圖象的方式提供的,計算機圖形學也就和圖象處理有著密切的關系。
圖形與圖象兩個概念間的區別越來越模糊,但還是有區別的:圖象純指計算機內以點陣圖形式存在的灰度信息,而圖形含有幾何屬性,或者說更強調場景的幾何表示,是由場景的幾何模型和景物的物理屬性共同組成的。
計算機圖形學的研究內容非常廣泛,如圖形硬體、圖形標准、圖形交互技術、光柵圖形生成演算法、曲線曲面造型、實體造型、真實感圖形計算與顯示演算法,以及科學計算可視化、計算機動畫、自然景物模擬、虛擬現實等
2. 計算機軟體技術基礎淺談論文
計算機軟體技術基礎是模擬工程與自動化專業的核心課程之一,該課程是整合課程,主要包括c++面向對象程序設計、演算法與數據結構、操作系統、軟體工程等方面的內容,知識龐雜且難以掌握。下面是我給大家推薦的計算機軟體技術基礎淺談論文,希望大家喜歡!
《計算機軟體技術基礎課程的案例建設》
摘要:案例教學能有效提高學生分析問題和解決問題的能力,是現代教育的常用教學方法之一。文章分析案例教學中的案例特徵,以實際工程項目的一個子系統為背景,設計實時模擬監視系統案例並介紹案例的具體建設情況,指出該案例對提高學生的學習興趣以及分析問題和解決問題的能力具有明顯的效果。
關鍵詞:軟體技術基礎;案例教學;案例建設;實時模擬;監視系統
1、計算機軟體技術基礎課程中案例教學的必要性
計算機軟體技術基礎是模擬工程與自動化專業的核心課程之一,是一門應用性很強的專業基礎課。該課程是整合課程,主要包括c++面向對象程序設計、演算法與數據結構、操作系統、軟體工程等方面的內容,知識龐雜且難以掌握。學生在學習該課程之後常常感到困惑:所學知識有什麼用,怎樣運用所學知識?一些學生雖然能夠在考試中考出高分,卻不知道怎樣解決實際問題。如何使學生認識所學知識的用途,融會貫通並靈活運用,是這門課應重點考慮的問題。目前,案例教學在法律類和管理類課程教學中的地位和作用已在教育界達成共識。教育部高等學校計算機科學與技術教學指導委員會於2006年6月發布了《關於進一步加強高等學校計算機基礎教學的意見暨計算機基礎課程教學基本要求(試行)》白皮書,明確指出在教學方法和手段上運用案例教學的必要性,因此,將案例教學作為一種教學方法引入工科類課程的教學,具有可行性和必要性。
2、認識案例
案例教學法就是在教師的指導下,根據教學目的和要求,以案例為基本素材,把學生帶人特定的教學情境中進行思考,以此加深學生對基本原理和概念的理解,進而培養並提高學生運用理論知識分析問題和鋸決問題能力的一種教學方法。
案例是案例教學的基礎,離開了案例,案例教學就無從談起。案例與一般教學中的例題有著本質區別,案例教學中的案例是將多個知識點融人一個整體來解決實際問題,涉及的知識面廣,知識間具有連貫性和系統性,涵蓋的知識具有綜合性的特點,知識和原理蘊藏於案例之中。一般教學中的例題往往是配合某一章節或某一知識點,從某個角度、某個方面或某個層次反映所學理論和方法,起著驗證和說明作用,常常帶有為講知識而杜撰例子的痕跡,各個例題之間相對獨立,涵蓋的知識單一,知識和原理孤立地呈現在學生面前。一般說來,工科類課程的案例應具有以下基本特徵。
1)真實性。
客觀真實性是案例的基本特徵。教學案例應源於真實,取材於工程實際或科研課題,但是又要高於真實。為了突出主題,可以對真實做一定的刪減處理。
2)綜合性。
案例應是綜合知識的載體,既要以學生已掌握的知識為依據輻射足夠多的知識點,又要在匹配教學內容的基礎上對知識有一定程度的擴展。
3)完整性。
案例是完整過程的載體,涉及了解背景、查詢資料、分析信息、發現問題、探求方法、採取行動、解決問題的全過程。
4)啟發性。
案例教學著眼於能力的培養,希望得到的不是案例的標准答案,而是解決問題的思維方法和能力。案例中,解決問題的方式是開放性的,可以留給學生想像的空間和發揮的餘地。
5)實踐性。
學生可以對案例進行復現、改進和完善,也可以按照自己的思考去實現,增強理論應用於實際的能力,實現從理論到實踐的轉化。
3、案例建設
案例教學的前提是高質量的案例,高質量的案例既要覆蓋足夠的知識,又要控制合適的規模。規模過小,則不能溶入足夠的知識,也不能提供足夠的研討與思維空間;規模過大,則在短時間內難以被學生接受,不能得到預期的教學效果。筆者以實際工程項目衛星實時模擬系統的一個子系統為案例背景,在突出主題的前提下,進行了適當的詳略及刪減處理,形成了“實時模擬監視系統”案例。
3.1 案例背景簡介
衛星實時模擬系統能夠對衛星的方案、設計、集成、測試和運行各個階段進行模擬驗證,是提高衛星總體設計水平的重要手段,其網路關系連接如圖1所示。在此系統中,模擬模型解算、物理設備介面等苛刻實時約束的節點通過反射內存互聯,構成實時內環,外環則通過普通網路互聯,將人機交互、可視化、數據處理等實時約束弱的節點互聯,內、外環都可以根據需要擴充且內環不受外環影響,苛刻實時得到保障。轉發計算機完成內存數據的提取並轉發外環,模擬管理計算機則同時管理內、外環系統。衛星模擬監控是衛星實時模擬過程中的重要一環,它將抽象的模擬活動形象化,並及時將信號數據以各種方式反饋給用戶,以利於用戶分析、理解和決策。衛星實時模擬監控系統,能夠模擬通過控制、監視和測量星上設備的工作狀態實現實時連續地記錄工作過程、測試數據和描繪曲線。圖1中,人機交互計算機、曲線顯示計算機和三維顯示等外環計算機共同實現模擬監視功能。我們將人機交互計算機和曲線顯示計算機的功能提取出來,要求系統具有一定的通用性,能夠適應不同監視任務和不同數據類型,形成“實時模擬監視系統”案例。
3.2 實時模擬監視系統案例
實時模擬監視系統的工作原理為:轉發計算機完成內存數據的提取並轉發外環,外環上的實時模擬監視系統首先進行初始化,隨後自動生成系統主界面。系統支持兩種運行模式:監視模式和回放模式。在監視模式下,系統既要處理主界面信息,又要處理網路數據。主界面信息的處理包括響應用戶交互消息、更新實時監視界面、實時繪制曲線;網路數據的處理包接監聽網路埠,接收、解析和保存數據包,將有效數據寫入共享數據結構,供給系統繪制曲線。在回放模式下,不再需要對網路進行監聽,直接讀取監視模式下保存的原始數據文件,然後進行相應處理即可。
為實現上述目的,使系統具有一定的通用性,我們設計了如下方案:
(1)在軟體工程思想指導下,進行需求分析、總體設計、詳細設計、編碼實現以及綜合測試。通過該案例,讓學生對軟體工程思想指導下的軟體開發全過程有一個感性認識;
(2)採用多線程技術實現監視模式下的主界面信息處理和網路數據處理,僅用單線程實現回放模式;
(3)設計一個數據包發送測試程序,模擬轉發計算機的功能。
為此,我們結合本課程的基本知識點將系統的主要功能模塊劃分為界面管理和數據處理兩大部分,界面管理部分主要承擔主界面信息的處理,數據處理部分則主要負責數據的處理。
3.2.1 界面管理
系統運行過程中始終需要對系統主界面進行管理。從運行初期的生成主界面,到運行中的監視過程的顯示,再到最終的系統結束,都需要對主界面進行即時的調整。為了提高通用性,系統採用基於配置文件的方式,通過用戶提供的配置文件,動態改變系統監視任務,也就是說,系統能夠改變每次運行時的任務,主界面顯示的內容具有不確定性。
1)讀取配置文件,獲取初始化信息。
系統運行之前,需要進行初始化,這就需要系統讀取配置文件,包括全部信號、實時顯示信號、數據包類型等配置文件。用戶必須按照約定的正確格式提供配置文件,否則系統有可能無法正確識別相關信息。從軟體工程的角度,配置文件的設計與確定應在總體設計階段完成。配置文件的類型、組織方式以及數據正確性的檢驗,都是學生可以自由發揮和擴展的內容。
2)自動生成實時監視界面。
監視對象的不確定性使得系統的監視界面無法固定,然而,不能將界面的生成工作完全交給用戶完成,這就需要設計一種適用於不同監視任務的界面生成演算法,使系統將界面生成工作承擔下來。另外,系統界面的尺寸等信息是用戶所不知道的,因此被監視的信號在系統主界面中的顯示位置無法由用戶設定,這就需要系統自己完成界面的排布任務。因此,要求設計一個具有較強通用性的監視界面自適應生成演算法,這部分涉及演算法設計和計算機系統配置的獲取等基礎知識,演算法設計是學生能夠自由發揮並出彩的部分。
3)定時更新監視界面。
為了實現實時監視功能,系統需要對監視界面進行定時更新,以顯示當前被監視信號的實時數據。為了滿足用戶的不同需求,系統提供0.5s、1s、2s三種刷新頻率。系統可以根據用戶選擇的刷新頻率對主界面進行更新。這部分主要涉及定時器的使用。
4)處理用戶交互消息。
系統需要對用戶的交互消息進行處理,主要為滑鼠消息,包括運行模式的切換、模擬的開始與結束、載入歷史數據包文件等。這部分涉及所選編程環境下的消息響應機制問題。
3.2.2 數據處理
系統在運行過程中,需要對數據包進行接收、解析和存儲,還要為曲線繪制提供原始數據,因此需要設計一個專用的數據結構。
1)接收網路數據包。
在監控模式下,系統既要處理主界面信息,又要通過網路接收數據包。為了避免“漏掉”數據包,系統必須對網路持續進行監聽。如果主線程將大量時間用在網路監聽上,勢必無法對用戶的交互做出及時響應。因此,需要將數據包的接收放在一個單獨的線程中。這涉及操作系統進程管理的相關概念,是多線程程序設計技術的典型應用;也涉及網路通信技術,需要了解網路通信協議等相關知識。
2)解析數據包。
在接收到數據包後,需要將數據包內的數據進行解析,獲得數據包內的數據,將最新的數據更新至系統對應的變數中,以供實時顯示。解析數據包涉及網路通信程序設計技術。
3)保存原始數據包。
系統要求有回放功能,因此需要將接收到的數據包寫入文件,進行永久保存。數據包的保存有兩種方式:解析後按段保存和作為整體進行二進制保存。第一種方法耗時,需較大工作量。第二種方法簡便,工作量小。顯然第二種方法更適合本系統。由於系統必須適應兩種類型的數據包,因此,進行數據保存時,採用以形參類型為區別的方式進行同名函數的重載,實現兩種類型數據包文件的存儲。這部分功能涉及C++面向對象程序設計中的重載技術以及文件操作技術。
4)讀取數據文件,獲取數據包。
在回放模式下,系統不再對網路進行監聽,不進行數據包的接收,需要通過讀取之前保存的原始數據包文件獲得數據包。原始數據包文件保存的是二進制形式的數據包,系統每次讀取之後需要對數據包進行解析,這與接收到數據包的過程是一樣的,不同之處在於回放過程不再需要將數據包進行保存。這涉及C++面向對象程序設計中的文件操作,同時,通過監視模式下的多線程程序設計與回放模式下的單線程程序設計的對比,使學生真切感受並理解多線程程序設計技術及其應用場合等。
5)共享數據。
系統嵌套了曲線繪制模塊,因此,數據處理與曲線繪制之間需要有一塊共享數據內存。在收到數據包並解析後,馬上將有用的信息寫入該共享內存。寫入操作由數據包接收線程處理,讀取操作由主線程內的曲線繪制模塊完成,因此,需要對兩個線程進行同步。這涉及數據結構的設計和操作系統的同步與互斥。
6)快速查找。
系統支持大數據量下的模擬監視,對數據的快速查找有較高的需求,因此,需要設計支持快速查找的哈希表數據結構,包括哈希函數的確定、沖突的解決等,這涉及數據結構的哈希表技術。
4、結語
“實時模擬監視系統”案例,涵蓋了軟體工程、c++面向對象程序設計、演算法與數據結構、操作系統和網路通信等計算機軟體技術基礎課程及其先導與後繼課程的知識點,是一個與學生所學專業密切相關的實際應用系統,容易引起學生的興趣,也容易被學生理解和接受。這樣的案例既與教學目標相吻合,又便於教師駕馭和把握。
從學生反饋的情況看,學生普遍認為,案例教學法方式新穎,實時模擬監視系統案例與專業基礎結合緊密;能引導學生積極思考,提高學生的學習興趣以及分析問題和解決問題的能力。該案例在教學過程中取得了明顯的教學效果。
為了更好地開展案例教學,我們必須把建設高質量的案例作為重點來抓,選擇合適的案例背景,制定合理的案例建設計劃。實踐證明,只有經過長時間的積累、認真的思考、精心的選擇和多次教學實踐,才能獲得高質量的教學案例;只有經過團隊的長期努力,才能建設高質量的教學案例庫。
點擊下頁還有更多>>>計算機軟體技術基礎淺談論文