計算機語言的概念匯總十篇

時間:2023-06-16 16:03:50

序論:好文章的創作是一個不斷探索和完善的過程,我們為您推薦十篇計算機語言的概念范例,希望它們能助您一臂之力,提升您的閱讀品質,帶來更深刻的閱讀感受。

計算機語言的概念

篇(1)

中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2011)16-3809-02

Research on Method of Semantic Similarity Based on Concept Semantic Tree

HAN Xin, QIN Fan

(School of Electronics and Computer Science and Technology, North University of China, Taiyuan 030051, China)

Abstract: At present, the application of information retrieval has been widely used, but it is still a difficult thing to be accurate in the specific field of searching. This paper provides a semantic similarity calculation method based on the concept semantic tree, considering the concept of the semantic relations, hierarchies, and inheritance and other factors, as much as possible to improve retrieval efficiency in specific areas of information, and at final, demonstrate the feasibility of the method by experiment.

Key words: semantic retrieval; concept semantic tree; semantic similarity

傳統的信息檢索都是基于關鍵詞查詢的,因此在檢索時可能會出現一堆用戶并不真正需要的信息,導致查詢結果的準確率很低,查全率也不令人滿意,會出現“表達差異”,“詞匯孤島”等問題。語義檢索就是把信息檢索從傳統的基于關鍵詞層面提高到基于語義的層面,從語義方面著手,分析概念之間的內在聯系,利用語義來組織、存儲和獲取信息,信息和語義的結合,使信息變成計算機可識別的知識,從而系統能識別出用戶所需要的信息,提高檢索的查準率和查全率。

1 語義相似度

語義相似度是對語義相似性的定量表示,語義相似度計算是信息檢索、數據挖掘、知識管理等領域的基本問題。在信息檢索中,語義相似度能夠更多的反映文本概念是否符合用戶的查詢要求,相似度越高,說明文本內容與用戶的查詢請求越接近。

劉群、李素建[1]基于實例的機器翻譯,提出語義相似度就是兩個不同上下文本中的本體概念,在不改變文本的句法及語義結構的情況下可以互相替換的程度。如果位于不同上下文本中的兩個概念詞語在不改變文本的句法及語義結構的情況下可以互相替換的可能性越大,則說明二者的相似度就越高,否則相似度就越低。

當兩個語義概念元素x,y相似時,用sim(x, y)表示兩者之間的相似度,形式上,相似度計算滿足[2]:

1)相似度的值為[0,1]區間中的一個實數,即sim(x, y)∈[0,1];

2)如果兩個對象是完全相似的,則相似度為1,即sim(x, y) = 1 當且僅當x = y;

3)如果兩個對象沒有任何共同特征,那么相似度為0 ,即sim(x, y) = 0;

4)相似關系是對稱的,即sim(x, y) = sim(y, x)。

2 概念語義樹

使用層次化的樹狀結構來描述概念之間的邏輯關系,這種語義化的概念樹為檢索算法提供語義基礎,在檢索過程中不同的概念之間也有一定的相似性和相關性,因此需要處理概念樹中祖孫節點、兄弟節點等不同類型的關系,我們考慮用概念間的相似度對其進行描述和量化,以提高檢索的準確率為了計算概念相似度,作如下定義[3-4]:

定義1:在本體概念的樹狀層次結構中,如果概念A和概念B之間存在這樣的關系:A是B的祖先,則稱A和B為同支概念。概念A稱為A和B的最近根概念,記為R(A,B),而A、B之間的距離dist(A,B)=dep(B)-dep(A),其中depth(C)為概念C在層次結構中的深度。如圖1(a)所示。

定義2:在本體概念的樹狀層次結構中,如果概念A和概念B之間存在如下這樣的關系:A不是B的祖先并且B也不是A的祖先,則稱A和B為異支概念。如果概念R是A和B最近的共同祖先,并且是符合此條件的所有節點中距離概念樹的根節點最遠的一個,則稱R為A和B的最近根概念,記為R(A,B),且A、B之間的距離為dist(A,B)=dist(B,R)+dist(A,R),如圖1(b)所示。

定義3:概念C 稱為概念A 和B 的語義相關概念,當且僅當概念C 滿足如下的條件:當A, B 為同支概念時,C 在以A 為根的子樹中且不在以B 為根的子樹中;當A,B 為異支概念時,C 在以R 為根的子樹中且不在以A 或B 為根的子樹中。

在計算語義相似度時,A和B各自的子概念數以及它們的語義相關概念數對相似度計算結果也有影響, 當A,B為同支概念時,A的子概念由B的子概念和A,B的語義相關概念組成,前者所占的比重越大,則概念A,B的語義相似度越大;當A,B為異支概念時,R的子概念由A 的子概念、B 的子概念以及A,B 的語義相關概念三部分組成,前兩部分的比重越大,則A,B 的語義相似度越大。

1)當A,B為同支概念時,A與B之間的語義關系為:

式中,m表示概念B的子概念數,n表示概念A的子概念數。

2)當A,B為異支概念時,A與B之間的語義關系為:

式中,m表示概念B的子概念數,n表示概念A的子概念數,X表示A與B最近根概念的子概念數。

定義4:兩個概念之間的語義距離,是指在語義樹中連接這兩個概念的最短路徑的長度。語言學研究認為,兩個概念的語義距離越大,其相似度越低;反之,兩個概念的語義距離越小,其相似度越大,兩者之間可以建立一種簡單的對應關系。特別地當兩個概念之間語義距離為0 時,其相似度為1;當兩個概念之間的語義距離為無窮大時,其相似度為0。兩個概念之間的語義距離表達式為:

式中,distant(A,B)表示概念A與B之間的語義距離,weighti表示連接A,B的最短路徑上第i 條邊的權值。

定義5:概念的深度是指該概念與語義樹根的最短路徑中所包括的邊數。因為在語義樹中,每一層的概念都是對上一層概念的細化,由此可見,在語義距離相同的前提下,兩個概念的深度和越大,概念之間的相似度越大;兩個節概念的深度差越?。桓拍钪g的相似度越大。概念深度的表達式為:

式中,depth(A)表示概念A的深度,n表示概念A與語義樹根之間的最短路徑中所包括的邊數。

3 語義相似度計算方法

考慮概念語義樹中概念之間的層次關系、繼承關系及語義關系,我們提出下面這個關于語義相似度的就算方法:

其中:Level(A,B)表示概念之間的語義關系對相似度的影響;

Distant(A,B)表示概念之間的語義距離對相似度的影響;

Depth(A,B)表示概念之間的深度對相似度的影響。

但對概念語義樹中層次結構分以下這兩種情況考慮:

1)當A,B為同支概念時,A與B的語義相似度為:

2)當A,B為異支概念時,A與B的語義相似度為:

α,β,γ為調節因子,且α+β+γ=1.

4 實驗結果

選取如圖2一個簡單的實例來計算語義相似度。

選參數α=0.6,β=0.3,γ=0.1,可得到“計算機”與其余各節點之間的語義相似度為:

參考文獻:

[1] 劉群,李素建.基于《知網》的詞匯語義相似度計算[J].Computational Linguistics Chinese Language Processing,2002,7(2):59-76.

[2] 李玲.面向流程診斷的企業知識相似度匹配工具研究與開發[D].哈爾濱:哈爾濱工業大學,2006.

篇(2)

為了不斷提高技能水平,增強就業競爭力,高職院校的學生在取得大專學歷的同時,努力獲得各種職業資格和崗位資格證書,而全國計算機等級考試一級MS Office就是其中之一,它用以測試學生的計算機應用知識的掌握和實際操作能力。從歷年我校學生參加的國家一級MS Office考試的成績(滿分100分,60分及格)來看, 過關率排名在全區范圍來講即使相對比較靠前,但絕對成績還是較低,這充分證明了傳統教育模式的弊端。

因此,筆者嘗試將CDIO理念應用于高職院校計算機基礎課程的教學中,分析CDIO指導下教學的特點和實施教學的思路,以包頭輕工職業技術學院為例,結合本校計算機基礎課程的目標和學生的特點,探索一種新的教學模式。

2 CDIO簡介

CDIO代表構思(ConcEive)、設計(Design)、實現(Implement)和運作(Operate) ,它以產品研發到產品運行的生命周期為載體 ,讓學生以主動的、 實踐的、課程之間有機聯系的方式學習工程。

CDIO理念是做中學和基于項目教育和學習的集中概括和抽象表達。它提出系統的能力培養方案與實施辦法,與我國高職院校所倡導的項目教學及校企合作辦學在理念上具有一致性,這就決定了CDIO引入高職教育具有十分重要的作用。

從2000年起,麻省理工學院和瑞典皇家工學院等四所大學經過四年的探索研究,創立了 CDIO 工程教育理念。國內最早引入CDIO工程教育理念的是汕頭大學工學院,經過多年的實踐表明,CDIO理念非常適合工科教學的各個環節。目前國內已有近四十所CDIO試點高校,并且教學改革多集中在本科院校的機械、電氣、土木這些學科類別進行,而高職院校對于這種教學模式的滲透相對較少。

3 計算機應用基礎教學改革策略

3.1 編寫適合教學要求的教材

根據教學要求和改革思路,以及國家一級MS Office考試大綱的要求,編寫一本相適應的教材,教學內容應該突出應用性和先進性,希望學生能夠學以致用。教材一共可以分為七章,第1章計算機基礎知識,第2章認識Windows 7操作系統,第3章文字處理軟件Word2010,第4章電子表格處理軟件Excel2010,第5章使用演示文稿制作軟件PowerPoint2010,第6章計算機網絡基礎知識。其中第1章和第6章是純理論性的知識,可以以選擇題的形式考核同學們的掌握情況,其他章節我們可以分為若干個任務,每個任務對應1~2課時的教學內容,每章之后還有實訓的要求和內容。其中任務部分較為詳盡地介紹一些實用的操作,如同老師在手把手地對學習進行實踐操作一樣,而實訓部分則結合任務內容提出一些要求,學生在思考之后才能進行操作,以期對基本操作水平進行鞏固提高。

3.2 靈活運用教學方法和手段

堅持以教師為主導、學生為主體的現代教學理念,課程的實訓環節將教學內容設計為教學項目,圍繞項目的完成開發若干任務單元,每個任務單元的實施都包含構思、設計、實施、運作等4個環節。教師在教學過程中應該靈活采用個案教學、項目教學、問題教學、任務驅動式教學、啟發式等教學方式方法,以充分調動學生的學習積極性,加深其理解。教學做之間形成良性互動、互相促進,整個項目設計的精髓是實踐性和可操作性,項目設計環環相扣,緊緊圍繞所需學習和掌握的內容,形成一個整體教學方案和授課模式。比如說利用Word創建一份個人簡歷。該項目涉及到以下幾個主要知識點:表格的基本操作、編輯和排版文檔、圖片的處理。教師可以引導學生充分發揮自己的潛力,利用已學的知識設計一份精美獨特的個人簡歷。首先進行構思,個人簡歷一般包括哪些部分,學生們可以借助網絡等手段進行查閱資料,得到結論,一般可以分為封面,基本情況和自薦信三個方面。接著大家就可以開始查找素材,選擇適合自己風格的封面圖片,根據需要創建并填寫表格,以這種簡明扼要的表現方式展現自己的基本情況,最后寫一封自薦信。一邊制作思考,一邊進行格式設置,最后同學們紛紛設計出一份別具心裁的個人簡歷,之后相互間再多比較比較,取長補短。這樣的教學方式特別靈活,學生們的學習興趣也被激發,轉被動型學習為主動型學習,從而提高了教學效果和教學質量。

篇(3)

隨著計算機技術的飛速發展與計算機應用領域的不斷拓展,用人單位對高職計算機專業畢業生的要求不斷提高,給高職計算機專業教學提出新的挑戰。實驗教學是高職計算機專業人才培養的規定動作和必要環節,是培養學生自學能力、實踐能力和創新能力的重要途徑。針對高職計算機專業實驗教學現狀,基于MOOC(Massive Open Online Course,大規模開放在線課程)理念進行高職計算機專業實驗教學改革,創建多元實驗教學內容,構建全新實驗教學模式,創建立體化實驗考核方法與構建新型實驗教學師資隊伍,是實現高職計算機專業“以就業為導向,以能力為本位”教育理念的有力保障。

1 高職計算機專業實驗教學現狀

1.1 實驗教學內容更新滯后

實驗教學內容是學生掌握技能的主要來源。目前,高職計算機專業的實驗教學內容多依照教材知識點設計,參照教材實例“依葫蘆畫瓢”,缺乏啟發性與創新性;實驗內容相對孤立,各實驗間不能形成技能體系,學生難以掌握實際應用能力;部分實驗內容知識陳舊,不能體現技術熱點,與用人單位要求聯系不緊密。

1.2 實驗教學模式不能滿足教學發展需求

合理的實驗教學模式是良好的教學效果的前提與保障。傳統的實驗教學模式主要包括教師演示講解與操作指導,教師是課堂的中心,學生單一地依賴教師獲取知識。教師和學生之間的信息傳遞為“單向”傳遞,學生難以在課堂上將所學知識“內化吸收”。隨著網絡的發展與智能終端的普及,傳統的實驗教學模式不能激發學生的學習熱情,不能充分調動學生學習積極性。

1.3 實驗考核方法不能實現多維度考核

考核方法是學習方向的指揮棒。目前高職計算機專業實驗課程的考核方法主要包括實驗報告、平時作業、階段考核和期末考核等,由教師完成全部考核。實驗報告和平時作業不易實現“一題多卷”,難以評價學生完成的獨立性和學習的主動性;階段考核和期末考核只對階段學習作出總結,不能實時跟蹤學生的學習狀態;考核僅由教師完成,存在一定的主觀因素?,F有的考核方法不能很好地實現“以考促學”的目的。

1.4 師資隊伍專業素質有待提高

教師的專業素質直接影響實驗教學活動效果。高職計算機專業辦學起步較晚,師資力量薄弱。受高職辦學層次限制,教師參加培訓和參與科研項目的機會較少。隨著計算機技術的發展與應用領域的拓展,教師的知識結構與教學思想已不能滿足培養“高技能”實用型人才的需要。

2 基于MOOC理念的高職計算機專業實驗教學改革

2.1 創建多元實驗教學內容

MOOC是一種新興的網絡化智慧教育,其利用網絡獲取世界范圍優秀教學資源的模式給教師提供了一個良好的教學改革思路?;贛OOC理念,以實驗教學大綱為基準,將教學內容分解為若干個關聯的技能能力點,細化實驗內容,突出實驗重點;以市場需求為導向,融入ACM大學生競賽與科研項目,優化實驗內容,提高實驗課程的實踐性、啟發性與創新性;以互聯網為平臺,引入網絡優質資源與MOOC在線課程資源,豐富實驗內容,增強實驗課程的實時性與先進性。充分利用網絡資源,優化實驗課程知識結構,創建多元實驗教學內容。

2.2 構建全新實驗教學模式

根據高職計算機專業實驗教學特點,構建傳統實驗課堂、MOOC翻轉課堂、網絡虛擬課堂相結合的“三個課堂”實驗課堂體系;創建理論知識講解與實踐應用操作相結合、教學活動與競賽/科研活動相結合、單一課程與相關專業課程相結合的“三個結合”的立體教學方法;創建教師引導學生主體模式、小組討論個別輔導模式、理論分析操作演示模式相結合的“三個模式”輔導方法;構建教師與學生互動、學生與學生互動、師生與企業互動相結合的“三個互動”溝通方式。充分利用網絡資源,有機整合教學視頻、電子教案、板書講解與實踐操作,構建立體化實驗教學模式。

2.3 創建立體化實驗考核方法

針對高職計算機專業實踐課程的特點,創建考核學生知識掌握情況、激發學生學習興趣、促進學生全面發展相結合的考核目標;構建操作試為主、筆試為輔,課堂問答/答辯為主、課后作業為輔,實際課堂互動為主、虛擬課堂互動為輔,團隊合作為主、創新性為輔的多角度考核指標;創建教師評價、生生互評、學生自評相結合的“師生共評”評價方法。在考核中,將成績評定滲透到每個教學環節,做到公平公正公開,注重學生學習主觀因素的考核,達到“以評促學”。

2.4 構建新型實驗教師隊伍

實驗教學是理論教學的鞏固與延展,是培養學生實踐能力的重要環節。實驗教師的教學活力與實踐能力直接影響計算機專業課程的教學效果與學生實踐能力的培養。基于MOOC開放、互動的理念,在“走出去、請進來、傳下去、動起來”的培養思路基礎上,鼓勵實驗教師積極學習交叉學科知識,積極參與MOOC團隊建設,在優化自身知識結構與提高實踐能力的同時,開拓教學思路,增強教學能力,從而更好地激發教學活力。

篇(4)

SNS網絡是一種社區化網絡平臺,參與者可利用該平臺進行聊天、交友、分享心情等活動,社區網絡一經提出,吸引了很多青少年學生,在國內 ,特別以人人網、開心網等帶有校園網絡性質的校園網吸引了很多大學生,據調查表明,大學生參與這些網絡主要目的是為了交友和娛樂,其中又以游戲為主,例如偷菜游戲就曾經風靡一時。計算機網絡技術開發,雖然是以豐富人們的物質文化生活為目的,但是作為大學生而言,借助網絡工具學習才是主要目的,因此很多學者就如何通過SNS網絡進行教學教輔展開了研究,作者所在團隊也展開了相應的研究,以江西省教育廳教學改革課題“SNS網絡在計算機語言課教學中的應用”為依托,開展把SNS網絡概念引入計算機語言課的教學實踐。

計算機語言課教學有著和其他課程不同的特點,首先計算機語言課必須要求學生具備計算機,只有這樣才能在學習過程中實踐驗證學到的理論,其次計算機語言課的學習對網絡的依賴性較高,因為計算機語言是一種不斷發展和創新的技術,要學好這門語言,就必須緊跟時代技術潮流,第三計算機語言課學習對團隊要求較高,如今的軟件工程已經不是小作坊式的概念,為了完成一項工程,必須集合數據庫、界面、語言等多方面人力共同完成,而這些需求不能僅僅依靠項目組之間開會完成。因此根據以上計算機語言學習特點,總而言之一個小的開發團隊就是一個小的社團,若干個團隊組建一起就是一個大的網絡社區,因此把SNS網絡概念引入計算機語言課教學大有所為。

在把SNS網絡引入計算機語言課程學習前,需要對學生進行一系列的調查研究,本文就調查過程中需要注意的一些問題,提出自己的觀點,以供同行參考。

1、對學生計算機語言課程基礎進行摸底:不同專業的學生,不同層次和年級的學生,其計算機語言基礎不同,有些學生僅僅是學過基本的計算機語言,例如basic語言等,而有的學生則已經學習過高級面向對象語言,例如java語言,而有些學生則是第一次學習計算機語言,因此要摸清學生的語言基礎,這對把SNS網絡引入計算機課程教學教輔成功很重要。相關問卷可以設計為:之前學過什么編程語言?是否開發過應用軟件?等等

2、對學生學習興趣的摸底:即使是同樣專業的學生,對計算機軟件課程感興趣的程度也不一樣,有的學生甚至很厭惡學習計算機語言課,這些厭惡學習的學生調查問卷是調查問卷中的噪音數據,因此影響調查的真實性,保證調查問卷的數據真實性,就必須踢出這些學習的調查結果。

3、學習交流方式的摸底:有的學生學習喜歡一個人慢慢的摸索,有的喜歡在網上提問,而有的學生則很喜歡和同學進行交流溝通,因此在調查過程中,可以設計如學習過程中,你喜歡什么方式和老師溝通?利用網絡進行語言課學習你認為是否有必要,你是否會參與等等問題。

4、對SNS網絡的了解摸底:雖然SNS網絡已經大行其道,但是對于SNS網絡這一名詞還是有很多人感到陌生,因此在調查之前要先講明SNS網絡的概念,并調查中要設計例如是否聽說過人人網、開心網?是否進行過網上交友?如果您經常性進入某一網站,你最希望得到 ?如果有個學習論壇,你期待他能有什么功能?

5、對上網時間的調查:上網時間的調查目的是為了調查學生對網絡的熟悉程度,對在網絡上進行搜索能力的高低,同時也可以調查出學生利用網絡進行自我學習的積極性和所占課余時間的比重。

當然進行調查問卷涉及方方面面,不可能僅僅是在以上五點,本文僅僅是從SNS網絡引入計算機語言課教學調查問卷出發,就相關注意方面提出自己的觀點,對于SNS網絡在其他教學中的應用則應該根據實際情況而定。(作者單位:江西科技學院信息工程學院)

本文在江西省教育廳教學改革課題“SNS網絡在計算機語言課中的應用”(編號為JXJG-11-19-15)和江西科技學院教學改革課題“SNS網絡特性的教學輔助平臺”(編號JY1303)資助下完成,特提出感謝。

參考文獻

篇(5)

“C語言程序設計”是高等學校的公共基礎課程,該課程要求學生了解程序設計的基礎知識并通過基本的編程訓練,培養大學生的計算機應用能力和軟件設計的基本能力[1]。C語言程序設計概述(下簡稱“概述”)是課程的第一講內容,一般包括計算機程序設計的基本概念、C語言的產生及發展過程和C語言程序設計的特點[2]。作為課程的導入課,“C語言程序設計概述”的課堂教學應該樹立起學生對課程的宏觀和整體認識,要解釋和回答好以下幾個問題[3]252:為什么要學這門課?這門課有什么用途?什么是計算機語言?計算機語言和人類自然語言有什么異同?什么是程序設計語言?程序設計語言是什么樣的計算機語言?C語言又是什么樣的程序設計語言?如何學好C語言?傳統的課堂教學往往對上述問題沒有完全回答或回答得不好。

2教學內容設計

筆者曾經做了這樣一個調查,對正在學習C語言程序設計課程,而且學習已經接近尾聲的學生進行問卷調查。75%的學生回答不出來課程有什么用?85%的人不能準確說出“計算機語言”的概念,80%的人不能說出到底什么是“C語言”?70%以上的學生認為沒有十足的把握一次通過計算機二級考試。從這個調查問卷,發現筆者的“C語言程序設計”教學真的很失敗――學生連最基本的概念都沒有掌握,我們感到上好“概述”真的十分重要。教師在講解“概述”時,一般就是從給學生演示“程序編輯調試”入手,進而講解C語言的發展,接著講解C語言程序設計中的數據類型、控制語句等。殊不知,這些學生都是從高中才進入大學,他們對程序設計可能一無所知,乍一接觸這些知識,一下子可能無法接受,更有學生從此就失去了學習“C語言程序設計”的興趣。

2.1設問解答式教學思路[4-6]

“概述”是C語言教學的敲門磚,上好這一節課,直接影響到后續章節的成敗。講述這個內容時,我們首先需要講解這門課程的重要性,使學生認識到這門課必須要學好。在學生還不知道課程內容時,適當地通過課程提問,逐一分析解決,使學生認識到C語言的強大功能,產生學習的動力,希望學好C語言,了解C語言的學習方法。如圖1所示。

2.2承上啟下講解課程的性質

對于學習,人總有一種想法,重要的東西才去學。對任何一門課程,教師必須要跟學生強調這門課程的重要性,從擴充知識體系方面去強調重要性,同時要用通俗的語言來提起學生的興趣。對于C語言程序 設計,我們采用了如圖2所示的講解方法,使學生初步了解課程的重要性。

2.3層層遞進提出問題

設問解答式在教學中已經成為一種流行的教學方法,但在問題設置和解答方面都要有技巧。很多人習慣提的問題是某一講內容的重點、難點,殊不知,學生還沒有開始內容的學習,如何能做到對提出問題有印象,從而做出解答。針對學生對程序設計的了解情況,我們設置以下問題,這些問題層層遞進,如果學生了解了這幾個問題,那么就對C語言有了一定的了解:

1) 有了豐富的人類語言,為什么還要有計算機語言?

2) 計算機語言有何特征?

3) 程序設計語言是一種什么樣的計算機語言?

4) C語言是什么樣的程序設計語言?有何特點和作用?

5) 如何學習C語言?

2.4教學方法和技巧――解決問題

2.4.1為什么要學習計算機語言

這是每個計算機初學者遇到的問題,我們利用圖3所示的方法來使學生了解計算機語言與人類語言的區別:計算機語言是人與電腦交流的工具,計算機看得懂;而人類的自然語言是人與人交流的工具,計算機不認識。因此我們要指揮計算機做事,就必須要學習計算機的語言。

2.4.2計算機語言家族

有學生認為所有的語言學起來都枯燥無味,計算機語言也不例外。這個時候我們可以列舉一下“圖靈獎與計算機語言”,如圖4為計算機語言的類別,通過講解讓學生了解到計算機語言的大師們對計算機語言的貢獻,對計算機及信息技術發展的貢獻,使他們感受到計算機語言的魅力,激發學習興趣。

2.4.3以獨特的視角展現“C語言”特色

學生在了解了計算機語言的概念后,肯定很想知道計算機語言的特征,我們抓住學生的心理特點,將C語言的特點總結如下:

1) 嚴格定義,有嚴謹的語法;

2) 語義上無二義性;

3) 比自然語言要精簡;

4) 是機器可執行的。

在講解這一部分時,我們一定要注意與人類的自然語言進行對比,使學生留下深刻的印象。

2.4.4層層細化,講解C語言的發展

當學生了解了“語言”、“計算機語言”之后,接著即可引入“C語言”的相關知識。講解過程中,我們始終把握聯系實際,由淺入深的步驟[3]252-253,如圖5展示了講解思路,采用圖示的方式講解計算機語言的發展過程:

2.4.5圖解“程序”的概念

我們一直強調,要計算機做事,要控制計算機,而其中重要的步驟是編寫程序、解決問題。理論上說,計算機可以作任何事情,只要把實際問題抽象、制作為可求解的程序,本過程適宜采用如圖6所示的圖示方式講解[3]252。

3結語

我們在全?!癈語言程序設計”教學中普遍實施上述教學思路,教師和學生普遍感覺收獲頗多,特別是加深了學生對C語言的了解,激發了他們學習的興趣,課堂教學與實驗教學效果都比過去有了明顯改善?!癈語言程序設計”課程在2010年度被評為湖南省精品課程。通過改革教學內容、改進教學方法使C語言教學更適應學生的需求,便于學生循序漸進地學習相關知識和技能[7]。同時在這個過程中,學生會不斷地獲得成就感,更大地激發起求知欲望,從而培養出獨立探索、勇于開拓進取的自學能力。最終使我們的教學更適用于培養學生的創新能力、獨立分析問題和解決問題的能力[8]。

注:本文所涉及內容的視頻錄像可在湖南工業大學“C語言程序設計”省級精品課程網站:218.75. 216.182/vc/850839觀看。

參考文獻:

[1] 張錦祥. 高級程序設計語言課程教學改革與實踐[J]. 浙江教育學院學報,2007(4):71-76.

[2] 譚浩強. C程序設計[M]. 3版. 北京:清華大學出版社,2005:1-12.

[3] 趙娜. C語言程序設計課程教學研究[J]. 科技情報開發與經濟,2007,17(8):252-253.

[4] 郭敏,劉會杰.“目標任務型”教學模式在程序設計課程教學中的應用[J]. 河北廣播電視大學學報,2007(2):54-56.

[5] 劉小燕,申艷梅.“C語言程序設計”教學方法探析[J]. 計算機教育,2010(6):94-96.

[6] 楊素吟. 設問講練教學法在教學中的運用[J]. 職業教育研究,2005(8):59-59.

[7] 溫雅敏. 數學專業高級語言程序設計課程教學模式改革探討[J]. 科技經濟市場,2008(5):119-120.

[8] 樓蔚松. C語言教學新模式探索[J]. 現代企業文化:理論版,2009(22):191-192.

Based Question and Answer Style’s“C Programming Language Overview”Teaching Content Design

LIU Qiang, LI Changyun, RAO Juhua

篇(6)

中圖分類號:H0-05 文獻標識碼:A

0引言

人類的語言是人類最重要的交際工具,是內心想法的真實外在表達,是思維的一種具體工具,也是人的重要的特征,在語言表達方面,這是區分動物與人的很重要的標志。當然,隨著人類的進華,語言也是在進化的,語言的發展也是一個循序漸進的過程,不是固定的,是隨著社會的發展,人類的需求變化而變化的。那么,計算機的語言也是這樣的工具,是表達計算機的“思維”的工具,是計算機的交流工具,計算機語言讓我們走進計算機的世界,計算機語言τ詡撲慊來說與人類的語言對于人類來說的重要性是有很大的相似之處的。但是,畢竟計算機的語言以及程序的設計等,是由人類的智慧所發明創造和設計的,所以計算機語言和人類語言還是存在一定程度的差異。可以說,計算機語言是在人類語言產生之后才出現的,在很多方面是借鑒人類的語言的,但是在逐漸發展的過程中,不可否認,計算機語言對于人類語言的發展也起到了一定的推動作用,整體來說,計算機語言和人類語言是相互促進的,是相互滲透的,不是完全獨立的兩種無關語言。

1計算機語言與人類語言的聯系

計算機語言與人類語言都是在逐漸的發展變化的,二者在具體的使用方面有一定的差異,同時二者在多角度也有很多相似之處,畢竟二者都是語言的媒介,只是應用的領域和部分具體的內容有差別。每種語言都會在發展的過程中,出現一些約定俗成的規矩,從語言學的角度來分析,計算機語言是一種形式化的人工語言,而人類的語言是人與人之間溝通的感性化的語言,兩種語言的定義概念不一樣,使用的領域也不一樣。

1.1計算機語言和人類語言的基本功能一致

計算機語言是計算機領域使用的語言,是計算機可以讀懂的語言,在計算機的操作和程序的設計和執行過程中,都離不開計算機語言,可以說,只要是存在計算機的地方,只要你想利用計算機,那么就涉及到計算機的語言,計算機只有通過固有的語言交流,才可以正常的運行。當然,從這個角度看,人類語言也是如此,人類語言是人類溝通交流的媒介,在人與人交往的過程中,如果沒有語言的溝通,那么結果想而知,是非常可怕的。從語言媒介的角度來看,二者的作用都是傳播一定的信號和信息,用以達到交流互動的目的。二者的最基本的功能都是溝通和交流,目的是使彼此了解,達到雙方的目的。從這個角度來看,計算機語言和人類語言是很一致的。

1.2計算機語言和人類語言的種類都很多

計算機語言的發展經歷了一個變化的過程,每一個階段都有著獨特的主要使用語言的形式,最初的機器語言為主發展到現在的面向對象語言為主,期間還有很多種,在發展變化的過程中,逐漸完善的,而且,每一種語言適合的領域也有一定的區別,而且在使用的過程中還存在一定的缺陷和使用的優勢,使用范圍廣、操作復雜等等。人類語言的種類更是繁多,每個領域有差異化的語言,每個民族有自己的語言特點,不同的場合使用的語言有著不同的表達方式等,這些都是人類語言的特點,漢語、英語等,也是語言種類之間的差異。計算機語言和人類的語言在語言種類方面,有很高的相似度,可以說都是非常繁多的,語種之間還是有一定的差異。

1.3語言存在主流和非主流之分

計算機語言雖然有很多種,但是還是有主流和非主流之間的區別的,計算機語言的Java和C++語言在日常的使用過程中出現的頻率還是非常高的,但是其他的一些功能不是非常強大或者存在一定缺陷,在軟件的設計中可能會被使用的頻率就會偏低。人類語言也是如此,漢語、英語在整個語言的使用范圍內,還是處于首要的地位的,一些相對較小國家的語言幾乎是在一定的范圍內使用,在國際場合中,一般不會出現。兩種語言在主流使用方面也存在一定的相似聯系。

2計算機語言與人類語言的差異

計算機語言和人類語言都是語言,理論上來說二者都是交流的沒接,只不過交流的具體對象不同,二者因此有很多的相同之處,但是在其他一些方面,二者同時也存在很大的差別,畢竟二者從概念上來講,不是一種同語言,任何事物的存在都有著自己的特性的,語言也正是這樣。下文簡單分析計算機語言和人類語言具體在哪些方面存在不同點。

2.1二者的發展方式不同

人類語言是一種常見的、存在于人與人之間的最普遍的事物,可以理解為是自然界中最基礎的、也是最重要的事物,是最貼近生活的事物,可想而知,人類語言的發展是建立在人們的日常的溝通交流中的,而不是出于科學的研究,是一種自然而然的變化過程,就是日常的使用需要的產物,至于后期有關專家學者對語言的研究,都是建立在語言背后的變化基礎之上的,而不是先研究后出現的發展變化。而計算機語言并不是與人類語言一樣的發展的方式,計算機語言的發展是為了滿足人們逐漸提高的要求而產生的,理論上來講,人們對計算機的應用只是應用已有的功能,對于沒有專門研究的功能是不可以直接使用的。那么,為了滿足這樣的需求,有關研究人員就會對此作出改進和完善,設計出更加符合當前實際需求的語言,當然,人們對之的利用是在科學研究成果之上的。二者在發展方式方面的差異還是非常明顯的,畢竟人類語言趨于普遍化,而計算機語言是一種前沿的科學技術。

2.2二者感彩不同

計算機語言就是一種機器的語言,是在人類的設定好的語言程序基礎上才可以實現的,所以,只會執行一些固定的語句,并不會按照自己的感情來表達自己的情緒和意愿,是機器的操作,沒有任何的感彩,絕對的理性執行。但是,人類語言則不是這樣的,我們在日常的交流和表達自己的感情過程中,除了拍劇,其他時刻表達的都是自己當時的感情,并沒有任何事前的設置,一切都是感情的真實的感情表達,具有非常濃重的感彩,與計算機的語言存在很大的差異。

3計算機語言與人類語言的相互滲透關系

計算機語言是計算機用于執行程序和設計軟件的語言,是一種機器的語言;人類語言是人與人之間溝通的語言,表達自己感情的語言,雖然二者看似很遠,但是在二者的發展過程中,都會受到對方的影響,彼此還是會做出一定貢獻的,二者之間對彼此產生的影響也是不容忽視的。下文具體說明計算機語言和人類語言在彼此的發展壯大過程中,二者是如何滲透、如何相互促進發展的。

3.1人類語言對計算機語言的影響

(1)人類語言使得計算機語言表達的具體化。人類語言非常博大精深,但是計算機語言相對匱乏,因此出現很多使用人類語言開理解計算機語言的情況。比如,run在人類語言中是“奔跑”的含義,被計算機語言多借用,還以為“運行”,body在人類語言中是身體的含義,但是愛計算機語言中可以理解為“主機”,類似這樣的詞語有很多,在此不一一列舉。從以上例子中不難看出,計算機語言的具體表達依賴的是人類語言的存在。

(2)人類語言使得計算機語言的表達簡化。計算機的語言中有很多是英文大寫字母的縮寫,這樣的詞語表達的完整含義是這些英文字母的連續拼寫,但是計算機語言中,為了表達的更加簡便,就會出現將完整表達的英文的首字母按照順序表達出來。這樣的計算機語言的表達,也是出自于人類語言的豐富和完整。

(3)人類語言為計算機語言的存在提供了多樣的基礎。人類語言的壯大和逐漸的發展,是計算機語言發展的基礎,計算機語言出現的比較晚,那么,如果計算機語言剛出現就以一種新鮮的陌生的方式出現,那么必然很難被人民群眾一時間完全接受,一般來說,人們是比較容易接受固有存在的事物,所以,計算機語言的出現以人類語言為基礎是一個很好地選擇。

從以上的人類語言對計算機語言的具體影響中,不難看出,計算機語言是在人類語言的發展基礎上發展起來的,本來計算機語言的起步就會晚于人類的語言,那么,計算機語言的發展植根于人類語言,人類語言是計算機語言的根源和依托。

3.2計算機語言對人類語言的影響

人類的語言發展和壯大的來源是非常廣泛的,當然,人類語言的發展有一部分是來自于計算機語言的,具體的滲透影響包括以下幾個方面。

(1)計算機語言為人類語言的發展提供了豐富來源。計算機是一種機械的語言,有很多固定含義和固定應用的語言,那么在生活中就可以把這樣的語言按照所想要表達的感情直接用計算機的語言表達出來,久而久之,這樣的形象利用就會被廣泛使用,逐漸成為人類語言的一部分,豐富了人類的語言,一定程度上促進了人類語言的發展壯大。

(2)計算機語言提高了自然語言的規范化。人類語言,我們都知道,是一種子日常中用于交流的語言,那么出現很多口語化、地方化的語言和文字,如果在其他范圍使用這樣的文字和語言,或許出現很大的語言的障礙。計算機語言的出現,由于設計程序的規范,計算機中出現的文字就會相對比較規范,人們長期使用計算機,就會潛移默化的影響自己的使用語言的習慣,這樣規范化了人們的用于,提高了人類語言的正規化。

4總結

通過以上的分析可見,自然語言和計算機語言在很多方面存在一定的聯系,同時區別也是很明顯的。無論是否一致,二者在發展的過程中在逐漸滲透是一個不可否認的事實,彼此在發展壯大自己本身的同時,對另一者的發展也起到了很大的作用。再堅實的根基也需要上層建筑的壯大,人類語言的基礎要做好,會加快計算機語言的發展;計算機語言在發展過程中,反過來會推動人類語言的規范化等。

參考文獻

[1] 漆慧.計算機語言與人類語言的互相滲透[J].電腦知識與技術,2005,24:66-67.

[2] 克里斯托弗?曼寧,竹西.跟懂得人類語言的計算機聊天[J].博鰲觀察,2016,02:76-79.

[3] 本報記者蔣波.讓計算機聽懂人類語言[N].人民日報海外版,2015-08-29008.

[4] 張愛香.計算機語言發展歷程綜述[J].中國科技信息,2013,24:120-121.

篇(7)

2、必須“盡快終止”程序設計的教學嗎?

最后提出了作者的看法:“中學計算機課程要以基礎性知識和技能性操作為主,程序設計是更高層次的學習內容” 。在時間和學生的接受水平允許的情況下應該并盡可能早地在計算機課中安排一些程序設計內容,但內容和深度要根據不同年齡的學生認知特點做精心的安排。

當前關于中小學計算機課程設置的一個爭論焦點是計算機課程中要不要有“程序設計”的內容,如果有,應該要求到什么程度?下面我們專門來討論這個問題。

一、澄清幾個概念

1. 計算機語言≠程序設計語言

在一些教師的腦中和普及計算機知識的書中,常把這兩個概念混為一談。例如一本全國范圍發行的計算機普及讀物中寫道:“為了和電腦交流信息,也要通過語言,……,由于電腦語言就是用來告訴電腦按次序干什么事情的,所以電腦語言又稱為程序設計語言?!笨梢娺@個問題不是個別人的問題,而是帶有普遍性的問題,必須加以澄清。

什么是計算機語言?“①狹義的指計算機可以執行的機器語言。②廣義的指一切用于人與計算機通訊的語言。包括程序設計語言,各種專用的或通用的命令語言、查詢語言、定義語言等?!盵1]現在一般采用后一種說法。

什么是程序設計語言?“泛指一切用于書寫計算機程序的語言,包括匯編語言、機器語言,以及一般稱為高級語言的完全符號形式的獨立于具體計算機的語言?!盵1]

上面兩段引言很清楚地說明了計算機語言與程序設計語言之間的區別和聯系。計算機語言是外延較大的概念,程序設計語言只是計算機語言下的一個屬概念?!拔覀兒陀嬎銠C打交道,就要用計算機語言”這句話是對的,但用計算機語言與計算機打交道,不一定要用程序設計語言。我們用DOS命令,就是在用計算機語言棗命令語言;我們用鼠標單擊某一圖標,讓計算機執行某一操作也是一種計算機語言。但它們都不是程序設計語言。當然這些命令語言,最后都要翻譯成機器語言去執行,但這是計算機內部運行機制的問題,絕不能以此為理由把這兩個概念混為一談(否則也不用區分機器語言、匯編語言和高級語言了,因為它們最終也都要翻譯成機器語言)。

弄清了這兩個概念的不同,一些說法的正確與否也就不言自明了。例如有人說:“人們交流要通過語言,人要和計算機打交道,也要通過語言,所以要使用計算機必須學習程序設計語言。”前半句話指的是計算機語言,而后半句話指的是程序設計語言,由于“偷換”了概念,推理不合邏輯,結論也就不可靠了。當然說這句話的人,我相信絕不是有意的詭辯,而是由于概念的混亂,自己欺騙了自己。 我們使用計算機,和計算機打交道,一定要學習計算機語言。我們學習DOS命令,學習Windows操作,就是學習管理計算機資源的語言。我們學習某種應用軟件的操作,也是學習計算機語言。總之,我們在學習計算機知識的過程中一直在學習計算機語言,一直是通過計算機語言和計算機打交道,但這不是程序設計語言。也就是說,學習使用計算機,一定要學習計算機語言,但不一定要學習程序設計語言。

2. 學習程序設計≠學習程序設計語言

在討論中另一個模糊的概念是把學習程序設計和學習程序設計語言混為一談。

我國著名的科學家馬希文教授寫道:“用一串符號把一個計算機過程描述出來,就是一個程序?!贫ㄒ恍﹪栏竦囊巹t,以確定什么樣的符號表示什么樣的程序。這些規則的總和就叫做一種語言?!盵2]

馬希文教授又接著寫道:“一個完整的程序設計過程大體有以下幾個步驟:(1)要把程序的功能描述清楚。……(2)用程序語言把預定的計算方案書寫出來。這是程序設計中最有特色的部分。簡單的計算可以直覺地進行程序設計。復雜的計算往往可以由簡單的程序按照各種模式搭配而成。然而,卻沒有一種機械的辦法可生成各種程序,換句話說,程序的設計是一件具有創造性的工作。(3)證明程序的正確性?!?4)在實際工作中,試算和修正是不可缺少的?!?[2]

從上面兩段引言中可以看出,語言是“嚴格的…規則總和”,我們學習一種程序設計語言,就是學習這種語言的規則,即學習語法、語義、程序及其他一些規定。這里涉及的是嚴格的定義,嚴格的書寫方法,沒有任何的創造性可言(一個字母一個標點都不能錯)。而學習程序設計是學習“設計過程”,內容主要是描述功能、書寫方案、證明正確性和試算和修正。程序設計“是一件具有創造性的工作”,兩者有著根本性的區別。 當然學習程序設計一般應選用一種語言作為工具,學程序設計就必須學程序語言,學習時兩者是不可能絕然分開的。但問題是各自的地位是什么?以哪個作為重點?我們中小學的教學目標是什么?是讓學生掌握一種程序語言呢?還是把程序語言作為一種載體,一種學習程序設計的工具,而把教學目標和重點落在程序設計的思想方法上?這就是當前計算機教學中的帶根本性的分歧點。目前很多計算機教師在進行程序設計教學時,往往把很大的精力,甚至是主要精力放在語法和語義上,他們不自覺地把程序設計的課上成了“程序語言”課,違背了我們的教學目標,原因就是沒有真正區別清楚程序設計和程序語言這兩者之間的不同。

二、程序設計是中學生計算機課程的基本內容嗎?

1.一部分人明確地提出計算機課中必須有程序設計內容,理由是“它是計算機學科的核心內容”。這里涉及到兩個問題,一是程序設計是否是核心內容;二是中學計算機課程是否應該按計算機學科專業要求來設置內容。

對于第一個問題,在大學計算機本科教學計劃《計算機教學計劃1993》中列出了計算機學科主科目有九項,而“程序設計”僅是其中一項[3]。為什么在9項中只選擇了“程序設計”這一科目為核心科目?為什么不選其他科目?理論上和實踐上的根據是什么?

對于第二個問題早有定論,中學是基礎教育不是專業教育,課程應該主要根據社會的需要來設置,同時考慮學生的接受能力和學科本身的需要。提出上述看法的人,不自覺地受到了“學科中心論”的影響,其理論基礎就是錯誤的,因此論點也就不能成立。

2.有人認為,選“程序設計”內容是因為它可以培養學生的“分析問題和解決問題的能力”。這個論點在一定條件下說是正確的。我國十幾年來在國內外計算機程序設計競賽中,涌現出大批的優秀人才,這些學生的分析問題和解決問題的能力,通過程序設計鍛煉確實有不同程度的提高,他們進入大學后的表現也證明了這點。 但研究任何問題不能脫離實際抽象地論證。我們這里談的不是競賽,不是少數優秀學生的課外活動,而是全體學生都要學習的計算機課程,即素質教育。目前我國計算機課一般在高一開設,總共只有60-70學時。在這幾十學時內要學習計算機基本知識、基本操作,還要學習應用軟件的使用以及操作系統的初步知識。這樣留給學習程序設計的時間至多只有30多學時。在這樣少的課時內,能學多少程序設計的內容?全體學生能達到什么水平?分析問題和解決問題的能力能有多大提高?根據筆者十幾年的教學實踐,至少需要40以上學時大部分學生才能學會初步BASIC程序設計,80以上學時才能進行真正的程序設計(算法設計),這時候才能真正談及能力的提高。

另外,我們這里討論的不是一些小問題,而是涉及到國家政策的制定,關系到千百萬學生的大問題。因此結論必須有比較可靠的理論和實踐根據,只憑個人直覺和的經驗是不夠的。提出這一結論的人能拿出什么比較可靠的科學的依據證明這一點?目前我們還沒有看到。而國外一些實驗卻對這一假設作出了否定性的結論。美國的瑪霞·林和她的同事在1985年的一份報告中表明,“在普通學校,學生在學習程序設計語言時,一般能力是重要的。能力低的組,最后程序設計語言成績評定也低。能力高的組,最后成績也高?!盵4]美國銀行街的柯蘭德等人的報告也指出:“要成為程序設計的專家,至少要有500小時以上的上機時間,而大部分只有10-12臺微機用于程序設計課的學校,上機時間很少,即使一些學生家里有計算機,對他們最后程序設計能力的測量,效果并不顯著?!盵4]雖然我國與美國相比有很多特殊性,美國的結論不能照搬到我國來,但還是有很大參考價值的。 因此,在較短時間內的程序設計課,能否使大部分學生的分析問題和解決問題的能力有所提高,仍是需要研究的課題。

3.有人提出學生學習BASIC程序設計目的是為了使他們懂得“計算機能做什么,是怎樣工作的?”

這句話如果是在70年代或80年代初講的,有一定的道理,因為那時計算機軟件還很不豐富,使用計算機解決問題,大多數情況下還必須使用者自己編程。并且在編程時必須了解計算機的軟硬件結構和工作過程。但在計算機的軟、硬件的功能、數量和質量極大發展的90年代,還拿來作為學習程序設計的主要理由,似乎有些過時了。目前在簡單的BASIC程序設計和具有強大功能的應用軟件之間已產生了一道鴻溝,兩者之間差距非常大,要通過簡單的BASIC程序設計學習來了解現代計算機系統的功能,猶如“瞎子摸象”。在應用軟件中表現出來的一些計算機能力,在簡單的BASIC程序設計中很難得到。例如文字處理軟件中的塊操作和排版功能,超文本鏈接功能,在簡單的程序設計學習中就很難體會到。反之,通過應用軟件學習所能了解的計算機功能卻大大超過簡單程序設計中的功能。例如應用軟件中的打印功能已大大超過BASIC中PRINT(打印)語句所能了解到的功能;輸入功能也大大超過INPUT語句所能提供的信息。

馬希文教授也早就指出:“我們研究程序設計時,可以選用一種適當的語言。這樣,我們就可以只研究用語言書寫的程序,而不去過問這種程序在具體計算機上到底是怎樣實現的。從這個意義上說,語言就是一種抽象的計算機?!盵2]也就是說學習程序設計,特別是高級語言的程序設計,了解的是抽象的計算機。什么是“抽象”?抽象就是“從許多事物中,舍棄個別的、非本質的屬性,抽出共同的、本質的屬性。程序設計中的抽象,馬希文教授在上面這段話中已說得很明白,即“只研究用語言書寫的程序,而不去過問這種程序在具體計算機上到底是怎樣實現的?!?。既然舍棄了“在具體計算機上是怎樣實現的”內容,怎么能通過程序設計來懂得“計算機能做什么,是怎樣工作的”呢?

當然上述說法在一定意義上還是有可取之處。一個計算機系統可以被看作是由硬件和軟件按層次方式構成的,每層表示一組功能和一個接口。每一層都在一定深度和范圍反映計算機系統的功能和工作狀況[5]。學生們學習應用軟件的知識和操作只是從最高層面上了解計算機的功能和工作狀況。而學習程序設計則是從更深一層面,即語言處理層面來了解計算機的功能和工作狀況。因此我認為如果上述說法改為“學習程序設計是從更深的層面,從語言處理的層面上了解計算機能做什么,是怎樣工作的?!本蜔o可非議了。

三、必須“盡快終止”程序設計的教學嗎?

1997年國家教委收到了兩封信件,一是聯合國(UNDP/CPR)首席技術顧問大衛·艾倫寫的;另一封是紐約市立大學約克學院傳播技術級電腦中心主任黃哲操寫的。信中他們對我國的計算機教育事業提出了很多好的建議,但也以美國為例對我們發出了警告:“盡快終止中小學作為普遍的教學要求的計算機語言課”“如不徹底改變方向,一切證據表明中國中小學計算機教學將面臨最大的災難?!?/p>

對于這樣嚴厲的警告,我們應如何看待?當然應當認真地研究他們的建議和批評,吸取其中有用之處。但我認為,最了解中國的是我們自己,中國和美國相比較,在經濟發展上,在文化傳統上有很大的差別。在美國是好的經驗,在中國不一定是好的;在美國行不通的、失敗的辦法,在中國可能會成功。我們已經有了十幾年的計算機教育經驗,我們必須根據我國的國情,來決定我們的政策。

我國的一些教師也有以上類似的看法,他們認為:“計算機學科沒有必要學習程序設計,只需要學習計算機操作方法和一些社會上流行的軟件使用就可以了?!倍疫€提出了“一些學生在學校學習了程序設計,到社會上完全無用,仍需從頭學起”的說法。 由于計算機信息技術的發展,大量的軟件涌現,計算機處理各種信息的速度和功能大大提高,一般的應用都有現成的軟件,不必要自己編程。因此上面看法有其正確的一面。過去的計算機課教學,由于各種原因以BASIC語言教學為主,忽視和根本沒有實際操作和應用軟件的使用。不論是中學還是小學,不論是普通中學還是職業高中,無一區別都是一個模式。因此在一定程度上造成了學非所用的結果,特別是對準備畢業后立即就業的那部分學生。

但上述說法從基本點上、從理論上說是不正確的。首先,這種說法指導思想是受了“社會中心”論的影響,即當前社會上需要什么就學什么,是一種急功近利、實用主義的做法。

我們不反對從社會需要出發來考慮課程的設置,不但不反對,而且要提倡。我們也不反對學習一些實用的應用軟件,而且贊同在新教材中增加一些應用軟件的內容(我個人認為,在初中的計算機教材中,實用部分可以占全部內容的 70%到 80%)。但在這里,我們和持這些觀點的人有一個根本上和原則上的區別:我們不但考慮社會當前的需要,而且更注重社會長遠的需要。我們不但著眼于學生當前學習和就業的需要,更注重學生將來的學習以及終生教育的需要。出發點不同,在內容的選擇上,在教材的安排上,以及在教法上,就會有根本性的區別。 上述觀點第二個錯誤是混淆了不同教育的性質。普通中小學教育是素質教育,它與職業教育不同。上述觀點把素質教育與就業教育等同起來了。

就是職業教育,上述觀點也是不完全正確的。我們教給學生的不僅僅是知識和技能,而更重要的應該是能力。這就不能是“知其然,而不知其所以然”。不懂得汽車的基本原理也能開車,但絕不可能成為一名優秀的駕駛員。同樣道理,如果只會一些具體應用軟件的使用,不懂得有關的基本原理和知識,就不可能很好地使用計算機,成為一名優秀的計算機應用人員。我很贊同下面一段很有哲理性的話:“必須堅持技術基礎教育和實用技術教育兼顧,... 如果不進行技術基礎教育,就缺乏后勁,難以掌握高技術;如果不學習當地的實用技術,就不易起步,難以把最基本的科學技術運用于生產,把可能的生產力轉化為現實的生產力。……按照布魯納的知識遷移理論, 扎實的技術基礎教育,有利于學生去掌握實用技術,起到舉一反三作用;良好的實用技術教育,有利于擴展和提高技術基礎教育,起到觸類旁通的作用?!盵6]而且將來的社會職業的變動將是很頻繁的,一生中職業變動四五種是常事。這就更要求我們的教育從學生的長遠著想,注意基礎知識的教育,注意能力的培養。

四、程序設計方法盡可能早學習

我認為計算機課程還是應該安排一些初步的程序設計的內容,而且越早越好。為什么要安排一些初步的程序設計內容?我的理由與上述的幾種不同。

第一個理由是,計算機學科有于其他學科很不同的特點。關于這一點,當代著名的計算機科學家唐·依·克努特(D.E.Knuth)在他的巨著《計算機程序設計技巧》中有很精辟的論述。他寫道:“能把問題的解法表達成計算機能夠‘理解’的一種明顯形式(這些機器沒有普通的感覺;它還不會‘思考’。但它能準確地不折不扣地去做讓它做的事情。當一個人初次試圖使用一臺計算機時,這是最難以掌握的概念)。”[7]。但是這個“最難以掌握的概念”又是真正學會使用計算機所不可缺少的。怎樣來掌握它呢?經驗告訴我們,學會計算機的初步操作,學習一些應用軟件的使用,能初步了解這個概念。但是要真正理解和掌握這個概念,學習程序設計是一個較好的途徑。程序設計要建立數學模型,要進行算法設計,這些就是克努特所說的“把問題的解法表達成計算機能夠‘理解’的一種明顯形式”;在用計算機語言進行編程時,就要了解有哪些語句,它們的功能的什么。這些實際上就是了解計算機“能準確地不折不扣地去做讓它做的事情”。

第二個理由前面已說及,即學生們學習應用軟件知識和操作只是從最高層面上了解計算機的功能和工作狀況。而學習程序設計則是從更深一層面,即語言處理層面來了解計算機的功能和工作狀況。

第三個理由是程序設計雖然不是計算機科學核心課程,但它是一個基礎課程。計算機學科的其它課程,如操作系統、數據結構等,除學習一些理論外,很重要一項就是在計算機上實驗,這些實驗大部分要編程序,也就是要會用一種計算機程序設計語言編制相應的程序。所以大學計算機專業都把學習一種程序設計語言作為基礎課程之一。如果在中學就給學生打下這方面的基礎,就有利于學生今后的繼續學習。那些在中學已學會了程序設計的大學生回來的反映,很清楚地證明了這一點,我們的基礎教育任務之一是為高一級學校培養后備力量,也為學生將來進一步深造打下良好的基礎。在中小學打下程序設計的基礎,有利于他們進入大學的深造和就業以后的繼續教育。

為什么要“盡可能早學習”呢?在計算機普及工作中,很多教師都有這樣一種體會,只要內容和教法適當,程序設計入門,初中學生比高中學生容易,甚至高年級小學生比初中學生容易,最困難的是成年人(這里不是針對個別人,而是大多數人來談的,即從統計的角度來談的)。這種“怪”現象如何解釋呢?

根據現代認知心理學的理論,人的頭腦中的知識,不是雜亂無章地或簡單地存儲著的,而是有一定的結構,即認知結構。學習就是科學的邏輯結構和人的頭腦中的認知結構之間的矛盾和轉化?!爱攦和J識一種新事物時,總是先用原有的圖式(即認知結構)去同化(即把新知識納入原有的認知結構中),如獲成功,便得到認識上的平衡,否則就進行異化,調整原有圖式或創造新圖式,直至取得新的平衡為止”[8]。

程序設計是一種新的知識結構,它與其他學科的結構,如數學知識結構、物理知識結構等,有很大的區別。唐·依·克努特的論述中提到“這是最難以掌握的概念”,為什么“最難以掌握”?就是因為這種知識結構與以往人們學習的知識結構有很大的不同。

因此當一個初學者學習程序設計時,在把這種新的知識結構納入自己原有的認知體系中(同化)時,由于結構差別太大,就會遇到原有結構的“頑強抵抗”,必須創建新的認知結構。而在這種新的認知結構的創建過程中,如果原有的認知結構越牢固,創立就越困難。一般地說,年齡越大認知結構就越牢固,越不容易改變。這就造成新的結構建立成人比高中生困難,高中學生比初中學生困難的現象,而小學生頭腦像一張白紙,最容易接受新的東西。

從上面的分析,可以得出這樣一個結論:盡早地學習“程序設計”這種知識,就會減少進一步學習的障礙。當然這種“程序設計”知識結構對于不同年齡的學生,它的內容多少,它的復雜程度的高低應該是不同的,應該有層次、有區別的。

1994年,聯合國教科文組織(UNESCO)委托國際信息處理學會(IFIP),編寫了指導世界各國計算機課程設置的文件《中學信息學課程》。其中有一段話,對于我們每個從事計算機教育的人會很有啟發。現摘錄如下:

“這里所指的程序設計非技術性的程序設計,更確切地說應該是把‘你自己做的事情’轉變成‘別人能做的事情’。這就要求能詳盡地描述完成任務的過程,以便其他的人或其他的設備能準確地重復這一項工作。

這種完成任務的‘自動化’就被稱作程序設計,有時也稱作算法程序設計──信息學的一個重要特點。當使用復雜或先進的軟件工具(如電子表格、數據庫管理系統、操作系統,甚至文字處理系統)時,用算法的思想來思考或解決問題是必要的。

程序設計是幫助學生獲得解決問題經驗的一種快速、明確而適合的途徑,教學的目標不是培養‘小型的程序員’,而是使得學生能用程序設計的方式進行思考。本著這個思想,在學習過程中只要掌握‘必須了解’的,至于程序語言中的獨有的特點和假設就不是很重要了。教師必須強調解決問題的方法,程序設計只是實現這個目的的一種手段。”[9]

兒童心理學中有一個“關鍵年齡”的說法,即在兒童發展的過程中,某一種技能或能力在某一特定時期最易獲得,最易形成,如果錯過這個時期,效果就會差些。例如2-3歲是學習口頭語言的關鍵年齡,4-5歲是開始學習書面言語的關鍵年齡等。[10]那么,兒童青少年學習“程序設計”的關鍵年齡是在哪個時期?這是值得心理學家和計算機教育專家研究的課題。

五、初步結論

在中小學計算機課程中究竟要不要安排“程序設計”的內容?我完全贊同《指導綱要》的提法:“中學計算機課程要以基礎性知識和技能性操作為主,程序設計是更高層次的學習內容” [11]。在時間和學生的接受水平允許的情況下應該并盡可能早地在計算機課中安排一些程序設計內容,但內容和深度要根據不同年齡的學生認知特點做精心的安排。

我個人建議,在條件允許的情況下,小學高年級可以學一些LOGO語言的程序設計,其主要內容是“海龜繪圖”,通過LOGO學習一些幾何知識,而在程序設計上只起到“熏陶”的作用,即起一個潛移默化的作用。初中階段可以安排一些介紹什么是程序、什么是程序設計的簡單的內容,只要求學生能理解一些簡單的程序就可以了,不必要求能編程。高中階段可以較系統地學習一些程序設計知識,了解程序設計過程,能編簡單的程序,但在算法設計上只要求了解就可以了。另一方面可以大力開展以算法設計為主的課外活動和選修課,給那些程序設計感興趣的學生提供一個良好的發展環境。

【參考書目】

[1] 王攻本主編:《計算機科學技術百科辭典》1993年,405、404頁。

[2] 馬希文:《程序設計學》科學出版社,1985年,1頁。

[3] 《計算機學科教學計劃93》電子工業出版社,1995年,9頁。

[4] 陳琦:《中學計算機教育文選》光明日報出版社,1987年,145頁。

[5] 孫鐘秀等:《操作系統教程》高等教育出版社,1990年2頁。

[6] 郭福昌:《試辦農村綜合初中,勢在必行》《課程研究》1994年4期,7頁。

[7] 唐·克努特:《計算機程序設計技巧》第一卷前言,國防工業出版社,1986年。

[8] 布魯納:《教育過程》文化教育出版社,1982年,28,31頁。

篇(8)

高職院校計算機專業開設的計算機入門語言課,是計算機專業學生學習的第一門計算機語言,入門語言重點講授程序設計的基本概念與方法,通過入門語言的學習,要將學生引入程序設計的大門,為今后進一步深入學習程序設計打下良好的基礎,如果第一門計算機語言學習不好,將直接影響學生后續課程的學習,使得學生很難在專業上有進一步的發展。當前,隨著高職院校計算機專業學生就業新形勢的出現和計算機軟件新技術的出現,使得高職計算機專業入門語言應根據新形勢的需要進行適當的改革,以適應新形勢的發展需要。

一、入門語言種類的調整,由c語言轉換為c++語言

c語言是最具代表性的面向過程的程序設計語言,其功能強大,語法靈活,一直深受程序員的喜愛。正因為如此,多少年來幾乎各類高等院校都將C語言作為高校學生的入門語言,這也成就了譚浩強先生的經典教材《c語言程序設計》800萬冊銷量的奇跡。然而,當前隨著新形勢的出現,應該用C++語言取代C語言作為學生的新的入門語言。由三點原因決定了對這種課程設置改革的必要性。

1 “2+1”人才培養模式要求我們在課程設置上要更加緊湊,在銜接上要更加緊密。

當前高職計算機專業為了提高學生的職業技能,采用以頂崗實習為突出特征的“2+1”人才培養模式,即前兩年的理論學習加第三年的頂崗實習。因此學生在校實際學習理論課程的時間只有兩年,在校學習時間的縮短,要求計算機語言課程銜接更加緊密。

2 C++是在c語言的基礎上發展而來的,它完全兼容于C語言,傳統的課程設置方式開設完C語言一年后再開設C++,就要花費20學時的時間來講C的內容,講授的內容完全相同,這其實是課程設置的一種重疊。

3 當前C++語言體現“面向對象”技術是軟件行業的主流技術,與其先向學生灌輸C語言的“面向過程”的編程思想,將來再讓他們去轉變這種已經深入內心的思想,不如一開始就把最先進的程序設計思想傳授給學生。

二、授課時做到語言豐富,生動、通俗易懂,用一些經典的例子和恰當的比喻貫穿始終

C++作為一種高級計算機語言,有自身的特點,C++語言的設計者之一斯坦?利普曼先生曾在《C++Primer》一書中指出“C++是最為難學的高級程序設計語言之一”,因為C++牽涉概念繁多,語法比較復雜,體系結構的龐大,很多概念非常抽象,將其作為入門語言,學生學習的過程中,會遇到很多困難。在這種情況下如果再語言單一,枯燥地講解各種晦澀的語法知識,會使課堂沉悶,大大降低學生的學習興趣。所以講授C++程序設計時要做到語言豐富、生動、通俗易懂,用一些經典的例子和恰當的比喻貫穿始終,營造出和諧愉快的課堂氛圍,這樣才能讓學生體會到在輕松的環境中獲取知識的樂趣。其中選擇經典的例子和恰當的比喻非常重要,它們不但可以使抽象的知識容易理解,還可以提高學生的興趣,提高學習效率。比如,多態性是面向對象思想中的重要特征,但其概念描述為不同的對象接受了相同的命令產生不同的行為卻非常抽象,不易理解。為了理解這一概念,可以利用上課鈴聲響起這一同樣命令被教師和學生兩種不同對象接收后,產生了教師走上講臺準備授課,學生安靜坐好準備聽課這兩種不同的行為,這就是現實世界中多態性的實例。利用這樣的現實例子,會很容易地理解類似的抽象概念。

三、筆試與上機相結合的過程化考核方式的使用

考核是教學活動中十分重要的環節,通過考核可以檢驗學生的學習成果。傳統的程序設計課程的考試都采用期末筆試答卷的方式進行。然而以期末筆試的考核方式有兩點明顯的不足:第一,學習程序設計的最終目的是使用計算機進行編寫程序來解決實際問題,而筆試只能考察理論知識掌握的水平,無法衡量知識的運用能力,單靠筆試的方式衡量學生計算機語言的運用水平本身就不準確。第二,一學期的學習,單靠最后一次期末考試考核學生的成績,導致平時相當數目的學生對學習投入不夠,以考前突擊的方式應對考試。因為各方面能力的培養都需要一個過程,短時間的突擊不但導致所學知識不夠扎實,更對學生的知識運用能力與素質能力的培養毫無幫助,這也是以期末考試考核學生的成績的最大弊端。

過程化考核是一種新型的考核方式,它是在學習的過程中對學生進行多次的分階段,多種形式的測驗,得到最終的學習成績,這種考察方式不但較為客觀地衡量出學生對知識的掌握與運用水平,還通過多次的考核時時激勵學生,在學習的過程中始終懷著嚴謹的態度和飽滿的熱情,獲得最佳的學習效果?!禖++程序設計》課程的過程化考核采用筆試與上機相結合的方式進行,兩次筆試重點考察學生的理論的掌握水平,四次上機考核重點衡量學生的知識實際運用水平,六次考核都在理論課與實驗課的課堂完成。這種多次的階段性考核措施保證了學生的學習熱情與投入程度,在實際使用中取得了很好的教學效果。

四、恰當學習情境支撐抽象的理論知識

篇(9)

關鍵詞:

高職院校;C程序設計;分級教學目標

一、引言

現在,我們學校和許多高校一樣,選擇C語言作為電子信息類專業的高級語言程序設計的入門教學課程,C#語言和Java語言程序設計與開發作為計算機專業后續崗位能力延展課程。C語言程序設計是一門專業基礎課,強調語法和基礎,而C#語言和Java語言程序設計則著重于崗位應用能力。本人多年從事《C/C++語言程序設計》、《C#語言程序設計》、《數據庫編程技術》和《ASP.NET》課程教學,發現我校高職電子信息類專業相當一部分學生語言不過關,給后續課程帶來很大麻煩,造成教學被動。為此,很有必要對高職電子信息類專業C語言程序設計教學進行反思,提出相應對策。本文以C程序設計課程為例,分析目前高職電子信息類專業學生C語言教學上存在的主要問題,就如何確定并有效實現教學目標做一個切實的探討。

二、高職電子信息類專業C語言教學的特點

1C語言的教學特點:具有邏輯性、理論性、創構性和理論性是計算機程序設計課程的四大主要特征。想要掌握計算機語言,需要學生有一定的主動創造力和羅輯思維力。而C語言更是計算機程序設計課程之中的難點,很多首次接觸到C語言的同學很難入門。根據這一特性,對高職院校在C語言的教材編寫上和教學上帶來了很大的困難。計算機語言的學習不僅僅是看教材,聽課更重要的是在于應用。學會使用C語言編寫程序,最重要的環節是做習題和上機實訓。如果學得不扎實,對后續專業課程影響很大。所以一定要強化實訓教學。高職院校的學生普遍存在著文化水平較低,認知度不足,綜合素質不高等特點。很多學生對學習沒有熱情,思維理解能力也較差。有的學生上課,僅僅是為了應付家長和學校,自己沒有主動學習的欲望導致學習沒有紀律。因此,高職院校的學生上課處于一個積極性不足,學習習慣不好,沒有學習計劃規劃,不主動思考這一環境之中。他們往往是被動的接受學校的教育,僅僅是為了完成目標而學習,一版不會主動進行相關課程的深入思考和練習。由于這些不好的學習因素嗎,導致相關的學習課程學習起來更加困難,也不知道如何求助如何進行解決。目前,相當大一部分學生對學習計算機課程存在兩個誤區:一方面是在現在軟件領域這個大環境下,C語言基本無用,另一方面是學習這門課程如果今后不從事相關工作也無用武之地。還有相當一部分學生學習中產生畏難情緒,嚴重挫傷他們學習計算機語言的積極性,甚至影響他們學習本專業的信心。但同時也要看到,有一部分高職生來自于高職院校的學生,他們在學習C語言的過程中實踐和動手能力都得到了很大的加強,邏輯思維能力和創新能力也有明顯提升,還有一部分有自己興趣十足的愛好。這應當充分肯定并予以高度重視,并加以正確的引導。在教學中注意揚長避短,充分發揮他們的優勢。

三、高職C語言教學的思考與對策

(一)要遵循計算機語言學習的認知與教學規律計算機語言程序設計學習都有自身的認知與教學規律。計算機程序就是用某種計算機語言把計算機的執行過程描述出來。學習計算機語言,就是學習語法規則以及掌握這些語法規則的應用。眾所周知,要學好一門語言,關鍵是不停地進行讀寫訓練,活學活用。多看、多讀、多寫、多模仿練習是學好任何一門語言的訣竅,那么學習計算機語言也是如此。所以,C語言程序設計教學首先是引導學生多閱讀C語言程序,然后是學會調試C語言程序,接著是模仿編寫C語言程序,最后才是設計C語言程序。

(二)分級制定教學目標我們的教學對象是這樣現狀的高職學生,還存在計算機水平差異、思維發展差異。這就要求我們根據高職教育的根本要求和專業人才培養方案,結合本課程的內容特點,在教學大綱中應制定多級教學目標。多角度分層次分階段從低到高設計的教學目標如下:1、掌握C語言程序設計的基本知識、基本方法和技巧2、具有程序設計初步應用能力3、理解結構化程序設計的基本思想4、培養程序設計邏輯思維方式,提高學生自主探索學習和分析解決實際問題的意識在教學實施過程中,要根據學生所表現出來的差異進行分層,設計不同層次的學生模型,分層次制定教學內容和教學目標。有條件分班教學的,可按不同層次的學生在教學活動中要達到不同的學習目標,分班級安排不同的學習內容。比如:把C語言程序設計課分為兩個層次,一個基礎層次,一個提高層次。

(三)選擇或自編適合高職學生的C語言實訓教材高職的培養目標,教學模式、教學內容有其鮮明特色,這就要求高職《C語言程序設計》教材也應當獨具特點,不能照搬普通高校教材,更不能借用中職教材。但現有教材很多是介紹語句的格式和功能,不適合高職學生,因此必須調整教材結構和內容來應對現在高職教育。2008年我們曾編寫《C++程序設計實訓指導書》,可滿足6個專業方向的學生使用。本書是在編寫組各老師多年從事C++語言程序設計教學的基礎上編寫的,書中根據多年的教學經驗,針對海南高職學生實訓中遇到的問題,精心挑選訓練題目,進行強化訓練,以提高學生分析問題和解決問題的能力。力求將復雜的問題和概念用簡潔的語言描述出來,力爭讓學生當時看得懂、學后用得上。

(四)圍繞最大限度提高與保護學生對C語言的學習興趣,優化教學方法,以求全面教學實效大量的調研證明,學生在如下情況下其學習效果才會是非常有效的:感覺到自己備受別人的關注;對他們現在學習的知識充滿興趣;自己是學習的主導和參與者;在任務完成后得到適當的反饋;看到了成功的機會;對正在學習的東西感興趣并覺得富有挑戰性;感覺到他們正在做有意義的事情。要促進學生的自主發展,就必須最大可能地創設讓學生參與到自主學習中來的情境與氛圍。因此,教師要因勢利導,采取多種教學方法,最大限度提高與保護學生對C語言的學習興趣,以求取得真正教學實效。1.做到每一堂上機課都能讓學生通過自己上機程序練習獲得成就感。2.提倡學生朗讀程序。比如,語句intx;x=5;,可讀成“聲明一個整型變量x,然后將整型常量5賦值給整型變量x”。通過朗讀程序,能夠使一些原本很模糊的概念得到不斷地鞏固,逐漸地變得清晰。3.養成良好的編程習慣,將枯燥難記的語法融入范例程序的上機調試過程中。在整合課程內容的基礎上,改變過去先給出定義和規則的講授辦法,而是從具體問題入手,精選范例,努力把枯燥的“語言”講得生動、活潑。在程序范例中,將語法知識點同實際編程結合。講授時避免糾纏于語法細節,應始終明確一點:計算機語言是用來描述需要解決的問題和問題的解決方法的,任何語法規定都是為這個目的服務的。4.點面結合,少講多練,確保創造自主學習的情境與氛圍學習計算機語言主要在于應用,僅僅通過聽課和閱讀教材是不可能掌握的。學會使用C語言編寫程序,最重要的環節是做習題和上機實訓。要區分學生層次,精選上機練習題,既要滿足少數提高訓練,又要滿足大多數基礎練習,做到點面結合,符合學生實際。5.及時幫助學生化解難點,共克難關應事先分析C語言學習的難點,做到胸中有數。在C中,變量與數據類型概念是第一個難點,它與內存概念緊密相關。這個難點,將影響全局。循環控制語句是第二個難點,它改變程序執行流程,難在如何構造,關鍵是抓住循環初值、終值和增值三要素。教學中要及時發現學生在學習C時的難點,厘清難點的根源,逐個擊破,不留隱患。6.結合專業,學以致用根據教學不同階段,教師應適時收集一些與其授課學生專業方向結合的程序案例,讓學生能夠切實體會到C程序設計在解決本專業中的問題中所發揮的作用。7.發揮計算機網絡與多媒體的優勢,增加教學互動及時開發C課程網站,提供學生在線多媒體學習與答疑平臺。在C語言程序設計學習上,把復雜的計算機語言、專業化的技術變成了輕松自如、隨心所欲的人機對話。因此,使學生不至于掉入C語言知識的細節里,避免出現既費時、又費力,而學習收效不理想現象,使枯燥無味的內容變得簡單,從而有趣,激發了學生濃厚的學習興趣。學生在課堂內外的學習中,遇到不能解決的問題時,既及時可上Internet網查詢,又可與同學老師交流。這樣,既增進了師生之間交流的機會,又達到共同提高的目的。

四、結束語

總之,對于高職電子信息類專業學生來說,學好C語言既是專業素質的需要,也是未來崗位能力的要求。對于教師來說,如何因材施教,因人而異,充分激發學生的內在積極性與潛能教學模式也成為迫在眉睫的重任。針對目前高職電子信息類專業學生在C語言程序設計教學上存在的主要問題,我們提出采用點面結合,分級教學目標,精選程序案例,突出高職認知規律,以提高學生的學習興趣為基礎,強化學生上機練習及指導為突破口,最終實現高職C語言程序設計的教學目標。

參考文獻:

篇(10)

中圖分類號:G640 文獻標志碼:A 文章編號:1673-291X(2014)19-0275-02

引言

匯編語言是最接近于機器語言的編程語言。如果說機器語言是計算機操作的本質,那么匯編語言就是最最接近本質的語言。匯編語言操作直接面向硬件,所以,我們在使用匯編語言的時候,能夠感知計算機的運行過程和原理,從而能夠對計算機硬件和應用程序之間的聯系和交互形成一個清晰的認識。這也是最能夠鍛煉編程者編程思維邏輯的,只有這樣,學習者才能形成一個軟、硬兼備的編程知識體系,這是任何高級語言都無法給予的!相對于繁復的高級語言,匯編語言指令集合更簡約,指令操作更直接,從匯編開始學習更符合循序漸進的學習原理。所以,對于計算機技術初學者或者自學者,匯編語言重要性無可替代。

一、匯編語言的特點

匯編語言(Assembly Language)是面向機器的程序設計語言。匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言。匯編語言作為一門語言,對應于高級語言的編譯器,需要一個“匯編器”來把匯編語言原文件匯編成機器可執行的代碼。高級的匯編器如MASM,TASM等等為我們寫匯編程序提供了很多類似于高級語言的特征,比如結構化、抽象等。在這樣的環境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經類同于高級語言?,F在的匯編環境已經如此高級,即使全部用匯編語言來編寫windows的應用程序也是可行的,但這不是匯編語言的長處。匯編語言的長處在于編寫高效且需要對機器硬件精確控制的程序。

在匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。因此匯編語言亦稱為符號語言。

匯編語言比機器語言易于讀寫、調試和修改,同時具有機器語言全部優點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴于具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。

二、匯編語言的重要性

(一)匯編語言是學習高級語言的基礎

從應用層面上來講,我們不得不承認高級語言在軟件開發市場上的重要地位。雖然這種現象很普遍,但是也對計算機語言初學者與教育者帶來了一定的負面影響,造成了他們對高級語言學習的盲目推崇。在高校的計算機教學中,要求學生必須學習C語言,java以及C++等高級語言,雖然出發點是好的,但是由于學生的計算機基礎普遍不高,導致課程結束后,學生甚至都不具備編寫最簡單程序的能力。這是值得我們反思的現象。

一般而言,人們都認為學習計算機最基礎的是C語言,這種觀念是錯誤的,真正的基礎語言是匯編語言。作為一種基礎語言,只有學好匯編語言,才能更好地理解C語言等高級語言。匯編語言與高級語言在對內存讀取的操作上原理不一樣,前者的操作簡單地說是內存地址而進行的,而C語言的操作需要學會指針的概念。指針是抽象的專業性概念,能否學好C語言最關鍵的是如何建立這一概念與實際的內存兩者之間的思維映射,這一點恰好就是匯編語言教學過程的重點。除此之外,通過匯編語言,我們也能把高級語言中的常用概念及基本操作形成特定的映像,而深入地剖析這些映像,恰好是我們學好C語言的基礎。

由上可知,學習計算機語言,我們應該腳踏實地地從最基本的匯編語言開始,通過循序漸進的學習,更熟練地掌握那些面向對象的高級計算機語言。

(二)匯編語言是重要的應用技術

由于就業市場的錯誤導向,許多學習者放棄匯編語言等基礎語言的學習,從學習初始就專攻高級計算機語言,以圖謀取一份高薪酬的工作,這個出發點雖然無可厚非,但是這種好高騖遠的學習方法確卻是不明智的。

第一,任何一個學習過程都必須遵守循序漸進的原則,我們的知識結構是一個復雜的結構,是由眾多單一的課程有機組成,如前文所述,如何掙取更多的報酬不能成為學習匯編語言的唯一目的。編程人員更應該注重通過對匯編語言的學習來完善自己的知識結構。

第二,計算機匯編語言同樣是一項主流的應用技術。對于初學者來說,計算機語言的應用舞臺不僅僅是形形的軟件,很多硬件設施也包含了大量的嵌入式語言程序,如主板、電腦芯片等,這些程序的計算機語言就是高效、直接的匯編語言,由此可見,匯編語言在計算機領域仍扮演者非常重要的角色。

(三)匯編語言幫助我們更好的理解整個計算機系統

一般而言,匯編語言的應用的確實不如高級語言廣泛,但對于計算機語言學習者來說,它的重要性是非常明顯的。機器指令是人們利用機器邏輯功能的前提,也是各種程序能實現功能的必需條件。軟件與硬件系統功能的實現都以機器的邏輯功能為基礎。匯編語言可以對機器指令進行更加直接的描述。掌握匯編語言就能理解機器指令,理解機器指令就能掌握邏輯功能,從而理解軟件系統與硬件系統的工作原理,實現軟件系統與硬件系統的功能,為學習計算機語言打下牢固的理論基礎與實踐基礎。

三、匯編語言的應用

1.破解密碼軟件的核心部分,還有殺毒軟件的掃描部分,它們都要求有很高的執行速度,要用到匯編語言才行。

2.unix操作系統的啟動部分,這些部分與硬件密切聯系,而匯編語言是直接對硬件操作的,所以用匯編語言是最能勝任的。

3.據有關資料統計,用匯編語言編寫的程序通常要比C語言程序的執行速度快10倍以上。有些游戲程序的部分一秒鐘需要調用幾千次,如果用其他語言來編寫的話,可能你在玩游戲的時候,時間都花在了等待上。

4.用匯編語言來編寫病毒最好不過了,那效率是非常快的,如果沒有匯編語言,世界上的黑客要少掉一半。

5.只要高級語言能完成的工作,匯編語言都能完成,而且匯編語言能完成的工作有的高級語言就不能完成,所以匯編語言仍然有舉足輕重的作用。

6.現在用純匯編來編寫程序的幾乎沒有了,而是通過在高級語言里插入匯編程序,所以匯編一般用來搞嵌入式開發。

結束語

總之,匯編語言在計算機語言發展過程中扮演了不可替代的角色。對于教師,要采用正確的教學方法,激發學生的學習興趣;對于學習者,要正確認識匯編語言的重要性;對于編程人員,如果想在計算機編程之路走得更遠,必須從匯編語言開始,才能完整完善的建立計算機編程知識體系。

參考文獻:

[1] 宋勝女.淺談匯編語言教學[J].信息化教學,2011,(7):84.

[2] 朱定華.微機原理、匯編與接口技術(第2版)[M].北京:清華大學出版社,2010.

[3] 李黎.《匯編語言程序設計》課程教學改革探索[J].產業與科技論壇,2013,(12):168-169.

[4] 陳燕俐,許建.“匯編語言程序設計”課程教學改革探索[J].中國電力教育,2012,(11):55-56.

[5] 彭虎,周佩玲,傅忠謙.微機原理與接口技術[M].北京:電子工業出版社,2011.

Talk About the Importance of Applied Undergraduate Colleges Assembly Language Learning

WEN Xue-wei

上一篇: 廣告市場存在的問題 下一篇: 辯論的邏輯
相關精選
相關期刊
久久久噜噜噜久久中文,精品五月精品婷婷,久久精品国产自清天天线,久久国产一区视频
日本大片在线看黄a∨免费 亚洲美女天堂电影 | 亚洲一区二区三区AV激情 | 亚洲精品视在线看1 | 五月婷婷丁香综合中文字幕 | 久久精品大胆视频 | 亚洲人成网999久久久综合 |