前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的二級c語言程序設計主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞:問題驅動;案例教學;AHP算法
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)28-0160-03
Application and Discussion about the Teaching Reform on the C Language Programming
XU Ping1, GONG Li-hua2
(1.Department of Information Science and Technology, Taishan University, Tai'an 271021, China; 2. Further Reeducation College, Taishan University, Tai'an 271021, China)
Abstract: Case teaching, as a new approach, is widely used in various teaching fields. The paper mainly introduces this kind of teaching approach, which is inspired by the programming and leads in the contents by specific cases in the course of C Language Programming and makes evaluation to the approach by teaching effect evaluation method on the basis of AHP algorithm.
Key words: question inspiration; Case Teaching; AHP algorithm
1 引言
《C語言程序設計》是一門實踐性很強的課程,該課程的學習有其自身的特點。學習者必須通過大量的編程練習,在實踐中掌握語言知識,培養(yǎng)程序設計的基本能力,并逐步理解和掌握程序設計的思想和方法。因此,《C語言程序設計》課程的教學重點是培養(yǎng)學生的實踐編程能力。
在傳統(tǒng)的教學方法中,采用“點―線―面”的教學模式,即先介紹變量定義,再介紹指令的語法規(guī)則,最后例子講解。這種教學模式不利于將知識轉化為能力。為此,筆者從理論和實踐上探索了《C語言程序設計》這門課程新的教學方法,并收到了良好的教學效果。
2 問題驅動,案例教學
案例教學法最早于1870年在哈佛法學院創(chuàng)立。后來,案例教學法為哈佛商學院所采納,被引用在工商管理教育中。經過近百年的積累和發(fā)展,案例教學法已成為西方國家工商管理教育的重要手段之一。所謂案例教學法是在教師的指導下,對案例提出的問題,運用所學的理論知識進行分析研究,提出自己的見解,做出判斷和決策,達到提高學生分析問題、解決問題能力的一種理論聯(lián)系實際的啟發(fā)式教學方法。
案例教學法的教學過程包括案例引入、案例學習、案例總結三個階段。在《C語言程序設計》課程的教學過程中,以編程應用為驅動,通過案例引入內容,重點講解算法設計,并穿插介紹相關的語言知識。
2.1 案例引入
在講C語言基本語法時,如果從數(shù)據(jù)類型、變量、常量、表達式開始,學生覺得特別抽象,不好理解。而我們用案例教學法,首先引入案例,并給出程序源代碼,讓學生進行編輯并調試。
案例:求攝氏溫度40℃對應的華氏溫度。計算公式如下:
f=9c/5+32
式中:f表示華氏溫度,c表示攝氏溫度。
源程序:
/* 將攝氏溫度轉換為華氏溫度 */
# include
int main(void)
{
int c, f;
c=40;
printf("c=%d, f=%d \n", c,f);
Return 0;
}
運行結果:c=40, f=104
2.2 案例學習
通過案例提出問題:在案例中使用了哪些數(shù)據(jù)?它們的類型是什么?
講解相關知識:在C語言中,數(shù)據(jù)有常量和變量之分。在程序運行過程中,其值不能改變的量稱為常量,其值可以改變的量稱為變量。在案例中,整數(shù)40是常量,c和f是變量。
常量和變量都有類型,常量的類型通常由書寫格式決定。例如,40是整型常量,40.12是實型常量。而變量的類型在定義時指定。
變量定義的一般形式:類型名 變量表;
例如:
int c, f;/* 定義兩個整型變量c和f,用于存放整數(shù)*/
char a;/* 定義一個字符型變量a,用于存放字符型數(shù)據(jù)*/
C語言中常用的數(shù)據(jù)類型包括int(整型)、char(字符型)、float(單精度浮點型)、double(雙精度浮點型)。其中,float和double都是浮點型(實型),用于存放浮點數(shù)(實數(shù)),區(qū)別在于double型數(shù)據(jù)占用空間更大,精度更高,取值范圍更大。
2.3 案例總結
通過案例學習,讓學生很輕松的掌握了數(shù)據(jù)類型,以及常量、變量的使用方法。并且提出幾點注意的問題:
1) C語言中變量的含義和數(shù)學中變量的含義不同。C語言中的變量代表保存數(shù)據(jù)的存儲單元,而數(shù)學中的變量代表未知數(shù);
2) C語言區(qū)分大小寫字母,它認為Ca和ca是不一樣的;
3) 算法是程序的靈魂,良好的算法設計,不僅可以提高程序的執(zhí)行效率,起到事半功倍的效果,而且可以以算法設計為基礎,通過尋求不同問題存在的相互聯(lián)系,從計算機角度對不同問題的共性進行算法設計,實現(xiàn)程序編寫的舉一反三。
根據(jù)案例提出:
思考題1:求攝氏溫度30℃對應的華氏溫度。
思考題2:求華氏溫度100℃對應的攝氏溫度。
3 課程教學改革效果的評價
在課程改革實踐中,如何評價課程教學改革的效果至關重要。同時,教學效果的評價結果在實踐過程中可以指導課程改革。本文參考AHP算法,從學生評教、教師評學兩個因素建立教學效果評價指標體系和多級模糊評判模型,實現(xiàn)課程教學效果的多指標評價。
3.1 基于AHP的教學效果評價算法
AHP算法是一種有效地處理那些難以抽象為解析形式數(shù)學模型的問題(即非結構化問題)或難以完全用定量方法來分析的復雜問題的手段,其主要思想是將一個復雜的多因素評價問題分解為具有遞階結構的評價指標和評價對象。二級模糊層次分析決策模型的步驟如下:
1) 根據(jù)實際需要建立評價指標因素集U={u1,u2,…un},將U分成若干組U={u1,u2,…,uk},使得■,稱U={u1,u2,…,uk}為第一級因素集?!?(i=1,1,…k),其中nl+n2+…+nk=■稱為第二級因素集。
2) 選擇模糊評判集V={v1,v2,…,vm},其中vj(1
■
設■的權重為■,求得綜合評判為■。
3) 再對第一級因素集U={u1,u2,…,uk}作綜合評判,設U={u1,u2,…,uk}的權重為A=(al,a2,…,ak),總評判矩陣為:
■
得一級模型的綜合評判為A?R=B∈Γ(v)。最后,根據(jù)評判結果B進行排序,確定該教學年度的教學效果,其值越大,教學效果越好。
3.2 教學效果評價指標體系的構建
由于評價對象的某些評價因素往往帶有一定程度的模糊性,即具有非線性特征,所以進行教學效果評價時采用了模糊綜合評判模型。調查問卷中除需要給出各評價項目的權重外,還需給出各評價項目的得分。結合教學改革的實際情況,我們給出如下的評價準則,包括學生評教、教師評學兩個一級指標,并建立相應的二級評價指標(如圖1)。我們在構建教學改革效果評價指標體系時,著重考慮的是通過《C語言程序設計》課程的教學改革,是否能達到改革的目標。
3.3 教學效果評價
我們從2006年開始對本學院計算機系C語言程序設計課程進行教學改革。在課程結束后采用問卷調查的方式隨機抽取部分學生進行學生評教,并由任課教師完成教師評學(如表1)。
表1 教學改革效果評價表
■
利用本文提出的基于AHP的教學效果評價算法,得綜合評判為:B=A×R=(82.375,86.625)。數(shù)據(jù)表明,在2006、2007級學生《C語言程序設計》課程的教學效果評價中,2007級學生的評價值最高。
4 結束語
由此可見,隨著教學改革和課程建設的深入,《C語言程序設計》課程的教學效果得到了顯著提高,也增加了學生學習《C語言程序設計》課程的興趣。并且培養(yǎng)了學生可以用C語言很好的解決實際問題的能力,為以后進一步學習其它高難度的編程語言打下了良好的基礎。
參考文獻:
關鍵詞:C語言程序設計 民辦高校 實踐能力 實驗教學改革
中圖分類號:G642 文獻標識碼:B DOI:10.3969/j.issn.1672-8181.2013.19.128
C語言因為具有良好的計算機硬件編程能力,能夠編寫系統(tǒng)軟件和應用程序,有著廣泛的應用領域[1]。C語言還是數(shù)據(jù)結構、數(shù)據(jù)庫等課程的先修課程,也是國家計算機二級考試的科目之一。因此,很多院校都把C語言作為程序設計的入門課程。相比于傳統(tǒng)的研究性大學,民辦高校更注重自身辦學特色[2]。我校的辦學理念是“走進校園的目的是為了更好地走上社會”。具體到C語言這門課,就是要更加注重學生動手實踐能力和實驗教學,著力推進應用型C語言實驗教學改革。具體有以下幾個方面。
1 實驗教學改革方法
我校C語言實驗教學改革的目標是:通過C語言實驗教學的改革,培養(yǎng)出具有綜合分析和解決問題的能力、熟練的編程調試能力、持續(xù)的自學能力的應用型人才。需解決三個關鍵性問題:一是實驗指導書的編制;二是實驗教學和培養(yǎng)方式的改革方法和手段;三是實驗教學全過程規(guī)范制度的建立。具體實施方法如下。
1.1 C語言實訓指導書的整理編制
結合我校育人理念和計算機類學生的特點,針對性地編寫相關實驗內容。實訓指導書分為三個部分:實訓總要求、實訓模塊和項目拓展實例。第一部分為實訓總要求,目的是讓學生編寫規(guī)范的代碼,從開始程序設計就進行規(guī)范練習,為以后工作打下良好的基礎。第二部分為實訓模塊,有三個:①基礎部分,為隨堂實訓;②深化部分,為綜合實訓;③課程設計,為期末的課程設計,是對整個內容的一個綜合設計,可以使學生從軟件開發(fā)的角度開始思考問題、解決問題。第三部分為案例拓展實例:學生成績管理系統(tǒng)。本書具有基礎性、實用性和系統(tǒng)性,可以指導學生按照從淺入深,從低到高的訓練過程,逐步提高他們的編程和動手能力。
1.2 實驗教學和培養(yǎng)方式的改革
改變實驗教學方法,啟發(fā)學生思考,引導學生成為學習主體。具體體現(xiàn)在:①課前針對性提問,促使學生應用所學理論知識積極思考,并通過實驗來驗證解決;②少講多練,開頭5-10分鐘講述實驗內容和重點,中間大段時間留給學生操作,最后5分鐘時間實驗總結;③注意學生操作過程中的實際效果,學生如遇問題并不直接告知答案,而是引導學生自己分析,養(yǎng)成獨立思考解決問題的習慣。相比于傳統(tǒng)教學方法,啟發(fā)式教學,引導學生成為學習主體,更能激發(fā)學生的學習興趣[3]。
1.3 對實驗教學規(guī)范制度建立的探索
為了保證實驗教學達到最佳效果,針對部分學生學習主動性差和缺乏持續(xù)學習動力的特點[4],一定要進行嚴格的考勤制度和每次實驗現(xiàn)場的考評,加大實驗表現(xiàn)在最終期末成績中所占的比重。規(guī)定實驗課無正當理由缺勤2次以上,直接取消期末考試資格。設計現(xiàn)場考評成績表,每次實驗后給出所有學生當次實驗得分,并累積到期末,作為該課程的平時成績。增加C語言程序設計大賽等比賽的指導,提高學生學習的興趣,參加比賽,獲得證書。
2 對應用型C語言實驗教學改革的反饋
2.1 應用效果
本實驗教學改革方案首先在2012級軟件班進行實驗,取得了不錯的效果,有多名學生在2012年“藍橋杯”全國軟件專業(yè)人才設計與創(chuàng)業(yè)大賽中獲獎,下一步,將盡快投入到理工學院大一其他專業(yè)的C語言程序設計的實驗課程教學中。同時,進一步探索C語言課程的整體教學模式與后續(xù)專業(yè)課程的結合,力求將應用范圍擴大到各年級和各專業(yè)。
2.2 評價與反饋
2.2.1 同行評價
《C語言程序設計》實驗教學,其教師隊伍合理,教學目標定位合理,實驗教學內容設計有層次感,教學方法科學,有良好的教學效果。《數(shù)據(jù)結構》及《java語言程序設計》教師也對本門給予了很好的評價,綜合體現(xiàn)出了該課程的教學效果良好。
2.2.2 學生評教
在學生座談與學生問卷調查評比滿意度高達90%以上,其中有80%的學生認為是優(yōu)良。學生反映指導內容充實,設計有層次性,與實際結合密切,學完之后有成就感,教師責任心強、能激發(fā)學生的學習積極性、與學生互動良好。
3 后續(xù)研究工作和展望
一是實訓指導書還需進一步完善,可考慮將課前預習環(huán)節(jié)加入到指導書中。在課堂教學方法的實施中,問問題的人數(shù)較多時,需要教師有極強的責任心,考慮是否可以預先錄制相關疑難問題解答的視頻,直觀地“程序演示”,來增強學生們對程序的理解,提高教師指導效率;二是可以考慮構建集考勤、教學、評價一體化的實驗教學網站,構建自主學習平臺;三是改革C語言這門課程的考評體系,建議引進無憂二級C語言考試系統(tǒng),以二級考試的難度要求學生,促進學生C語言二級過級率的提升。
4 結語
上述方法在我校的計算機類專業(yè)的課程運用實踐中取得了良好的教學效果,增強了學生的編程能力和邏輯思維能力,為培養(yǎng)計算機方面應用型人才邁出了重要一步。當然,C語言實驗教學改革也不是一蹴而就的,還有許多內容需要進一步去探究。
參考文獻:
[1]廖建華.任務驅動型案例教學在“C語言”課程教學中的實施[J].教育與職業(yè),2011,(5):157-158.
[2]夏季亭,王蕾.民辦高校構建現(xiàn)代大學制度的優(yōu)勢與挑戰(zhàn)[J].中國成人教育,2012,(1):20-22.
[3]白靈,韓瑩,鹿玉紅等.C語言程序設計課程考試改革實施方案[J].時代教育,2013,(9):39-40.
[4]程傳鵬.基于大學生心理特點的C語言教學方法[J].計算機教育,2012,(1):68-71.
關鍵詞 教學改革 C語言 微平臺
中圖分類號:G434;TP311.52 文獻標識碼:A
教學改革和提高教學質量是高校教育的永恒研究課題。《C 語言程序設計》是理工科各專業(yè),尤其是計算機相關專業(yè)學生必修的一門非常重要的專業(yè)基礎課。在近幾年的教學實踐中發(fā)現(xiàn),學生們普遍認為這門課難度大、不易,學許多學生還要參加全國計算機等級考試,通過率不高。網絡自主學習平臺采用“教師導學+學生自主學習”教學和學習方式,以及“教考分離”的考試制度,突破了傳統(tǒng)課堂中教學受到時間和空間限制的困境。但傳統(tǒng)的教學模式和原來的網絡自主學習平臺模式,存在一個普遍的的弊端: 時間長、重點分散。微課程的概念是由戴維? 彭羅斯( David Penorse ) 于2008年秋首創(chuàng)的。它按照新課程標準及教學實踐要求,以教學多媒體為主要方式,以探究某個知識點或教學重點難點而展開的整合各種教學資源的活動。主題突出、內容精煉、終端載體多樣化、應用方便靈活是微課鮮明的特征。因此,本文以《C語言程序設計》課程為研究對象,自主學習與微課程相結合,研究高校輔助教學的一種新模式。
1微課程
現(xiàn)今熱議的微課程概念是2008 年由美國新墨西哥州圣胡安學院的高級教學設計師、學院在線服務經理David Penrose 提出的。
1.1微課程的含義和特征
微課程并不是一個孤立的教學環(huán)節(jié),而是一個完整的教學系統(tǒng)。它不是傳統(tǒng)課堂教學的截屏,而是圍繞某個知識點進行教學設計后開展的教學活動。微課程包括課堂教學的全部因素(教學目標、教學策略、師生互動、教學資源等),將這些教學因素以高度凝練的方式融合形成短小精悍的視頻即形成微課程。微課程有兩個顯著特征:一是以視頻為呈現(xiàn)方式;二是凸顯微課程的“微”。
1.2微課程的設計開發(fā)研究
微課程的開發(fā)主要有兩種形式:一是對現(xiàn)有的優(yōu)秀完整課例或視頻課例進行加工改造完成;二是原創(chuàng)開發(fā),即設計開發(fā)一節(jié)全新的微課程。
1.3微課程的應用研究
許多學者分別是從教師專業(yè)成長和學生個性化學習角度闡述微課程的應用。如何將這種教學資源整合到具體學科的常規(guī)課堂教學,吸引學生注意力,激發(fā)學生思考,借此提高課堂教學效率。
2 網絡自主學習平臺的構建
利用學校網絡,搭建“C語言程序設計”課程自主學習平臺。搭建的自主學習平臺將是教師與學生進行交流的平臺。它將集學習、輔導、測試、評價、交流、計算機應用等功能于一體的網上課程學習平臺,如圖1所示。
(1)微課程學習平臺:它提供視頻為主要載體,記錄教師在教育教學過程中圍繞某個知識點或教學環(huán)節(jié)而開展的精彩教與學活動的全過程.
(2)C語言??紲y試平臺:C語言程序設計課程考試現(xiàn)在是以機試方式進行,我們開發(fā)一個測試平臺,在考試之前提供學生測試練習,熟悉考試題型、知識點、考試環(huán)境和考試注意事項。
(3)二級C省考測試平臺:現(xiàn)在我們學校學生參與湖南省計算機水平等級考試的學生越來越多,但省考沒有像國考一樣,在考試之前提供一個模擬考試的機會,學生對考試環(huán)境、知識點、題型和考試注意事項等都不熟悉,因此開發(fā)類似測試平臺,以便學生練習。
(4)二級C國考測試平臺:全國計算機等級考試影響力越來越大,報名參加學生多。但其難度比省考要難得多,通過率不高。我們開發(fā)二級C國考測試平臺,能使學生有機會多訓練,提高學生通過率,真正掌握該課程。
(5)計算機應用競賽平臺:對于基礎較好、有潛力的優(yōu)秀學生而言,需要一個能培養(yǎng)和鍛煉他們利用計算機技術解決各類學習工作中的專業(yè)問題、實際問題的創(chuàng)新教育平臺,從而激發(fā)他們進一步學習計算機的激情。我們將開發(fā)此平臺,在平臺上能實現(xiàn)計算機程序設計大賽、Web網頁設計大賽等。
(6)C語言成績查詢平臺:開發(fā)一個平臺,使學生能方便查詢C語言程序設計課程??汲煽儭⒑鲜∮嬎銠C水平考試成績、全國計算機等級考試成績。
(7)C語言反饋平臺:通過三個測試平臺和競賽平臺,分析和評價C語言程序設計課程中學生難掌握的知識、易出錯的知識點,為微課程的設計提供信息。通過設計留言模塊,掌握學生在課堂中沒有理解清楚的知識點。
3 《C語言》微課資源庫設計
微課主要目的是滿足于學生開展自主、個性化學習,提高教師教學能力的需要。因此設計《C語言程序》微課資源時,設計為兩種類型, 一種是教師講解型,另一種是學生學習過程展示型。前者是將過去教師一言堂的講解,顛覆為學生根據(jù)需要自主選擇有針對性的講解,主要是顛覆課堂統(tǒng)一講解方式;后者是讓學生觀摩并學會別人如何通過自主、協(xié)作學習開展相關知識的學習活動的。主要資源,一般以不超過10分鐘的視頻方式設計,包括:
(1)每一章節(jié)主要知識點和難點;
(2)課程綜合知識點,如函數(shù)參數(shù)傳遞、算法等;
(3)針對該課程的期末考試、湖南省計算機水平考試和全國計算機等級考試的知識點的講解;
(4)《C語言程序設計》上機調試程序過程中學生常出現(xiàn)的問題,以及解決方案。
資源庫配套相關文本資料:
(1)課程教學大綱、三種考試的考試大綱和課程教學PPT;
(2)每一章節(jié)的微練習題和測試題;
(3)三種考試的模擬考試試題及分析;
(4)計算機程序設計大賽題庫。
資源庫凸顯微課程的特點:知識點精,主題突出;微視頻一般在5~10分鐘內,短小精悍,以微教學視頻為核心。
4學習效果
開發(fā)平臺后,筆者以所教學的班級進行了推廣,教學過程融入微課程的教學,讓學生形成課前預習,課后提問和自主學習的習慣。效果良好,學生主動學習的積極性提高,學習過程中有針對性的問題增多,上機調試程序的積極性和編程能力增強,相應的《C語言程序設計》的課程設計效果明顯增強,與其他班級相比,課程考試的及格率和優(yōu)秀率也大幅度提高。基于LAMP平臺上開發(fā)HUSTOJ在線測試平臺,并投入到學生程序設計大賽訓練中,學生競賽取得好成績。
5結語
本文僅以《C語言程序設計》課程為例,引入微課,對該課程的教學和改革進行了研究和探討。構建了基于網絡的自主學習式教學平臺的,將被動授課式的教學過程變?yōu)樽灾鲗W習式過程,實現(xiàn)傳統(tǒng)與自主學習兩種方式的有機融合,優(yōu)勢互補;建設了以自主學習為方式的“C語言程序設計”課程資源庫,學生通過計算機網絡,甚至手機實現(xiàn)網絡資源的共享,形成一個開放共創(chuàng)、共生的學習資源。但微課的研究是一個長期過程,今后微課程的實證研究將更多關注具體科目、具體內容的微課程設計,并將其充分運用于常規(guī)課堂教學中,以檢驗微課程的應用范圍和效果。微課程不只注重數(shù)量,還要是提高質量,提高利用率。教師要能把握微課程的基本核心理念以及制作技能,使微課程成為每個教師都能創(chuàng)作的教學資源。
基金項目:湖南省教育廳普通高等學校教學改革研究項目(湘教通[2014]247號,序號414)。
參考文獻
[1] 羅曉.國內外微課資源管理平臺對比分析[J].中國醫(yī)學教育技術,2015(6):626-630.
關鍵詞:網絡課程;教育軟件;網絡教學
隨著計算機技術、網絡技術和多媒體技術的發(fā)展與深化,教學手段不斷改進,經歷了從板書、教具、多媒體課件到網絡課程的發(fā)展階段。網絡課程是建立在網絡技術、多媒體技術等現(xiàn)代信息平臺上的一種新型教學模式,與普通的多媒體課件不同,網絡課程是通過計算機網絡來表現(xiàn)教學內容和實施教學活動的教學模式。通過網絡課程的構建可以整合豐富的教育資源,突破了學習的時空限制,實現(xiàn)了自主化學習、個性化學習和遠程交互途徑,學習模式由傳統(tǒng)的基于課堂的教師講授轉變?yōu)榱Ⅲw化、多元化學習,因此網絡課程是實現(xiàn)教育信息化的重要體現(xiàn)和手段。
1“高級語言程序設計”網絡課程的意義
高級語言程序設計是計算機專業(yè)的一門核心基礎課程,是學生從事軟件開發(fā)的必備技能。這門課程概念繁多、抽象難懂,邏輯性和實踐性極強,學習容易枯燥,如何利用開放式網絡教學環(huán)境,創(chuàng)建生動的、個性化、研究型教育模式,是現(xiàn)代教育在觀念、內容、方法、手段和結構上的一次全方位變革,“高級語言程序設計”網絡課程的構建與實施,變靜態(tài)的、形式單一的教學模式為動態(tài)的、多元化的網絡多媒體教學模式[1],是高校教育改革的重要舉措和內容。其意義體現(xiàn)在以下幾方面:
1) 轉變學生的學習方式。網絡多媒體課程的自主學習方式使學生變被動接受為主動構建者,有利于培養(yǎng)學生的主動性和創(chuàng)造性思維。學生從課程中不僅學到了專業(yè)知識,更重要的是通過檢索和利用各種信息資源,獲得了信息素養(yǎng)能力的訓練,為工作和科研培養(yǎng)了良好的信息能力[2]。
2) 學習資源突破了時間和空間的限制、使得課程資源的交流和共享成為可能,使學習更加便利,有利于培養(yǎng)學習的自主性和積極性。
3) 提供了豐富的教學資源,突破了課堂教學內容的狹隘性,擴展了學習范圍,開闊了思維,使學生科研能力和創(chuàng)新能力得以提高。
4) 強大的多媒體功能可以提供實驗和實踐的模擬和仿真,化抽象概念為生動具體的情景,使得學習更加輕松和容易。
5) 網絡的及時性、開放性和交互性也是普通課堂教學無法比擬的,留言簿、論壇、電子郵件、及時通信等方式使學生之間、師生之間的交流更加輕松。
6) 在線考試為學生檢查學習效果,減輕教師閱卷負擔提供了可能。
2 “高級語言程序設計”網絡課程的目標
基于傳統(tǒng)多媒體課件的“課堂演示型”教學方式給學生帶來了圖文并茂的生動效果,但這遠遠沒有發(fā)揮多媒體的交互性特點,課件只不過成為了電子版的板書,學生只能夠被動地接受知識而不能主動參與教學活動。要實現(xiàn)教學的開放性、交互性和自主性,就需要把網絡技術和多媒體技術結合起來,構建網絡課程正是實現(xiàn)這一目標的途徑。
因此,“高級語言程序設計”網絡課程的總體目標是:構建一個導航清晰、界面生動友好、教學內容充實、教學主線設計合理,具有教學、個性化學習、網上答疑及討論、自測等功能的教學系統(tǒng)平臺。具體表現(xiàn)在:
1) 教師可以整合豐富的教學資源,各類教學資源、提供教學大綱、周歷、課后作業(yè)、實驗作業(yè)、電子教材、軟件下載、試題下載、源程序下載、相關論文等。
2) 學生通過留言本、論壇、郵件等方式與教師或同學之間進行交流,輕松實現(xiàn)互動和遠程交流。
3) 課程的實踐性要求課后要加強編程練習,網絡課程要圍繞課后習題這一重要教學環(huán)節(jié),使學生最大限度地參與練習與實習,達到理想的教學目標。
4) 采用以章節(jié)為單元的折疊式樹型目錄導航結構,循序漸進,合理的信息分類與鏈接使自主學習得以順利進行。
5) 整合大量教學資源和素材,彌補教材內容的不足和課堂講授時間的不足,創(chuàng)造并提供自主學習環(huán)境,提供全國計算機等級考試介紹、全國軟件水平考試介紹、二級C語言考試大綱和試題、二級C語言模擬考試軟件等。提供C語言的論文和相關科研訓練,提高理論水平和擴展思維。
3網絡課程特色欄目設計
網絡課程建設就是要按照學科知識體系以及網絡教學要求,對各種教學資源進行集成和綜合[3]。教學內容是網絡課程設計的主體,在網絡課程中教師是組織者、設計者、指導者,在教學內容的設計上應按照網絡環(huán)境的需要和教學目標進行合理分解與重組,并根據(jù)不同內容的知識特點選擇不同的媒體表征形式。以便使教學內容適于以網絡化形式和手段表現(xiàn)出來。
以“高級語言程序設計”網絡課程的需求為例,為了讓學生了解課程內容、方便學生選課需要進行課程介紹,為了實施教學內容需要對每一章節(jié)進行講解,為學生提供課件、源代碼、論文等大量學習資源,為了實現(xiàn)教學的互動還要實現(xiàn)在線的師生交流和答疑,為了配合國家計算機等級考試、加強練習還需要提供二級考試大綱、模擬軟件和試題等。
根據(jù)以上需求分析,本網絡課程采用以章節(jié)為教學單元的模塊化結構,采用縱向樹型目錄導航結構組織知識點和章節(jié),根據(jù)具體的知識要求采用文本、圖片、音頻、動畫、視頻等多種形式。共分為5個欄目。
1) 課程簡介:包括課程介紹、理論課和實驗課教學大綱、周歷、考試方式、教師信息等方面的內容。
2) 教學內容:共分10章,是網絡課程的核心模塊,按照C語言知識體系的結構循序漸進行詳細講解,分別介紹預備知識,C語言基礎,順序結構,選擇結構,循環(huán)結構,數(shù)組、函數(shù)和編譯預處理,結構體與共用體和文件。課件采用PDF格式,單擊每一章的標題鏈接,即可打開相應的PDF文件。
3) 學習資源:提供上機習題、教材源程序、課件下載、C語言運行軟件下載、參考論文和電子書等。
4) 交流平臺:有留言本和論壇兩種方式,留言本針對師生之間,學生提問留言,教師作為管理員可以回復和刪除某個學生的留言。而用戶在論壇中注冊后就可以發(fā)貼,并且無論是學生還是教師都可以回復貼子,輕松實現(xiàn)開放式答疑和交流。教師還可以定期地創(chuàng)建不同主題的討論組,引導學生進行討論、分析和思考問題,開擴編程思路。
5) 計算機二級考試:提供全國計算機C語言二級考試大綱、C語言二級考試模擬軟件下載和歷年真題。網絡課程的整體結構框圖如圖1所示。
4網絡課程開發(fā)流程
4.1教學素材收集
教學素材是網絡課程的基礎,是需要規(guī)范的重點和核心。教學資源主要分8類:試題庫、試卷素材、媒體素材、文獻素材、課件素材、案例素材、常見問題素材和教育資源索引[3]。學習資源包含了大量支持學習的材料,除了課程本身的專業(yè)知識點以外,還可以鏈接到互聯(lián)網上的其他參考資料,如視頻、軟件、國內外優(yōu)秀教學網站、全國計算機等級考試、計算機水平考試等。教師是學習資源的組織者和設計者,通常要經過搜集、篩選、分類、整理、組織與數(shù)字化等工作過程,同時還要考慮方便學習者的使用[4]。因此我們按照教學大綱將每一章的知識點制作成圖文并茂的多媒體課件或PDF文件。課后習題和上機實驗習題制作成網頁文件,試卷和二級考試真題制作成網頁或Word文檔。教材源程序制作成壓縮文件以供下載。C語言論文和電子教材使用PDF格式。搜集相關軟件,包括C語言集成開發(fā)軟件,如TurboC、Visual C++、WinTC、C語言二級考試模擬軟件等。
4.2動畫制作
為使頁面生動友好,迅速引起學生的注意力并激發(fā)其學習興趣,在首頁應用Flash MX制作了動畫和標題滾動字幕;為使學生能夠更好地理解和掌握C語言中比較抽象難懂的概念,如函數(shù)的遞歸調用、冒泡排序、選擇排序等,制作了遞歸曲線的生成動畫,遞歸調用的漢諾塔動畫、顯示回溯搜索過程的八皇后動畫、顯示廣度優(yōu)先搜索過程華容道動畫等,這些動畫形象地展示了算法實現(xiàn)的過程,化靜態(tài)的思維過程為動態(tài)的實現(xiàn),有利于學生更好地掌握這些知識點。漢諾塔動畫如圖2所示。
4.3開發(fā)實現(xiàn)
網絡課程的開發(fā)技術分為前臺開發(fā)技術和后臺開發(fā)技術兩部分[2]。前臺開發(fā)技術是指網頁的設計與制作技術,利用DreamweavMX、Flash、Fireworks等軟件來實現(xiàn),教學網站導航清晰是關鍵,因此首頁采用嵌套框架布局,上面是標題,左邊是按模塊組織的樹型目錄,每個鏈接單擊后目標文件顯示在右邊,下面是版權、制作者信息和日期時間。在頁面中使用了文本、圖像、表格、超鏈接,Flash 動畫和視頻動畫等。后臺開發(fā)技術使用了Web服務器編程技術ASP(Active Server Pages)。本網絡課程的論壇模塊、留言本模塊通過ASP編程實現(xiàn)與網絡數(shù)據(jù)庫的連接和動態(tài)交互訪問,能夠對各種數(shù)據(jù)資源不斷地更新和維護。
4.4編寫腳本程序
為了實現(xiàn)生動的動畫效果,腳本的編寫是網絡課程制作過程中重要的一環(huán),運用JavaScript腳本程序和HTML代碼可以實現(xiàn)以下特效:1)折疊式樹型目錄,可以展開和折疊每個欄目。2)滾動字幕,顯示在首頁標題上,用C語言程序設計代碼實現(xiàn)。3)當前的日期和時間,以下腳本代碼僅在網頁底部輸出年月日和時分秒(其余代碼略)。
document.write( year + "年" + month + myweekday + "日" + day);
document.write( myhours + myminutes);
4.5引用層疊樣式表
層疊樣式表(CSS)是一系列格式設置規(guī)則,CSS樣式是對HTML語言的一種擴展,主要用于控制Web頁面內容的外觀和頁面風格設計,在網頁制作過程中起著非常重要的作用,掌握CSS能夠有效地提高制作網頁效率。CSS擴充了HTML各標記的屬性設置,豐富了網頁視覺效果,而且CSS樣式可通過腳本程序來控制,這樣便可以有效地對網頁的外觀和布局進行精確的控制,從而使網頁的表現(xiàn)方式更加靈活和美觀[5]。為了統(tǒng)一網站頁面的風格,在頁面中定義了大量的樣式來統(tǒng)一的頁面背景圖片、字體大小等,部分樣式定義如下所示。
.STYLE1 {font-size: 18px}
.STYLE2 {font-size: 18px; font-weight: bold; }
body {background-image: url(../image/ back1.JPG);}
5結語
隨著計算機網絡技術的迅猛發(fā)展和信息化的逐步深入,網絡課程在高校的應用也日趨廣泛,為了更好地配合課堂教學,筆者將先進的信息技術與教學內容相結合,創(chuàng)建了“高級語言程序設計”網絡課程,獲2009年云南省多媒體教育軟件大賽二等獎。網絡課程提供了豐富的教學資源,將課堂延伸到課外,為學生創(chuàng)造了獲取資源、評價學習效果和師生互動的環(huán)境。將課堂教學與網絡課程相結合,使學生不僅學到了專業(yè)知識,還能更多地進行信息檢索和獨立思考。“高級語言程序設計”網絡課程為教學提供了一種全新的教學手段,對于推動高校教學改革具有參考價值。
參考文獻:
[1] 杜文,曹旭斌,龐先偉. 高校體育網絡(教程)的構建與應用[J]. 北京體育大學學報,2007,30(1):104-106.
[2] 熊鷹. “信息檢索與利用”網絡課程的教學設計與實現(xiàn)[J]. 圖書館論壇,2006,26(2):23-25.
[3] 程曉旭. 高校網絡教學研究[J]. 中國成人教育,2007(19):118-119.
[4] 董飛,王廣新. 成人教育網絡課程開發(fā)的關鍵問題分析[J]. 中國成人教育,2005(12):64-64.
[5] 玲. CSS層疊樣式表在DHTML中的應用[J]. 鞍山師范學院學報,2006,8(2):63-65.
Research and Development of High-level Language Programming Network Course
DING Hai-yan, ZHAO Zheng-peng, LI Wei-hua
(Information Institute, Yunnan University, Kunming 650091, China)
關鍵詞:程序設計;教學方法;教學手段
中圖分類號:G642 文獻標識碼:B
“C語言程序設計”作為一門公共基礎課程,是高校理工科非計算機專業(yè)學生的一門必修課程。通過該課程的學習,學生不僅要掌握C程序設計語言的知識,更重要的是要學會分析問題的方法,提高解決基本問題的能力和程序語言的應用能力,并為今后的繼續(xù)學習打下良好的基礎。
由于“C語言程序設計”這門課程的實踐性較強,必須通過大量的編程訓練,才能逐步理解和掌握程序設計的思想和方法,因此,怎樣激發(fā)學生自主學習的興趣,培養(yǎng)學生的實際編程能力是這門課教學改革應解決的問題。
1教材適合教師的“教”和學生的“學”
教學有兩個方面,一個是教師的“教”,另一個是學生的“學”?!敖獭笔菫榱藢W生能獨立地去“學”,就像葉圣陶先生說的那樣:教,是為了最后達到不需要教。教師不僅要研究怎么教,更重要的是要研究學生怎么學。教師備課一定是要“背”學生的,首先要看學生的基礎是什么?學生要達到的目標是什么?其評價的標準也是以學生能夠掌握為評判標準。
其實,學生都想學好“C語言程序設計”這門課,也想掌握一門真本領到社會上去競爭。但很多學生一遇到問題就退縮了,不愿意費太大的力氣,而這門課恰恰又是需要通過大量練習才能入門的一門課。
感謝由譚浩強教授編著的《C 程序設計》這本書,為教師進行該課程的教學改革提供了一個很好的平臺。該書不僅將復雜問題簡單化了,而且可使教師根據(jù)不同程度的學生對內容進行取舍而不影響整個程序設計的思想和方法。該書符合學生的任知規(guī)律,將學習的每一個臺階變“矮”,并能夠使人理性認識C語言。
我們在教學中考慮到學生學習的難度,分解講解,從而使學生克服了畏難心理,覺得C語言并不難學。有些課上沒有講到的內容,學生也可利用教材自學。同時,根據(jù)該教材,我們制作了適合學生自學的助學系統(tǒng)??紤]到學生基礎的差異,我們結合教材,編寫了《C語言程序設計上機指導》,從而給學生提供了一個自主學習的平臺,受到學生們的好評。
2培養(yǎng)學生的抽象思維能力
在進行“C語言程序設計”的教學改革中,我們思考了這樣的問題:如果教師只是鉆研教材,并讓學生理解、記住其結果,那么,學生就會失去獨立鉆研和獲取新知識的能力;每個學習“C語言程序設計”的學生將來未必都從事計算機編程;因此,我們把砥礪學生的抽象思維能力作為了改革“C語言程序設計”教學的方法之一。
首先,我們根據(jù)“C語言程序設計”這門課的特點,研究了譚浩強教授編著的《C程序設計》這本書是怎樣引導學生完成抽象的認知過程并逐步提升的;怎樣通過簡單的舉例和進一步的講解,使學生理解抽象的數(shù)據(jù)類型、函數(shù)以及指針在構造抽象程序中的意義;并將研究成果應用在教學中,從而使學生學會算法抽象的基本方法,掌握程序抽象的思考方法。
實踐中,我們采用程序設計和語言講解并行的方法。首先提出用程序要解決的一個問題,找出解決問題的方法,講解要引入的新的語法知識,給出算法并解釋,最后編寫出完整的程序,再上機實踐。
3激發(fā)學生的學習興趣,培養(yǎng)學生解決實際問題的能力
教學與科研在研究目的等很多方面一樣,其本質都是為了實際應用,并且科研的有些方法也同樣適用于教學研究,因此,如何強調實踐教學都不為過,并把培養(yǎng)學生解決實際問題的能力作為“C語言程序設計”教學改革追求的主要目標,這也與譚浩強教授編著的《C程序設計》這本書的初衷相一致。至于采用哪種方法好,筆者認為,主要看是否適合學生。在這個問題上,只有適合不適合,而沒有好壞之分。
對于所要解決的問題,首先引導學生仔細進行分析、對各功能模塊進行抽象描述、畫出解決方案的流程圖、討論并修改算法、最后再進行編程、調試,并得出正確結論,這是培養(yǎng)學生創(chuàng)造性地解決實際問題能力的必由之路。我們在教授“C語言程序設計”這門課開始時,就把本學期要做一個實用作品、期末要進行上機編程考試、作品及上機考試占期末成績的比例、要求寫實驗報告等信息告知給學生,并在期中將所要做的內容確定下來。有的是老師指定內容,有的是讓學生自己選題。有的教師采取一對一輔導,有的分成小組讓學生討論,教師在適當?shù)臅r候給予指導。對于做得比較好的同學及時給予表揚,并讓學生將思路講給教師聽;同時要求寫出詳細的注釋,并在小組或班上講解。這樣做,可使部分學生的編程能力明顯提高,并帶動了很多同學積極參與討論,激發(fā)了同學們編程的熱情,課上和課下都有學生在討論編程的事,班里出現(xiàn)了良好的學習編程的氛圍。
但是,我們清楚地認識到:要普遍提高學生的實際編程能力目前還存在著很大的困難。教師在有限的學時內不僅要完成授課計劃,還要利用很多的課余時間完成類似于課程設計的作品輔導,教師在肩負科研和教學雙重任務,所教學生多的情況下,也只是盡力而為。因此,在實際實施的過程中,采取“先讓少部分人富起來”的做法,教師對部分編程愛好者多進行輔導,讓好一點的學生去幫助其他同學。雖然取得了一定的效果,但距離我們良好的愿望還相差很遠,需要我們在今后的教學中不斷地探索,找出普遍提高學生實際編程能力更好的方法。
4 “C語言程序設計”的教學改革
C++是從C語言發(fā)展演變而來的一種面向對象的程序設計語言,其主要特點表現(xiàn)在全面兼容C,并且支持面向對象的方法。目前,C++程序設計語言已經成為應用最廣泛的面向對象的程序設計語言之一,全國計算機等級考試(二級)也已把它作為主要考查的語種之一。很多學生考慮到就業(yè),也希望我們開設這門課。鑒于上述等原因,我們從教學改革的角度出發(fā),在我校部分班級開設C++程序設計課程,先在部分班級試點,待積累一定的經驗,時機成熟時再向全院推進。
“程序設計方法是不可選擇或不可抗拒的時代潮流,只能在應用中領悟和熟悉,算法則需要比較深入的理論知識,必須經過嚴格的科學訓練?!?我們在教學實踐中,本著一個原則:不論是C程序設計還是C++程序設計,均把培養(yǎng)學生的實際編程能力作為教學目標。對于非計算機專業(yè)的在校大學生來說,學習C++程序設計是為了讓學生了解面向對象程序設計方法,能夠利用C++編寫較大并相對簡單的程序,為以后進一步的學習和應用打下良好的基礎。
通過對所教學生進行實事求是的分析和估計,我們選用了譚浩強教授編著的《C ++程序設計》作為教材。之所以選用這本教材,主要還是想用容易理解的方法講清楚有關的基本概念和基本方法。該教材前7章的內容是C++從C語言繼承來的部分。由于教師都是初上該門課,感到完成整個教材,課時有些緊張,如果再加上實用作品設計,學生負擔會太重。因此,我們在教學上著力于使學生對C++的全貌和作用有基本的認識,而不是注重語法中的細節(jié),同時引導學生閱讀實用程序,指導學生在學完課程后,編寫完成一個較大的應用程序。
5結束語
“C語言程序設計”的教學改革是一項長期的任務,無論怎樣改,都要從學生的實際出發(fā),發(fā)揮教師的主導作用,調動學生學習的積極性,使學生有收獲。教學千古事,得失寸心知。在今后的教學實踐中我們還要不斷地完善教學內容和方法,做到既有“法”而又無“定法”,真正提高教學質量。
參考文獻:
一、注重教育方式,努力培養(yǎng)學生興趣
“興趣是最好的老師”。如何激發(fā)每一位學生學習C語言的興趣,使他們在興趣中自主地去學習、去探究,這是每一位教師在教學中都要面對的問題。是學生學習一門課程的關鍵。那么,教師應該如何培養(yǎng)學生對于《C語言程序設計》這門課程的學習興趣呢?
首先,教師應該激發(fā)學生的學習興趣。教師在講授每一節(jié)課以前,必須清楚、明白這堂課的目的要求,通過形象生動地操作或有目的的激趣提問,誘發(fā)學生的求知欲;也可根據(jù)內容講明教材在程序設計當中的作用和意義,以及它在知識體系中的地位,引起學生對知識的重視,并形成掌握的動機。例如,在講授《函數(shù)的遞歸調用》這部分內容時,可以首先對學生講講漢諾塔的傳說:傳說在古印度的寺廟里流傳著這樣一個游戲,當游戲結束的時候也就意味著世界末日的到來。說到這里,學生就會好奇,紛紛猜測這是個怎樣的游戲。等學生知道了漢諾塔的問題后,再慢慢給他們講述了這個問題的解決方法——函數(shù)的遞歸調用。
其次,在教學過程中,要讓學生成為教學的主體。教師在教學中,要積極調動學生學習的主動性和能動性,讓學生勤于思考,善于思考,而不是一味被動地接受老師講授的內容。在教學中,教師要善于給學生制造一點小小的困難,讓學生體驗到克服困難獲取成功的樂趣,這是保持學生學習興趣的必要條件。尤其是在學生上機操作的過程中,當學生遇到問題后,教師不要立刻去解決,而是鼓勵學生自己動手解決問題,讓學生不斷地去“試錯”,只有這樣學生才能在學習中有所收獲。
最后,教師應能正確地評價學生、適當?shù)毓膭詈捅頁P學生。正確評價,適當表揚和鼓勵,是對學生學習成績和態(tài)度的肯定或否定,可以激發(fā)學生的上進心、自尊心。評價必須客觀、公正,注重學生心理的發(fā)展水平與特點。對于學習較差和信心不足的學生,要挖掘他們學習中的積極因素,及時表揚和鼓勵;而對自信的學生應該更多地提出要求,在表揚的同時指出不足之處。對學生在編程中取得的每一次微小的進步,教師都不應該吝嗇自己的表揚。久而久之,學生的學習興趣就會越來越濃。
二、加強實踐環(huán)節(jié)
《C語言程序設計》是一門實踐性很強的課程,學生在學習C語言程序設計的過程中不僅要掌握C語言的概念、規(guī)則,還要動手編程、上機調試和運行。衡量學生學習這門課程的好壞,不是看學生“知不知道”,而是看學生“會不會干”。在C語言教學過程中筆者發(fā)現(xiàn)邊學邊練是學好C語言最快的方法。這種學習方法注重實踐,在程序練習中學習C語言的基礎知識。學以致用,掌握起來比較快。不僅如此,在練習的過程中,學生也會體驗到成功的喜悅。
實驗教學是學生實踐的重要環(huán)節(jié),在實驗教學中必須做到循序漸進,對所學的每一部分內容都應該要求學生完成一定數(shù)量的實驗內容。每部分的上機習題必須精心挑選,既要有基本的、較簡單的題目,又要有一些具有挑戰(zhàn)性的新穎有趣的題目。在這里,教師也可以嘗試分級教學的方法。學生的水平不同,進度不同,教師布置的作業(yè)和上機題目也可以不同。將3~5位同學分為一組,鼓勵他們互相學習、大膽討論。
實踐證明,通過這些方面的改革,實驗教學效果比過去有了明顯改善。通過結合每一部分的理論學習由淺入深的布置實驗練習的方法,學生學習的主動性和興趣有了很大的提高。
三、突出重點和難點
由于C語言牽涉到的概念比較復雜,規(guī)則繁多,而學習C語言的課時十分有限,因此教師在教學過程中應該結合學生學習實際和以往的教學經驗,對課程內容進行科學分析,確立課程學習上的重點、難點。對于重點內容,對于簡單的問題或C語言語法規(guī)則規(guī)定的內容,教師則可以采用引導式的教學方法,通過特定的題目和練習,使學生掌握這些知識點。
對于難點和重點,象循環(huán)語句、函數(shù)調用、指針等內容,教師應突出其對整個課程體系內容掌握的重要性,以重點內容為突破口,帶動相關知識點的掌握。運用現(xiàn)代教學手段,借助于演示、實例分析等功能,簡化教學過程,突出重點、突破難點,達到化繁為簡、化難為易、化抽象為具體的目的。避免了學生因無法深入知難而退、甚至喪失學習信心的現(xiàn)象,從而喚起學生學習的興趣,提高學生創(chuàng)新激情。
四、強調教師的言傳身教
關鍵詞:程序設計;教學探討
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2009)27-7720-03
Teaching Discussion on Computer Program Design Curriculum of College
YU Jiu-jiu
(AnHui Sanlian University, Hefei 230601, China)
Abstract: Computer program design curriculums are required curriculums for computer specialty which opened in colleges, the teaching effect will affects the capability on computer program coding for students directly. The article is about the characters on program design language contacted with the teaching practice of several years for author, and discusses the teaching process for this kind of curriculums.
Key words: program design; teaching discussion
計算機程序設計類課程(如C/C++、VB、VFP、Jave課程等)是高等院校計算機及相關專業(yè)開設的必修專業(yè)課程。高校計算機專業(yè)學生須掌握除C語言之外的至少一門計算機編程語言。通過學習,學生更好的運用計算機高級語言編寫程序,解決實際問題,提高思維能力。但是近幾年筆者在從事計算機程序設計類課程的教學過程中,卻發(fā)現(xiàn)了一些問題,也總結了一些經驗。現(xiàn)就結合本人的教學實踐進行探討,僅供大家借鑒。
1 準確定位教材,合理取舍教學內容,淡化程序設計算法思想
在教學伊始選好一本合適的教材是十分重要的。教師首先要明確學生學習程序設計類課程的目的,應當學到什么程度。具體的教學深度及難度要根據(jù)具體專業(yè)方向的實際情況加以取舍。大學生在校學習期間學習程序設計類課程的目的主要是了解該語言程序設計方法,能夠利用它編寫相對簡單的程序,為今后工作中進一步學習及運用打下良好的基礎。不可能設想該門課程經過一學期的學習,就能使一個沒有編程基礎的初學者變成一個熟練的程序開發(fā)人員,教師應當有一個實事求是的分析與估計。教師所選教材應著眼于近幾年出版的,用容易理解的方法講清楚有關程序設計的基本概念,不宜選擇篇幅過大、內容主次不分的培訓類教程手冊。否則在教學時會沖淡重點,學生學習時感到枯燥無味。
任何語言程序在組織結構上都遵循一定的算法,算法是程序設計的靈魂。好的算法能使程序運行高效。但是算法在講授該語言程序設計課程中所占地位如何卻是有爭議的。根據(jù)筆者的教學體會,認為程序設計類課程的教學過程中應該強調程序語法,淡化程序算法。當然,淡化算法并非忽視算法,只是在完成某一程序的同時不必過分強調其算法的實現(xiàn)。因為計算機程序設計類課程的教學重點是要放在語法的使用上,及如何運用該語言編寫簡單程序。至于有關程序算法的研究和實現(xiàn),可以放在《數(shù)據(jù)結構》、《算法設計》、《計算方法》等課程中。加之大多數(shù)學生在學習之初是沒有算法設計基礎的,教學中淡化算法可以使學生集中精力消化該課程語法本身,從而取得不錯的聽課效果。當然,在講授某一具體程序實例時,教師最好要給出實現(xiàn)程序的算法流程圖(這一塊讓學生完成是不適宜的),然后著重強調程序的語法組織結構,至于程序所采用的算法思想可以簡單介紹一下,不必作過多研究,也不必討論有關該算法所實現(xiàn)程序的效率。對于課后布置學生完成的程序,教師一定要事先給出算法流程圖,以程序最終能否調試運行為考核標準,不宜追求程序算法實現(xiàn)的難易程度。
2 激發(fā)學生的學習興趣,樹立程序設計類課程的教學核心
興趣是最好的老師,它對培養(yǎng)學生實際編程能力以及提高教師的教學效果具有重要的作用。但是從實際教學效果來看,制約高校學生學習程序設計類課程的興趣主要有以下三點:
1) 邏輯思維能力不足。程序設計類課程主要的教學目標是培養(yǎng)學生的程序分析、設計和調試能力,這要求學生具有較強的邏輯思維能力。許多學生在中學階段對這方面的能力訓練不足,造成編程時邏輯不夠嚴密。
2) 數(shù)學底子薄。程序設計的核心主要是將現(xiàn)實中的數(shù)學問題轉化為具體的高級語言源程序,并調試實現(xiàn)。大多數(shù)語言程序設計類教程編排和例題分析與數(shù)學知識有著緊密聯(lián)系,導致學生感覺抽象難學。
3) 英語基礎差。由于計算機高級語言普遍使用英文代碼,運行平臺也基本上以英文為主,所以部分英語基礎差的學生往往望而生畏。
因此,要培養(yǎng)語言程序設計的能力,學生首先必須克服上述三個因素。
計算機及相關專業(yè)的學生在校期間一般要學習兩門以上的程序設計類課程,通常很多高校都采用理論教學2周后開始上機實踐,從介紹語言的語法算法開始,然后講書寫程序,最后進入程序調試的教學過程。由于程序設計語言貫穿于由設計算法到書寫程序與調試運行的一連串過程,復雜且抽象,再加上有些學生的邏輯思維能力不強,這也就是導致部分學生在學習伊始便感到程序設計語言類課程難懂、難學的主要原因。
在學習之初,教師應注意教學的方式方法,要設法調動學生的學習興趣,教學過程才不會枯燥無味。程序設計類課程的核心是將現(xiàn)實中的數(shù)學問題轉化為具體的源程序,并調試實現(xiàn),因此第一次課最好定為實驗課。通過給出幾個簡單且學生熟悉的數(shù)學問題以及它們所對應的程序源代碼,邊介紹程序運行平臺(如C\C++ 程序運行的Visual 平臺、Jave程序運行的Eclipse平臺等)的操作邊指導學生自己編輯調試,觀察運行結果。當程序成功的輸出結果時,學生對這門課的學習興趣自然產生了。在此基礎上,教師可對程序進行一些簡單的修改,使程序輸出不同的結果,并解釋原因,然后提出新問題,讓學生參與思考。第一堂課通過實驗教學,使學生明白如何分析并解決實際問題,完成從數(shù)學邏輯到計算機語言程序的轉變,從而逐漸培養(yǎng)學生對程序設計的興趣。
3 采用階梯法的實例教學
為培養(yǎng)學生的學習興趣,大部分教師在高級語言教學過程中,都不一味地按書本去講,而通過多舉些實際的例子來鞏固學生所學習的知識點。但是教師對所教授的知識點如何舉例,例子的難度如何,學生能否從所舉的例子中更好的掌握相應的理論知識等一系列問題卻擺在教師面前。筆者在這類課程的教學中采用階梯法的實例教學方式,取得了不錯的教學效果。
階梯法實例教學是指在課堂上把同類型問題歸結出來,將這些問題按難易程度排列舉例,讓學生從理解最簡單的例子開始,按照由易到難的順序依次理解所學知識點。例如以C語言程序設計課程教學為例,在講述C語言中求若干數(shù)中最小值方法時,可以舉出:
第一層問題:2個數(shù)的最小值求法;
第二層問題:3個數(shù)的最小值求法;
第三層問題:4個數(shù)的最小值求法;
第四層問題:n個數(shù)(4個數(shù)以上)的最小值求法。
第一層問題的解決:采用簡單if語句
main()
{int a,b,min;
scanf("%d%d\n",&a,&b);
if(a
printf("min=%d\n",min);}
第二層問題的解決:采用簡單if-else復合語句
main()
{int a,b,c,min;
scanf("%d%d%d\n",&a,&b,&c);
if(a
else if(c
else min=b;
printf("min=%d\n",min);}
第三層問題的解決:采用條件語句加上if語句
main()
{int a,b,c,d,min;
scanf("%d%d%d%d",&a,&b,&c,&d);
min=(a
if(min
if(min
printf("min=%d\n",min);}
第四層問題的解決:采用一維數(shù)組比較方式
main()
{int a[4],min, i;
for(i=0;i
scanf("%d",&a[i]);
min=a[0];
for(i=1;i
if(a[i]
printf("min=%d\n",min);}
這樣通過階梯法實例教學,學生對同類問題的解決有了比較深刻的認識。這樣使不同程度的學生,尤其是學習有困難和問題較多的學生,都能夠得到提高和發(fā)展。階梯法實例教學的主要特點是目標具體,升級適度,符合學生的心態(tài),使學生有成就感,形成積極向上的學習態(tài)度。
4 培養(yǎng)學生獨立調試程序的能力, 養(yǎng)成良好的編程規(guī)范
任何一種程序設計語言都是一門實踐性相當強的課程,上機實驗是語言課程教學的重要組成部分,針對不同的學習對象和學習要求布置好上機作業(yè)是教學成功的重要保證。教學中,教師應該傳授學生一些編程技巧,例如一些典型數(shù)學問題的運用等,讓學生學會如何熟練應用該語言行為編程。由于高級語言語句書寫靈活,教師在實驗課上應重視學生書寫程序規(guī)范問題。例如,強調變量命名應顧名思義,一行只書寫一條語句,每一小段程序要有中文注釋等。養(yǎng)成這些良好的編程規(guī)范對學生今后從事軟件開發(fā)工作是大有裨益的。此外還應引導學生多讀程序,多編程序,多上機調試程序。當然,教師光教會學生如何編寫程序還遠遠不夠,教會學生如何高效地調試程序也是很重要的一點。由于學生第一次接觸語言設計課程,編寫一個程序,無論大小,最初不可能一點錯誤都沒有,無論是出現(xiàn)語法錯誤還是邏輯錯誤,哪怕是一點筆誤,編譯器都會報錯。在這里,教師應發(fā)揮學生的自主能力,指導學生如何根據(jù)編譯器所報錯誤的類型找到程序中出錯的地方,并加以改正。而非學生在編寫程序時一發(fā)生錯誤教師就越俎代庖,幫學生解決問題?!笆谥詽O,則享其生”,這個環(huán)節(jié)尤其重要,否則讓學生養(yǎng)成了依賴心理,對學生今后的職業(yè)發(fā)展是不利的。
5 加強階段性實訓
階段性實訓是實驗課的鞏固與提高。教師在所授課程每一章結束之后要安排一次規(guī)模較大的實訓。在實訓中采取分組的形式,五人左右為一組,使每位學生都可充分參與。教師根據(jù)所學課程選擇合適的課題,課題大小要適中,使學生在實訓中發(fā)揚團隊合作精神,以便調動學生的積極性,有利于培養(yǎng)學生與人共事的能力。
在階段性實習的過程中,教師要重申本次實訓的目的與要求,指明每個小組實訓要點和注意事項,對實訓中的疑難之處或容易出現(xiàn)的問題要進行必要的分析、提示或說明,對學生隨時用到的軟件工具教師要進行演示與講解。在巡回指導中,教師應把握好各實訓小組的整個實訓進程,注意觀察學生的情況,及時回答學生的疑難問題,對一些共性問題要集中講解。實訓結束后,教師要對本次實訓作歸納總結,明確撰寫實訓報告的有關要求。這樣通過學生平時獨立實驗和分組實訓相結合,全面鞏固和提高了學生計算機程序設計能力。
6 采取多元化的考核方式
為了保證課程的教學質量,培養(yǎng)學生編程的能力。課程的考核方式也很重要。要想真正科學全面的考查學生是否建立了嚴謹?shù)某绦蛟O計思想,是否具備一定的上機編程能力,可以考慮采用多元化的考核方式,針對程序語言中不同的知識類型采取不同的考試形式。如:考查程序語言中常識性的知識可以采用閉卷考試形式;考查學生知識轉化能力、應用能力等可以采用開卷考試形式;考查學生的程序調試、改錯等可以采用上機考試。當然在課程教學的同時,鼓勵學生積極參加與所學課程內容相關的全國計算機等級考試(二級C/C++、VB、Jave、VFP等),獲取證書,并宣布通過二級考試可以代替該課程的學期總成績,以激發(fā)學生們的學習興趣。這樣,學生們?yōu)榱四転榻窈缶蜆I(yè)增加籌碼,在學習過程中逐步培養(yǎng)了程序設計能力。
7 結束語
由于程序設計語言本身概念比較復雜,使用又靈活,要很好掌握它是有一定難度的。以上是筆者近幾年來從事該類課程教學中的一點心得體會,在教學過程中應注意的問題還是有很多的,但是關鍵在于對教學內容(教什么)和教學方法(如何教)的合理組合,是否能調動學生學習的積極性。但現(xiàn)實中由于不同專業(yè)方向教學目的、教學內容及學生情況等因素千差萬別,沒有哪一種教學方法是普遍適用的,唯一的原則就是根據(jù)實際情況采用合適的教學方法,既要充分發(fā)揮教師的主導作用,又要充分發(fā)揮學生的能動性。在具體的教學過程中,只要教師能理解程序設計語言本身的特點,有比較豐富的實踐經驗,并在教學中采取相應的措施與教學手段,一定能取得理想的
教學效果。
參考文獻:
[1] 譚浩強. C+ +面向對象程序設計[M]. 北京:清華大學出版社,2006.
關鍵詞:C語言教學 內存模型 三步實踐
1、引言
《C語言程序設計》是各大高校理工類專業(yè)的一門重要的必修課程,由于C語言使用靈活,數(shù)據(jù)類型繁多,結構復雜,因此學生在學習該課程時都或多或少的感覺頭疼,學習不得要領。這就要求教師在教學中需要貫穿先進的教學理念,采用適合的教學方法。本文針對C語言教學中存在的問題,結合多年的教學經驗,提出幾點教學方法和體會。
2、C語言教學中存在的問題
2.1 學生學習熱情不高
C語言課程的開設對象一般為大一學生,想讓他們馬上接受程序設計的思想幾乎是不可能的。另外他們從高年級同學那里得知C語言學習難度大,就會產生學習C語言這門課程的懼怕心理。還有一部分學生認為學習C語言對自身的專業(yè)沒有什么用處,因此產生了厭學的情緒。
2.2 傳統(tǒng)教學方式存在弊端
以教師為中心的灌輸式教學方法忽視了學生的“學”,學生處于被動接受狀態(tài),缺少教師和學生的互動,學生學習的主動性、積極性難以發(fā)揮。雖然近年來C語言程序設計課程多媒體課件教學得到廣泛普及,在某種程度上激發(fā)了學生的學習興趣,但仍然沒有脫離傳統(tǒng)教學方式,缺少教學目標的針對性,由“照本宣科”變?yōu)椤罢掌ɑ脽羝┬啤?,沒有從根本上解決師生交互匱乏的現(xiàn)實[1]。
2.3 學生學習方法不得當
由于大一學生還不是很適應大學的學習方式,很多時候還沿用高中時候學數(shù)學、英語等科目的方法來學習C語言,一些學生只重視理論知識,以為光靠背一背、做做題就能學好,忽視了實踐環(huán)節(jié)的重要性,從而導致了一部分學生學不得法,效率極低。
3、幾點教學體會
針對上述存在的問題,分別提出幾點體會,可以歸納為:“一個目標”、“兩個關鍵”、“三步實踐”。
3.1 樹立一個目標
這是針對學生的學習態(tài)度提出的。做一件事情如果沒有一個明確的目標。就很難提起興趣,遇到困難也很容易放棄,當然也無法做好。學習C語言也不例外。如果想激發(fā)學生的學習興趣,讓學生喜歡學、主動學,就必須讓學生明確為什么要學習C語言,明確一個學習的目標。事實上,學習C語言對于任何專業(yè)的學生都有莫大的好處,可以鍛煉邏輯思維能力,對以后的專業(yè)課的學習有很好的輔助作用,也會對以后學習其他編程語言打下良好的基礎,正所謂”萬變不離其宗”,如果真正掌握精了程序設計思想,具備了真正解決實際問題的能力,語言再更新可程序設計的本質不會變[2]。當然,從更實用的角度來看,可以把“通過國家二級考試”作為一個為之努力實現(xiàn)的目標,不僅對以后就業(yè)很有幫助,讓學習有了興趣和動力,有了克服困難的決心,取得事半功倍的效果。
3.2 把握兩個關鍵
這是針對教師的教學方法提出的。為了克服傳統(tǒng)教學方式的弊端,教師可以在課堂教學中把握兩個關鍵點,從而把抽象難講的C語言變的形象而簡單。
第一個關鍵:注重“內存模型”的建立。C語言之所以難學,一大部分是難在對內存的理解。可以說,內存的概念貫穿了整個C語言的整個學習過程。讓學生建立“內存模型”,可以讓抽象的問題具體化。例如:變量,可以理解成是在內存空間中一個存放數(shù)據(jù)的“小盒子”,不同類型的小盒子容量大小不同(字節(jié)數(shù)不同);數(shù)組則是相同數(shù)據(jù)類型的一組連續(xù)的小盒子,它們的位置是相臨的(順序存儲);指針變量是一種特殊類型的小盒子,它只能存放另外一種類型小盒子的地址,即,指針變量是指向另外一個存放具體數(shù)據(jù)的小盒子的小盒子,通過指針這個小盒子,可以訪問到它指向的小盒子里的內容。除了這幾個重要的概念之外,函數(shù)、結構體和共用體等知識點都需要理解內存,可以說,理解了內存,就理解了C語言的精髓。教師在講解內存模型時,可以結合畫圖來使講解過程更加形象。
第二個關鍵:舉例要生動形象。C語言多數(shù)知識點非常抽象,需要把抽象的問題形象化,舉例要生動形象,簡單易理解,要符合學生的認知規(guī)律才行[3]。例如,在講解循環(huán)結構時,可以用運動會長跑比賽作為實例,如果要跑10圈,則循環(huán)執(zhí)行10次;跑完1圈,則循環(huán)變量減1,離終點近了一步;跑滿10圈,則循環(huán)結束;如果計數(shù)器出現(xiàn)問題,跑完1圈后沒有減1,即每次執(zhí)行完一次循環(huán)后循環(huán)變量不變,則永遠無法結束需要一直跑下去,這就是“死循環(huán)”;如果跑完一大圈要再跑若干小圈才能跑第二大圈,就是“嵌套循環(huán)”。如果教師能多設計出這樣的實例,一定能讓學生的學習過程變得輕松有趣,收到良好的教學效果。
3.3 強化三步實踐
這是針對學生的學習方法提出的。體現(xiàn)在注重實驗的環(huán)節(jié),具體可以歸納為以下三步實踐:
第一步:敲程序?!扒贸绦颉笔侵赴呀滩纳系睦}原樣敲入電腦然后加以調試。這是學習任何編程語言都要經過的階段,多敲程序,不僅可以逐步培養(yǎng)出對程序語句的“語感”,還可以逐步掌握C語言的各個關鍵字和基本語法。
第二步:改程序。“改程序”是把我們敲過的程序修改成自己需要的新的程序。例如:敲過“判斷整數(shù)m是否為素數(shù)”,就可以通過修改編出“輸出100到500所有的素數(shù)”。借鑒別人編寫的優(yōu)秀程序,學以致用,這也是一種應該培養(yǎng)的能力。
第三步:編程序?!熬幊绦颉笔亲约邯毩砭帉懗绦?。經過前兩個階段的訓練,C語言的關鍵字和語法已經不再陌生,常用的算法也了然于胸,那么,自己編寫程序也就“水到渠成”了。
實踐證明,學生采用這三步實踐法收到了非常好的效果。
4、結語
本文針對目前C語言教學中存在的問題,并結合多年的教學經驗,從增強學生的學習熱情、改進教師的教學方法以及提高學生的學習效率幾個方面入手提出幾點C語言教學的經驗體會,希望能夠對C語言的教學帶來一些新的理念,對教師和學生都提供一些幫助。
參考文獻
[1]王紅紀.C語言程序設計課程教學探討[J].數(shù)字技術與應用,2011(02):147.
【關鍵詞】非計算機專業(yè);學習潛能;學習興趣;創(chuàng)新
眾所周知,全國計算機等級考試二級考試中之一就是C語言,而且隨著時代的發(fā)展,在許多高校中計算機專業(yè)都開設了C語言課程,C語言的教學是計算機教學中的重點和難點,能夠體現(xiàn)學生的邏輯思維能力和推導能力,提高學生的分析問題和解決問題的能力。那么應該如何講課才能讓學生愛學并去輕松掌握知識呢,以下是筆者的一些見解。
一、激發(fā)學生學習興趣
很多學生認為C語言這門課難學,沒有什么用處,學習沒有動力,這些問題不容回避。所以在講課開始時應該讓學生明確學習C語言的重要性和實用性:C語言在高級語言中有著舉足輕重的作用,與C++、C#、VC關系極為密切,可以開發(fā)學生的邏輯思維并提高其推導能力為學習其專業(yè)課程打下良好的基礎。通過學習程序設計,學會進一步了解計算機的工作原理,更好地理解和應用計算機;掌握用計算機處理問題的方法;培養(yǎng)分析問題和解決問題的能力;具有編制程序的初步能力。即使將來不是計算機專業(yè)人員,由于學過程序設計,理解軟件生產的特點和生產過程,就能與程序開發(fā)人員更好地溝通與合作,開展本領域中的計算機應用,開發(fā)與本領域有關的應用程序。另外在講課的時候可以用學生比較熟悉,比較感興趣的問題去講解內容。比如說,講課的時候把函數(shù)的首部比作人的“頭”,把函數(shù)的函數(shù)體比作人的“身體”,學生就比較容易接受。再有講解經典實例―Fibonacci數(shù)列時,引用“兔子的繁殖問題”,學生就比較感興趣,從而喜歡學了。還可以在學一個新的知識體系前,用這些新知識設計一些可以吸引學生的實際例子。比如在講授選擇和循環(huán)結構時,可以讓學生做一個“猜數(shù)”游戲,學生覺得有趣,聽課的興趣明顯提高。學生對C 語言課感興趣了,學起來就有了動力,教起來才能事半功倍。實踐表明,在學習C語言的過程中有的學生反映學習C語言比學習計算機基礎要簡單,可見激發(fā)學生的學習興趣是多么的重要。
二、激發(fā)學生學習的潛能
在教學過程中,通過各種教學方式和手段激發(fā)學生的學習欲望,使其積極投入到學習活動中,發(fā)現(xiàn)問題,提出問題,并逐步解決問題。例如,在講解實例時,不是簡單地給出程序清單,而是從分析問題入手,找出解決問題的方法,再給出算法,最后編寫出完整的程序,經過編譯、鏈接、運行從而得出最后的結果。而在這一過程中,較關鍵的是每一步都采用與學生一起探討的方式,讓學生在啟發(fā)下思考,在思考中解決問題,也讓其在解題過程中體驗到自己的成功感受,從而掌握獨立分析問題、解決問題的方法。為培養(yǎng)學生綜合應用知識的能力,通過對完整的項目的系統(tǒng)分析,培養(yǎng)學生良好的編程習慣,善于獲取他人經驗的能力以及掌握綜合運用所學知識的能力,從而真正提高編程水平。
三、培養(yǎng)學生的算法思想
C語言教學的目的,不僅要使學生掌握語言的基本規(guī)則,更要切實提高其編程解決實際問題的能力和實現(xiàn)算法的能力。在學習C語言這門課的過程中,算法的培養(yǎng)尤為重要,算法即為了解決某一個特定的問題而采取的方法或步驟。算法是靈魂,不掌握算法就是無米之炊。因為程序代碼的編寫過程實際上就是將事先的求解思路用C語言的語句來加以實現(xiàn)的過程。沒有求解思路,那么得到的肯定是一個錯綜混亂的程序代碼。所以正確的求解思路就是必要的,如果求解思路不正確,那么必將得到一個錯誤的程序,所有的一切必將付之東流。所以在講C程序語言課時一定要強調算法思想,并且貫穿整個講課的始終。
四、培養(yǎng)學生的創(chuàng)新意識
C語言是一門理論加實踐的課,只有滿腹經綸,不能解決實際問題,必須上機實踐,只有通過上機操作讓學生將書寫的程序代碼上機運行調試并得到預期的結果才算真正解決問題,才算是真正掌握了一門技巧,也才能使學生真正理解、真正消化課堂上的理論知識,因此要以應用、實踐為目的,注重培養(yǎng)應用能力,大力加強實踐環(huán)節(jié),激勵學生創(chuàng)新意識。教學中堅持上機實驗課與理論教學課相結合,使上機實驗與理論教學協(xié)調同步,特別是時間、內容上要銜接好,講完課要及時上機并保證上機效果,需要特別強調的是,要先講課后實踐,而且兩者相隔時間不能太長,時間長學生早已把課上聽到的內容忘記,所以要及時上機實踐,多實踐是學習掌握C語言的必經之路。對于同一個問題,可以讓學生分組進行思考,讓其考慮不同的方法來解決,最后通過講解評比,讓學生互補所長,互補所學,從而提高了學生的學習動力、培養(yǎng)了學生的創(chuàng)新意識。
五、運用豐富的教學方法
為了讓學生更好的學習好C語言,培養(yǎng)學生邏輯思維和創(chuàng)新能力,在教學過程中,要通過各種教學方式和手段激發(fā)學生的學習欲望,使其積極投入到學習活動中。例如,在講解程序設計舉例時,不是簡單地給出程序清單,而是從分析問題入手,繼而找出解決問題的方法,再給出算法,最后編寫出完整的程序,編譯、鏈接、運行到測試的整個過程,特別是調試中增加輸出,變難為易,環(huán)環(huán)緊扣。而在這一過程中,較關鍵的是每一步都采用與學生一起探討的方式,讓學生在啟發(fā)下思考,在思考中解決問題,從而掌握獨立分析問題、解決問題的方法。而對于比較簡單的問題,我們可以提出問題,以學生獨立完成為主,教師只提供必要的輔導,培養(yǎng)學生探索問題和解決問題的能力,更有利于創(chuàng)新能力的培養(yǎng),也充分調動了學生學習的主動性和積極性。
再有充分合理地利用多媒體課件,也可以達到事半功倍的效果:課件上要合理選擇教學內容,制作要突出中心,避免從書本上摘抄大量文字或圖片。課件中可適當加入Flas等,吸引學生注意力,讓學生對課件上的內容產生興趣,有利于知識的掌握。
總之,我們在C語言教學中,一定要把它上好,通過講解這門課讓學生掌握求解問題的方法,鍛煉學生的思維,不僅讓他們在學習上有收獲,而且在處理問題、解決問題上也是受益匪淺。
參考文獻
[1]譚浩強.C程序設計(第三版)[M].北京:清華大學出版社,2010.
[2]譚浩強.C程序設計(第四版)[M].北京:清華大學出版社,2005.
[3]張海玉.C語言程序設計教學方法探析[J].太原:財政稅務??茖W校學報,2006(8):
72-74.
[4]程奎文.C語言教學方法探析[J].科學時代,2006(12):111-112