前言:中文期刊網精心挑選了程序設計語言范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
程序設計語言范文1
程序設計語言通常分為:機器語言、匯編語言、高級語言三類。
機器語言是最底層的語言,只有“0”和“1”,二進制語言,就像開關一樣,0是關,1是通過。一句話,就是寫出一串串由“0”和“1”組成的指令序列交由計算機執行,這種語言,就是機器語言。
匯編語言指令是機器指令的符號化,與機器指令存在著直接的對應關系。通常用一些簡潔的英文字母、符號串來替代一個特定的指令的二進制串,比如,用“ADD”代表加法,“MOV”代表數據傳遞等等。
高級語言是面向用戶的、基本上獨立于計算機種類和結構的語言。高級語言的一個命令可以代替幾條、幾十條甚至幾百條匯編語言的指令。
(來源:文章屋網 )
程序設計語言范文2
關鍵詞:比喻法程序設計教學多媒體課件
隨著現代化進程的加快,學校的教育設施也得到了飛速的發展,筆記本電腦和多媒體教室被廣泛應用,大多數教師在教學過程中更傾向于利用已經設計好的多媒體課件進行教學,卻忽視了在整個教學過程中運用形象生動的比喻法。
所謂比喻法,是常用的一種修辭方法,就是利用兩種不同類的事物之間的某些相似的地方,以形象的事物作喻體去描述一個抽象的事物,它能化平淡為生動,化深奧為淺顯,化抽象為具體?!熬实谋扔骶拖裢捴械哪О?,碰到哪里,哪里就會發生神奇的變化”。在教學過程中,學生經常會碰到某些課程的理論性強,枯燥、難懂,不容易掌握。如果教師通過比喻教學,把內容和現實中非常接近我們的事情聯系起來,可使學生較好的理解某些比較抽象的知識內容,以便他們能進一步掌握并能應用這些知識、原理來分析、解決某些相關的問題。
筆者就以計算機專業必修課《C程序設計語言》課程為例,結合自己的教學心得,談談如何用比喻法開展教與學的活動。
在一般高校都把《C程序設計語言》課程設置在大學一年級,主要面向新生,新生本身對大學的適應就需要一個過程,再加上C語言牽涉的概念復雜,規則繁多,目前各高校在C語言程序設計課程教學模式上仍采用傳統的教學方法,導致學生剛接觸C語言就覺得抽象、深奧,使用起來不得心應手。如算法概念、順序程序設計、選擇程序設計、循環程序設計,指針等知識更考驗著學生的思維和耐心。
典型案例1:程序的靈魂――算法
[案例呈現]算法的概念是什么?
[分析]在《C程序設計》教學中,最大的困難正是對一些抽象的理論和概念的理解。算法是為解決某一問題而采取的方法和步驟。在教學中,我做了如下的處理,充分應用比喻的魅力,達到較好的教學效果。
打個比方,廚師制作菜肴,需要有菜譜。菜譜上一般包括使用的配料和用這些配料按規定的步驟加工出不同風味菜肴的操作步驟。沒有配料是無法加工成所需菜肴的,面對同一些原料可以加工出不同風味的菜肴。設計一個好的程序,就像是做一道美味的菜肴,既要用到類似于配料的數據結構,又要有類似于做菜步驟的算法。沒有數據結構是無法制作程序的,面對同一些數據可以設計出不同的程序。可見,算法從廣義上來講,就是操作步驟,就是為解決一個問題而采取的方法和步驟。當然我們學習計算機,關心的是計算機能解決的算法。
如著名數學家華羅庚“燒水泡茶”的兩個算法。
算法一:燒水――水燒開后,洗刷茶具――沏茶。
算法二:燒水――燒水過程中,洗刷茶具――水燒開后沏茶。
大家可以看到這兩個算法的區別在什么時間洗刷茶具,因為第二個算法應用了“統籌方法”,節約時間,所以效率更高??梢姙榱擞行У剡M行解題,不僅要保證算法正確,還要用到科學的方法,考慮算法的質量,選擇合適的算法。
算法的概念及特點如果只憑老師反復講述定義,學生只會聽得昏頭昏腦,索然無味,教學效果很差。而比喻教學法的應用,可以使抽象的知識變得形象化、趣味化,起到“一語道破天機”的作用。
典型案例2:C程序設計的三種基本結構及各自的語句分析
1.順序結構
順序結構是C程序設計中最簡單的一種基本結構。它就像人的一生,從出生、長大、上幼兒園、小學、初中、高中、大學、工作、結婚生子,再到“夕陽無限好,只是近黃昏”。順其自然、順順利利度過一生。
2.選擇結構
它就像在人的一生中會遇到的好多選擇,有人生道路的選擇、世界觀的選擇、事業的選擇、愛情的選擇,等等,但任何的選擇都需要當前實際條件的成立。例如,考大學,假設成績大于500分就考上了,否則未考上。此結構中必包含一個成績大于500的判斷框,根據給定的條件是否成立而選擇執行“考上”或“未考上”。
if(成績>500) printf(“考上”);else printf(“未考上”);
3.循環結構
循環即周而復始,花開花謝,月圓月缺,循環無盡。人生像生老病死就是一個循環不息的過程。我生病了,醫生叮囑我每天吃藥,連續吃7天病就好了。很顯然吃藥是每天必做的事情,也是必循環的事情,7天后就可以不吃藥了(如圖所示)。在不少實際問題中有許多具有規律性的重復操作,因此在程序設計中就需要重復執行某些語句。一組被重復執行的語句稱為循環體,能否繼續重復,決定循環的終止條件。所以循環語句是由循環體及循環的終止條件兩部分組成的。循環語句是最能體現計算機解決問題優越性的語句。
While(天數
可見,這種利用一個個發生在身邊的實例做比喻,再加上理論講解相結合的方法,使學生能感性地理解循環。
在《C程序設計語言》課堂教學中,嘗試用比喻的方式來剖析計算機教學中的概念,選用恰當的生活事例,用已知來發掘未知,提高教學效果,增強學生學習的興趣,是一種非常有效的教學方法。但是,運用教學比喻,并不是以粗淺的事例代替科學精準的理論,更不是用隨便的玩笑代替細致準確的講解,而是要求我們緊扣教學目標和要求,把握物理概念的本質和特點。根據具體問題,做到言之有理,言之有物,言之有據?!秾W論》中說:“君子之教,喻也?!弊鳛榻處煟谌粘=虒W中,一定要認真鉆研教材,準確把握所教學生的思維水平和特點,從日常生活和學生已掌握的知識中找到恰當的比喻,運用比喻的時機和技巧,使課堂妙喻精彩紛呈。
參考文獻:
[1]顧建東.生活:程序設計教學的本質回歸[J].中國教育信息化.
[2]盛美勤.讓比喻這一古老的修辭煥發新的教學生命力[J].中國.
[3]許文芳.類比法在《C語言程序設計》教學中的運用[J].電腦知識與技術.
程序設計語言范文3
關鍵詞:排序;元素;算法
中圖分類號:TP316.2 文獻標識碼:B 文章編號:1002-7661(2013)34-029-02
一、引言
排序就是將線性表中的各元素按關鍵字從小到大(或從大到小)的順序重新排列。在本文里,把作為排序依據的關鍵字稱為排序碼。排序過程一般都涉及到排序碼的比較和元素的移動這兩種基本操作。排序算法的執行時間通常用這兩種基本操作的執行頻度來衡量。在程序設計基礎教學中,排序算法不但是一種基本算法而且還是一種常用的算法,是學生必須掌握的內容。從我多年的程序設計教學中發現往往書中的排序算法的文字描述對學生來說很難理解。程序語言的描述更是不知其所指,這對學生來說很大的打擊了他們學習的積極性,也使得他們很難真正的掌握排序算法,并在實際應用中發揮作用。本文就這一現象問題將排序算法用VC++設計成動態的排序效果生動形象地演示學生看,有助于學生理解并掌握,增強學生學習排序算法的積極性。
本排序動態演示設計的思想是:以一種排序算法作為范例,動態的演示一組數據在這個算法思想下的變化過程,并在動態演示過程中隨時可以調整排序速度以便給學習者有思考的過程,通過動態的演示讓學習者清晰的看到算法的思想。這種動態的演示算法的過程可以推廣到其他排序算法中去,有了這個動態過程的演示,學生就可以輕松的掌握各種算法的思想,并在程序設計的過程中很好的利用。
二、排序算法
常見的排序算法有快速排序、希爾排序、堆排序、選擇排序、起泡排序、折半插入排序、直接插入排序、歸并排序,這些排序算法都各有其優缺點。本文將對起泡排序、選擇排序這兩類進行探討。
1、起泡排序
起泡排序算法的基本思想是:在元素中依次比較兩個相鄰元素的排序碼,若前者比后者大則交換,若前者比后者小則保持不變。先將第一個排序碼與第二個排序碼比較,然后是第二個與第三個比較,直到倒數第二個與最后一個排序碼。比較一輪結束之后,排序碼大的記錄均向后移動。然后開始新一輪的比較,知道一輪比較下來,不再有排序碼的交換發生為止。整個過程就有點像水中的氣泡上升的過程,輕的往上浮,重的向下沉,所以這個算法也叫起泡排序法。算法的步驟如下:
(1)假設要排序的數列為A[1]……A[N],我們把相鄰的兩個數兩兩進行比較。即把A[1]和A[2]比較,對比完后把A[2]和A[3]進行比較,……直到A[N-1]和A[N]比較完為止。在相鄰的兩個數兩兩進行比較的過程中,如果前面的一個數比后面的一個數大,則把這兩鄰的兩個數交換,也就是說,我們把較小的數放在前面,把較大的數調到后面。即,如果在一次比較中,如果A[1]比A[2]大的情況下,把A[1]和A[2]交換,……以此類推,直到一輪A[N-1]和A[N]比較完。
(2)再次重復(1),直到相鄰兩數之間不再發生交換為止。
2、簡單選擇排序
簡單選擇排序算法的基本思想是:從所有元素中選出排序碼最小的元素,將它與A[0]交換位置;然后,在A[1]~A[N]中選出排序碼最小的元素,將它與A[1]交換位置;依次做下去,在進行了N-1次選擇后排序過程結束。這種排序算法比較的次數與前一種排序算法一樣多,但是交換次數要比起泡排序算法少,效率較高。
三、演示方法
1、傳統方式的演示方法
目前大專院校教師在對語言程序設計中排序算法的內容進行講授時一般采用靜態數字輸出方式,如圖1所示。這種方法對于描述排序算法中交換數據的過程不夠形象生動。
圖1 傳統方式的排序演示方法
2、立方柱形的動態演示方法
(1)設計原理
本排序算法動態演示程序是在VC++6.0集成環境下實現,基于對話框類型的MFC應用程序。為了直觀清楚地表現起泡排序與選擇排序的排序過程,程序設計的主界面如圖2所示。
圖2 排序算法動態演示程序主界面
程序主界面是一個對話框,包含控制區,演示區和說明區三個部分。
控制區位于主界面的上方,主要由下拉組合框控件,按鈕控件,滑動控件以及靜態文本框控件組成。下拉組合框控件供選擇產生多少個隨機數進行動態排序演示,按鈕控件用來控制動態排序演示的開始,滑動控件用來控制演示速度,在需要仔細查看演示過程的時候,可以將滑動塊移到最左邊演示。
演示區位于主界面的中間,由上下兩個繪畫窗口(靜態文本框控件)組成,負責將排序中的數據以立方柱形繪制出來,而不是簡單輸出我們通常熟悉的1、2、3等數字符號,顯得更為直觀,比較有動態演示效果。
說明區位于主界面的右邊,由上下兩個靜態文本框控件組成,是對描述排序算法動態演示的簡單說明。
(2)主要實現過程
首先創建一個基于對話框類型的MFC應用程序SortingDemo,在主對話框上添加所需要的控件。然后,在對話框CSortingDemoDlg的初始化函數OnInitDialog末尾加入控件的初始化代碼。
在CSortingDemoDlg.h中的類SortAlgoWindow里定義m_wndSortAlgo1和m_wndSortAlgo2的2個實例,分別實現對起泡(升序)排序和簡單選擇(升序)排序的動態演示。
類SortAlgoWindow是從CWnd派生的一個窗口類,重載WM_PAINT消息,OnPaint方法里面實現更新后的數組元素的繪制。
類SortAlgoWindow的UpdateSoringData方法會更新并重繪排序中的數據。
void SortAlgoWindow::OnPaint()
{ CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Do not call CWnd::OnPaint() for painting messages
// 繪制面板底色
// 根據排序中的數組元素,繪制立方柱
// 用紅色繪制發生交換的數據1
// 用藍色繪制發生交換的數據2 }
按鈕控件是用來控制排序動態演示的開始,通過創建2個線程實現起泡(升序)排序和簡單選擇(升序)排序的排序過程,并將排序過程以立方柱形顯示到對應的顯示控件中。
void CSortingDemoDlg::OnBnClickedStart()
{ AfxBeginThread(BubbleSortProc, this);
AfxBeginThread(SelectSortProc, this); }
(3)程序運行
圖3是程序運行時排序過程中的一個截圖,從圖中可以看到,在起泡(升序)排序過程中,相鄰的紅色,藍色2個元素進行了交換,較大的元素向后移動。而在簡單選擇(升序)排序過程中,較小的(藍色)數據被排到了最前面。
圖3 排序算法動態演示程序開始
所有元素按照升序方式排序結束后的最終運行界面如圖4所示。
圖4 排序算法動態演示程序結束
四、結語
我們在進行程序設計中排序算法內容的教學時采用本文中立方柱形方式的動態演示方法講授,由于它的直觀性能夠使得讓抽象的內容不再難以理解,必然能較好地帶動學生學習排序算法的熱情,從而產生良好的效果。
參考文獻:
[1] 譚浩強.語言程序設計(第一版).華大學出版社,2005.
程序設計語言范文4
中圖分類號:G433
文獻標識碼:A 文章編號:1672-7800(2017)006-0222-04
0 引言
國際通行的雙語教育基本要求是:在教育過程中有計劃、有系統地使用兩種語言作為教學媒體,使學生在整體學識、兩種語言能力以及這兩種語言所代表的文化學習及成長上,均能達到順利而自然的發展[1]。在這里,第二種語言是教學手段而不是教學內容或科目[2]。
雙語教學的目標具有雙重性:①對本科生開設雙語教學,可以培養英語口語、閱讀英語教材、英語資料和英語文獻的能力,為進入研究生學習打下基礎;教師可通過雙語教學,培養和鍛煉閱讀和撰寫英文paper的能力;②雙語教學的目的是幫助教師更好地傳輸學科知識,學生更容易地接收學科知識。
1 C語言雙語教學現狀
計算機類課程中,最適合雙語教學的課程是計算機語言課程,學生一般最先接觸的是C語言,理工類專業課程中講授最多的也是C語言。
C語言本身就采用英語格式,這是此課程作為雙語教程的最大優勢[2]。學習C語言語法時不需要進行漢語翻譯,只需對其英文本意進行直譯,這是這門課程和其它非語言類課程的最大區別,也是其開展雙語教學的主要原因。
計算機程序設計的知識源自國外,實施雙語教學勢在必行。如C語言的圣經《The C Programming Language》,《Thinking in C》,沒有英文基礎也可接收知識,但根本無法真正領會程序設計思想的精髓。因此,C語言實施雙語教學,結合各種程序調試來加強對英文程序內容的理解,才能引導學生理解C語言程序設計的語法、邏輯和算法意義。
C語言開展雙語教學已有多年,取得了一些成績,但多停留在課堂理論知識上,對以下幾個問題缺乏深入思考:①雙語教學時第二語言的比例是多少?②雙語教學中學生的英語水平和計算機水平如何?③雖然理論課采用雙語教學,但實驗環節如何理解英文的相關提示等信息?④雙語教學內容選擇是否合理?⑤雙語教學如何設計實施?
2 C語言雙語教學設計
C語言語法和程序設計思維是學科知識,雙語是手段和方法,有效利用英語服務于C語言教學對教學效果影響很大。通過對上述5個問題的深入思考,以筆者學院開設的《C程序設計》雙語課程為例,設計并實施了“多維”C語言雙語教學模式。
C語言的教學設計應具備以下幾個基本條件:①授課教師非常熟悉雙語教學內容,能用英語交流程序設計方法;②學生具備一定的英語聽說讀寫能力;③學生具備一定的計算機基礎知識。
C語言的雙語教學設計原則:①根據學生的英語能力適當調整英語授課比例;②根據學生計算機基礎(背景),適當調整英語授課比例;③根據教學內容,精心選擇英語教學內容;④根據學習情況適當調整英語授課比例;⑤基本概念、句法結構和語法結構等使用準確的英文表達;⑥基本概念、句法和語法結構的解釋和使用說明使用一定比例的漢語進行講解;⑦設計出的程序要保證在符合C語言語法、句法的條件下,使用一定比例的英語表達;⑧算法可以采用自然英語或偽代碼形式表達,幫助學生用自然思維去理解;⑨使用英文表達調試程序,盡量使用英文解釋程序調試問題;⑩授課資料、教材、學生作業、實驗指導、測試和考試應保證一定比例的英語表達和一定比例的雙語表達。
C語言雙語教學設計要根據學生實際情況和教學具體內容而定,內容應涵蓋C語言教學的多個方面,始終遵循“從C語言教學本身出發”的基本思想。
3 C?Z言“多維”雙語教學實施
C語言實施雙語教學,主要從“理論基礎、控制結構,算法設計、程序調試和程序設計”5個維度展開。
3.1 理論基礎
C語言的理論基礎知識包括關鍵字、常量、變量、數據類型、運算符、表達式、預處理指令和C庫函數等,這些基礎知識要使用準確的英語來講解。例如:
在這個程序中,出現以下幾類基礎知識:①int、return是關鍵字;②printf是C庫函數名;③int是數據類型;④#include 是預處理命令;⑤main是主函數名。
其次,分析這幾類基礎知識:①return、include、main與英語中對應的單詞含義幾乎一致;②int漢語是整型,是英語單詞integer的前3個字母;③printf是輸出函數的函數名,其中 “print”在英語中有打印輸出的意思,“f”是英語單詞function(函數)的第一個字母;④stdio.h是一個頭文件名,其中,“std”是英語單詞standard的簡寫,“i”是英語單詞input的第一個字母,“o”是英語單詞output的第一個字母,“h”是英語單詞head的第一個字母,“.h”是文件的后綴名;⑤This is my first C program!是一個字符串,是一句英文準確表達的句子;⑥\\n是一種字符常量,叫轉義字符,起“換行”的作用。
首先要記住這些基礎知識的含義,然后用雙語講解這些基礎知識的作用、用在什么地方、如何使用。值得注意的是,在雙語教學中,學生知道漢語解釋是為了容易理解,但在后續教學中,應要求學生用準確的英文表達而不是漢語表達。例如:當學生看到、讀到或用到“int”時,腦海里浮現的就是“int”,讀的也是“int”,用的也是“int”,而不是去翻譯它。學生理解和掌握了理論知識,后續理解和掌握聲明或定義結構、句法、語法就能水到渠成。
3.2 控制結構
程序設計的三大控制結構利用人們日常生活思維來設計程序,使得計算機能按照人類思維去運行、計算結果。三大結構采用雙語教學方式,有利于學生理解和掌握。
需要說明的是,這個教學內容與生活思維完全相似,學生比較容易理解。因此,可以增加雙語教學比例,甚至采取全英文的教學模式。
3.3 算法設計
算法是程序設計之前必須考慮的問題,簡單說就是讓計算機解決問題的方法。算法的描述方法有很多種,筆者經過多年的教學實踐發現偽代碼很適合初學者。偽代碼接近自然語言,便于初學者理解和掌握。在C語言雙語教學的算法設計中采用英語偽代碼更能消除算法與程序之間的距離感。
例如:設計一個能進行多次計算的四則運算器,直到用戶強制結束程序。
(1)算法的自然語言描述:首先,輸入計算用的兩個操作數和運算符;接著判斷運算符是哪一種(+、-、*、/),進行四則運算;然后輸出運算結果;重復以上3個過程直到用戶輸入結束程序的命令。
(2)算法的英文描述:①input the expression as a+b,“a” and “ b” are operation numbers,“+”is operator;②judge the operator then select the right formula;③output the result;④repeat the three steps ahead until user input the character “N”,the program is end。
通過以上對算法的描述,特別是使用偽代碼,大大降低了算法的抽象性,能看到程序的雛形。這時學生編寫程序會覺得可以動手,增強了自信心。
3.4 程序調試
學習程序設計,除了學習學科知識(knowledge)外,更為重要的是計算思維(Computational Thinking)和編程技能(Computational Skills)訓練?!禖程序設計》實驗課非常重要,漢化的C語言編譯系統存在缺陷,學生應使用全英文版的VC++6.0調試程序。調試程序時得到的警告、錯誤提示和調試方法全部用準確的英文描述。如圖1為程序改錯題調試界面。
程序調試過程中,要求學生填寫表1。
調試程序是對程序結構、邏輯問題、語法問題和算法進行調整和測試,經過閱讀、調試和改錯訓練,學生對全英文的錯誤和警告提示理解力提高,調試程序也變得容易。
3.5 程序設計
程序設計是一個綜合學科知識和編程技能的過程,學生要依靠所獲得的知識和技能才能完成此項工作。首先給出程序結構,然后用英文注釋說明程序的某個部分應該實現哪些內容,最后再逐漸把程序補充完整。
4 C語言“多維”雙語教學效果
C語言“多維”雙語教學實施后,在以下方面取得成效:①學生對理論知識掌握比以往牢靠,特別體現在語法和句法的掌握上,鮮有學生在程序設計時出現語法和句法的書寫錯誤;②學生對三大結構的理解和實現比以前清晰;③利用英語偽代碼進行算法設計,為學生從算法到程序的過渡建立了直觀的橋梁,消除了對算法的恐懼性和對程序的神秘性;④從實驗課完成情況看,學生會優先做程序改錯題,再做程序填空?}和程序設計題。在程序調試過程中,對很多錯誤和警告都能馬上改正;⑤學生進行程序設計不一定一次成功,但通過多次重復思考和注釋的過程,可以做到“設計一點、調試一點、完成一點”,最終逐步實現整個程序。
5 C語言“多維”雙語教學總結和展望
程序設計語言范文5
關鍵詞:程序設計語言;程序設計能力;分析要點
Teaching Main Point Analysis of Computer Programming Language Courses
Li Yongliang
(Shandong Transport Vocational College,Weifang261206,China)
Abstract:In computer science and computer non-computer major teaching,almost all schools set up high-level language programming course.Programming language teaching although it is difficult,but very meaningful,it is beneficial to develop creative thinking,help students develop problem-solving through computer awareness and ways.
Keywords:Programming language;Programming skills;Analysis
main points
在教學中與一些應用軟件或工具軟件相比,編程課程的教學具有較大的靈活性。很多學生的學習能力較差,課后不肯花時間,久而久之,導致聽不懂,給計算機編程語言課的教學帶來一定的難度。采用何種教學模式進行教學就成為編程
語言教學的一個關鍵。
一、引言
根據以往的教學經驗和通過與學生、同事之間的交流,得知部分學生反映上課時都能聽懂講解,可在涉及到具體的編程及上機操作時,往往會出現沒有思路、無從下手或錯誤百出,不會調試程序等各種情況,究其原因,在教學方面可能存在以下2個問題。
(一)過于注重對語句語法的講解,缺乏以算法為核心的編程題教學。教師鐘情于舉一反三地對使用語句、語法的深入教學,而不是有機地結合算法思想進行教學,貼近生活并引起學生興趣的編程題講得很少。由于教學不是站在如何應用計算機工具編程解決實際問題或實際項目的角度,就沒有把邏輯與編程解題思路放在主體地位,也就沒有很好講解如何分析問題和解決問題。結果導致學生程序設計能力、上機解題能力訓練不夠,更談不上引導學生進行課題研究和科研探索。
(二)學生厭倦傳統的課堂教學,缺乏師生之間的溝通交流學生對于先講后編、先聽后編這一傳統的課堂教學方式有厭倦心理。課堂成了教師的“一言堂”,教與學不能銜接起來。有時教師為了趕進度,講授法成了唯一的教學方法,師生之間缺乏足夠的交流和溝通,學生沒有有效、實用的學習輔助途徑,也間接影響著學生的學習興趣和學習效果。
二、程序設計能力認識
程序是軟件的本體,程序設計(Programming)是指設計、編制、調試程序的方法和過程。它應排除軟件開發中的工程與管理因素,主要指軟件開發過程中的技術因素,尤其是計算機技術因素。
根據調查分析,合格程序員必須具有:1.扎實的專業基礎知識;2.很強的綜合分析和解決問題的能力;3.熟練的編程調試能力;4.創新能力;5.團隊合作能力;6.持續的自學能力;7.強烈的好奇心;8.較高的英語水平和軟件工程的實踐能力等。
應看到,程序設計能力,并非完全等價于程序員所應具備的專業素質,它還包括其他一些內容,如:1.理解問題,根據已知條件,找出求解該問題的數學方法或建立相應的數學模型;2.歸納程序的基本功能;3.設計數據結構和算法;4.用程序設計語言實現算法描述;5.編譯與調試;6.測試程序,保證程序正常運行。
綜上所述,可以將程序設計能力定義為:依據程序設計思想與觀念,應用程序設計語言,采用相應程序開發技術和環境,進行程序設計并達到預計結果的程度。
三、要點分析
基于對程序設計教學思想、程序設計能力的認識,為使學生充分掌握程序設計的思想和方法,有效實現程序設計課程教學目標,我認為程序設計教學還應注意并強調以下幾個基本的教學任務和要求。
(一)應著重培養學生的結構化程序設計的基本觀念。結構化程序設計的基本思想是采用“自頂向下,逐步求精”的程序設計方法和“單入口單出口”的控制結構,它是程序設計的基本原理之一。貫徹課程始終、通過具體實例潛移默化地培養這一思想,比在軟件工程中空洞的說教,更容易被學生理解和接收。
(二)為了使初學者能盡快地掌握計算機知識,進入計算機的應用領域,在課程講授過程中,要特別注意培養學生的學習興趣。學習興趣就是學生在心理上對學習活動產生愛好、追求和向往的傾向,是推動學生積極主動學習的直接動力。學習興趣直接關系到教學效果的好壞。為提高學生的學習興趣,筆者歸納出6個辦法:1.通過演示程序突出程序語言的實用性;2.通過簡單的編程練習突出語言的易學性;3.運用恰當的類比使復雜問題形象化、簡單化;4.做到一題多解;5.要善于舉一反三;6.通過解決實際問題使學生樂學。
(三)教師在教學過程中引導學生思考和探索教學時發現,學生問不出問題的原因往往在于沒有真正學好。實際上,問題是最好的老師,是學生學習的引導者,沒有問題便沒有深入。在教學過程中,引導學生在問題解決中學習,即提出問題,留給學生時間思考、討論、解決問題,從而更深入地展開學習。實踐證明,這種教學方法充分調動了學生學習的積極性和主動性。
程序設計語言范文6
關鍵詞:C++;程序設計語言;專業應用
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2014)30-0239-02
一、前言
1.C++程序設計語言的發展和優點。計算機程序語言是不斷演變的。C++語言是由貝爾實驗室Bjarne Stroustrup博士及其同事開發的,他們在C語言的基礎上逐步發展C++并將其完善。C語言是一種實用性很強的語言,它具有語言簡介、靈活方便、可移植性好等優點。C++語言不僅繼承了C語言的這些優點,還克服C語言自身的缺點,在其功能上做了本質性的革新,即面向對象的機制,有助于程序員開發軟件的高效性和靈活性。目前C++程序設計語言已在眾多領域得到廣泛應用,從而成為高校很多專業(尤其是工科專業)的一門重要基礎課程。
2.C++程序語言的教學現狀。C++程序設計語言在給軟件開發帶來效率和增加代碼靈活性的同時,也增加了學習的難度。Scott Meyers指出C++是一個難學易用的語言,它的難學不僅表現在廣博的語法、語法背后的語義、語義背后的深層思維,以及深層思維背后的對象模型;還在于它提供了四種不同而又相輔相成的編程范型:基于過程(procedual-based)、基于對象(object-based)、面向對象(object-oriental)和泛型(generics)[1]。目前,大多數高校的教學方式仍然是以講授語法概念為主,學生們只是孤立的知道語法,而C++程序設計的能力不足,出現“高分低能”的現象,即使考試成績很高的學生,對語法很清楚,但是讓他們設計簡單算法,例如,工科專業處理數據時經常用到的擬合算法,會出現無從下手的局面。這種教學方式導致了學生對程序語言語法十分熟練,而程序設計能力很弱的現狀。為了改善這種現狀,一些高校提出了項目或任務驅動式或是以案例為主的教學方式,這種教學方式是讓學生在一個個典型的編程“項目”的驅動下展開教學活動,讓學生通過自主學習和相互合作,完成教師布置的任務,建構真正屬于自己的知識與技能[2]。C++是一門實踐性很強、極富創造性特點的課程,項目驅動方式,確實能夠更好的將教學重點從老師單純地教語法知識點,到學生主動地參與到編程和學的過程中。但是目前的項目驅動方式仍存有問題,例如,項目的題目學生不感興趣,學生認為一些項目和他們的關系不大,甚至認為C++的學習對專業應用沒有用,從而導致有些組完成的項目不理想。
鑒于此,本文提出將C++程序設計語言的教學與專業應用相結合,讓學生充分認識到C++程序設計語言是解決專業問題的一種重要工具。
二、C++程序設計語言與專業知識的關系
C++程序設計語言與專業知識是密切相關的,它為后續相關課程的學習提供了基礎,為解決專業問題提供了一種有效的工具,同時專業常識可以輔助學生在C++語言學習中加深對概念的理解。
1.C++程序設計語言為解決專業問題提供了一種工具。C++程序設計語言工具的作用主要表現在它能解決一些專業問題,例如,機械工程專業和自動化專業的單片機設計課程,單片機功能的實現離不開編程,while、for循環語句及不帶參數函數十分常用;或是金融專業中投資組合優化,為了得到最優的投資方式,根據數據得到投資組合模型,采用C++編寫投資組合模型,從而通過計算機分析出最優的投資方式;或是化學專業中,為了分析兩種分子結構的相似度,從而尋找最大公共子圖。眾所周知,最大公共子圖問題是NP完全問題,靠人力分析太慢,可以應用C++編程,讓計算機代替求解;或是醫學專業中,研究新藥的開發,分析新藥在小白鼠上的反應得到的數據需要分析,分析過程中設計到擬合算法和精度分析等,用C++編程會大大簡化實驗員的工作量。盡管C++程序設計語言對于專業的學習十分重要,但是專業課老師反映多數學生對于C++程序設計語言的掌握不牢固,即使當時得分很高的學生,也不能順利而高效地設計出算法。原因之一是學生學習計算機語言的時候只是專注于語法的學習,而不專注于程序語法背后的語義、以及語義背后的深層思維、深層思維背后的對象模型的學習,而且計算機程序語言的教學脫離了應用,不能讓學生真正體會到計算機編程語言是一種工具。
2.專業常識輔助C++程序設計語言中抽象概念的理解。C++程序設計語言中的一些概念是比較抽象的,例如類的概念,學生剛開始學習的時候不能很好地掌握類的概念,也不能明確地區別類和對象,而專業常識可以輔助抽象概念的理解。例如,機械專業中螺母可以看成一個類,這個類有規格、牙距、最大外徑、高度等屬性。有一個規格是2.5,牙距0.45mm,最大外徑6.4mm,高度2mm的六角螺母,這個螺母就對應于對象,從而向學生們解釋了類和對象是抽象和具體的關系,同時機械專業的學生也知道了螺母的屬性有哪些。
因此,專業知識和C++程序設計語言是相輔相成的,可以將這兩者結合起來,從而達到讓學生們增加對C++程序設計語言的興趣,同時也對專業知識有所了解,深刻理解C++程序設計語言對于專業學習是一個重要工具。
三、C++程序語言與專業知識的結合
既然專業知識和C++語言之間相輔相成,在教學活動中應將兩者結合,從而使學生對C++學習提高興趣,同時也了解了專業知識。兩者之間的結合點主要表現在教學過程中概念的講解和項目的選取。
1.概念的講解。C++的概念相對于C比較多,為了讓學生能更好地掌握這些概念,可以結合具體事例,尤其是專業相關的實例。例如:類的繼承性是面向對象編程的一個重要性質,在講解繼承性的時候,可以結合專業背景知識來說明繼承性的好處;機械專業中,零件的設計過程中設計新零件是基于舊的零件的基礎上改進,可以看成新零件繼承了舊零件的特征,而添加了一些新特征,從而省去了大量重復的工作,C++的繼承性同樣具有這種優點。C++的繼承性是指在一個基類上定義了一個派生類,派生類繼承了基類所有屬性和操作,同時增加了其他新的屬性和操作,這些新屬性和操作是基類不具備的。這樣就可將專業常識和類的繼承性結合起來,有助于C++概念的理解。
2.與專業背景有關的項目。項目驅動教學方式使得學生主動地參與到編程的學習過程中,但是項目的選取十分重要,如果應用背景學生不了解,使其對于項目的完成形成一定的障礙,因此項目的選取與專業應用相結合有助于學生了解項目的要求,提升對項目的興趣。目前,很多高校采用擬合算法的實現作為一個典型項目,但是單純地講擬合算法,沒有專業應用背景,學生覺得很枯燥,可以將擬合算法和專業背景結合起來,比如面向機械專業的學生,可以以逆向工程為例。教師在介紹項目的時候可以簡單介紹一下逆向工程的技術背景。逆向工程是一種能根據現有的物理部件通過CAD、CAM、CAE或其他軟件構筑3D虛擬模型的方法。逆向工程的過程采用了通過丈量實際物體的尺寸并將其制作成3D模型的方法,真實的對象可以通過如CMMs、激光掃描儀、結構光源轉換儀或者X射線斷層成像這些3D掃描技術進行尺寸測量。這些測量數據通常被認作是點集,缺乏拓撲信息,并且通常會被制作成更有用的格式,例如多邊形網格、NURBS曲線或者CAD模型。由此,學生知道逆向工程的定義、內容和過程,而擬合算法是逆向工程中常用的一種方法。介紹項目時,將逆向工程的實際問題進行簡化,比如實現一個旋轉面的三維數據點,并重構出這個旋轉面,并給出旋轉面的母線和旋轉軸。面向醫學專業學生,可以以實驗數據分析為例,例如放射后細胞存活的實驗,教師先介紹一些放射治療的背景、效用和副作用等,并指出細胞存活實驗的重要性。介紹細胞存活實驗的實驗,通過實驗得到一組數據,并通過C++程序設計語言,得到放射后細胞存活量的變化曲線圖。由上面可知,同樣一個算法,在不同的專業中應用是不一樣的,如果在說明擬合算法時,向機械專業學生介紹放射后細胞存活的實驗,或是向醫學專業的學生介紹逆向工程,他們更加難理解項目,項目的完成效果也不佳,因此項目的選取應與專業應用結合。
四、結論
將計算機程序語言的教學與專業相結合,讓學生了解自己的專業是什么,計算機程序語言能解決什么樣的專業問題。計算機編程語言一般是大一、二的基礎課,很多新生都不了解自己的專業究竟做什么,因此,這種結合更有助于學生盡早了解自己的專業,也有助于他們將C++程序設計語言應用于專業的學習和實際問題解決中。
參考文獻:
[1]侯捷.改善程序與設計的55個具體的做法[M].北京:電子工業出版社,2007.
[2]陳幗鸞.“項目驅動”教學法在C++教學中的應用[J].科技教育創新,2009,(7).