前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的計算機編程需要的知識主題范文,僅供參考,歡迎閱讀并收藏。
一般進入大學后,學生才會逐漸的接觸到計算機C語言,計算機C語言是一門新的計算機語言,其主要是進行計算機編程,這些計算機程序在實際工作中有很大的作用。雖然計算機C語言現(xiàn)已廣泛流行,有很大的作用,但是對于學生而言仍然是一門很難的學科,學生很難對C語言進行掌握,不理解C語言,但是學生一旦學會C語言,就會進行各種程序的編寫,發(fā)現(xiàn)C語言的魅力。在本文中,我們對C語言編寫程序的技巧進行學習。
一、計算機C語言內(nèi)容
想要學習計算機C語言并不是一件很難的事情,C語言編寫程序是一件水到渠成的事情,C語言主要課可以分成這幾個模塊:(1)語言運算符和運行順序。(2)C語言的基本程序結(jié)構(gòu),順序、選擇以及循環(huán)。(3)數(shù)組。(4)函數(shù)。(5)指針。(6)結(jié)構(gòu)體和共用體。(7)文件。C語言的運算符和運算順序是學習計算機C語言的基礎,也是計算機C語言的獨特之處,計算機C語言的運算非常的靈活,運用也非常的豐富,當一個運算中出現(xiàn)多種運算時,在組合運算表達式中,就會出現(xiàn)優(yōu)先運算順序和結(jié)合規(guī)則。計算機C語言是三種基本程序的結(jié)構(gòu),這三種程序結(jié)構(gòu)是學習計算機C語言必須掌握的程序結(jié)構(gòu),所有的程序結(jié)構(gòu)都是按照執(zhí)行順序進行的,在執(zhí)行程序的過程中,會根據(jù)輸入的任務選擇結(jié)構(gòu),并不斷的執(zhí)行相關(guān)的任務指導滿足選擇結(jié)構(gòu)的條件[1]。數(shù)組其實就是一組數(shù)據(jù)的有序結(jié)合,在計算機C語言編寫程序中需要對有共同性質(zhì)的數(shù)據(jù)進行處理,根據(jù)數(shù)組維數(shù)的不同,將其分為一維數(shù)組和多維數(shù)組,在計算機C語言編寫程序中,對數(shù)組的引用,可以為某些編程提供更為方便的環(huán)境。函數(shù)是計算機C語言的重要組成部分,在計算機C語言中每一個函數(shù)都有特定的單一功能,通過函數(shù)模塊的調(diào)用將其特定的功能實現(xiàn)。在計算機C語言編寫程序時,引入函數(shù)主要是為了將其中出現(xiàn)的重復代碼解決以及滿足編寫程序的結(jié)構(gòu)化和模塊化等需求,根據(jù)不同的使用方法可以將函數(shù)分成不同的種類,從定義上分,可以將函數(shù)分成有返回值函數(shù)和無返回值函數(shù),從作用上分,可以將函數(shù)分成內(nèi)部函數(shù)和外部函數(shù),從使用上分,可以將函數(shù)分為用戶函數(shù)和系統(tǒng)函數(shù)。在計算機C語言編寫程序的過程中,應用作為廣泛的一種數(shù)據(jù)類型就是指針,指針是計算機C語言的精華部分,指針也是計算機C語言編寫程序的一個特征。通過指針變量獲取各種數(shù)據(jù)結(jié)構(gòu),將數(shù)組和字符的使用簡化。計算機C語言編寫程序中經(jīng)常使用的一種數(shù)據(jù)類型是結(jié)構(gòu)體和共用體,主要是對多個不同的數(shù)據(jù)組成的實體進行描述,其中每一個數(shù)據(jù)項就是一個實體,將這些數(shù)據(jù)項結(jié)合在一起就形成了一個特定的單元,也就是結(jié)構(gòu)體。結(jié)構(gòu)體和共同體可以將計算機C語言編程中的數(shù)據(jù)類型和數(shù)組類型結(jié)合成一個整體。計算機C語言編程中文件是相關(guān)數(shù)據(jù)的有序結(jié)合,從用戶的角度,可以將文件分為設備文件和普通文件,從儲存方式上進行分類,可以將文件分成二進制碼文件和ASCII碼文件,當然從文件的讀寫方式進行分類,可以將文件分成非緩沖文件系統(tǒng)和緩沖文件系統(tǒng)[2]。
二、計算機C語言編寫程序技巧
計算機C語言最好的學習方法就是練習,也就是說要多上機,只有在計算機上運行出來的程序,才是正確的程序,否則將是不正確的C語言編寫程序,學習計算機C語言編寫程序的主要技巧有:
1.根據(jù)示例程序,注重示例程序。從示例開始學習計算機C語言編程,是學習新知識的開始,通過對示例的練習,逐漸形成自己的思考模式。在進行數(shù)據(jù)結(jié)構(gòu)編程時,需要對相關(guān)的程序進行編寫,這時對每一種數(shù)據(jù)結(jié)構(gòu)都有了一定的了解,這是運用數(shù)據(jù)結(jié)構(gòu)進行編程的基礎,熟練的運用數(shù)據(jù)結(jié)構(gòu)是對數(shù)據(jù)結(jié)構(gòu)有了深刻的理解和透徹的領悟。在學習計算機C語言編程之前,通過對示例的模仿,了解編程的基本步驟,幫助進行程序的編寫。
2.多練習程序編寫。程序編寫不能停留在對理論知識的掌握上面,需要通過實踐進行鍛煉和提升,想要提高計算機C語言編程能力,就需要多進行上機練習。上機可以將學生的動手操作能力提升,在實踐中將學習到的理論知識進行運用,通過上機,將自己在理論知識學習中的薄弱之處進行指出,然后進行改進,實現(xiàn)計算機C語言編程的效果,提高實際操作動手能力。
3.在編程時,注重綜合知識的運用。計算機C語言編程需要大量的運用綜合知識,包括C語言的7項基本內(nèi)容,同時還要執(zhí)行不同的程序結(jié)構(gòu)。綜合知識的運用,有利于編寫出優(yōu)秀的計算機C語言程序,將理論知識運用到實際的編程中,將編程效果提升。
4.掌握計算機C語言基礎知識。編寫的計算機C語言程序,雖然可以在計算機上運行,但是,掌握住扎實的理論知識是基礎,在計算機C語言編程中應該明白掌握基礎知識對于對于上機的重要性,沒有基礎知識作為上機的前提,上機操作編程工作是沒有辦法進行的,所以需要掌握住扎實的理論知識[3]。
三、小結(jié)
隨著信息化腳步的加快,計算機C語言在生活中得到普遍的應用,在工作有著重要的意義,在計算機C語言編寫程序中,掌握相應的技巧,是學習計算機C語言編程的基礎也是可靠保證,掌握住基礎理論知識,和上機技術(shù),在計算機C語言編寫程序中有不可替代的作用。
參考文獻:
[1]任國英.計算機C語言編輯程序技巧探討[J].赤峰學院學報(自然科學版),2012;01
[2]秦興.探究計算機C語言編輯程序技巧[J].信息與電腦(理論版),2012;6
計算機科學的很多分支,比如:程序設計、信息技術(shù)、網(wǎng)絡技術(shù)、信息安全等,基本上都要依靠一定的數(shù)學功底。因此對于一個計算機專業(yè)的學生來說,數(shù)學修養(yǎng)是非常重要的。推理、創(chuàng)新、邏輯思維、分析問題解決問題等方面的能力都得到了一定的體現(xiàn)。
一、數(shù)學在計算機圖形學中的應用
1、三角學和代數(shù)
三角學和代數(shù)是計算機圖形學中最基礎的知識。高中時期所學的數(shù)學,最重要的內(nèi)容就是三角學和代數(shù)了,它們可以幫助我們解決類似求幾何圖形邊長等簡單的問題,也可以幫助我們從方程中解答出一個或者多個的根。
2、線性代數(shù)
只要想在計算機圖形學領域中工作,扎實的線性代數(shù)基礎是必需的。而線性方程組與矩陣是其基礎與核心。圖形學自始至終離不開矢量,我們常常抽象出的幾何數(shù)值表示法,比如坐標X\Y\Z,就被稱之為矢量。一般我們也可以用矢量來描述平移、縮放或者旋轉(zhuǎn)。在圖形學里矩陣的表述也相當流行,許多問題都要用到矩陣方程組的數(shù)值解法。由此我們可以看出線性代數(shù)的思想貫穿于整個計算機圖形學中。
3、微積分學
數(shù)學中的基礎分支。內(nèi)容主要包括函數(shù)、極限、微分學、積分學及其應用。求曲線的切線問題,求長度、面積、體積、重心問題等都需要用到微積分。它是一種很有用的工具,是高級計算機圖形學的重要成分。也有許多研究者用微積分學的術(shù)語來描述他們的問題和解決方法。微積分學是一能為你打開計算機圖形學與后繼的數(shù)學學習之門的課程。
4、微分幾何學
數(shù)學的一個分支學科,應用微分學來研究空間中的曲線、曲面等圖形性質(zhì)的數(shù)學分支。以光滑曲線、曲面作為研究對象,由曲線的弧線長、曲線上一點的切線等概念展開。討論的重點內(nèi)容則是平面曲線在一點的曲率和空間的曲線在一點的曲率等。如果需要建模,也就是說用曲線和曲面來創(chuàng)造形體,則微分幾何學是基礎。
5、概率論與統(tǒng)計學
概率論是研究隨機現(xiàn)象數(shù)量規(guī)律的數(shù)學分支。統(tǒng)計學是通過搜索、整理、分析數(shù)據(jù)等手段,以達到推斷所測對象的本質(zhì),甚至預測對象未來的一門綜合性科學。概率論與統(tǒng)計學則涉足到計算機圖形學的許多領域。比如:計算機圖形學涉及人類學科等的相關(guān)領域,例如虛擬現(xiàn)實和人機交互(HCI),就需要統(tǒng)計學來分析數(shù)據(jù)。計算機描繪真實世界牽涉到各種未知事件的概率問題,就需要用到概率論進行分析。
二、數(shù)學在編程中的應用
關(guān)鍵詞:VB編程土木工程學習 應用 淺談
Abstract: with the development of society and the progress of science and technology, people in all walks of life from personnel of ability constantly increasing demand, for civil are no exception. In order to realize the safety of structures, practical, beautiful, economy, accurate, to the computer's dependence on civil engineering are getting more and more serious. Therefore, as a study of civil engineering in the school student, understand and master the computer technology is very important, especially in computer programming. This paper, the author will with computer programming of the Visual Basic programming (hereinafter referred to as VB programming) as an example on computer programming in civil engineering application of learning.
Keywords: VB programming civil engineering study on application
中圖分類號: TP313文獻標識碼:A 文章編號
1.引言
VB(Visual Basic)是微軟推出的基于Windows環(huán)境的軟件開發(fā)工具。它的主要特點為:1)、可視化;2)、面向?qū)ο螅?)、采用事件驅(qū)動的編程模式;4)、結(jié)構(gòu)化程序設計語言。其編程過程中主要應用的是窗體(Form)和幾種基本的控件,如命令按鈕(Command)、標簽(Label)和文本框(Text)并對其進行編程控制。在應用VB編程之前,首先分析問題,確定程序要完成什么任務,然后按下面的步驟創(chuàng)建應用程序:
1)、新建工程,并在工程中添加窗體
2)、設計窗體界面
3)、設置對象的屬性
4)、編寫程序代碼
5)、運行、調(diào)試程序(重復3、4、5步)
6)、保存工程、窗體文件
7)、編譯程序,產(chǎn)生EXE文件
VB編程是幾種計算機程序中較為易學的一種,也是為大多數(shù)在校大學生所掌握的一種計算機編程。它的應用十分廣泛,四則運算計算器、體彩模擬器、紅綠燈系統(tǒng)及俄羅斯方塊等小游戲都可以通過VB編程加以實現(xiàn)。基于它簡單易學、方便實用的特點,我們可以將它應用到我們的日常學習當中,用程序語言去詮釋我們的想法,解決難題。下文中,筆者就將以計算機編程中的VB編程為例淺談計算機編程在土木工程學習中的應用。
2.計算機編程應用到土木工程學習中必要性
2.1、是提高學生學習能力的需要
對于土木學子來說,僅學好專業(yè)知識不再意味著能夠走向成功,時代在改變,對我們的要求也在改變,學會使用計算機工具才能夠事半功倍。在我們的課本當中,有很多數(shù)據(jù)表格,我們通過查表計算出最終結(jié)果。顯然,表格中的數(shù)據(jù)都是約數(shù),并且書中只列出了部分數(shù)據(jù),其他的數(shù)據(jù)需要通過“內(nèi)插法”求得,計算過程不僅復雜而且不夠精準,這對一個小小的作業(yè)題目來說可能造不成多大的誤差,但對于一個龐大的工程項目來說就可能造成巨大的誤差,而運用計算機,將其計算過程編輯成程序,計算出來的結(jié)果精度和效率將明顯提高,所造成的誤差將大大的減小。在這個過程當中,學生既能夠發(fā)揮自己的計算機水平,學以致用,又能夠提高自身的動手能力和辦事效率;其次,學生的學習積極性也得到了極大的提高,同時學生應用計算機編程解決實際問題的思維能力也能得到進一步的完善和提高。
2.2、是鞏固專業(yè)知識的需要
計算機編程對于土木學子來說不僅僅是將公式寫成代碼的過程,還是一個對公式再認識的過程。在公式中,不同的字母具有不同的定義,同時也代表不同的運算規(guī)律。將復雜的公式轉(zhuǎn)化成計算機能夠識別的代碼的過程中,我們對字母的具體含義會有個更加深刻的認識,這樣有助于加深對知識的理解和應用,從而起到鞏固知識的作用。
2.3、是提高就業(yè)競爭力的需要
隨著社會的發(fā)展和科技的進步,各行各業(yè)對其從業(yè)人員的綜合技能要求越來越高,土木從業(yè)人員也不例外。眾所周知,當今學習土木工程的大學生就業(yè)形勢依然嚴峻,不少學生畢業(yè)后找不到工作,自身能力不足,實難找到稱心如意的工作。另一方面,很多工程單位又找不到理想的人才,它們需要懂土木工程的人才,更需要能夠?qū)⒂嬎銠C和土木工程融會貫通,能夠用計算機語言解決工程問題的人才。為何我們不投其所好,抓住這個契機,學好專業(yè)知識的同時學好計算機??偟恼f來,會計算機編程的土木人不會找不到理想的工作。
2.4、是成就事業(yè),取得成功的需要
土木行業(yè)是一個傳統(tǒng)的行業(yè),長久以來人們都是通過紙筆來進行各種數(shù)據(jù)的計算,這樣的計算過程不僅繁瑣,效率還相當?shù)?,并且計算出來的結(jié)果的正確性和精度難以保證,這就成為了行業(yè)發(fā)展和個人成功的極大阻礙。所以對于在校的土木學子,學好計算機編程,將其應用到學習當中,培養(yǎng)自己應用計算機編程解決問題的思維和能力,可以為將來的實際工作打下堅實的基礎,提高辦事精度和效率,打敗競爭對手、成就事業(yè)、取得成功。
3.計算機編程在土木工程學習中的具體應用
VB編程的基本步驟在土木工程學習中的應用同引言敘述步驟相同,下面筆者就以土木工程學習中土力學教材《土力學地基基礎》(第4版,清華大學出版社)中求解地基中的附加應力為例(例題3.1,P93)淺談VB編程在土木工程學習中的應用。
例:已知某矩形地基,長度為l=2.0m,寬度為b=1.0m,作用有均布荷載p=100kPa,計算此矩形面積的角點下深度為z=1.0m處的附加應力σz。
首先,在理解題意的前提下,為了在VB中實現(xiàn)求解該問題的附加應力值,我們先通過已知條件設置一個窗體,并按要求預設好一系列所需要的控件:五個標簽、五個文本框和兩個命令按鈕。
接著根據(jù)矩形面積受均布荷載作用下附加應力公式:“,m=,n= ”,對各按鈕控件進行代碼編輯,代碼如下:
Private Sub Command1_Click()
p = Val(Text1.Text)
b = Val(Text2.Text)
l = Val(Text3.Text)
z = Val(Text4.Text)
m = l / b
n = z / b
t = (m * n / (Sqr(1 + m * m + n * n))) * (1 / (n * n + m * m) + 1 / (1 + n * n))
αc = (Atn(m / (n * Sqr(1 + m * m + n * n))) + t) / (2 * 3.1415926)
σz =αc * p
Text5.Text =σz
End Sub
最后,我們運行該程序,在對應的文本框中輸入對應的已知數(shù)據(jù):均布荷載值P=100kPa,矩形短邊b=1,矩形長邊l=2,點深度值z=1,點擊確定按鈕,就可以得到該條件下深度為1.0m處的附加應力值σz= 19.9941076008979kPa。
另外我們可按照課本上的方法,通過查表的方式,求出σz=19.99kPa。不難看出通過程序求解出來的附加應力要精確的多,同時,有了這樣一個小程序,在解答類似問題時的效率會得到大大地提高。
4、結(jié)語
以上就是VB編程在土木工程學習中的一個簡單應用,讀者可以試著自己完成。VB編程在土木工程學習中還有很多的具體應用,再如土力學中的分層總和法計算地基沉降等,讀者若有興趣可以試一試,筆者在此就不一一列舉了。作為一個土木學子,要想提高自己的就業(yè)競爭力找到理想的工作,要想贏得事業(yè)成就未來,掌握專業(yè)知識僅僅是一個前提,我們還要做的就是掌握一些能夠為專業(yè)服務的工具。計算機作為新時代的產(chǎn)物,對各行各業(yè)從業(yè)人員來說都是舉足輕重的。在校的我們應該努力學習計算機知識,掌握計算機編程,并將其應用到我們的學習及以后的工作當中,做一個懂計算機、懂計算機編程的土木人。
參考文獻
【1】尹紫紅,土木工程概論,西南交通大學出版社,2009;
【2】王曉敏,徐曉敏,Visual Basic程序設計(第二版),中國鐵道出版社,2008;
【3】陳希哲,土力學地基基礎(第4版),清華大學出版社,2003
作者簡介
本文從作者的個人經(jīng)歷和教學實踐出發(fā),論述了計算機教學對統(tǒng)計學專業(yè)學生的重要性和必要性,希望能引起開設統(tǒng)計學相關(guān)專業(yè)的學校的重視,為應用型人才的培養(yǎng)提供理論依據(jù)和技術(shù)支持。
【關(guān)鍵詞】
計算機;R語言;統(tǒng)計學
2013級以前我都是講授《信息處理技術(shù)》這類大學計算機基礎課程。隨著教學的深入,發(fā)現(xiàn)學生的信息處理技術(shù)課上有很多題,無論是理論題還是操作題都涉及到了統(tǒng)計學的相關(guān)知識點。于是我很自覺的加入到統(tǒng)計學知識的學習中,從而也發(fā)現(xiàn)了統(tǒng)計學與計算機技術(shù)緊密結(jié)合的重要性。在我讀大學的時候,也是整個中國計算機專業(yè)最熱門的時候,幾乎全國理工類大學或綜合性大學都開設了計算機科學與技術(shù)這個專業(yè)。當時就聽老師在爭論計算機科學屬于理學范疇,而技術(shù)屬于工學范疇,兩個合在一起命名的專業(yè)畢業(yè)時到底是拿理學還是工學的學位證書?反正我大四畢業(yè)時,學校認定的是工學學位。
據(jù)本人感覺計算機是一個工具,學好計算機的相關(guān)技術(shù),對今后的工作有很大的幫助。計算機的技術(shù)又分兩個方面,一個是硬件方面的技術(shù),一個是軟件方面的技術(shù)。計算機硬件我們俗稱是計算機的“軀體”,計算機軟件我們俗稱計算機的“靈魂”。對于非計算機專業(yè)的學生而言不需要掌握很多計算機硬件方面的知識,但是與本行業(yè)相關(guān)的計算機軟件是必須掌握的。雖說現(xiàn)今的軟件設計的都比較人性化、智能化,甚至沒有計算機基礎知識的人只要動動鼠標就可以搞定。但是對于接受過大學教育的學生而言,掌握基本的計算機軟硬件知識還是必要的。今天我們探討的是計算機軟件方面的技術(shù),主要想說說計算機軟件與統(tǒng)計學的結(jié)合。如何通過計算機技術(shù)讓它在統(tǒng)計分析與預測中發(fā)揮作用。
統(tǒng)計學是以現(xiàn)象的數(shù)量特征為研究對象,利用自身特有的方法,探索現(xiàn)象發(fā)展規(guī)律的一門方法論科學。對于最基本的統(tǒng)計圖表,微軟公司辦公軟件Office中的Excel就可以完成。對于Excel2007以前的版本只能畫簡單的柱狀圖、餅圖、圓環(huán)圖、散點圖等,還能運用統(tǒng)計函數(shù)做一些相關(guān)的計算,生成數(shù)據(jù)匯總表或數(shù)據(jù)透視表。Excel2007以后的版本在做統(tǒng)計分析前,要安裝一個“數(shù)據(jù)分析”功能包,安裝好后它會出現(xiàn)在數(shù)據(jù)菜單下的“分級顯示”模塊的右邊。有了這個數(shù)據(jù)分析包就可以做時間數(shù)列分析(如:移動平均法、指數(shù)平滑法、趨勢推測法)、假設檢驗(如:均值的假設檢驗、兩樣本方差的F檢驗、獨立性卡方檢驗)、相關(guān)與回歸分析等。
Excel是一個通用的辦公軟件,它有一部分的統(tǒng)計功能。而對于統(tǒng)計學專業(yè)的學生而言,他們可以使用SAS、SPSS、R。SAS全稱STATISTICALANALYSISSYSTEM,它是由美國NORTHCAROLINA州立大學1966年開發(fā)的統(tǒng)計分析軟件。SAS系統(tǒng)主要完成以數(shù)據(jù)為中心的四大任務:數(shù)據(jù)訪問;數(shù)據(jù)管理;數(shù)據(jù)呈現(xiàn);數(shù)據(jù)分析。但是由于它專業(yè)性強,需要一定的編程基礎,而且要付費購買正版軟件,所以只適用于大型公司或企業(yè)里進行統(tǒng)計分析。它是由美國IBM公司收購并繼續(xù)研發(fā)的統(tǒng)計分析軟件。它最突出的特點就是操作界面極為友好,輸出結(jié)果美觀漂亮。用戶只要掌握一定的Windows操作技能,精通統(tǒng)計分析原理,就可以使用該軟件為特定的科研工作服務。R語言給人的第一印象是免費開源,在某種程度上它與SAS,就像Linux和Windows的區(qū)別。它小巧好用,源代碼開放,可以根據(jù)自己的需要進行更改,也可以在R的綜合檔案網(wǎng)絡CRAN中下載安裝不同的功能包。但是優(yōu)點同時又是它的軟肋,由于隨意性大對于非常用函數(shù)還是自己寫比較好,下載別人的函數(shù)包使用風險比較大。
下面我以一個班的學生成績舉例,從統(tǒng)計學的角度分析學生的文理科偏好,從而對R語言的編程步驟進行說明。這個例子首先把Excel表里的數(shù)據(jù)導入R,求出保留3位小數(shù)的樣本相關(guān)系數(shù)矩陣,根據(jù)結(jié)果我們可以看出主成分的標準差,及相關(guān)矩陣的六個特征值和前兩個主成分的累計貢獻率為82.9%已經(jīng)超過了80%。第一主成分對應的系數(shù)符號前三個(數(shù)理化)為負,后三個(語史英)為正,絕對值均在0.4左右,反映了理科和文科成績的類別差異,有的學生是理科好文科差(如6,7,45號),有的理科差文科好(如30,49號);第二主成分對應的系數(shù)符號都相同,反映學生各科成績的一種均衡特點,比如有的學生各科成績均好(如26,33號)或者有的均差(如8號)。因此我們可以把第一主成分理解為課程差異因子,第二主成份理解為課程均衡因子。從這個例子中,我們可以看到計算機軟件(R語言)對統(tǒng)計學分析起到了多么重要的作用。光掌握了統(tǒng)計學的原理不會用軟件編程,靠自己手工計算的年代已過去,特別是大數(shù)據(jù)時代的到來,更應該借助計算機軟件分析大數(shù)據(jù)背后的關(guān)聯(lián),為今后工作的安排和制定,提供預測依據(jù)。
因此就本人在高校工作十多年的經(jīng)驗來看,統(tǒng)計學專業(yè)的學生大一上學期需要開設計算機基礎類相關(guān)課程,了解計算機的基本軟硬件知識并且熟練掌握Office辦公組件中的Word、Excel、Powerpoint。大一下學期再開設一門計算機編程語言,本人建議是C語言,在計算機眾多編程語言中,C語言是基礎,學好了它再學習其他的編程語言,只是寫法上形容詞的不同,算法思想是一致的。如果沒有進行過編程語言的基礎學習或編程思維的基本鍛煉,想用好R語言進行統(tǒng)計分析也是不切實際的。而R語言是現(xiàn)今統(tǒng)計學界最流行的工具軟件,作為統(tǒng)計學專業(yè)的學生應該很好的掌握并運用它。
關(guān)鍵詞 程序設計;學習方法;編程實踐
中圖分類號:G642.4 文獻標識碼:B 文章編號:1671-489X(2012)28-0012-02
21世紀是信息時代,也是知識經(jīng)濟時代,計算機網(wǎng)絡已經(jīng)成為必不可少的交流工具,不懂計算機程序設計,就不能真正理解計算機的工作原理,進而無法充分有效地利用計算機這個工具解決學習和工作中的實際問題。大學生是社會發(fā)展的新生力量,絕不能落后于社會應用,而是應該高于社會的一般水平。大學生應該對自己提出更高的要求,學好程序設計是非常必要的。
1 學好程序設計的重要性
很多非計算機專業(yè)學生沒有重視程序設計課程的學習,主要還是沒有充分認識到其重要性。大家都知道辦公軟件是當今學習和工作中必不可少的應用軟件,學生也能夠認真對待,但是多數(shù)人僅限于基本操作和應用,沒有研究其高級功能,所以很多人不知道辦公軟件也可以根據(jù)需要編程來實現(xiàn)更高層次的需要。另外,很多應用軟件是非計算機專業(yè)的人員編寫的,他們既掌握本專業(yè)知識,又懂得計算機應用,由他們來編寫應用軟件是非常有實際應用價值的。非計算機專業(yè)學生更應該重視程序設計的學習和應用。
總的來說,學好程序設計還有多個優(yōu)點:1)可以作為今后工作和學習的一個輔助工具;2)更加深入地理解計算機的工作過程;3)能夠培養(yǎng)學生嚴密的邏輯思維和抽象的思維能力;4)能夠培養(yǎng)非計算機專業(yè)學生利用計算機解決本專業(yè)問題的能力。
2 非計算機專業(yè)學生學習程序設計的困難因素
2.1 動手能力不強
程序設計是高校非計算機專業(yè)學生的一門重要基礎必修課程,該課程的教學目的是培養(yǎng)學生的嚴密邏輯思維能力,較深入地學習和理解計算機處理問題的思路和方法。學生在學習計算機程序語言過程中不僅要學習計算機語法知識,還要學會運用這些知識去編程,學會利用計算機解決本專業(yè)的實際問題。其邏輯性和實踐性都很強,要求學生有較好的數(shù)學基礎和較強的動手能力。而非計算機專業(yè)學生多數(shù)沒有編程基礎,同時計算機操作能力不強,所以學起來比較吃力。
2.2 缺乏主動性
非計算機專業(yè)學生開始學習程序設計時,感到新奇、好玩,聽教師說明該課程的性質(zhì)和用途后,都表示很有信心。但是隨著學習的深入,陸續(xù)出現(xiàn)的語法規(guī)則與程序代碼,讓很多學生感到枯燥乏味,并產(chǎn)生畏懼心理,聽課沒有興趣,缺乏主動性。
2.3 基礎相對薄弱
學習程序設計需要較強的邏輯思維能力和一定的數(shù)學、英語基礎。有的學生基礎差,在學習程序設計時顯得力不從心,不能掌握應用計算機解題的基本思維方式。尤其是所學外語非英語的學生,甚至連英文字母都不認識,記憶程序語言指令很吃力,對計算機程序設計產(chǎn)生畏懼感。
3 學好程序設計的方法
3.1 努力提高學習興趣
興趣是最好的老師,要學好程序設計,必須對編程產(chǎn)生興趣。只有喜歡上編程,才有興趣去研究它。實在沒有興趣的學生也不要灰心,盡量做到下面幾點。
1)做好預習、記筆記和復習工作。課前預習,將不懂的知識點做好標記;課堂上帶著問題聽課,盡量理解教師所講的重點內(nèi)容,并有針對性和側(cè)重點地做好筆記;課后要認真復習消化所學內(nèi)容,完成作業(yè)。
2)主動編程實踐。程序設計是高強度的腦力勞動,僅靠聽和看是學不好的,必須加強練習。只有自己動手編寫一些程序,才能對所學知識有更加深入的理解,同時會產(chǎn)生成就感,從而對編程產(chǎn)生興趣,學起來才比較容易。實踐出真知,在編寫大量程序之后,你會發(fā)現(xiàn)很多新的問題,這些問題會指引你重新審視和理解程序結(jié)構(gòu)等知識點。當你一一解決了這些問題,就會感到運用自如。
3)編程實踐養(yǎng)成幾個好習慣。實踐前應認真將程序?qū)懺诩埳希ù绑w界面需要哪些控件以及事件代碼等,便于培養(yǎng)邏輯思維能力并節(jié)省上機調(diào)試時間;每次實踐后要及時總結(jié),把沒有搞清楚的問題記錄下來,請教老師或同學;多抽時間上機調(diào)試程序,遇到系統(tǒng)的提示信息,盡量獨立思考加以解決,這一過程很重要。
3.2 以通過二級考試為目標
學習該課程后,可以參加全國計算機等級考試二級考試,拿到計算機資格證書,這樣不但能夠提高自身走向社會的市場競爭能力,同時也能極大限度地激發(fā)自己學習的積極性。
3.3 掌握良好的學習方法
有了編程的興趣和目標,就有了動力,學習起來會事半功倍。同時還要掌握有效的學習方法,培養(yǎng)良好的學習習慣。下面介紹一下具體的學習方法。
1)打好基礎。首先學好編程要具備一定的數(shù)學基礎。這一點不難,有高中水平就差不多了。其次,學習程序設計要有一定的邏輯思維能力。邏輯思維需要長時間的鍛煉,如果覺得自己在這方面有不足之處也沒有關(guān)系,因為編寫程序本身也是對邏輯思維的鍛煉。邏輯思維能力的培養(yǎng)需要長時間的實踐鍛煉,需要反復的實踐、觀察、分析、比較以及總結(jié),從而逐漸積累經(jīng)驗。在學習編程過程中,大家不必等所有知識都完全理解了才去實踐,只要明白了大概,就可以動手去做。通過實踐很多問題就迎刃而解了。
2)重要概念要理解。程序設計書中介紹的最基本的常量、變量、表達式、函數(shù)、條件語句、循環(huán)語句等概念,需要反復推敲,深入理解。在此基礎上學會應用,不能機械地記憶語法、結(jié)構(gòu),而要明白其實際含義,針對這些語法、結(jié)構(gòu)應用的小程序,應做到舉一反三。
3)注重實踐和研究。編程思想必須在實際的編程實踐中去體會。編程初始階段要經(jīng)常自己動手設計程序,具體設計時不要拘泥于固定的思維方式,遇到問題要多想幾種解決方案。另外可以和其他同學多交流多研究,每個人的思維方式不同、角度各異,通過交流可不斷吸收別人的長處,有助于自己水平的提高。動手實踐是創(chuàng)造性思維應用的體現(xiàn),也是培養(yǎng)邏輯思維最有效的方法。
4)養(yǎng)成良好的編程習慣。編程入門相對容易,但入門后必須繼續(xù)長時間地學習。在此期間要注意養(yǎng)成一些良好的編程習慣,編程風格的好壞很大程度會影響程序的質(zhì)量。良好的編程風格可以使程序結(jié)構(gòu)清晰合理,且使程序代碼便于維護,如代碼書寫的縮進、變量命令的一致性、代碼的注釋等。
5)上網(wǎng)學習作為有益的補充。在網(wǎng)上可以學到很多不同的編程思想、方法、經(jīng)驗和技巧,有大量的工具和作品及相關(guān)的輔導材料供下載學習。很多網(wǎng)站提供的內(nèi)容豐富而且實用,可以下載一些技巧性的文章、源代碼等,課余時間慢慢研究,吸取經(jīng)驗,對于后續(xù)的學習是很有好處的。
6)學習應循序漸進。學習程序設計可采用“理論——實踐——再理論——再實踐”的方法,溫故而知新,循序漸進地學習效果會更好。具有一定的程序設計基礎知識后,就可以開始編程實踐,從實踐中發(fā)現(xiàn)問題,要及時加強計算機理論知識的再學習。再次研究之后,很多以前遇到的問題都會迎刃而解。因此在學習編程的過程中不能急于求成,要不斷地針對應用中的困惑和問題進行深入學習,每一步都要穩(wěn)扎穩(wěn)打。這樣經(jīng)過反復地學習和實踐,編程水平就會有很大的提高。
關(guān)鍵詞 基礎編程工具;初中信息技術(shù);計算機技術(shù)
中圖分類號:G633.67 文獻標識碼:B
文章編號:1671-489X(2017)07-0014-02
1 前言
過去在初中信息技術(shù)課程教學中,很多教師不敢嘗試采用基礎編程工具進行教學,但是從實際上看,基礎編程工具有助于初中學生逐漸掌握一些基本的電子計算機操作方式,特別是基礎編程工具對于學生的綜合電子計算機的運用思維有著較為積極的輔助作用。未來電子計算機技術(shù)的發(fā)展會更加日新月異,初中生在接觸信息技術(shù)方面的知識時,也應該適當?shù)亟佑|一些基礎編程工具,這樣才能夠在學習過程中逐步提高應用技能,隨之適應未來的社會需求。當前對于初中信息技術(shù)方面的教學,很多教師已經(jīng)意識到綜合運用多種信息化教學手段的重要性,克服過去在編程工具的應用上缺乏綜合運用思維的缺憾。因此,應該重視初中信息技術(shù)與基礎編程工具互相之間的結(jié)合,并有針對性地進行日常教學,只有這樣,才能提高學生的計算機技能和應用水平。
2 基礎編程工具概述
目前,電子計算機技術(shù)已經(jīng)發(fā)展到一個相對比較深入的階段,特別是信息化產(chǎn)品更新?lián)Q代速度非???,智能化的移動電話還有平板電腦等都已經(jīng)得到廣泛推廣。在初中階段,很多學生已經(jīng)逐漸接觸一些信息化的工具,他們對于信息化的認知也隨著年齡的增長逐漸深入,并且也影響了他們在信息技術(shù)類課程學習時的學習偏好,他們對于電子計算機技術(shù)也有自己的興趣,這些都會影響目前初中信息技術(shù)方面的教學方向。
針對初中信息技術(shù)教學的發(fā)展特點,基礎編程工具的引入有一定的必要性。編程工具實際上是電子計算機千變?nèi)f化技術(shù)的根源,對于當代的信息技術(shù)發(fā)展有著非常重要的推動作用。但是過于深奧的編程技術(shù)內(nèi)容不利于學生了解和掌握,所以只有從簡易的基礎編程工具入手,引起學生的學習興趣,在此基礎上逐步深入相應的技術(shù)內(nèi)容,并鼓勵初中生學習電子計算機信息技術(shù)課程。當前基礎編程類的工具主要包括以下幾類。
第一種,Hopscotch技術(shù)類的編碼編輯類軟件。Hop-scotch技術(shù)主要是為每一個初步學習編程工具技術(shù)的人提供基本編程設計工具。運用Hopscotch這一類技術(shù)可以相對輕松地進行教學。Hopscotch可以拖曳各類代碼的方式進行程序開發(fā),其特色就是對于編程代碼符號的個別控制,在運用上相對比較便捷。不過Hopscotch軟件主要是依靠iPad平板進行編輯。而Scratch軟件則是一種免費的編程編輯方式,其允許初學者對動畫或者游戲等通過在線社區(qū)進行分享,可以幫助學生更進一步地理解基礎編程工具的操作模式,幫助學生更深入理解編程的基礎概念,而且也以分享的方式提高學生學習編程的興趣[1]。
第二種,Alice等基礎的動畫編程工具。Alice軟件是一種免費的3D動畫編程軟件,這樣的一種軟件可以在互聯(lián)網(wǎng)上進行交流和互動,可以讓學生接觸到電子計算機的動畫編程模式。學生通過Alice軟件能夠進行簡單的視頻動畫編輯,體會動畫編輯的樂趣,掌握基本的立體3D編輯模式等。Tynker軟件與上述軟件也相仿,這種在線編程軟件也主要是讓學生參與動畫的編輯過程。因為Tynker軟件是基于可視化的編程語言,這樣也就不需要學生掌握相對比較復雜的編程語法,只需要學生將這些可視化的代碼組合在一起,就能構(gòu)成一個具體的項目。
第三種,Hackety Hack軟件類的編程教學工具。Hackety
Hack這一類的編程工具主要對學生進行基礎編程教學,使用Hackety Hack軟件的學生不需要掌握編程經(jīng)驗,而是以開發(fā)型的簡易編程語言進行桌面應用開發(fā),而且更側(cè)重于進行教學和引導,對學生編程能力的發(fā)展有比較大的推動作用。這類軟件與Kodable軟件類似,主要是讓學生以游戲的方式掌握編程的方法,特別是游戲和編程的指令互相之間結(jié)合,并且提供不同層次和課程的編程教學內(nèi)容。
第四種,RoboMind軟件等屬于游戲編程教學類的軟件。RoboMind主要是讓W生在操作游戲界面之中逐漸學習基礎編程的工具和方法等。從RoboMind軟件的內(nèi)部結(jié)構(gòu)上看,其對于編程代碼采用如同積木的方式,讓學生逐步學習基礎編程的方法,這種方式也是以游戲作為主要的引導模式。而類似Etoys和Waterbear等編程軟件工具包,也是讓學生采用拖曳游戲的方式,以可視化的編程語言作為基礎,讓學生在不需要編程語法的基礎上創(chuàng)建一些新的文件,根據(jù)自己的實際狀況進行操作[2]。
從上述四種類型中可以看出,不同的編程教學軟件和工具,都具備各自的特色,其出發(fā)點都是讓日常的教學更加便捷,幫助學生更進一步掌握日常的編輯方式,讓學生更好地參與編程學習。這種學習有其便捷性,也有助于初中學生提高學習編程方面的興趣,實際上有助于帶動學生更進一步地學好信息技術(shù)方面的課程知識。
3 基礎編程工具在初中信息技術(shù)課程中的應用
從上述分析中可以看出,基礎編程工具是多元化的,初中信息技術(shù)教師在進行教學過程中,應該把握當前基礎編程工具的各種類型所呈現(xiàn)出的特性,有的放矢地鼓勵學生運用這些編程工具,更好地進行初中信息技術(shù)課程教學。特別是當前初中學生普遍缺乏電子計算機編程的基礎,在語法的掌握上基本處于空白階段,因此,初中信息技術(shù)教師應該抓住學生在學習信息技術(shù)方面的主要難點和重點,用好基礎編程工具進行教學,讓學生真正學會運用基礎編程工具探索和解決問題。
從當前的實踐狀況看,基礎編程工具在初中信息技術(shù)課程中的應用主要從以下幾個方面著手。
1)采用游戲類的編程教學軟件,引導初中生逐漸形成學習信息技術(shù)的興趣。初中生還處于一個年齡相對較低的階段,他們往往好奇心比較強,喜歡玩一些游戲。初中信息技術(shù)教師應該抓住初中生的這種普遍愛玩的心理,通過游戲類的編程工具進行逐步引導,讓學生通過拖動編程代碼的一些模塊,或者在游戲當中體會電子計算機編程的基礎知識。
初中信息技術(shù)教師應該全面地分析學生在游戲過程中出現(xiàn)的疑難,運用在線教學互動平臺及時和學生進行交流,這樣可以讓學生及時解決自己遇到的難題,進而不斷地提升對電子計算機編程的熱愛,讓學生真正運用好這種游戲類的工具,同時要避免學生沉溺在游戲過程中。教師可以運用電子教學平臺上的遠程監(jiān)督控制,對學生在編程工具游戲中的具體行為進行引導和監(jiān)督,幫助學生逐漸建立起嘗試運用編程工具進行編程的興趣和信心。
2)初中信息技術(shù)課程要注重采用一些教學類的編程工具,引導學生逐漸掌握這些編程模式,從而帶動學生逐漸掌握初中信息技術(shù)知識。雖然初中信息技術(shù)課程之中并沒有真正將編程方面的知識納入知識系統(tǒng)框架里,但是初中學生適當?shù)卣莆找恍┚幊坦ぞ吆蛻眉夹g(shù)還是有比較大的必要性,因為這樣有助于學生逐漸形成電子信息化編程的思維,更好地掌握信息技術(shù)課程中相對比較難的內(nèi)容。如辦公室軟件中的一些基礎操作,實際上也和部分簡單的基礎編程手段是相似的,初中信息技術(shù)教師可以通過引用的方式,讓學生逐漸接觸一些教學類的基礎編程方面的工具,進而更好地把握住初中信息技術(shù)課程里的部分重點和難點。從本質(zhì)上看,很多電子計算機方面的知識和內(nèi)容,都會體現(xiàn)出一定的信息化編程思維,這些思維的普及和推廣,也可以通過教學類的基礎編程工具進行引導教學,以此讓初中階段的學生逐漸熱愛信息技術(shù)課程知識,提高學生在信息技術(shù)課程方面的綜合運用技能。
3)初中信息技術(shù)課程也應該相對注重讓學生參與到三維動畫編程運用中。因為很多初中學生比較喜歡觀看動畫,他們對于三維動畫的熱愛和關(guān)注,也可以成為初中信息技術(shù)課程教學的一個重要突破點。初中信息技術(shù)教師可以讓學生更進一步地嘗試運用基礎編程工具,對一些簡單的三維動畫進行編程和設計。在初步教學過程中,信息技術(shù)教師要手把手地進行教學,鼓勵學生積極地進行嘗試,對于學生在編輯三維立體動畫過程中出現(xiàn)的一些問題,可以通過面授或者是在線控制教學等方式進行指導。學生在基本掌握了動畫基礎編程工具的運用方式之后,應該讓學生適當?shù)赝瓿梢恍┝λ芗暗娜蝿铡?/p>
初中信息技術(shù)課程的教學也應該注重以引導為主,特別是觀察學生在編輯過程中的進步和困難,讓學生逐漸掌握電子計算機的一般編程模式,在基礎編程工具和教學軟件里面體會編程的基本內(nèi)涵,從而為學生更進一步地學習信息技術(shù)知識奠定良好基礎[3]。
綜合上述分析,初中信息技術(shù)課程的教學與基礎編程工具的結(jié)合,需要關(guān)注學生作為信息技術(shù)課程教學的主體性,讓學生主動地進行學習和積累經(jīng)驗。在學生嘗試過編程的行為和成果之后,初中信息技術(shù)教師也應該讓學生針對自身的薄弱環(huán)節(jié)進行調(diào)整,更進一步調(diào)動學生學習信息技術(shù)的自信心等。從培育的角度看,二者的結(jié)合仍然是將出發(fā)點和落腳點歸結(jié)在學生這個學習主體上,這也是初中信息技g教師應該要關(guān)注的內(nèi)容。
4 結(jié)束語
結(jié)合當前初中信息技術(shù)課程教學的發(fā)展可以看出,初中信息技術(shù)課程應該針對學生的學習情況,適當?shù)丶尤胍恍┬畔⒒幊痰募记?,特別是基礎編程工具的融會貫通,將有助于學生的全面發(fā)展和進步。未來的信息技術(shù)課程必然要面對更大的知識量,如果初中信息技術(shù)教師沒有以學生的真正需求作為中心,那么就沒有辦法讓學生全面發(fā)展。因此,初中信息技術(shù)教師應立足于當前初中信息技術(shù)課程教學實際,要善于運用基礎編程工具,帶動初中生在信息技術(shù)課程學習上取得更好的效果?!?/p>
參考文獻
[1]朱彩娟.慕課在小學數(shù)學教學中的應用[J].數(shù)學學習與研究:教研版,2015(20):89.
[2]徐瑾.網(wǎng)絡語言給予中學語文教學的幾點建議[J].課程教育研究,2014(35):63.
[3]董競霞.淺談初中英語學習能力的培養(yǎng)[J].教育科學,
2015(18):128.
關(guān)鍵詞 軟件技術(shù)基礎 教學實踐 教學方法
中圖分類號:G642.0 文獻標識碼:A 文章編號:1002-7661(2012)23-0085-01
一、引言
近年來,計算機在科學研究、工農(nóng)業(yè)生產(chǎn)、商貿(mào)、氣象、國防以及居民生活等領域的應用不斷深入。隨著計算機科學技術(shù)的發(fā)展,計算機的應用領域和范圍不斷擴大。其中,軟件技術(shù)是計算機技術(shù)的重要組成部分。隨著計算機應用領域的擴大和深入,非計算機專業(yè)的工程技術(shù)人員掌握必要的計算機軟件技術(shù)基礎知識是提高計算機應用水平的重要途徑。
“軟件技術(shù)基礎”課程是“大學計算機文化基礎”和C語言等相關(guān)程序設計課程的拓展和延伸。該課程是一門專業(yè)基礎課,課程內(nèi)容涉及到數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)和軟件工程等。重慶郵電大學自動化學院在開設了“C語言程序設計”這門課程的基礎上,開設了“軟件技術(shù)基礎”這門課程。由于本課程學時較短、內(nèi)容較多,部分內(nèi)容較抽象,同時學生的學習基礎差異較大,如何利用有限的學時來教好本門課程是一個值得探討的問題。
二、教學實踐探索
(一)提高學生的學習興趣
興趣是學生最好的老師,也是他們學習的巨大動力。對該門課程產(chǎn)生興趣,將會得到事半功倍的效果。那么怎樣才能提高學生的學習興趣呢?通過教學實踐我們發(fā)現(xiàn),在開始新知識點學習之前,列舉一些相關(guān)應用案例,并讓學生參與應用案例的分析,很快就能調(diào)動起學生的學習熱情,其注意力也非常集中。此時,迅速切入新的知識點的講解,學生會很快跟著老師的思路,學習效率非常高。
(二)教學內(nèi)容的適當擴充
在本課程的教學中,結(jié)合重慶郵電大學自動化學院的實際情況,我們對本課程的教學內(nèi)容適當擴充。本課程的授課對象是大學二年級學生,僅在大學一年級學習了C語言編程,沒有C++語言的基礎。在課程開始利用一次課的時間,給學生補充了C++編程語言[3]的類、模版及基本的輸入輸出等相關(guān)知識。有兩個目的,一是為了在后續(xù)教學中讓學生對本課程內(nèi)容有更深入的認識,讓學生了解軟件技術(shù)基礎的一些編程思想是否與編程語言深度相關(guān)?二是讓學生充分利用課余時間好好掌握一下C++知識,拓展了學生的知識面,增強學生的自學能力。也為本課程的后續(xù)學習打下基礎。
(三)多編程語言、多結(jié)構(gòu)形式的實例對比教學
在教學實踐中,針對某個新知識點,先進行理論講解,重點讓學生掌握新知識的應用特點以及編程思想等。然后通過編程實例,重點對知識點應用進行講解。在實例講解過程中,采用對比的方式進行,包括多種編程語言實現(xiàn)、多種實現(xiàn)方式的對比。舉例來說,在講解“棧”這個知識點講解時,先講述“棧”的特點及其相關(guān)操作,如“后進先出”的特點,初始化棧、入棧、出棧、讀棧頂元素等等,然后針對“?!钡牟僮鬟M行實例講解。其中,棧的操作分別采用c語言和C++語言來實現(xiàn),并針對兩種語言的實現(xiàn)方式展開對比,重點介紹編程思想。此外,對于“棧”的結(jié)構(gòu)形式也有兩種,一是采用順序表的形式,一是采用鏈表的形式。針對這兩種不同的結(jié)構(gòu)形式在進行對比講解。一個應用案例,通過多種實現(xiàn)形式的講解,讓學生對“?!边@個知識點有了更深刻的認識。
(四)適量的課后作業(yè)
對于“軟件技術(shù)基礎”這門課程,必須經(jīng)過一定量的編程練習才能夠更好地鞏固所學知識。然而,每個學生學習基礎和完成作業(yè)的認真程度不同,甚至也有作業(yè)抄襲現(xiàn)象,因此作業(yè)的實際效果不甚突出。為了克服上述弊端,我們在作業(yè)量以及作業(yè)題型的選擇上進行了適當?shù)母淖?,僅布置少量的且較典型的題目。另一方面,在作業(yè)的完成方面,我們也改變了傳統(tǒng)的作業(yè)提交形式。我們采用分組完成作業(yè)的形式。兩個或三個同學分成一組,在完成作業(yè)的過程中可以討論,尤其是編程思想、編程技巧方面,通過討論學生能夠?qū)λ鶎W的知識有了更加深刻的認識,在編程方面能夠相互取長補短,最終個人編程能力得到了提高。
三、教學效果檢驗
“軟件技術(shù)基礎”這門課程還設置了實(下轉(zhuǎn)第88頁)(上接第85頁)驗教學環(huán)節(jié),每次實驗都針對理論教學中的知識點,結(jié)合實際應用設計了合理的編程實驗。通過實驗環(huán)節(jié),能夠很好地檢驗教學效果。在進行了教學改革實踐之后,從實驗的完成情況來看,學生實驗的完成效率和質(zhì)量都有了較明顯的提高。
一、概述
測量平差是測繪學科重要的專業(yè)基礎課,隨著測量領域?qū)τ诰軘?shù)字獲取創(chuàng)新手段不斷涌現(xiàn),將觀測數(shù)據(jù)集體體現(xiàn)在多源化、多樣化,測量平差的研究對象以及計算方法也將不斷發(fā)展與創(chuàng)新。這就給誤差理論與測量平差教學的改革與研究提出了更加新型的要求。
在本科一年級學生學習了《數(shù)字測圖原理與方法》課程,緊隨著對數(shù)學基礎課程諸如《高等數(shù)學》、《線性代數(shù)》、《概率論與數(shù)理統(tǒng)計》等課程的學習以及《計算機基礎》、《C++程序設計》等計算機核心課程?,F(xiàn)在學生已初步建立了誤差的基本概念和測繪理論基本框架,具備了必要的數(shù)學基礎知識和簡單編程技巧。本科二年級開設了測量平差的入門課程《誤差理論與測量平差基礎》。在誤差理論的學習中,了解到測量平差的主要目的是確定觀測量的最佳估值并評定其精度,結(jié)合四種經(jīng)典平差模型列出相應的條件方程或誤差方程,得到估值主要是解算法方程,法方程的解算是一個重要內(nèi)容,有的矩陣計算已經(jīng)超過人工計算的限度,然而對于一些觀測量非常龐大的數(shù)據(jù)、往往花費了大量學時講解如何計算。
因此,學生需要達到高效的學習效率、老師需要達到先進的教學目的,一些測繪專家學者在平差領域中以計算機為載體,結(jié)合專業(yè)性質(zhì)提出了測量平差程序設計軟件。程序軟件可根據(jù)課程設計任務提出的具體要求解決實際問題。這樣可以讓每個學生在相同的教學要求下,各自處理的平差內(nèi)容都不一樣,能夠培養(yǎng)學生結(jié)合所學計算機編程知識獨立解決實際問題的能力。將計算中所用的部分計算編制成函數(shù),供以后學習以及實地測繪工作編程時調(diào)用。
“測量平差程序設計”是一門涉及多領域多維度多學科交叉的一門課程,涵蓋了計算機基礎知識、數(shù)據(jù)結(jié)構(gòu)、數(shù)學學科、程序設計、測繪學基本理論等多門專業(yè)、學科知識,旨要培養(yǎng)測繪專業(yè)的學生利用計算機編程技術(shù)解決空間數(shù)據(jù)的計算、分析等問題的基本技能,利用所學測繪專業(yè)理論知識分析、解決實際測量中所遇到的問題的實踐能力[1]。現(xiàn)階段是信息化、結(jié)構(gòu)化測繪空間數(shù)據(jù)獲取的海量、復雜、多維和快速性的時代,由于傳統(tǒng)計算的局限性導致手工處理空間數(shù)據(jù)已經(jīng)不能滿足生產(chǎn)需要,必須通過有效的計算機程序進行處理,因此,開設“測量平差程序設計”課程,掌握基本的程序設計方法和技能是我們這個創(chuàng)新時代和行業(yè)發(fā)展的迫切需要[2]。
可是在測量平差程序設計教學方面,也會出現(xiàn)很多諸如以下的一些問題:
1.學科之間銜接不緊密?!皽y量平差程序設計”是集綜合性、實踐性于一體的理論與實踐相結(jié)合的課程,運用的時候會用到計算機編程語言(如C/C++、VB等)、測繪學基本理論(誤差理論與測量平差、數(shù)字測圖原理與方法、3S等),計算機基礎知識(如數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫原理、計算機繪圖等)和其他基礎學科知識(如高等數(shù)學、工科數(shù)學分析、數(shù)理統(tǒng)計與概率論等)。這些知識之間沒有必然的邏輯理論體系,學生可能由于某一方面的知識缺乏,而對“測量平差程序設計”課程的學習興趣大大減少[3]。
2.學生認識問題不全面。很多我們本專業(yè)的學生以及其他非工科學生對我們測繪工作的認識只停留在“扛儀器搬尺子外業(yè)測量,用軟件拿鉛筆內(nèi)頁成圖”的水平,認為平差程序設計是軟件工程專業(yè)學生該做的專利,因此,沒有足夠的重視程序設計的學習,投入的精力也很有限甚至根本就是完成任務式的學習,相反還是有少量確實對計算機編程感興趣的學生才會花大力氣學習。另外,很多學生是到大學才開始接觸計算機編程,對一個新的學科還沒理解透徹,導致先修編程語言課程學習效果不甚理想,對程序設計沒有信心,所以對“測量平差程序設計”課程產(chǎn)生消極、抵觸情緒。
3.老師教學模式需創(chuàng)新。高等學校的教學改革是一個進行時而沒有完成時,很多高校教學主要是以“老師在講臺上講,學生在下面聽”,所謂的“灌輸式”的教學方法。這種教學方式基本是按照選定的教材把選定的章節(jié)內(nèi)容從頭至尾照本宣科“灌輸”給學生[4]。這種方法能夠在規(guī)定的教學日志內(nèi)完成較多的教學內(nèi)容,但是留給學生的思考時間太少,不能起到“醍醐灌頂”的效果,對于專業(yè)課程里面內(nèi)容較抽象、晦澀難懂的“測量平差程序設計”課程,學生學習效果不會太理想。
由于這些專業(yè)性質(zhì)的問題和編程技術(shù)在學習中非常重要,在本科階段增加在這個領域繼續(xù)學習信心,學生教師必須準備的非常充分。我們需要實踐經(jīng)驗尤其是常見的編程結(jié)構(gòu)。對于初學者編程使用編程語言解決實際問題不是一件容易的事。他們需要徹底了解一種語言的語法和語義完全理解,然后轉(zhuǎn)換,使用自己的心理模式完全將自己的理解轉(zhuǎn)化為計算機代碼。學生們應該參與創(chuàng)建基于計算機的問題,并提供可能的解決方案。這種方式,他們不太可能從這項研究中獲益的編程的主題。導師會指導選擇和幫助設計和提出解決方案。大部分的工作應該是由學生完成的?;诖宋覀冃枰岢鲆环N學習方法,叫做主動學習法。
二、主動學習法
主動學習是學生參與閱讀、寫作、討論或解決問題、促進分析、綜合和評價等活動的一個過程。這是一個計劃好了的一些活動和事情,邀請了這些參與者通過運用,互動和分享經(jīng)驗教育過程的一部分。在教育活動中交互式成分偏向于這個培養(yǎng)目標。主動學習促進思考,解決問題,批判性思維,操作材料、分析、綜合和評價信息。
在眾多主動式學習的描述中,學生自主解決問題,舉一反三,嘗試新技能以及完成作業(yè)任務都是依靠他們所學的知識或者已經(jīng)具備的能力。構(gòu)建主義者認為學習是一個獲得創(chuàng)意和知識構(gòu)建的過程,而不是一個被動的過程。換句話說,學習需要個人積極主動而且需要參與構(gòu)建和建設個人的心智模式。
主動學習是現(xiàn)今被廣泛接受的高品質(zhì)形式的教育。研究表明,學生比起傳統(tǒng)的演講的話更喜歡提升主動學習的策略。研究人員一致認為學習涉及到構(gòu)建我們自己的想法。他們建議有結(jié)構(gòu)的設計、有結(jié)合力的材料然后鼓勵學生積極參與進來。主動學習是涉及學生直接和積極參與學習過程本身。這意味著學生不是簡單的接受口頭和視覺上的信息、接收、參與做一些事情,例如說、聽力、寫作和閱讀程序并反映個人或小組。
深入學習法講述的是如果我們的學生都是編程的初學者,他們剛剛學習了長達一個學期的C++程序課程[5]。一本面向?qū)ο笳Z言計算機教育科學的著作看起來不是一項容易的任務。在大學里面,這一門課程一般的學生很難通過。這門課主要是偏向于面向?qū)ο蟮腃++語言特性?,F(xiàn)實生活中沒有很多時間來做應用程序開發(fā)和解決問題。我們的學生由于知識很薄弱使得他們通過記憶分離事實。
我們的課程將重點放在教會學生解決問題所需的技術(shù),學生充當老師能夠教授高級學校使用編程語言解決問題。學習者應該學會通過整合新知識與他們已經(jīng)獲得的知識。教師應該明白心智模式改變緩慢,并可以改善通過學習者的積極參與。面對心理模型不會在其中工作的情況,他們應該尋找意義,這個意義不是被直接指令所強加。學生應該自己尋找在鑒于先前的知識和經(jīng)驗在材料和解釋知識之間的關(guān)系。
深度學習是一種學習方法和態(tài)度,學習者使用的高階認知技能等能力分析,合成,解決問題,并且認為元認知為了構(gòu)建長期的理解。它包括新思想的批判性分析,聯(lián)系他們已知的概念和原則,這種理解可以用于解決問題的新的不熟悉的環(huán)境。深入學習者反思他們所學的個人意義。他們是自主的、幾乎自學。但他們也與學習者合作,高元認知和學習技能。
目前的理論認為不關(guān)注教師教學,但關(guān)注老師和學生之間的有效溝通。建構(gòu)主義理論認為學習方法源于學生知覺的教師的要求。教練的作用在形成這些觀念是至關(guān)重要的對學生所學內(nèi)容的理解。也是至關(guān)重要的理解,教師不直接產(chǎn)生深度學習的學生。主要是學生的努力,對深度學習很重要。
導師需要幫助學生看到他們要做的工作的目的,并監(jiān)督他們的成功。主動學習需要發(fā)現(xiàn),知識獲取是一個持續(xù)的過程,和大量的不確定性。發(fā)現(xiàn)發(fā)生在學習者的大腦,刺激搜索,商店和解決具有挑戰(zhàn)性的問題和機會深入去探索它們。犯錯誤并改正是學習過程的一部分,而不應該勸阻學生學習更多。
我們的目標是促進深度學習的原則和技巧,并創(chuàng)建獨立的沉思的終身學習者。我們認為實現(xiàn)這需要學生的積極參與。主要建議擺脫文學教學不僅應該把焦點放在學習新的語言特性,但也的組合和使用這些特性,特別是基本程序設計的根本問題。學生沒有給出足夠的指導如何將程序塊結(jié)合在一起。良好的教學需要教師保持最初的事實,模型和規(guī)則簡單,只有擴大和完善學生收獲的經(jīng)驗。
心理模型也是一個學習方法的內(nèi)因所在。當我們在教基礎編程這些編程概念時,解決心理模型的類型是很重要的。模型對建構(gòu)控制,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)展示,程序設計以及問題域的理解是至關(guān)重要的。主動學習文獻可以鼓勵學生積極參與,探索編程相關(guān)信息,通過例子或者用自己的話來解釋,在解決問題和創(chuàng)造性轉(zhuǎn)移兩方面表現(xiàn)的更為出色。
循環(huán)句、條件句、數(shù)組和遞歸都被認為是語言特征,而這些語言特征都是有極大問題的,
它們可能會因為特別關(guān)注而受益。然而,一些學者認為,潛在問題的最重要的缺陷是將方案和設計說成是一個實際的程序。實際上頻繁的編程練習是解決這一問題的關(guān)鍵[6]。
三、基于主動學習的平差程序設計教學模式
主動學習涉及三個基本步驟:
1.告訴學生自我組織成2~4組和每組隨機指定一個記錄者,如果需要就寫下來。
2.提出一個具有挑戰(zhàn)性的問題,給出足夠的時間讓大多數(shù)組織完成任務或取得合理的進度,一個問題可以細化成幾個小問題,幾個小步驟并且把每一步當成一個獨立的活動。
3.呼吁一些個人或小組來分享他們的反應,然后討論。
基于主動學習的平差程序設計教學模式包括四個階段:開始、行動、討論、總結(jié)。
第一階段:開始。
去做好測量平差程序設計的基礎工作不是一件容易的事。它所運用的知識非常深而且很廣泛,在學校課堂有限的時間內(nèi),要使學生快速把握學習目標以及學習內(nèi)容是一個難點,是教學任務設計的首要工作。結(jié)合這個問題,從學生主觀認知每一個平差問題的習慣出發(fā),一些非常有教學經(jīng)驗的老師設計了比較系統(tǒng)的課堂教學體系:程序設計語言與平臺發(fā)展史―面向?qū)ο驝++編程語言―編程平臺適用性及選擇―測量科研項目及企業(yè)具體需求的工程案例與實踐教學[7,8]。在教學中主要以工程案例為主線,提出由簡單到復雜的經(jīng)典教學模式:測量典型函數(shù)設計―GUI程序設計―菜單程序設計―測量控制網(wǎng)精度估算與平差程序設計―綜合應用程序設計。
為此,學生教師提出的一個具有挑戰(zhàn)性的基于主動學習的開始,一個他們不熟悉的開放式的活動。特別是一個開始應該加強和培養(yǎng)有意義的學習,應該有一系列廣泛的有潛力的問題、難題、態(tài)度和看法。一個學習者的開始應該是復雜且相關(guān)的。根據(jù)開始的主要目標,活動可以單獨、成對或者以小組形式運行。
引入一個新的話題的主要的目的之一是訓練學生的老師如何面對和處理不熟悉的情況。在這種情況下,計算機科學教育需要學生的老師考慮多個反應選項。為了實現(xiàn)這個目標,必須設置超過一種能夠開始的方法。此外,一種設計良好的開始能夠暴露學生在電腦科學與教育方面豐富多樣的知識。整個模型中,這個龐大的創(chuàng)意包括討論、推敲,精練和重新組織。
第二階段:行動。
學生的工作在開始就交給他們,這一階段的持續(xù)時間由開始階段的復雜性及其目標所決定。在課堂上老師講解了諸多理論、演示了很多經(jīng)典例子,對平差程序設計的代碼進行調(diào)試以及編碼和調(diào)試所設計的流程圖。由于在學校安排的教學時間是有限的,想要融會貫通本課程設計不是一日之寒,千里之行始于足下,所以很遺憾的僅能對相近(或相似)內(nèi)容選擇一項基本內(nèi)容進行程序?qū)崿F(xiàn),對于測量平差經(jīng)典模型里面的其他內(nèi)容,還需要同學們利用課余時間,回顧老師課堂上講授的,模仿課堂教學內(nèi)容并且獨立完成,紙上來的終覺淺,絕知此事要躬行。因此,課下練習是課堂實驗教學非常有必要的。在學生通過老師講授和課外練習完成測量平差數(shù)據(jù)處理程序的每一個模塊后,引導學生將各個獨立的程序模塊集成為一個完整的程序系統(tǒng),這個任務可以通過課程設計來完成,可以做一個“測量平差數(shù)據(jù)處理系統(tǒng)”軟件的界面和接口,將已經(jīng)調(diào)試好的程序模塊集成到軟件系統(tǒng)。
第三階段:討論。
測量平差程學設計課堂教學應從傳統(tǒng)的模式化、單一化和“灌輸式”教學方式向引導式、研究式教學方式轉(zhuǎn)變?!皽y量平差程序設計”課程融入了高級程序語言,以及測繪科學相關(guān)算法等內(nèi)容,一般采用多媒體進行講解與學生進行交流互動,程序如何編寫、如何運行、如何調(diào)試等內(nèi)容,都應演示給學生看,學生出現(xiàn)的問題也需要在互動的同時進行探討。由于編程問題里面比較多的測量計算過程非常復雜,涉及到大量的數(shù)學公式及推導過程,加大學科之間的交流,同學之間,師生之間問題的探討是非常有必要的,這樣互相學習互相進步,再難得問題都會迎刃而解。
同時,在上課的時候老師可通過提問和布置作業(yè)的方式培養(yǎng)學生自學能力和創(chuàng)新能力。在必要的一段時間以后,在此期間,學生們要么單獨工作、要么成對工作,要么是小組工作,呈現(xiàn)聚類情況。
在這一階段,結(jié)果、主題、思想,起源于活動階段,并對此進行了討論。學生完善他們對于概念、態(tài)度和理念的理解,作為他們對于專業(yè)建構(gòu)過程的一部分。
老師強調(diào)學生提出的重要想法,并強調(diào)從這些想法派生出的想法。為了表達在一般情況下,大多數(shù)數(shù)學概念不存在唯一解的情況,還有開始階段提出的特殊活動,老師不能判斷學生的立場和意見。同時,同學們都被鼓勵通過提交不同的觀點合材料反應和表達他們的意見和建設性的批評。
第四階段:總結(jié)。
這一階段將話題的上下文和強調(diào)的概念進行了討論。它不同于前三階段的管理。首先,它明顯縮短。其次,在前三階段,學生是主要的對象,但是在總結(jié)階段,課程的老師需要走向前沿。老師結(jié)束,并突出在前三階段提出的或討論的中心概念、教學理念,概念框架以及其他相關(guān)主題[9,10]。同樣重要需要注意的是,學生字前三階段可以提問,并且在老師的指導下作為一個建造者??偨Y(jié)可以用不同的形式表達,如框架構(gòu)想、主題與其他主題之間的關(guān)系列表、概念地圖等。
四、基于主動學習的教師任務
基于主動學習模型中老師的角色:老師必須創(chuàng)造一個全班參加的支持性的,充分鼓勵學生活躍性的知識環(huán)境。
在第一階段,顯示了開始階段的教師。以測量科研項目的工程案例為主線,采用多媒體技術(shù)輔助教學,在課堂現(xiàn)場演示編程的主要步驟與核心代碼,并演示編程效果,給學生以直觀的學習印象。
在第二個行動階段,老師不斷的在不同的小組和個人之見聽取意見,并留心他們說了什么,還要鼓勵他們深入思考。當需要的時候,老師應該引導學生的討論。當然,老師的引導應該鼓勵不同的想法,不要給定一個確切答案。結(jié)合測繪行業(yè)企業(yè)對數(shù)據(jù)處理方面程序軟件的需求,選擇有針對性的教學案例,使學生對程序設計產(chǎn)生濃厚興趣。
在第三個討論階段,老師應該作為一個好的傾聽者,并需要留心有關(guān)鍵建議的學生。特別的,老師應該鼓勵學生解釋他們?yōu)槭裁刺岢鲎约旱慕ㄗh和如何深化自己的建議,并建議探索不同的路徑,培養(yǎng)反思的過程,但不要對學生的意見進行評判。老師要強調(diào)其中的重點,并提出不同的想法之間的可能的聯(lián)系。
第四階段總結(jié)時,建立課下學習興趣小組,借助網(wǎng)絡教育手段,分工合作,共同完成綜合性實驗項目或來自企業(yè)直接需求的編程項目的設計與代碼編寫。要總結(jié)前一階段提出的觀點,總結(jié)強調(diào)要對要點進行討論。老師可以補充新的想法與類別,但不建議有學生提出。
五、總結(jié)
關(guān)鍵詞:計算機系統(tǒng)結(jié)構(gòu);多核;FPGA
隨著計算需求的不斷增長,由于復雜的芯片工藝與功耗成本限制,處理器的性能提升從原有的主頻提高轉(zhuǎn)為多內(nèi)核發(fā)展。很快,一些大型機制造廠商,如IBM、Sun開始利用并行計算設計出了多核處理器(例如:IBM推出的CELL異構(gòu)多核處理器,Sun公司推出的OpenSparc T1開源多核處理器[1]),這些處理器在一塊芯片上集成多個計算內(nèi)核,成倍地提高了計算速度。2006年,以Intel與AMD為代表的處理器制造商在年初和年底相繼推出雙核、四核處理器,緊接著,在2007年1月,Intel展示了配置兩個四核處理器的八核計算機,這標志多核處理器開始全面進入市場,宣告計算機真正進入多核時代。
所謂“多核(Multi-core)”,即指一塊芯片上集成多個處理核,各自擁有獨立的控制和計算部件,無需共享關(guān)鍵資源。多核技術(shù)的發(fā)展給大學計算機教育帶來新的課題,即在多處理器環(huán)境下,計算機系統(tǒng)結(jié)構(gòu)、計算機操作系統(tǒng)、編譯原理和應用軟件的編程模型等都發(fā)生了很大的變化,促使大學計算機的教學需要做出針對性的變化。
計算機系統(tǒng)結(jié)構(gòu)(Computer Architecture),作為研究計算機系統(tǒng)結(jié)構(gòu)演化以及影響計算機硬件與軟件系統(tǒng)設計的一門重要課程,在介紹計算機系統(tǒng)結(jié)構(gòu)原理、分析設計方法、性能評價、發(fā)展趨勢和新的實現(xiàn)技術(shù)上,需要增加多核技術(shù)這個重要的新知識點。在過去相當長的一段時間里,由于不具備開設計算機系統(tǒng)結(jié)構(gòu)和多核技術(shù)相關(guān)實驗的硬件平臺和軟件環(huán)境,
國內(nèi)很多高校開設計算機系統(tǒng)結(jié)構(gòu)課程時均未開設該課程的實驗,特別是多核技術(shù)方面的實驗,以至于學生沒有實驗教學和體驗式實踐而很難掌握該課程的知識。
為了更好地應對新的“多核”時代,電子科技大學的計算機科學與工程學院、信息與軟件工程學院(原示范性軟件學院)從2007年開始在計算機系統(tǒng)結(jié)構(gòu)課程教學中引入多核技術(shù)。一是在理論教學上增加處理器體系結(jié)構(gòu)、系統(tǒng)架構(gòu)和程序設計內(nèi)容,從三個方面給學生展現(xiàn)了一個比較完整的多核技術(shù)概覽圖景;二是在實驗平臺建設上設計多核實驗,從實踐環(huán)節(jié)上來鍛煉學生的動手能力和提升其創(chuàng)新能力。
1實驗教學的現(xiàn)狀
在計算機系統(tǒng)結(jié)構(gòu)課程中設計多核實驗,須從計算機系統(tǒng)結(jié)構(gòu)與多核知識的課堂教學成果入手,把握多核技術(shù)的理論教學動態(tài)。然后重點調(diào)查國內(nèi)高校在多核實驗教學方面的研究現(xiàn)狀,為計算機系統(tǒng)結(jié)構(gòu)中的多核技術(shù)實驗設計提供必要的技術(shù)支持和可行性研究。
事實上,計算機系統(tǒng)結(jié)構(gòu)課程重在培養(yǎng)計算機專業(yè)本科生的抽象思維能力、自頂向下系統(tǒng)分析和創(chuàng)新能力。全國重點和普通高校中幾乎都開設了這門課程,出現(xiàn)了大量的課程教學與教研成果[2-12]。雖然課程教學成果多,但是實驗教研成果小,而且還缺乏多核知識點的引入或多核體系更新不足。
作者簡介:于永斌,男,副教授,研究方向為計算機系統(tǒng)結(jié)構(gòu)、大規(guī)模集成電路設計與應用。
關(guān)于多核技術(shù),清華大學的王小鴿[13]提供了理解多核技術(shù)、并行計算與未來計算機發(fā)展的視角。薛巍[14]從并行計算基礎、高性能計算前沿技術(shù)研討課、多線程/多核CPU邏輯設計短期課程等方面介紹了清華大學多核課程建設成果。吳繼雁[15]簡要地分析與總結(jié)了多核技術(shù)及發(fā)展趨勢。北京交通大學計算機學院的劉近光和梁滿貴[16]介紹了基于MIPS體系結(jié)構(gòu)的多核處理器特點。浙江大學的陳天洲等[17-21]介紹了多核程序設計課程和進行了多核精品課程建設探索與實踐,并主持了教育部骨干教師多核技術(shù)培訓,對多核技術(shù)的教學科研做出了很大的貢獻。武漢大學電子信息學院的楊劍鋒等[22]介紹了“多核架構(gòu)及編程技術(shù)”這一教育部-Intel精品課程建設成果。北京工業(yè)大學計算機學院的方娟[23]探討了多核教學內(nèi)容和教學模式。與這些多核技術(shù)的教學成果相比較,由于多核硬件實驗平臺與軟件環(huán)境的難構(gòu)造,使得多核技術(shù)方面的實驗研究成果特別少。根據(jù)作者的可查文獻,中山大學教學實驗中心的程小雄和伍麗華[24]進行了基于FPGA的多核技術(shù)課創(chuàng)新實驗探索,介紹了在現(xiàn)場可編程門陣列(FPGA,F(xiàn)ield Programmable Gate Array)芯片和SoPC(片上可編程系統(tǒng))、NOIS-II等工具軟件所組成的軟硬件平臺下,開展多核技術(shù)課程創(chuàng)新實驗的研究;并在新組成的多核系統(tǒng)中,移植和擴展了µC/OS-II操作系統(tǒng),還設置了相關(guān)的實驗環(huán)境和若干實驗項目,對提高學生的綜合實驗能力具有積極的作用。
通過對計算機系統(tǒng)結(jié)構(gòu)和多核技術(shù)課堂教研與實驗教學動態(tài)的充分調(diào)研,我們不難得到多核技術(shù)在國內(nèi)課堂與實驗教學中的實施狀況,雖有新增多核課程或修改原有課程(如:計算機系統(tǒng)結(jié)構(gòu)、高級計算機體系結(jié)構(gòu)或高等計算機系統(tǒng)結(jié)構(gòu))的教學內(nèi)容,但較少涉及多核技術(shù)方面的實驗教學。基于這樣的背景,在計算機系統(tǒng)結(jié)構(gòu)中設計多核實驗,這對學生的實驗能力和綜合素質(zhì)提高具有特別重要的作用。
2多核實驗的設計
在計算機系統(tǒng)結(jié)構(gòu)課程中設計多核實驗,需要把握多核本質(zhì)和其技術(shù)要點。多核的本質(zhì)是為了解決高性能計算和并行計算問題,它在硬件和軟件兩個方面改變了傳統(tǒng)的計算機系統(tǒng)結(jié)構(gòu)。由此,多核技術(shù)的發(fā)展使得計算機系統(tǒng)結(jié)構(gòu)的教學發(fā)生了變化,這種變化主要來自于多核技術(shù)所帶來的新知識點。多核技術(shù)所涉及的知識點可歸納為硬件和軟件兩個方面,具體如下:
1) 多核硬件方面的知識點。
(1) 多核下的硬件設計技術(shù),包括Cache與存儲一致性、網(wǎng)絡互聯(lián)、IO管理;
(2)多核芯片與傳統(tǒng)單核微處理器的區(qū)別,多核SoC(System on a Chip)芯片技術(shù);
(3) 嵌入式多核芯片技術(shù)以及典型多核芯片:Cell、OpenSparc、Intel雙核芯片、AMD雙核芯片等;
(4) 并行體系與多核體系結(jié)構(gòu)、多核平臺結(jié)構(gòu)與芯片組支持技術(shù)。
2) 多核軟件方面的知識點。
(1) 多核操作系統(tǒng)、多核系統(tǒng)軟件對并行編程的支持、多核API優(yōu)化函數(shù)庫,多核平臺上編譯工具;
(2) 多線程編程對多核的支持,Windows/Linux多核多線程編程技術(shù);
(3) OpenMP多線程編程及性能優(yōu)化,MPI (Message Passing Interface)編程及性能優(yōu)化;
(4) 多核多線程程序的性能評測方法與工具。
基于上述的多核知識點,聯(lián)系計算機系統(tǒng)結(jié)構(gòu)原有實驗,可在硬件平臺和多核軟件工具上設計多核實驗。
多核實驗,包括兩個方面的實驗內(nèi)容。一是在FPGA芯片上設計多個同構(gòu)或異構(gòu)處理器內(nèi)核,并進行操作系統(tǒng)的移植,最終做出一個可實際運行的多內(nèi)核計算機系統(tǒng);通過該實驗,可增長學生對實驗的興趣,更深刻理解多核技術(shù)的知識點。二是Windows/Linux多核多線程編程實驗,利用多核軟件工具進行編程;在Windows平臺下,利用Win32API、MFC或.Net Framework提供的接口來實現(xiàn);若在Linux平臺下,利用IEEE POSIX標準定義的API進行多線程編程。對于綜合設計,可設計為學生課外的有關(guān)多核技術(shù)設計、實驗或發(fā)展趨勢調(diào)研的課程設計、創(chuàng)新設計或畢業(yè)設計,訓練學生面對實際應用問題的綜合分析、方案設計、多種程序設計結(jié)構(gòu)的綜合使用和實際工程問題的綜合解決能力。
在計算機系統(tǒng)結(jié)構(gòu)中設計多核實驗,希望達到如下目標。
1) 設計多核實驗,發(fā)展計算機系統(tǒng)結(jié)構(gòu)課程教學與實驗實踐內(nèi)容,按照Intel多核技術(shù)大學合作計劃[25],實現(xiàn)高校與Intel的合作;
2) 理解普適的多核思想和硬件設計理念[26, 27],普及并行計算技術(shù),使廣大的本科生能在以后的程序設計與開發(fā)中可以發(fā)揮多核計算優(yōu)勢;
3) 通過多核實驗,強化計算機專業(yè)本科生和未來的科研人員的實驗動手能力,激發(fā)興趣愛好
和創(chuàng)造潛能,幫助他們更有效地開展進一步的科研工作。
3結(jié)語
計算機系統(tǒng)結(jié)構(gòu)中多核實驗的嘗試性設計,旨在教學實踐中不斷完善和創(chuàng)新,充分體現(xiàn)多核技術(shù)的革命。應用FPGA技術(shù)設計多核實驗,是一種培養(yǎng)學生創(chuàng)新能力的嘗試,一種引導學生從感性上理解多核技術(shù)內(nèi)涵的實驗創(chuàng)新,有利于促進計算機系統(tǒng)結(jié)構(gòu)課程在多核時代的發(fā)展。
參考文獻:
[1] David L. Weaver. OpenSPARCTM Internals[Z]. Sun Microsystems Inc,2008(10):1-36.
[2] 張晨曦,劉依. 探索新的教學模式和方法,建設計算機系統(tǒng)結(jié)構(gòu)精品課程[J]. 計算機教育,2007(12):103-106.
[3] 張晨曦,王志英,劉依,等. 計算機系統(tǒng)結(jié)構(gòu)課程內(nèi)容體系的研究[J]. 計算機教育,2009(20):57-60.
[4] 吳曉華,徐潔,王雁東,等. 計算機系統(tǒng)結(jié)構(gòu)課程教學探討[J]. 實驗科學與技術(shù),2006(6):67-70.
[5] 王華,徐潔,王雁東,等. 計算機系統(tǒng)結(jié)構(gòu)課程改革與探索[J]. 計算機教育,2009(10):15-17.
[6] 徐潔,王華,吳曉華, 等. 淺析SPEC基準測試程序集及評價指標[J]. 實驗科學與技術(shù),2010(6):21-24.
[7] 王志英,李宗伯,錢程東,等. “計算機體系結(jié)構(gòu)”國家精品課程的特色與建設經(jīng)驗[J]. 計算機教育,2007(4):27-28.
[8] 姜晶菲,肖儂,王志英,等. “計算機體系結(jié)構(gòu)”課程建設及改革思考[J]. 計算機教育,2009(18):3-5.
[9] 王志曉,夏戰(zhàn)國,王凱. “計算機組織與體系結(jié)構(gòu)”教學改革與探索[J]. 福建電腦,2009(2):213-214.
[10] 曲大鵬,薛建生,范鐵生. 啟發(fā)式教學法在計算機系統(tǒng)結(jié)構(gòu)教學中的應用[J]. 遼寧大學學報,2010(3):218-220.
[11] 童小念,何秉嬌,舒萬能. 計算機系統(tǒng)結(jié)構(gòu)實踐教學環(huán)節(jié)的研究與實施[J]. 計算機教育,2008(3):66-68.
[12] 舒萬能,童小念,何秉嬌. 計算機系統(tǒng)結(jié)構(gòu)實踐教學體系研究[J]. 科技信息,2009(5):5-6.
[13] 王小鴿. 關(guān)于多核技術(shù)的幾點思考[J]. 程序員,2006(9):56-58.
[14] 薛巍. 多核課程建設[J]. 計算機教育,2007(6):40-43.
[15] 吳繼雁. 多核技術(shù)及發(fā)展趨勢[J]. 哈爾濱軸承,2007(28):57-58.
[16] 劉近光,梁滿貴. 多核多線程處理器的發(fā)展及其軟件系統(tǒng)架構(gòu)[J]. 微處理機,2007(1):1-3.
[17] 陳天洲,曹捷, 王靖淇. “多核程序設計”概述[J]. 計算機教育,2007(7):39-41.
[18] 陳天洲,劉蘇明. 教育部骨干教師培訓課程設計:多核技術(shù)[J]. 計算機教育, 2007(10):65-67.
[19] 陳天洲. 多核課程建設探索與實踐[J]. 計算機教育,2007(2):51-55.
[20] 陳天洲,王靖淇,劉蘇明. 從“教育部-英特爾精品課程”評審看大學對多核技術(shù)的課程改革[J]. 計算機教育, 2007(6):37-39.
[21] 陳天洲. 多核精品課程建設與拓展[J]. 計算機教育,2008(1):61-62.
[22] 楊劍鋒,田茂,謝銀波. “多核架構(gòu)及編程技術(shù)”課程建設[J]. 計算機教育,2007(12):82-83.
[23] 方娟. 多核技術(shù)在“高級計算機體系結(jié)構(gòu)”課程中的引入與探討[J]. 計算機教育,2008(20):41-42.
[24] 程小雄,伍麗華. 基于FPGA的多核技術(shù)課創(chuàng)新實驗探索[J]. 實驗室研究與探索,2008(27):3-5.
[25] 英特爾軟件學院. 辭舊迎新繼往開來持續(xù)推進“英特爾多核技術(shù)大學合作計劃”[J]. 計算機教育,2009(2):119.
[26] Kunle Olukotun,Lance Hammond,James Laudon. Chip Multiprocessor Architecture:Techniques to Improve Throughput and Latency[M]. San Rafael:Morgan & Claypool Publishers,2007:1-141.
[27] Ahmed Amine Jerraya,Wayne Wolf. Multiprocessor Systems on Chips[M]. San Fransisco:Morgan Kaufmann Publishers, 2005:357-392.
Multi-core Experiment Design of Computer Architecture
YU Yongbin, XU Jie, WANG Hua, ZHANG Fengli, LIAO Jianming, ZHOU Shijie
(Computer Science and Engineering College, University of Electronic Science and Technology, Chengdu 610054, China)