時間:2023-03-22 17:44:54
序論:在您撰寫計算機程序設計論文時,參考他人的優秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發您的創作熱情,引導您走向新的創作高度。
案例需要選取復雜程度適中,學生比較感興趣的實例,使課堂變得生動活潑。每位同學設計自己的實施方案,鼓勵大家去思考、去創造,經過老師的講解,可以完成整個案例的實現。學生之間可以通過討論,經驗交流,互相取長補短,完善自己的案例制作。當學生完成作品時,教師應當對此次案例的實施進行總結,并且在此基礎上,將問題延伸,對其進行完善或改進,根據課時情況,鼓勵學生設計并實現。
2與自身專業相結合
為了提高VisualBasic程序設計的實用性,增強學生學以致用的能力,需要將該門課程與學生所學專業有機的結合在一起,這樣能夠使學生的學習興趣更加濃厚,提高學習熱情。以交通運輸專業為例,課程開展至圖形圖像的使用時,可以選取紅綠燈變換例題作為學生的操作案例,如圖2所示。在這個案例中,與交通專業的專業知識也許還有一定的差距,但這樣一個簡單的實例足以吸引學生的注意力,控件要求也比較簡單,代碼結構并不復雜,但是需要提醒學生注意的是需要對于Image3控件需要添加具有3個元素的控件數組,來存儲紅、黃、綠三種顏色。類似的案例教師可以通過網絡搜索或圖書資料等多種方法搜集,難度不能太大,如果太復雜,反而會影響學生學習的積極性,以上就是對于非專業學生,將案例教學法應用于理論教學中的一些建議。
3程序實踐教學改革
1計算思維的概述
何謂計算思維,即借助于計算機科學基礎概念來分析問題、解決問題、系統設計以及理解人類的一種行為。如下圖靈獎得主ButlerLampson的報告,這種思維為人自身一種根本且概念化思維方式,是一種思想而非人造物,為數學與工程思維相互融合和互補所形成的一種思想。計算思維自身為抽象與自動化,這種抽象是借助于嵌入、簡化、遞歸以及轉換等方式,把某一個較為復雜的問題轉變成多個簡單的子問題,并實施求解的一個過程。而自動化則是指通過計算機自身所具運算能力的充分利用來分析、解決各種問題,以此來彌補人在計算方面所存在的各種缺陷和不足,這種自動化也在很大程度上使得計算機應用范圍更為廣泛。基于上述這些內容可知,計算思維其實就是一種人機共存、形式規整以及解答問題的思維。
2基于計算思維培養的C程序設計驗教學
2.1教學目標的明確
眾所周知,實施教育的主要目標就在于學生綜合能力以及素質的培養。目前我國教育部門在計算機教學目標上予以了明確的規定,即計算機基礎教學能力培養的目標應包含四個方面的內容,即計算機認知能力、計算機應用能力、網絡學習能力以及借助于計算機的一種共處能力,在這些目標中,前兩個目標所反映出來的內容及就為計算環境以及問題求解。在計算機這門學科中,C程序的設計就是計算思維中的語言機問題求解。對此,在C程序設計教學過程中,計算思維這一能力不僅僅為其核心能力,同時也是教學中的核心內容。鑒于上述內容,在本次C程序設計實驗教學上,教學目標主要為計算機思維的培養,教學主要內容為程序設計方式的講解,通過上機實踐的強化,使學生能夠借助于這種實踐感受,以及計算問題求解基本方式與思維模式的領悟,為學生創新能力的培養以及綜合素質的提高打好基礎。下圖為C程序的設計的教學模塊。
2.2教學內容的設計
在計算機這門學科中,C程序設計這一課程屬于理論和實踐并重的一門課程,要求教師在教學過程中,必須要把理論教學和實踐教學有機結合,從而使理論教學和實踐教學能夠互相推動。在教學過程中,由于學生對于所學內容缺乏一定的感性認識,對此,教師在實施教學,應綜合考慮學生自身的學習情況,結合所要學習的內容,對C程序實驗教學內容進行合理且科學地設計,把學生能力的培養、知識的傳授以及技能的訓練等融為一體,使學生能夠在做的過程學到知識,在學習過程中獲得相應的操作技能,繼而使其能夠將自身所學到的內容與知識有效地應用至實踐中,并解決在實踐中所遇到的各種問題。為達到理論夠用實踐突出這一目的,在本次C程序設計教學中,把所有的知識點歸納并總結為了九個核心點,根據所學內容的難易程度,把教學過程細化成為三個模塊,即基礎能力、中級應用以及高級應用,基于由淺入深這一原則,循序漸進地實施教學,把C程序實驗教學分為了三個方面的實驗,即驗證實驗、綜合實驗以及設計型實驗,通過這種方式,使學生能夠在記憶中來理解所學知識,并在理解中學會怎樣應用這些知識,最后使學生在實踐應用過程中學會創新。第一,通過驗證型實驗的實施,使學生能夠熟悉該語言的設計環境。學生實施編程以及應用編程的一個基礎就是基礎能力模塊知識,在該模塊中,教師必須要求學生學會記憶以及理解,把該模塊實驗教學內容設置成為驗證型的實驗,讓學生對于C程序設計環境以及步驟有一個基本的認識,使在學生熟悉這一環境后,了解該程序的書寫格式、特點以及結構,了解并掌握該程序數據的基本類型、表達式以及運算符等,繼而進一步使學生掌握C程序數據的輸入以及輸出,明白C程序所具備的三種結構,使學生通過驗證型實驗,可獨立解決編程方面存在的各種問題。在實施驗證型實驗教學時,應要求學生應按照教師解決問題的方式來完成相應的實驗內容,這種模擬的方式就是計算思維的模仿,在這一環節中,所強調的是科學內容活動的演示以及證明,注重是學生實驗操作、觀察、數據處理以及計算等個性化智力技能的培養,在教學過程中,學生借助于驗證標準的這一已知程序來理解并學習基礎模塊中的內容,在理解和學習的過程中,學生可直觀且清楚地看到在實際實驗程序中各知識點的具體應用,能夠更為快速地熟悉這種環境,繼而更為地理解以及記憶C程序設計的基本知識。此外,在學生實施驗證型實驗之前,教師應實適時引導學生對以往所學C程序知識進行回顧,并在基礎上對實驗步驟實施討論,提出相關的注意事項,針對學生在實驗中容易出錯的這些操作方,教師應該事先進行示范,以免在實驗中學生出現一些不必要的錯誤。第二,通過設計型實驗的實施,強化學生計算思維能力的培養。所謂設計型實驗,就是指不同計算思維方式的綜合應用來分析并解決各種問題。設計型實驗是基于學生自身已掌握相應的實驗方法與技能,通過所學知識的應用,自行提出相應的問題,并在此基礎上分析和解決問題,經過算法的分析、程序運行結果的分析處理以及實驗結果等,獲得正確且規范的研究分析理論。在這一環節中,所注重的是學生團結協作、勇于探索以及的嚴謹求實精神的培養,在實施設計型實驗教學時,教師應事先對程序進行填空、設計以及改錯,并提出相關的思考問題,積極引導學生來討論與分析,鼓勵學生提出不同解決方案。第三,通過綜合型實驗的實施,強化學生創新以及應用意識的培養。在C程序設計實驗教學中,為培養學生創新精神以及探索精神,使其計算思維得到擴展與升華,可結合學生自身的學習進度,基于所學內容的難易程度,定期設計一個相應的綜合型實驗程序題目,鼓勵學生在課外課余時間來編程,同時在規定的時間內把所自己的所編程的這一源程序上傳至電腦,由教師來進行批閱,對于參與這一活動的學生,教師應該實施相應的鼓勵,這樣不僅能夠進一步激發學生學習的興趣,同時還可提供學生的實踐操作能力,使學生今后能夠更好地適應社會市場,在潛移默化中使學生應用創新能力以及計算思維得到培養??傊x擇了一些趣味性強、有吸引力的例子和話題以提高學生的學習興趣,選擇一些實用性強的例子和話題,以努力提高高校學生的工程實踐能力。精選的“不斷提升”的引導性例題、習題和實驗題,以及貫穿全書的綜合實例,起到了開拓思路、引導讀者探究問題求解方法、激發讀者程序設計興趣的目的。
2.3基于計算思維能力培養的C程序設計實驗教學
第一,上機操作實驗流程的規范。在教學之前,教師應該要求學生對所學內容進行預習,通過題目的分析,明確實驗教學中所需的數據結構,對參與運算的這些變量進行賦值,接著應用三種結構來解決問題,將結果輸出,進行N-S流程圖的繪制,基于該圖編寫相應的源程序,最后準備好測試程序所需的數據以及預期結果,進行上級調試工作,并歸納總結。通過實驗流程的規范,不僅便于學生良好學習習慣以及思維習慣的培養,同時還可提升學生分析與解決各種問題的能力。
第二,加強上機操作過程中的指導與引導。在學生實際上機操作時,教師可借助于提問的方式來引導學生將自身所存在的問題找出來。在程序調試、上機輸入以及編輯時,除了系統所引發的問題外,通常情況下,其他問題均由學生自己來獨立解決。此外,在教學過程中,教師還還應鼓勵學生采用不同的算法,正確引導學生反思這些算法,繼而培養學生的計算思維能力?,F以“打印水仙花樹”以案例說明。
第三,加強實驗過程的反思,采取合理且科學的考核評價制度,使學生的計算思維能夠得到擴展。在上機完成以后,教師應要求學生對于本次實驗實施反思、總結以及歸納,可采取小組的方式來交流和溝通,集思廣益,使學生在交流和反思的過程中,拓展其計算思維。此外,還應采取相應的考核評價措施,可采取機考與筆試,結合學生平時學習表現情況,合理且科學地評價,對于學生所獲得的成功,不管大小,均應予以相應的肯定,以此激發學生學習的積極性。下面以“打印水仙花數”為例,簡要說明基于計算思維的案例設計的基本方法?!按蛴∷苫〝怠卑咐O計步驟(圖3)打印水仙花數”案例的具體設計與實施(圖4)
3結束語
西安理工大學工科非計算機專業和計算機專業雖然都開設C語言程序設計課程,但是前者具有鮮明的專業特點,對該課程的要求明顯不同,僅僅按照“面向對象教學”的原則,適當調整教學組織活動和教學內容對于后者是遠遠不夠的。針對目前工科非計算機專業C語言程序設計課程教學實踐中所暴露的主要問題,筆者積極開展了非計算機專業C語言程序設計課程教學設計的教改工作。
1.1教學設計概述
所謂教學設計,就是為了達到一定的教學目的,對教什么(課程、教學內容等)和怎么教(組織、方法、媒體的使用等)進行設計。教學設計不等同于傳統的備課寫教案。教學設計有利于教學工作的科學化,使教學活動納入科學的軌道。教學設計的意義就在于追求教學效果的最優化,不僅關心教師如何教,更關心學生如何學,注重將人類對教與學的研究結果和理論綜合應用于教學實踐。教學設計主要包括確定教學目標、組織教學內容、分析教學對象、選擇教學形式和方法及教學媒體、設計教學過程、教學質量評價設計等基本環節,其中,設計教學過程是課程教學設計的核心。
1.2該課程教學設計的內容
西安理工大學C語言程序設計課程組于2003年出版了《C語言程序設計教程》及配套的《C語言程序設計教程上機實驗與學習指導》特色教材。自2011年開始,非計算機專業選用的教材與計算機專業不同。目前非計算機專業選用《C語言程序設計》(第1版,張毅坤教授,高等教育出版社,2011)作為該課程的教材。非計算機專業C語言程序設計的教學設計是一項復雜的系統工程,主要包括課程教學設計、章節教學設計、課堂教學設計和實驗教學設計,以西安理工大學C語言程序設計課程教學大綱為指導,以《C語言程序設計》(第1版)及其配套教材為基礎,確定課程教學設計的內容:①將該課程的教學目標確定為“掌握C語言的基本語法和語義,理解結構化程序設計的思想和方法,提高學生的編程能力和調試程序的能力”。②組織教學內容的關鍵是進行教材的組織呈現,理論教學內容包括《C語言程序設計》(第1版)的第一章至第八章,實驗教學體現于該教材的第九章及配套教材。③學生作為教學對象始終是教學過程中的重要角色,工科非計算機專業的種類多,分析教學對象就是掌握學生特點與了解專業背景并重。④重點突出課堂教學設計,傳統教學與案例教學有機結合,“講解+多媒體演示+課堂板書”缺一不可。⑤設計教學過程與“組織教學內容”聯系最為緊密,主要包括課堂教學設計和實驗教學設計,教學過程設計遵循的總原則是:激發學生興趣,注重能力培養,合理安排教學順序,講清重點與化解難點緊密結合,課堂提高與課后鞏固拓展有機統一,并預測教學實踐中可能出現的意外情況。⑥將學生評價、同行評價、教學督導組專家評價、主管教學的領導評價和教師自我評價這幾種評價的結果綜合起來,比較客觀的評價教學效果與教學質量。
2教學設計的實踐及效果
我們連續多年承擔非計算機專業C語言程序設計課程,先后承擔過西安理工大學電氣工程及其自動化(電力)、水文與水資源工程、印刷工程、包裝工程和材料科學與工程等專業的C語言程序設計的理論教學和實驗教學任務。始終將上述教學設計的內容貫穿于課堂教學和實驗教學之中。C語言程序設計本身是一門實踐性很強的課程,加之各個理工科專業的特色鮮明,所以結合學生所學專業特點與需求,同一門課程,針對不同專業的學生,適當調整教學設計內容,并在教學實踐中檢驗教學效果。2012年以來,學生對筆者的教學評分一直在95分以上,也給予了肯定性的評價,例如“采用啟發式教學,闡述問題深入淺出,重點突出,能理論聯系實際或聯系學科發展的新成果”;“對于您的授課方式我們很滿意,感謝您對這門課程的熱忱,我們會努力學下去”;等等。
3結語
關鍵詞遺傳算法;TSP;交叉算子
1引言
遺傳算法是模擬生物在自然環境中的遺傳和進化過程而形成的一種自適應全局優化概率搜索算法。總的說來,遺傳算法是按不依賴于問題本身的方式去求解問題。它的目標是搜索這個多維、高度非線性空間以找到具有最優適應值(即最小費用的)的點[1]。
基本遺傳算法是一個迭代過程,它模仿生物在自然環境中的遺傳和進化機理,反復將選擇算子、交叉算子和變異算子作用于種群,最終可得到問題的最優解和近似最優解。
2遺傳算法程序設計改進比較
2.1基本遺傳算法對TSP問題解的影響
本文研究的遺傳算法及改進算法的實現是以C++語言為基礎,在Windows2000的版本上運行,其實現程序是在MicrosoftVisualStadio6.0上編寫及運行調試的。
1)遺傳算法的執行代碼
m_Tsp.Initpop();//種群的初始化
for(inti=0;i<m_Tsp.ReturnPop();i++)
m_Tsp.calculatefitness(i);//計算各個個體的適應值
m_Tsp.statistics();//統計最優個體
while(entropy>decen||variance>decvar)//m_Tsp.m_gen<100)
{
//將新種群更迭為舊種群,并進行遺傳操作
m_Tsp.alternate();//將新種群付給舊種群
m_Tsp.generation();//對舊種群進行遺傳操作,產生新種群
m_Tsp.m_gen++;
m_Tsp.statistics();//對新產生的種群進行統計
}
2)簡單的遺傳算法與分支定界法對TSP問題求解結果的對比
遺傳算法在解決NPC問題的領域內具有尋找最優解的能力。但隨著城市個數的增加,已沒有精確解,無法確定遺傳算法求解的精度有多高。一般情況下,當迭代代數增大時,解的精度可能高,但是時間開銷也會增大。因此可以通過改進遺傳算法來提高搜索能力,提高解的精度。
2.2初始化時的啟發信息對TSP問題解的影響
1)初始化啟發信息
在上述實驗算法的基礎上,對每一個初始化的個體的每五個相鄰城市用分支界定法尋找最優子路徑,然后執行遺傳算法。
2)遺傳算法與含有啟發信息的遺傳算法求解結果的對比
當城市數增至20個時,用分支定界法已經不可能在可以接受的時間內得到精確的解了,只能通過近似算法獲得其可接受的解。試驗設計中算法的截止條件:固定迭代1000代。表2中的平均最優解為經過多次試驗(10次以上)得到的最優解的平均值,最優解的出現時間為最優解出現的平均時間,交叉操作次數為最優解出現時交叉次數的平均值。
表220個城市的TSP問題求解結果數據
算法交叉操作
次數最優解
出現時間平均
最優解
簡單遺傳算法80244.479.4s1641.8
含初始化啟發信息的GA79000.237.4s1398.9
從表2中可以看出,當初始種群時引入啟發信息將提高遺傳算法的尋優能力。同時縮短了遺傳算法的尋優時間和問題的求解精度。
2.3交叉算子對TSP問題解的影響
1)循環貪心交叉算子的核心代碼
for(i=1;i<m_Chrom;i++)
{
flag=0;
city=m_newpop[first].chrom[i-1];//確定當前城市
j=0;
while(flag==0&&j<4)
{
sign=adjcity[city][j];//adjcity數組的數據為當前城市按順序排列的鄰接城市
flag=judge(first,i,sign);//判斷此鄰接城市是否已經存在待形成的個體中
j++;
}
if(flag==0)//如果所有鄰接城市皆在待擴展的個體中
{
while(flag==0)
{
sign=(int)rand()/(RAND_MAX/(m_Chrom-1));//隨機選擇一城市
flag=judge(first,i,sign);
}
}
if(flag==1)
m_newpop[first].chrom[i]=sign;
}
2)問題描述與結果比較
下面筆者用經典的測試遺傳算法效率的OliverTSP問題來測試循環貪心交叉算子的解的精度和解效率。OliverTSP問題的30個城市位置坐標如表3所示[2]。
從表4、圖1中可以看到,貪心交叉算子大大提高了遺傳算法的尋優能力,同時也降低了交叉操作次數。在多次試驗中,貪心交叉算子找到的最優解與目前記載的最佳數據的誤差率為2.7%。而部分匹配交叉算子找到的最優解與目前記載的最佳數據的誤差率高達7%。從而可以得到交叉算子對于遺傳算法
2.4并行遺傳算法消息傳遞實現的核心代碼
1)主程序代碼
//接收各個從程序的最優個體
for(i=0;i<slave;i++)
{
MPI_Recv(Rchrom[i],chrom,MPI_UNSIGNED,MPI_ANY_SOURCE,gen,MPI_COMM_WORLD,&status);
}
//計算接收各個從程序的最優個體的回路距離
for(i=0;i<slave;i++)
{
fitness[i]=0.0;
for(intj=0;j<chrom-1;j++)
fitness[i]=fitness[i]+distance[Rchrom[i][j]][Rchrom[i][j+1]];
fitness[i]=fitness[i]+distance[Rchrom[i][0]][Rchrom[i][chrom-1]];
}
//找到最優的個體并把它記錄到文件里
for(i=0;i<slave;i++)
{
if(1/fitness[i]>min)
{
sign=i;
min=1/fitness[i];
}
}
fwrite(&gen,sizeof(int),1,out);
for(i=0;i<chrom;i++)
fwrite(&Rchrom[sign][i],sizeof(unsigned),1,out);
fwrite(&fitness[sign],sizeof(double),1,out);
//每九代向從程序發送一個最優個體
if(gen%9==0)
MPI_Bcast(Rchrom[sign],chrom,MPI_UNSIGNED,0,MPI_COMM_WORLD);
2)從程序代碼
//將上一代的最優個體傳回主程序
MPI_Send(Rchrom1,chrom,MPI_UNSIGNED,0,gen,MPI_COMM_WORLD);
//每九代接收一個最優個體并將其加入種群中替換掉最差個體
if(gen%9==0)
{
PI_Bcast(Rchrom2,chrom,MPI_UNSIGNED,0,MPI_COMM_WORLD);
Tsp.IndiAlternate(Rchrom2);
}
//進行下一代的計算
Tsp.Aternate();
Tsp.Generation();
Tsp.Statistics();
3)并行遺傳算法的性能
筆者在MPI并行環境下,用C++語言實現了一個解決TSP問題的粗粒度模型的并行遺傳算法。該程序采用的是主從式的MPI程序設計,通過從硬盤的文件中讀取數據來設置染色體長度、種群的規模、交叉概率和變異概率等參數。試驗環境為曙光TC1700機,測試的對象是OliverTSP問題的30個城市的TSP問題。
正如在測試串行遺傳算法所提到的數據結果,并行遺傳算法也沒有達到目前所記錄的最好解,但是它提高了算法的收斂性,并行遺傳算法的收斂趨勢如圖2所示[4]。
圖2遺傳算法的收斂過程
3結束語
本文通過對基本遺傳算法的不斷改進,證明了添加啟發信息、改進遺傳算子和利用遺傳算法固有的并行性都可以提高遺傳算法的收斂性,其中對遺傳算法交叉算子的改進可以大大提高遺傳算法的尋優能力。
參考文獻
[1]劉勇、康立山,陳毓屏著.非數值并行算法-遺傳算法.北京:科學出版社1995.1
[2]IMOliverDJSmithandJRCHolland,Astudyofpermutationcrossoveroperatorsonthetravelingsalesman[C]//ProblemofthesecondInternationalConferenceonGeneticAlgorithmsandTheirApplication,Erlbaum1897:224-230
力學、熱學課程是師范院校物理教育專業的專業基礎課程,在大學一年級開設,而緊跟力學、熱學課程而開設的計算機程序設計課程是培養學生計算機程序設計能力的重要課程。物理教育專業學生在計算機程序設計課程學習中,隨著課程的深入,遞歸循環、指針等難度較大內容出現,一部分學生感覺較難理解,更難自己編寫計算機程序實現某些略為復雜的算法,容易產生計算機程序設計課程學習無從與物理專業課相聯系、枯燥無味的感覺,降低了計算機程序設計課程的積極性、主動性。然而大學物理與與計算機的關系密切,物理教育專業本科畢業論文、物理學科碩士論文,都涉及大量的計算機編程,因為物理學復雜的非線性問題已經無法找到理論精確解,只能利用計算機進行計算、求解、分析、預測,另外計算機仿真實驗提供了驗證物理學理論、探測真實物理實驗方案的可行性、驗證物理數據的一種實驗成本低廉、快捷的方法[1-3],因此,物理教育專業學生計算機程序設計能力的強弱,直接影響到其本科畢業論文研究以及將來可能的碩士論文研究?,F有的教學研究論文中,未見定量分析大學物理基礎課程成績對計算機程序設計課程成績的影響[4-6]。因此,選取論文作者所授課的廣西師范大學物理教育專業4屆5個班本科生的力學與熱學課程期考成績、計算機程序設計課程的段考與期考成績,利用相關系數法定量分析力學、熱學課程成績對計算機程序設計課程成績的影響。
2實驗對象與分析方法
實驗對論文作者所授課的廣西師范大學物理教育專業4屆5個班本科生,其中1997級81人、1999級78人、2000級65人、2001級1班59人、2001級2班55人,選取大學一年級的力學、熱學的期考成績,力熱課程開設之后的計算機程序設計課程的段考、期考成績。利用相關系數法反映計算機程序設計課程成績與力學、熱學課程成績之間線性關系的密切程度[7,8]。
3實驗結果
分析所選取的計算機程序設計課程成績比例分布,考慮優秀、不及格兩端的學生人數相對較少,進行相關分析的誤差較大,而良好、中等、及格分數段的學生人數較多,因此將分數S分為優良分數段(S≥80)、中等分數段(70≤S<80)、及格與不及格分數段(S<70)三段,三段中的學生人數相差不大,分別計算計算機程序設計課程成績全部、優良分數段、中等分數段、及格與不及格分數段與力學、熱學課程相對應成績的相關系數,結果見表1、表2。可以看出,表中所有相關系數均為正值,除個別外主要分布在0.40~0.80之間,絕大部分相關系數均大于0.45,大于0.8的相關系數很少,沒有大于0.9的相關系數,說明力學、熱學課程成績對計算機程序設計課程成績有一定的影響,但影響并不是特別顯著,有一定的正相關性,但相關性并不是特別高,計算機程序設計課程成績還受其它因素的綜合影響。
計算機程序設計課程成績在優良分數段、及格與不及格分數段與力學、熱學課程相對應成績的相關系數幾乎都低于全部分數段的相關系數,甚至出現相關系數為0.20~0.39,極低無顯著性意義的現象,而中等分數段的相關系數幾乎都略大于全部分數段的相關系數,說明中等分數段的計算機程序設計課程成績受力學、熱學課程相對應成績的影響要比優良分數段、及格與不及格分數段顯著一些,即有一些計算機程序設計課程成績優良的學生未必對應力學、熱學課程成績優良,也即有一些計算機程序設計課程成績較差的學生也未必對應力學、熱學課程成績較差。力學、熱學兩門課程成績各自與計算機程序設計課程成績的相關系數整體差異不大,影響的顯著性相差不大。
論文摘 要:計算機程序設計算法在高中信息科技教學過程中是重點,也是難點。程序設計算法的相關概念比較枯燥,理論過于抽象,對學生的邏輯思維能力要求較高,所以在教學過程中往往難以把握,也不易調動學生的興趣。在傳統的教學過程中,學生對這部分知識的掌握比較困難。本文結合課堂教學實踐,從三個方面探究運用建構主義教學理論構建計算機程序設計算法教學過程,促進學生對知識的理解和掌握,與傳統的教學方法比較,運用構建主義理論教學方法取得更好的教學效果。
計算機程序設計算法作為高中信息科技選學模塊的內容,是課程改革的一種新的嘗試,旨在培養和提高學生的邏輯思維能力,以及分析問題和使用計算機解決問題的能力。在傳統的教學模式下,教師的實踐活動在很大程度上受到行為主義的影響。教師的教學任務主要是為學生提供一系列刺激和強化,并引導學生作出適當的反應。教學的目標就是為了讓學生模仿適當的行為,教師對學生模仿的結果進行判斷和修正。在程序設計算法的教學過程中,這種教學模式難以取得理想的教學效果。[1][2][3]作者介紹了建構主義教學理論及其要義,并對利用建構主義教學理論對教學過程進行改革和優化進行了分析與評價。具體應用建構主義教學理論應用在高中程序設計算法的嘗試,還沒有查到,因此嘗試用建構主義方法應用于計算機程序設計教學效果,具有重要的意義。
一、利用建構主義教學法創設學習情境,激發學生學習興趣
在計算機程序設計算法教學過程中,教師利用建構主義為學生創設一個學習的情境,以激發學生對所學內容的興趣,將學生的思維引入到學習情境中。創設情境,即在真實世界中建構知識意義、學會解決問題的經驗,盡管在傳統課堂教學中,我們無法將學生帶到知識應用的現場(而計算機程序設計算法中一些抽象性、邏輯性、數理性的知識也難以找到這樣的現場),也沒有虛擬現實技術的產品去模擬真實世界,但在教學中,教師要學會運用有效的教學策略和各種可行的技術手段,設法讓知識“從情景中走出,又最終走入情景”,即從現實情景中提煉問題,又能設計一些將新知應用于現實情景的實例,從而給予學生解決實踐問題的機會。也只有跟現實生活緊密聯系在一起的教學活動才激發學生的興趣,引發學生的共鳴,教學中可以向學生提出生活中的實際問題,激發起學生的興趣,引導學生針對趣味性問題和生活實際問題進行思考、討論,從而將學生引入教學情境中來。
二、設置學習任務,讓學生主動探索知識
計算機程序設計算法的相關概念比較枯燥,理論過于抽象,對學生的能力,尤其是創造性思維能力的要求較高,所以在教學過程中難以把握,也不容易引發學生的興趣。在算法的教學過程中,利用建構主義教學理論對教學過程進行改革和優化將取得更好的教學效果。
比如,在介紹排序計算機程序設計算法時,如果純粹地以數字為例進行介紹,給予學生的印象不會太深刻,而且會顯得過于抽象,不通俗易懂。所以針對這一現象,可以充分利用學生對排隊這一活動的熟悉程度來引出排序算法,加深學生對排序算法的直觀印象,促進學生對排序算法的理解。具體可以這樣操作,在提出排序算法之前,教師可在班級內隨機抽取五名高矮不一的學生隨機站立,然后請這五位學生演示以不同的方法從矮到高的排隊過程,教師可在一旁指導學生先按照冒泡排序的方法進行排隊演示,并記錄他們演示過程中的每一次移動。
這樣,在計算機程序設計算法教學中通過任務的設計,改變了知識的傳輸方式,培養了學生的科學探索精神和實踐能力,把靜態的教學變成學生主動參與的開放式教學。 轉貼于
三、利用建構主義教學評價,強化教學目標
高中計算機程序設計算法包含了數學模型建構、邏輯推理等多方面的知識,學生理解和掌握的難度比較大,不同學生理解和掌握的程度也不盡相同,教師在教學過程中應當及時有效地評價學生的學習過程,從而獲取有價值的反饋信息,并根據反饋及時調整教學進度和教學策略。同時,學生也可以反思自己的學習過程,調整認知策略,改變思考角度,加深對學習目標的理解和認識。
評價的過程是學生發現自我、提高自我的過程,也是學生與學生、學生與老師情感交流的過程。有效地教學評價,不僅能夠真正確立學生在課堂教學中的主體地位,還能夠促進學生在課堂上的積極參與,使得學生充分活動,形成良好教學氛圍和師生互動關系,也只有在這樣的課堂氛圍中,學生才能更好地學習,得到更好的發展。有效地教學評價,也可以讓老師更多地了解學生優勢和不足,監控學生的學習過程,正確評估自己的教學效果。
四、小結
新課程改革要求以學生發展為本,讓學生參與,提高學生的學習興趣;優化教學環境,加強交流與合作;給每位學生以期望和激勵,讓學生有成功感;利用建構主義教學理論引導學生對知識的意義建構,從根本上改變了老師和學生在知識學習過程中的地位和角色。在計算機程序設計算法教學過程中,通過情境引入、課堂任務設計,學生能夠主動參與程序設計算法數學模型的建構、自主探索、合作交流,樂于參與系統知識的學習過程,充分調動學生學習的主動性,同時更利于學生身心的發展。
參考文獻:
[1]陳琦,張建偉.建構主義學習觀要義評析[J].華東師范大學學報:教育科學版,1998(1):61-68
關鍵詞:計算機程序設計;數學建模;數據;效率;VBA
中圖分類號:G712 文獻標識碼:A 文章編號:1007-9599?。?012) 19-0000-02
隨著計算機技術的迅速發展,數學的應用不僅在工程技術、自然科學等領域發揮著越來越重要的作用,而且以空前的廣度和深度向經濟、金融、生物、醫藥等新的領域滲透。不論是用數學方法在科技和生產領域解決哪類實際問題,還是與其它學科相結合形成交叉學科,首要的和關鍵的一步是建立研究對象的數學模型,并加以計算求解。數學建模和計算機技術在知識經濟時代的作用可謂是如虎添翼。[1]
計算機技術發展到今天,已經在各個領域產生了許多非常優秀的專業軟件,在數學建模競賽中一定要使用計算機及相應的軟件,如Excel,Spss,Lingo,Mapple,Mathematica,Matlab甚至排版軟件等。數學建模初期,數據質量通常較差,可以利用計算機進行規范化和目的化處理,這需要較強的計算機程序設計能力,如熟練使用EXCEL中的VBA(Visual Basic Application)。
1 計算機程序設計能力培養意義重大
早在1994年,原國家教委高教司司長周遠清同志就提出了層次教育的做法,并且將計算機教育的三個層次依次定為“計算機文化基礎”、“計算機技術基礎”和“計算機應用基礎”,現已將“計算機文化基礎”更名為“大學計算機基礎”,“計算機技術基礎”更為“計算機程序設計基礎”,并在2006年后出現“計算思維”的新思想。
我校作為藥學類專業重點高等院校,在計算機程序設計方面主要培養學生使用Visual Basic進行程序設計的能力,該語言被微軟公司的OFFICE軟件等內置,稱為VBA(VB應用),也稱為宏。
計算機程序設計最基本的應用應該在于數據處理和分析,簡化人工操作,提高效率,提升數據的質量和精度,為項目開展爭取寶貴的時間。在建模和科研工作過程中,原始實驗數據量大、格式不統一、質量不高,甚至無法直接導入計算機專業軟件,也就無法進行進一步的處理和分析,所以計算機程序設計的工作是非常重要的。因此,對于認為計算機程序設計就是搞軟件開發,藥學相關專業的學生不需要太重視這方面知識學習的人來說,是片面甚至錯誤的。非計算機專業的計算機教育是讓學生通過學習掌握計算機相關應用技術,并能利用這些技術為本專業服務的。
以2012年高教社杯全國大學生數學建模比賽中的本科組題目“太陽能小屋”為例,對于基礎數據的處理,包括24種光伏電池組件、一年365天的輻射強度(分高于和低于70W、高于和低于200W四種情況)的計算、發電量、價格等,如果沒有較好的計算機程序設計能力,在這項工作上將花費1-2天的時間(比賽時間共為3天),而在計算機程序設計VBA的幫助下,只需要在1小時內完成上述工作,只要方法正確,數據的準確度完全可以保障,大大改善了數學建模的工作進程,節省出的大量時間就可以用于問題的進一步分析和求解,得出好的結論。
2 微軟公司VBA基本操作
通常情況下,數學建模競賽的數據都會被存儲在EXCEL電子表格中,如何對EXCEL中的數據進行有針對性的處理是常見工作,同樣也是科研項目中經常遇到的問題。對于有VB語言基礎的人來說,只需要學會如何在EXCEL中操作VBA就可以對這些復雜繁瑣的問題快速處理完畢。對于參加數學建模競賽的學生而言,掌握VBA的使用就應該像會打字一樣有必要。
2.1 啟動VBA
打開EXCEL數據文件,執行菜單命令“視圖-工具欄-Visual Basic”,打開Visual Basic對話框,點擊按鈕 進入“設計模式”,點擊按鈕 打開工具欄,添加“按鈕”控件到表格上,雙擊按鈕進入代碼窗口,編寫Click事件過程及相關過程代碼。
2.2 對于表格數據操作的基本語句
左側資源管理器中可以查看當前表格的名稱,如果想將Sheet1表格中的第一行第一列的數據復制到Sheet2表格的第一行第一列,可以使用語句如下:
Sheet2.Cells(1,1).Value=Sheet1.Cells(1,1).Value
選定區域單元格的語句如下:
Sheet1.Range("A1:A100").Select
應用函數Sum求和,將A列1~10行的數據求累加和放到第11行,語句如下(中括號中的數據表示相對偏移行或列數,R表示Row,C表示Column):
Sheet1.Cells(11,1).FormulaR1C1="=Sum(R[-10]C:R[-1]C)"
2.3 學會使用錄制宏來學習和應用VBA
對于不熟悉的VBA操作,可以通過錄制宏的形式來學習,執行菜單命令“工具-宏-錄制新宏”,接下來所有在EXCEL中的操作將被自動錄制成VBA代碼,結束錄制后,執行菜單“工具-宏-宏”,選擇錄制好的宏名,點擊“編輯”按鈕即可以查看VBA代碼。
3 計算機程序設計能力培養的期望
對于教學科研型院校,培養學生的科研能力需全面,學習計算機程序設計應該就像要求學生必須具有打字和論文排版的基本能力一樣得到普及和重視,這樣才能在科研工作中,提升數據處理和分析的本領,科研工作因得到計算機程序設計的輔助進一步得到改善。
在實際教學過程中,我校對于“大學計算機基礎”和“計算機程序設計基礎”的課程安排比較合理,但是相對缺少“第三學期”的“計算機應用技術”相關計算機程序設計能力的實踐學期,會造成學生學習了知識,但是往往不能很好地應用到數學建模和科研工作中。希望學校能夠向其他醫藥院校一樣,考慮增加第三學期計算機技術相關實踐課程,這一做法一定對我校數學建模工作,甚至全??蒲兴教嵘透纳朴兄匾饬x。
參考文獻: