国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

《C語言程序設計》教學的幾點體會

2019-11-17 05:28:01
字體:
來源:轉載
供稿:網友

  《C語言程序設計》是我系各專業的必修課程,也是我校非計算機專業開設的程序設計課程之一。作為計算機類的專業基礎課,目的是使學生把握程序設計的基本方法并逐步形成正確的程序設計思想, 能夠熟練地使用C語言進行程序設計并具備調試程序的能力,為后繼課程及其他程序設計課程的學習和應用打下基礎。對于非計算機專業來說,該課程有實際應用價值,為用計算機解決實際問題提供了方法,是后續理論和實踐教學的基礎和重要工具,同時也是計算機二級考試所統一要求的課程之一。

  筆者多年來為從事高級語言程序設計教學與實習,結合國內外優秀編程語言的教學方法和模式,不斷地總結和積累經驗并運用于教學實踐之中,取得了較好的教學效果,有助于學生在有限的教學時間內,以最快最簡單易懂的方式,扎實地把握C語言的內容,并能運用自如。

  下面是筆者在C語言教學中的一點體會,僅供大家參考。

  培養愛好

  恩格斯說“愛好與愛好是最好的老師”。為了使初學者能盡快地把握計算機知識,進入計算機的應用領域,在課程講授過程中,要非凡注重培養學生的學習愛好。初接觸計算機時,很多學生感到新奇、好玩,這不能說是愛好,只是一種好奇。隨著課程的不斷深入,大量的規則、定義、要求和機械的格式出現,很輕易使一部分(甚至是大部分)學生產生枯燥無味的感覺。為了把學生的好奇轉化為學習愛好,授課時我們改變過去先給出定義和規則的講授辦法,而是從具體問題入手,努力把枯燥無味的“語言”講的生動、活潑。

  在第一節課上,就給學生找一些《高等數學》、《線性代數》等已學課程的問題,用算法語言來求解,使學生體會程序設計的用途和一種全新的解決問題的方法。在課程的進行中,引導學生學一種算法,就嘗試在同行課程中應用。我們還經常介紹一些趣味性算例,如: “菲波納契兔子問題”、“水仙花數”、“競賽記分”等,培養學生的學習愛好,讓大家積極主動、自覺獨立地獲取知識,打好學習程序設計語言的基礎。整個教學過程中應該把解題思路、方法和步驟(即“算法”)當作授課的重點,從而讓學生明白如何分析并解決實際問題,逐漸培養學生進行程序設計的正確思維模式。

  循序漸進

  絕大部分學生是第一次接受計算機語言,“通俗性、可接受性”的教學原則同樣適合于這門課的教學。在課程講授過程中,我們沒有把重點放在語法規則的敘述上,而是放在算法和程序設計方法上,通常由幾個例題引出一種語法規則,通過一些求解具體問題的程序來分析算法,介紹程序設計的基本方法和技巧,既注重教材的系統性、科學性,又注重易讀性和啟發性。從最簡單的問題入手,一開始就介紹程序,要求學生編寫程序,通過反復編寫、運行程序來把握語言的規定和程序設計的方法。同一個語法規則、同一種算法,在選擇例題時也是由簡到難,逐步呈現給學生。在學習上不要求學生死記語法規則,而是要求學生能把各個孤立的語句組織成一個有機的、好的程序。注重培養學生良好的編程風格,讓學生在編制程序過程中不斷總結、鞏固,達到學會方法、記住語法規則,提高設計技巧的目的。

  以“菲波納契兔子問題”為例,在基本程序設計部分,可以啟發學生使用循環語句,利用變量的交替賦值實現。

main( )
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
 {    if(i%2==0) printf("/n");/*控制輸出,每行四個*/
   f1=f1+f2; /*前兩個月加起來賦值給第三個月*/
   f2=f1+f2; /*前兩個月加起來賦值給第三個月*/
 }
}
  而在數組部分,可以啟發學生采用直接的數組元素賦值來解決。

main( )
{
long fib[20];
fib[1]=1;fib[2]=1;
for(i=1;i<=20;i++)
 { printf("%12ld",fib[i]);
   if(i%4==0) printf("/n");/*控制輸出,每行四個*/
   fib[i+2]=fib[i]+fib[i+1]; /*前兩個月加起來賦值給第三個月*/
 }
}
  這樣,通過對兩種解法的比較和分析,幫助學生更好地把握循環語句和數組的概念。

  改進授課方法,實現教學相長

  我們要求學生事先預習,實際上就是要求他們課前自學,講課時以學生預習過為起點,只講難點、重點、有變化之處,這樣既給了學生思維分析的余地,又節省課時。這就要求必須精選教學內容,注重詳略安排的合理性。在章節間的授課安排也注重了詳略得當。如在講到“選擇分支結構”,“循環結構”這些要害性章節時就講的非凡精,使學生做到非常熟練、透徹把握的程度,而講到“字符處理”章節時,讓學生做到一般了解即可。課上經常找一些設計技巧比較好、解題思路比較精的例題讓學生自己“讀程序”,找出精妙之處或不理解之處,對普遍性的問題共同講解,個別問題課后解答。

  我們有意地設置一些不同深淺的筆誤或口誤,馬上讓學生肯定對與錯,以考查學生注重力集中的程度,提高他們的敏銳性和判別能力。對有些問題,給出一種程序設計方法后,讓學生討論,還有沒有其它的程序設計方法和思路,讓他們發表意見,提出自己的解題思路編程方法,給學生以表達已見、陳述思路、交流觀點的機會。這就要求老師既有引導又能放開,既有事先的精心備課,又有課堂上的因勢利導,同時也可以從學生討論中提出的問題來豐富教材內容,受到較好的教學相長的效果。

  如講授printf和puts對字符串的處理,我們采用下面的例子進行學習:

#define N 6
main()
{char ch[3][4]={"123","456","78"};
int i;
for(i=0;i<3;i++)
{printf("%s",ch[i]);puts(ch[i]);}
}
  結果是什么?

  這個時候學生就會提出不同的看法,我們可以通過演示得出正確的答案是:

123123
456456
7878

  這時我們進行分析,引導學生理解讀取字符串和輸出字符串時對字符串輸出時‘/0’的處理方式,加深學生的熟悉。

  作業、實習與考試

  做作業是復習、練習的過程,也是繼續和深入學習的過程。我們每次課后給學生布置一些有代表性、恰當的習題,以鞏固課堂上所學的內容。也通過學生所做作業的好壞來了解學生對課程內容的把握程度以及教師的教學效果。對作業中比較普遍出現的錯誤,我們都要在下節課上當堂講解,因為那是在上節課沒講清楚所致。作業中表現出與眾不同的、新奇的程序設計方法和思路,也要當堂宣講或作業批注,以鼓勵這種另辟新徑的有創意的學風。

  每次上機前,都根據教學計劃,有系統地布置上機實習作業,讓學生明確上機任務,編寫好上機調試的程序,使學生在每次上機實習中有收獲。我們讓學生按照自己的姓名、題號來編寫程序文件名,調試成功后存入磁盤,課程結束后按調試完成程序的多少、優劣來評定實習成績。在實習過程中,指導教師對一些操作難點,分組集中演示,也能起到事半功倍的效果。課程結束前我們堅持進行課程總結。把所學的內容作一個分析,前后聯系起來,使學生對課程內容能夠融匯貫通。

  教學網站的使用

  建立教學網站,包括課程資料,實驗指導,網上答疑,知識自測等子系統。通過教學網站的應用,在教與學的過程中,從以教中心走向以學為中心,從以教師為中心走向以學為中心,充分發揮學生的主觀能動性和創造性,在體認知生成過程中融入學生自己的創造性見解。

  通過具體規劃,在有步驟、分層次、以點帶面、保證質量和效果的思想指導下,以教學材料和教學經驗相對成熟和覆蓋面較大的課程為建設重點,我系于2003年將《C語言程序設計》課程確定為系級重點建設課程。通過近幾年來的努力工作,課程建設取得了豐碩的成果,開創了基于層次主線模型的課程建設新模式,具體修訂了教學大綱,細化了教學內容;設計編寫了課堂教學樣本教案、實驗教案、課程設計樣本和試卷庫,使教學過程更加規范;制作了電子教案和輔助教學課件,提高學生學習愛好和授課效果;提高了任課教師的整體素質;為其它課程起到了示范和積累教學經驗的作用;學生的二級C通過率保持在85%以上。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉林市| 杭锦后旗| 靖边县| 安吉县| 甘孜| 千阳县| 虹口区| 威远县| 多伦县| 昌黎县| 瓦房店市| 汨罗市| 屏南县| 栖霞市| 浦城县| 瑞金市| 宾阳县| 上蔡县| 昌黎县| 商丘市| 万宁市| 山丹县| 秀山| 林西县| 广德县| 周宁县| 甘孜| 陆川县| 长沙市| 资源县| 晋城| 江孜县| 象州县| 柳林县| 开远市| 方正县| 平山县| 澳门| 徐州市| 泾阳县| 西林县|