<dfn id="a4kkq"></dfn>
<ul id="a4kkq"></ul>
    • c語言程序設計大全11篇

      時間:2023-03-15 15:01:26

      緒論:寫作既是個人情感的抒發,也是對學術真理的探索,歡迎閱讀由發表云整理的11篇c語言程序設計范文,希望它們能為您的寫作提供參考和啟發。

      篇(1)

      (江西科技學院)

      [摘 要]C語言程序設計課程是計算機專業教育的重要組成部分。將探究教學引入C語言程序設計教學中,不僅可以提高學生學習的興趣,調動教師教學的

      熱情,也豐富了探究教學的理論與實踐。具體分析并探討了C語言程序設計探究教學的實施目標、實施條件、教學情境的創設、探究形式、教學評價等問題。

      [關鍵詞]C語言程序設計 探究教學 實施目標

      一、 C語言程序設計探究教學實施的目標:情感目標、能力目標和認知目

      1、體驗C語言程序設計的編程思想,激發和保持對C語言程序設計課程的

      求知欲,形成積極主動地學習和參與C語言程序設計課程探究活動的態度。

      2、能辯證地認識C語言程序設計對社會發展、科技進步和日常生活學習的

      影響。

      3、獲得親自參與研究探索的積極體驗、培養嚴謹的科學態度。

      4、能從日常生活、學習中發現或歸納可以利用C語言程序設計解決的問題,

      通過問題分析確定程序功能。

      5、能根據任務的要求,確定所需信息的類型和來源,并鑒別信息的真實性、

      準確性和相關性。

      6、掌握計算機程序的基本概念,理解并掌握C語言程序設計語言的基本知

      識,包括語句、數據類型、變量、常量、表達式、函數等,熟悉語言的語法規則,熟

      悉計算機程序執行的基本過程。

      7、了解C語言程序設計語言,掌握編寫程序、編譯程序、連接程序以及程序

      開發環境等基本知識,掌握調試、運行程序的基本方法與技巧。

      二、C語言程序設計探究教學實施的條件

      1、掌握一定的計算機操作基礎

      C語言程序設計課程由于其學科自身的特點,需要在計算機上調試程序,

      所以要求學生具有一定的計算機操作知識,如:開關機、鍵盤和鼠標的使用、文

      件的建立與查找、常用軟件的使用等。

      2、良好的C語言程序設計認知結構

      認知結構就是學生頭腦里的知識結構,是學習者觀念的全部內容和組織。

      奧蘇伯爾的認知結構理論是針對新學習內容的影響(即遷移)提出的,良好的認

      知結構有利于知識的提取和正向遷移。C語言程序設計探究教學強調在已有知

      識經驗上的主動建構,面對新的問題和任務,需要學生及時從頭腦中提取信息,

      建立新舊知識間的聯系,在已有C語言程序設計知識的基礎上思考解決新問題

      的辦法,并試圖將新知識納入自己的認知結構中。

      3 、良好的探究環境

      良好的探究環境是學生順利進行探究的保證,至少包含兩方面的內容:(1)

      要有充足的探究時間和靈活的探究條件。探究時間應該根據學習任務進行合理

      安排,應該考慮到學生假設錯誤時所耽誤的時間以及討論交流所需要的時間。

      探究教學中可能需要查閱大量的資料,教師還應該準備書籍、網絡等輔助資源。

      (2)學生在探究學習的時候不能有太多壓力,不同的學生由于其自身的因素不可

      能以相同的速度學習,所以教師在進行評價的時候也應該因人而異,應該為每

      個學生提供充分的思考機會和時間,讓每個學生都能以自己的進度進行探索,

      并在此過程中感受到樂趣。

      三、C語言程序設計探究教學情境的創設

      心理學研究表明,恰當、適宜的環境能有效激發人的熱烈情緒,提高活動的

      質量和效果。教學情境是指教師人為創造的“典型場景”,創設目的在于引出教

      學任務,將學生的注意力吸引到學習任務中來。教師把將要學習的C語言程序

      設計知識通過一定的情境呈現給學生,使得學生認知結構與周圍環境不平衡,

      引起他們對學習目標的注意和興趣,并通過探究活動把學生過去的活動和將來

      的活動聯系在心理學研究表明,恰當、適宜的環境能有效激發人的熱烈情緒,提

      高活動的質量和效果。教學情境是指教師人為創造的“典型場景”,創設目的在

      于引出教學任務,將學生的注意力吸引到學習任務中來。教師把將要學習的C

      語言程序設計知識通過一定的情境呈現給學生,使得學生認知結構與周圍環境

      不平衡,引起他們對學習目標的注意和興趣,并通過探究活動把學生過去的活

      動和將來的活動聯系在一體。探究教學情境的創設應做到:(1)創設的情境是為

      C語言程序設計教學服務的,要以C語言程序設計探究教學目標為依據。(2)探究

      情境要接近學生的真實生活經驗,能夠吸引學生的注意力,激發他們的認知沖

      突和求知欲。(3)學生在情境中能夠感覺到問題的存在,自然地將新舊知識聯系

      起來。(4)情境中必須包含學生未知的新內容,而且是能夠通過探究掌握的。

      四、C語言程序設計課程中的探究形式

      C語言程序設計課程中開展探究教學主要有4種形式:探究性提問、探究性

      討論、探究性演示和探究性實驗。這4種形式是相輔相承的,而不是孤立存在的,

      在C語言程序設計探究教學中,需要用到多種形式來構成一個完整的探究教學

      過程。C語言程序設計探究教學通常都是由探究性提問開始,然后進行探究性

      討論、探究性演示或探究性實驗;也可能從探究性演示或探究性實驗開始,在演

      示或實驗的過程中發現問題,再進行探究性討論。在實際教學過程中,要根據學

      習內容和課堂情況靈活地選用這些形式。

      五、C語言程序設計探究教學評價

      教學評價指依據一定的標準,通過各種策略和相關資料的收集,對教學活

      動及其效果進行客觀衡量和科學判定的系統過程。C語言程序設計探究教學評

      價是對C語言程序設計探究教學過程及其影響的測量、分析和評定,評價中我

      們更關注學生學習和成長的過程,尋找適合學生發展的學習方式,滿足學生知

      識和能力發展的需要。評價對探究教學的積極作用是很明顯的,但是如果評價

      指標制定不合理,或者評價方法的選用、評價結果的表述不當,不僅不能達到預

      期效果,還會對學生的C語言程序設計學習產生消極影響。

      參考文獻

      [1] 《基礎教育課程改革綱要(試行)》教育部文件,教基[2001]17號.

      [2] 保羅 朗格朗.終身教育引論瞰[M].北京:中國對外翻譯出版公司,1985,

      p15~31.

      [3] 聯合國教科文組織.學會生存——教育世界的今天和明天[M].上海:

      上海譯文出.

      版社,1979,p2.

      [4] 張大均。教育心理學[M].北京:人民教育出版社,2005,p68--71.

      [5] 靳玉樂.探究教學論[M].重慶:西南師范大學出版社,200l.

      作者簡介

      篇(2)

      參考文獻:

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

      [2] 王平,朱艷輝. 計算機程序設計教學中的教學方法研究[J]. 電腦知識與技術,2005(21):93-95.

      [3] 楊其宇,張霞.“C語言程序設計”課程教學探討[J]. 廣東工業大學學報:社會科學版,2006(增刊1):94-95.

      [4]Merseth, K. K. The early history of case-based instruction: Insights for teacher education today[J]. Journal of Teacher Education,1991,42(4):2433-2439.

      [5] 王平. 利用概念圖拓展思維空間[J]. 科學課,2006(8):13-14.

      [6] 湖南工業大學. 課程錄像[EB/OL]. [2011-03-01]. 218.75.216.182/VC/850839.

      One Lesson’s Content Design of C Programming Language

      WANG Ping, LIU Qiang, ZHANG Amin

      篇(3)

      C語言是早期最經典、最強大的面向過程的程序設計語言之一。雖然現在面向過程已經全面轉向面向對象,但是C本身的中級語言的設計理念以及對現有VC/C#等語言的深刻影響,使其至今仍是程序設計入門的首選語言,也是工科院校計算機專業學生接觸的第一門程序設計語言。對于計算機類專業學生來說,一旦掌握了C語言,就可以較為輕松地學習其他任何一種程序設計語言,為后續的面向對象程序設計以及Java程序設計等語言的學習打下基礎;對于其他非計算機專業的工科學生來說,比如電子、機電專業來說,該課程為學生用計算機編程解決實際問題提供了方法,是學習單片機技術教學的基礎和重要工具。

      一、C語言教學中面臨的問題

      C語言程序設計是一門基于dos操作系統下的面向過程的程序設計語言,隨著面向對象語言的開發,C語言在界面交互性上遜色不少,作品上也不如Flash、三維動畫效果吸引眼球,難學、難懂、難以應用的課程,對學生越來越缺乏吸引力。針對這種狀況筆者認為,更新教育觀念、探索新的教學模式才是根本出路。筆者根據多年的教學經驗,對C語言程序設計課程從教學內容、教學手段、教學方法、考核方法方面進行了一系列的創新改革。教學內容主要解決如何調動學生積極性,激發學生創新能力,如何提高學生的創新能力、實踐能力、研究能力、發現問題和解決問題能力等綜合素質;教學方法主要解決如何實現“以人為本”,分層次教育,如何通過引導、啟發等方法,激發學生的發散性思維。同時要利用目前課堂和實驗教學在培養學生創新能力和實踐能力方面的優點,利用大學生實訓基地,為學生的創新和實踐能力的鍛煉和培養提供一個良好的平臺。

      二、教學內容的創新

      課程內容的選取與組織是課程教學改革的基礎。人才培養方案對C語言程序設計教學內容進行重新整合,把課程學習劃分成培養學生的基本程序設計能力和培養學生的專業程序設計能力兩個階段。

      第一階段安排在大一第一學期,主要針對沒有程序設計經驗的大一新生,重點講授C語言的基本知識,包括三種基本結構、數組、函數的概念。在第一階段教學中,筆者采用案例教學方法結合具體的程序實例,創設情境,引導學生自己總結掌握C語言的基本語法和程序設計的基本方法。第一階段的學習結束的時候,學生可以具備基本的程序設計能力,獨立編寫具有初等難度、幾十行的程序,并且能夠較順利地完成程序調試與測試。第二階段教學放在大一第二學期初,針對具備基礎程序設計能力的學生,重點培養學生的專業程序設計能力。在第二階段的教學中,以學生為主體、以教師為引導,采用國家火炬計劃河北省軟件人才工程實訓課程,使學生融會貫通所學知識,完成一個具體的項目,以達到提高學生程序開發能力的目的。迄今為止,學生完成的項目包括“銀行儲蓄管理系統”“彩票信息查詢系統”。教學實踐證明,這種理論和實踐技能并行的教學模式,更加有助于學生的創新能力的提高,使學生在不斷實踐中掌握技能,在技能學習中提高基礎理論。

      三、教學手段的創新

      在學習過程中除了發揮教師的引導作用,還需要充分調動學生的參與主動性。在授課期間靈活采用多種教學手段,如:自學、演示、對比、課堂提問、學生演練和討論等,通過不同方法,尋找創意思維“契機”,安排創意鋪墊內容,培育學生的創意萌芽,營造創意環境,引發學生爭鳴,為學生提供更多的思維空間,誘發學生的思維靈感。例如,在教學中講解“循環結構的循環嵌套”的時候,提出馬克思手稿中的數學題的案例:偉大的思想家馬克思的手稿中有這樣一道有趣的數學題:有30個人,其中有男人、女人和小孩。他們在一家飯館中吃飯,共花費50先令。如果每個男人吃飯要花3先令,女人要花2先令,每個小孩要花1先令,問男人、女人、小孩各多少人?先提出問題,引導學生分析、討論案例,提問學生運用數學知識完成案例提出的問題需要進行哪些操作,這樣學生就會比較有興趣,課堂氣氛就活躍起來。然后幫助學生從案例分析中理解并掌握什么是多重循環,并且如何使用雙重循環解決問題,最終完成程序的編寫。

      在學習的第二階段采用開放式訓練教育方式,利用專題設計和課外指導方式,鼓勵學生課外自主進行訓練。如:完成的項目“彩票信息查詢系統”,教師提出設計方案,學生完成基本功能以后,自己可以對其他功能進行完善。

      四、教學方法的創新

      課程每個章節內容結構主要由三部分組成:

      知識點:介紹本章需要掌握的知識或技術。

      應用案例:介紹本章知識應用的案例。

      創新訓練:針對具體的問題,應用本章技術來完成知識點的應用。

      在整個教學過程中,教師采用框架式教學,像建筑工程師修建筑一樣,先采用精講的方式,讓學生建立整門課程的知識框架;接著通過案例教學、項目式教學等多種教學方式,讓學生逐步去進行細節知識點的填充;最后通過綜合訓練方式,完成整門課程的學習。

      例如,在講解C語言程序設計中的函數時,搭建出例如綜合排序等程序的框架,給學生留出函數,讓學生自由開拓思想,獨立完成一些小型實例的編程,經過具體知識點的訓練后,還要重點進行綜合知識的應用訓練,開展一系列的創新應用,以達到知識綜合運用和培養創新能力的目的。

      五、考核方式的創新

      傳統的C語言程序設計考核模式一般以標準化的筆試題為主,這種考核方式側重語法知識的考核,忽視編程實踐能力的培養。為此,筆者改革傳統的考核方式,將考核分為平時實驗和期末考核兩部分。平時實驗成績考核的是學生每一章知識,實訓作業就是在每一章節結束的時候,布置相關的習題,學生利用業余時間編程,并且在實訓期間進行調試,調試成功后上傳到服務器上。期末考核成績采用的是教研室開發的上機考試系統。上機考試系統模擬C語言二級考試建立了知識面齊全、題量充足、難易度合理的試題庫,采取隨機抽題的形式重點考查學生的程序設計能力和程序調試能力。這種考核方式督促學生在平時學習中加強對編程舉一反三的實踐環節。實踐證明,這樣不僅能有效培養學生的實踐編程能力,還激發了學生動手實踐解決問題的興趣。

      總之,經過不斷的摸索與實踐,通過以上的教學方法與教學手段的改革和實踐,不僅提高了學生的學習興趣,讓學生從枯燥無味的語言學習中解放出來,從被動學習走向主動學習,同時也培養了學生分析問題、解決實際問題的能力,充分發掘了學生的創造潛能,鍛煉了創新和協作精神。

      參考文獻:

      篇(4)

      中圖分類號TP39 文獻標識碼A 文章編號 1674-6708(2010)25-0198-02

      C語言程序設計課程是我校理工類各專業必修的計算機程序設計基礎課,是一門實踐性很強的課程,學習者必須通過大量的編程練習,在實踐中掌握語言知識,培養程序設計的基本能力,并逐步理解和掌握程序設計的思想和方法,培養學生編程興趣和編程能力是我們教師的責任,也是該課程的目標。

      現行的教學中存在一些問題:一是按照從基礎知識講起,然后講解語句語法,最后應用舉例;二是教材內容安排不盡合理,語法規則編寫過細[1];三是教學理念、教學方法和考核方法比較老套,不適應當今教學的發展。為了讓學生學好這門課程,提高動手能力,必須進行教學改革,探索改革的思路和方法。

      1 轉變教學理念

      傳統的“蓋房子”教學理念,強調必須先打好地基再砌墻,即強調先打好基礎,然后再進行實際編程。這種教學理念教師往往先介紹概念和定義,再舉例進行講解,這種教學方法死板而枯燥,由于課程的教學重點往往放在了語言語法知識點上,而語言的語法是相當煩瑣而復雜的,這種教學方法缺少應用型、趣味性的案例,使學生一步步地陷入到紛多繁雜而索然乏味的語法學習當中,很難充分調動學生的積極性和啟發學生思維。

      研究自然界中“樹”的生長規律可以發現,“樹”并不是先長成發達的根系,再長樹干和枝葉,樹的根系、樹干和枝葉是同步生長的。“樹”的生長過程應用到教學上,就是基礎語法和編程的教學同步進行,甚至先教編程技能再教理論,在不斷地實踐中掌握技能,在技能學習中提高基礎理論。

      2 教材編寫思路

      從課程的教學目標出發制定教材的編寫思路,采用實例引導法、歸納教學法和任務教學法編寫教材,在編寫內容上拋棄過多的語法細節和非通用的或實際用途很少的語言特性,算法描述力求通俗易懂。理論教材以實例引導法思想為主導,介紹概念、語句格式、語句用法和算法描述。用歸納教學法思想編寫多個函數中相同參數的使用問題。實驗教材以任務教學法思想,確定每一個實驗的任務、內容、要求和思考題。

      3 教學方法探索

      3.1實例引導法[2]

      一切從實際例子出發,引導學生理解程序中的概念和算法,例如:在講解變量、運算符和表達式時,先通過一個具體實例程序介紹,如:求圓面積和周長,指出程序中臨時存放數據的單元和公式中的運算符號,然后再引出變量、運算符和表達式進一步講解。又如:在講解指針的概念時,變量的“間接訪問”,可以通過“辦公桌抽屜”實例講解:一個辦公桌有A,B兩個抽屜,每個抽屜有一把鑰匙,可以把B抽屜的鑰匙放在A抽屜中,若要打開B抽屜,就需要先打開A抽屜,取出B鑰匙,再打開B抽屜,取出B抽屜中的物品,引出“間接訪問”。這樣學生很快就能理解變量、運算符、表達式和指針的概念并掌握它們的用法。

      3.2歸納教學法[3]

      C語言的定義、概念、語法規則有許多相似的地方,在講解C語言函數庫中函數時,有些函數參數的類型格式符是一樣的,在講解一個函數中類型格式符后,對其它函數的類型格式符可以進行歸納,不講或簡單的提一下即可,例如:printf()和scanf()函數中的類型格式符“%d、%f、%c”等,它們的語法規則是一樣的。通過歸納教學,學生只要掌握其中一個,另一個自然就會使用了,免去了重復講授,提高了教學效率。

      3.3任務教學法

      C語言程序設計課程必須采用實驗教學環節才能把理論算法加以驗證。采用任務教學法思想編寫實驗教材,適度增加實用性和自主性實驗任務內容。每章有具體任務實例講解,可引導學生完成每章設置的實驗任務題目。讓學生自主選擇實驗時間,每次實驗課前要布置實驗任務,學生根據任務,自學和實驗任務有關的知識,完成實驗任務的編程。這種教學方法能夠有效地培養學生的自學能力, 激發學生學習的積極性、主動性和創造性, 鍛煉他們利用所學的知識解決實際問題的能力。

      3.4網絡教學法

      依托先進完備的校園網絡環境,建立C語言程序設計網絡教學平臺。可以把課程教學大綱、教案、多媒體課件、教學錄像、綜合實例庫、習題庫、學習參考資料、模擬考試系統等教學資源全部上網,通過這個網絡教學平臺,學生可以瀏覽、下載學習資料,也可以提交電子作業,在線提問題,老師在線輔導和答疑等,為學生自主學習提供強大的網絡支持。

      4 師資隊伍建設

      成立C語言程序設計課程組,建立結構合理的教師梯隊。由具有豐富教學經驗和科研能力的教授任組長,激勵教師努力鉆研教學內容和教學方法,拓寬知識結構。同時,針對組內教師的不同特點,課程組制定了切實可行的目標,并定期進行集體備課,相互探討,號召組內教師積極參與教學研究和科研開發,為提高教學水平打下良好的基礎。建立主講教師之間互相聽課和評課制度,定期召開學生座談會和課程質量分析會,并針對反饋意見提出改進教學的具體措施,從而規范教學的各個環節,為更好地提高教學質量奠定良好的基礎。

      5 考核評價體系

      對課程考核評價體系進行改革,突出過程考核和編程能力考核,促進學生實際動手能力和創新能力的提高。例如:總評成績=理論課出勤成績+作業成績+實驗出勤成績+實驗完成成績+期末考試成績。期末考試采用《C語言程序設計機考系統》,機考系統為每個考生隨機出題,體現了公平考試的原則。改革后的考核評價體系主要體現了考核形式多樣化、考核標準合理化以及考核試卷個性化三大特征。

      6 結論

      鑒于目前C語言程序設計課程教學中存在的一些問題,文章通過改革探索,一切從培養學生編程能力的角度出發,按著新的教學理念對教材編寫思路和教學方法進行了探索,提出了教學改革的具體措施。希望對C語言程序設計課程的教學改革有所借鑒。

      參考文獻

      篇(5)

      中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2014)34-8225-02

      《C語言程序設計》課程的授課對象是計算機專業本科學生,為專業基礎(必修)課,是學好后續各軟件課程必要的基礎。有別于已經掌握的漢語、英語語言,作為人與計算機交流的語言,C語言不但概念多、符號多、語法多、規則多,而且抽象、難懂,再加上需要有一定的理解力以及解決問題的清晰思路,有些學生在學習過程中會感覺到枯燥、繁雜、無趣。因此培養學生的學習興趣、加強對課程的重視、提高實際編程能力、將理論與實際相結合,是教師必須解決的問題。

      為了提高學習質量,從2010年秋季學期開始對《C語言程序設計》課程的教學過程、成績考核進行了改革,由原來的紙質試卷考試變成全程上機考試。改革實施多年來,大部分學生增加了學習興趣,有了編寫程序的主動性和積極性,增加了專業學習的信心,提升了程序設計的能力。

      考慮到學生在基礎知識、智力因素、學習能力上的差異,為了更有效地實施“因材施教”,從2013年秋季學期開始實施分層教學。在講完C語言基礎知識、程序基本設計方法之后進行分層。通過考核,外加自愿的原則,將原來的教學班打亂,重新組合成兩種班型――高層次、低層次班。分層之后,每個學生個體獲取的知識趨于最大化,極大地提高了課堂學習效率。

      1 傳統教學與紙質考試存在的問題

      傳統的教學是按照指定教材,在課上將重點內容進行講解,典型的問題、方法在TC/VC環境中進行演示,課后留給學生一定的紙質作業和上機編程作業。同樣的講授,理解力強的學生一聽就懂;理解力弱的學生,老師需要講多遍才有可能懂。傳統的教學中,老師只能顧及大多數中等學生,照顧不到特殊的學生。降低了課堂效率,也可以說浪費了某一部分學生的時間。

      由于期末考核采用的是紙質考試,只是從紙面上考核學生對C語言理論、編程方法的理解、掌握程度,更對學生的學習產生誤導。部分學生也只重視理論,不重視實際動手編程。他們只滿足于“紙上談兵”,不考慮結果。因此,實際應用時,對上機環境不熟悉、編寫的程序不能順利通過,導致很多學生高分低能,在解決實際問題時,茫然無措。

      2 機考及分層教學改革的探索

      計算機專業課程的特點是實踐性強,學生在掌握了基本語法后重點是上機實踐,即在計算機上解決實際問題,這里包括問題的分析與抽象、程序的編寫與調試。

      常言道:“實踐是檢驗真理的標準”。在學習C語言過程中,上機實踐是鞏固理論知識、增加理解力、提升編程能力的重要途徑。為了提高教學質量,讓學生真正打好專業基礎,授課教師在教學內容、教學方法、教學組織、考試方式等多方面上進行了調整。

      2.1 教學方法以及教學組織上的改革

      為了使教學效果更好,將兩個自然班作為一個授課班,教學內容統一要求。講授時,由淺入深、循序漸進。在語言的基礎上,重點放在程序設計的思想、方法、技巧的講解,結合典型例題,培養學生分析、設計、解決問題的能力。通過精心設計實驗題目、課后作業、調整考核比例、增加課后上機機時、多方位提供答疑指導等環節培養學生學習興趣,使學生重視上機編程。

      對學生作業題目進行精心設計,既覆蓋知識點,又有趣味性,每個題目都像在講一個故事,把要解決的問題融在故事中,學生在讀故事的同時,不自覺地就會去想解決辦法,增加了興趣,提高了自主性,也鍛煉了思維。

      調整平時考核內容。平時考核的環節包括:上機小測試、期中機考、上機作業、考勤,每一個環節的成績都會反映到平時成績中。平時成績的取得完全依賴自己的學習態度。

      增加課后上機機時。由于考核重點是對實際動手能力的考核,光靠課內安排的上機時間顯然不夠,所以需增加學生課外自主上機實驗時間,并配有指定人員輔導。

      多方位提供答疑指導。所有任課教師把答疑時間錯開,這樣每周學生可以有多次答疑時間,對比原來教師只給自己學生答疑的做法,學生增加了學習解疑的機會。

      2.2加強上機實驗過程控制,促進考試改革

      借助于“課程自動評測與抄襲檢測系統”,老師和學生有了C語言作業部署、學習、檢測的平臺。通過這個平臺,老師可以布置上機實驗、安排考試、檢查學生提交的作業。根據知識點,每章布置4-5道題,限定學生在規定時間內獨立提交。老師可以隨時查看學生提交的程序,及時與學生溝通、反饋。學生可以隨時把自己編寫的程序提交,系統對提交到服務器的程序自動判斷對錯,學生可以及時了解自己程序存在的問題,不斷進行修改,直到能夠順利通過所有測試。

      這一環節起到了鞏固課本知識、增加獨立思考、加強動手能力的作用。期末就是利用這個平臺進行全程兩個小時的考試,要求學生既有編程的能力,又有時間的緊迫感。

      加強過程考核,增加平時機考次數。為了緩解期末機考時的緊張情緒,之前會安排1-2次的上機考試,成績記入期評,其中期中考試的考試形式與期末一樣,為全程兩個小時的機考,隨機組卷。學生可以盡早了解考試模式,并更加重視對本門課程實際動手能力的訓練,學會調整心態。

      為了滿足不同層次學生的要求,在平臺上配備了大量不同難度的習題,不受提交時間的限制。學生可以根據自身需求,隨時編程測試。

      2.3分層教學,提升學習效率

      分層教學是根據學生不同基礎、不同學習需求而實施教學的一種手段。是在承認學生差異、考慮學生興趣的前提下,以發展的眼光看待學生,給每個學生提供符合他們發展的教學目標與方法,是同時提高所有學生能力的理想狀態。經過調研,從三個方面進行分層教學。

      1)學生分層。對學生能力考核的一個重要標準就是學生的學習成績,但是在學習這門課之初,沒有可依據的成績。分層安排在講完兩周課,即學完了簡單程序設計之后進行。學生根據自己當前對C語言的理解和接受程度,選擇不同層次。在分層教學的實施過程中,這樣的分層是暫時的、動態的。過一段時間,視學生的后期學習成績、學生的具體情況,可遞進或降層。這樣更有利于學生個性化發展。

      2)講課分層。對不同層次的學生,采取不同課堂。在講授編程思想、必備知識基礎上,對高層次學生,拓寬和加深問題的難度,做到拔尖提高;對普通學生,在達到大綱要求的同時,考慮他們的接受能力,適度增加和加深知識,做到穩步推進。

      3)實驗分層。練習是對所學知識的鞏固和消化。按照作業、實驗題目的難易,對不同層次的學生提出不同要求。對普通學生布置基礎題,進行強化訓練;對高層次學生,以綜合運用知識進行練習。要求學生多編程解決問題,以提高應用知識的能力。這樣使得不同層次的學生得到不同程度的提高。

      3 教學改革實踐效果

      實行考試改革后,學生的學習積極性有了明顯提高。由于考試時間的有限性,增加了學生的緊迫感、主動性,在程序編寫、調試程序的實際動手能力方面得到了重視并有所提高,為后續課程學習奠定了良好的基礎。經過分層教學,滿足了不同層次學生學習的需要,激勵了各層次學生朝著有利于自己的方向努力,有利于學生個性能力的張揚,有利于學生綜合素質的提高,更有利于優秀學生綜合能力的發揮、較低層次學生潛在能力的開發。

      3.1帶動學風,促進后續課程的學習

      大部分學生能夠按時到課,勤于思考,互相研究,答疑的同學增多了。改變了不良學風,營造了良好學習氛圍。由于課程期間比較重視學生結構化程序設計的方法,要求編寫程序之前理清解題思路、做好算法設計,經過訓練后,在后續的“程序設計專題訓練”中,面對稍難一些的問題,學生也能逐步找到解決辦法,編出程序,順利通過測試。在小學期“學術工程實踐”課程中,要求完成一個小型管理系統,有一定的難度。大部分學生能夠順利編寫由多個結構體、多個文件、幾十個函數組成的、2000-4000行代碼的程序,并調試成功,完成管理。

      3.2提升學生的程序設計能力和創新能力

      競賽是考核學生全面素質的一個平臺,它要求學生具有扎實的理論基礎、清晰的算法設計能力、嫻熟的編程能力、良好的心理素質和快速的臨場應變能力。

      隨著知識的積累,學生的能力和自信心不斷增強。學生們更加渴求知識,渴望展示自己,參加競賽的積極性提高了,人數也不斷增多。在大二階段,報名參加全國軟件設計大賽的人數由09級的16人次(占09級學生人數14.04%)、10級的33人次(占10級學生人數26.19%),增加到11級的66人次(占11級學生人數51.56%)。全國獲獎人數由09級的1人次(占09級學生人數0.88%),到10級的12人次(占10級學生人數9.52%),再到11級的17人次(占11級學生人數13.28%),獲獎人數同比增多。

      4 結論

      總之,學習“高級程序設計語言”不僅要使得學生在程序表達和設計上得到培養,更重要的是在掌握解決問題的思想、方法和手段的同時,實際動手編程能力有所提高,從而增長設計程序的能力。因而,將“C程序設計”課程的考試改為上機考試是很有益的,可以改變不良的學風,營造良好學習氛圍;可以加強學生對課程的重視,提高學生程序編寫、調試等實際動手能力,提升學生的程序設計能力和創新能力,為后續課程學習、為培養合格的專業人才奠定良好的基礎。

      對“C程序設計”課程實施分層次教學也是必要的,可以針對不同層次學生的需求給予相應的學習指導,以達到學生全面發展的教學目標;可以激發不同層次學生學習的欲望,向著更高更深的知識海洋探索;可以鞭策任課教師積極思考、合理取舍,做到充分了解學生、合理安排進度,能夠極大地提升老師的組織與應變能力。

      參考文獻:

      篇(6)

      傳統的教學以課程內容的講解為主,通過講解變量、循環、數組、指針等內容,并結合一定的教學案例來推進教學過程的實施。這種傳統的教學方法沒有考慮到本階段學生的特點,往往造成教學效果差,教學質量難以控制。C語言程序設計課程在大一新生中開設,許多學生缺乏程序的思維和一定的動手能力,學生難以跟上教學進度,造成一定數量的學生對學習語言失去興趣,從而影響整個專業課程的學習。

      1.2教學過程缺乏有效的互動

      C語言程序設計的教學過程中主要使用PPT來講解,案例程序也通過PPT展示,甚至包括程序運行結果也以截圖的形式在PPT中顯示。雖然在PPT中可以添加很多的動作,動態地標注、顯示程序的運行過程,但這種方法以投影為中心,缺少與學生交流的環節,加上程序類課程相對枯燥,以致學生難以集中精力做到全程聽課。

      1.3代碼編寫規范強調不夠

      編碼規范是軟件專業學生必須要牢記并遵守的,良好的編碼規范不僅能體現軟件從業人員的素質,而且使代碼有更好的可讀性,更容易被別人所理解和交流。該課程的講解主要以編寫簡單邏輯來解決一些日常問題、數學問題,編程的環節側重于算法的實現,往往忽略了編碼規范

      。1.4考試以筆試為主,難以檢驗學生的動手能力

      傳統的C語言程序設計課程考試以筆試為主,考查學生對C語言基本的語法、簡單邏輯編寫的掌握情況。這種考試機制脫離了程序語言的實現介質,即計算機。雖然在試卷中也可以用編程題目來考查學生的編程能力,但在紙上寫程序與在計算機上寫程序有本質的不同。在紙上寫程序只需要寫出大致的邏輯即可,而在計算機上寫程序不僅要寫出正確的代碼,而且需要調試和跟蹤代碼,最終保證程序的正確執行。因此,筆試并不能很好地檢驗學生的動手實踐能力。

      2教學改革措施

      2.1加強教學過程的質量控制

      C語言程序設計課程是一門實踐性強的課程,僅通過做一些常規練習無法達到教學質量監控的目的。為了更好地控制教學質量,需要從學生語法規則的掌握到動手編程這一系列環節進行掌握和跟蹤。為此,我們開發了一套在線作業系統用于教學質量的控制。⑴作業題庫的建設C語言程序設計的任課教師根據自己的經驗和理解來搜集和設計C語言題目,包括基礎知識的題目和編程實踐的題目。基礎知識的題目主要用于C語言知識點的訓練,包括填空題、選擇題、判斷題和程序閱讀題;編程實踐的題目主要用于編程能力的訓練,這類題目需要學生對問題進行正確分析、設計算法、編程并運行,最終得到結果。教師在給出題目時,需要提供測試數據和對應的結果。⑵作業的布置與批改教師可以根據每次課的教學大綱、課程內容,從作業題庫中選擇一些填空題、選擇題、程序閱讀題、編程題來建立課程作業供學生在課外完成。學生在規定的時間之內完成作業后提交作業,系統根據教師預先設定的答案進行自動批改,形成每個學生的作業記錄。如果學生在規定的時間之內沒有完成作業并提交則失去本次作業的記錄。教師通過查閱部分學生的解答來掌握學生對相關知識的掌握情況,特別是需要整理學生所犯的共性問題,并有針對性的開設習題課進行解答。⑶配套政策為了使學生重視平時作業的完成,課程的期末成績將考查平時作業的情況。如果學生沒有提交作業的次數在30%以上,則平時成績計0分,其他情況按照提交作業次數和作業得分根據一定的公式進行計算得到學生的平時成績。這種策略的主要目的在于督促學生跟著教學進度進行學習和訓練,不至于嚴重滯后于教學進度而失去學習的興趣,可有力地保證教學質量。

      2.2加強教學過程中的互動

      課堂教學應該在一定程度上脫離PPT的教學,這樣才可以調動學生的積極性。加強師生之間的互動可以結合本課程特點進行。在講解課程知識點后,配以適合的案例進行教學,這些案例都是需要編寫C語言程序來實現的。此時,編程實現的環節不要通過PPT展示,而要在教師的計算機上動手編寫并運行得到結果,這樣可以改變教學節奏,吸引學生的注意力。C語言課程案例程序的一大特點是代碼量少,一般在20~30行之間,適宜在課堂上完成。教師在編寫程序的過程中,可以向學生展示編程中需要注意的問題,同時,進一步講解C語言的語法和基本知識點。教師在編寫程序的過程中難免會犯小錯誤,或者是有針對性的故意犯一些學生經常犯的錯誤,在編程后的編譯運行時會有錯誤報出,這時對于提高師生交互是很好的機會。從學生的角度來說,他們的編程往往會有很多錯誤,編譯時會出現大量的錯誤提示。此時,學生可能就比較迷茫,不知道如何定位并解決錯誤。因此,當老師也出現錯誤,而且是學生經常遇到的錯誤時,學生往往是比較興奮的,希望能知道老師是如何處理錯誤的。從老師的角度來說,真實地反映程序編寫、編譯的過程,展示程序錯誤的發現、定位、解決的方法,能夠更快地提高學生的動手實踐能力。面對錯誤,教師還可以引導學生參與程序錯誤的解決,消除學生對程序錯誤的恐懼感。在解決程序錯誤時可以參考以下步驟。首先,教師要把所有錯誤信息讀出來給學生聽,因為一般編譯出來的錯誤是用英文寫的,而且有些單詞學生不熟悉,因此,老師需要指出錯誤是變量重定義、變量沒有定義、還是其他錯誤;然后,指出核心錯誤的位置,教師要告訴學生程序報出很多錯誤信息往往是由一個小錯誤導致的,因此,老師要指導學生學會確定引起其他錯誤的核心錯誤;最后,在源程序中找到錯誤的位置,修改錯誤并重新編譯,得出運算結果。這個錯誤處理過程是針對簡單語法錯誤的處理方法,如果程序中出現了邏輯錯誤,即程序編譯正確,但運行結果不是預期結果,此時,錯誤的處理方法更為復雜,可能需要重新檢查程序邏輯,并使用編譯環境進行程序中可疑變量的監視,通過觀察變量中的數值在程序運行過程的變化來確定錯誤。通過實地編寫程序并調試,發現和解決程序錯誤,最終得到正確的計算結果,不僅能使同學更好地掌握程序編寫的方法,而且還能更好地與學生進行互動,提高教學效果。

      2.3強調代碼規范

      有些老師在教學的過程別是演示程序時,注重于解決問題而忽視代碼規范,甚至是自己寫程序也是這樣,沒有代碼規范。雖然遵守代碼規范并不能改善程序的性能,但遵守代碼規范能夠使程序具有更好的可讀性、可維護性,是軟件代碼實施過程中軟件從業人員良好素質的重要體現。改善代碼規范可以從以下幾個方面進行。⑴適當的縮進每一行代碼不要頂格書寫,而要根據情況縮進。具有良好縮進格式的代碼不僅能少犯語法錯誤,還能夠使閱讀者快速掌握程序內容。⑵適當的空行函數與函數之間增加必要的空行,使得程序構成一目了然。⑶適當增加代碼注釋程序中函數的開頭最好加上注釋說明該函數的作用、參數的意義,在函數中重要邏輯的部分加入注釋說明該邏輯的主要思路、算法。⑷代碼塊要用花括號界定代碼塊盡量使用花括號來界定代碼范圍,即使代碼塊里只有一行代碼,這樣可以提高代碼的可閱讀性,防止閱讀者誤解程序。⑸變量和函數的命名盡量使用多個字母來命名變量和函數,使得程序閱讀者通過名稱即可大致了解變量的意義、函數的作用,提高程序的可讀性。通過編碼規范的強調和實施,使學生認識到軟件開發的專業素質,對于提高學生的專業素養具有潛移默化的作用。

      2.4上機考試

      上機考試采用在線考試的方式進行,考試環節包括如下幾個部分。⑴試題庫的建設C語言程序設計的任課教師負責組建上機試題庫,試題庫中的題目都是編程的題目,用于考核學生的編程能力。教師在組建試題庫時,標明每個試題的知識點和大致難度,并提供測試案例和對應的答案。題庫負責人負責查看、重新編輯每個題目,從題庫整體的角度更新每個試題的難度。⑵上機考試的實施為單次考試準備7個知識點和1個綜合知識點的題目,教師在考試之前為每個知識點選定難度相當的5個題目。每個學生登錄系統后,系統自動建立考卷,具體策略是從為每個知識點準備的5個題目中隨機選擇1題組成一個考卷,因此,該考卷包含8個題目,這8個考題要求學生在4小時內完成編程。考試時間一般定為上午8:00至中午12:00點。學生根據隨機組成的考卷題目進行解答,為每道題目編程求解,并在學生機上利用示例測試用例檢驗代碼的正確性。如果在本地沒有通過檢測,則進行邏輯檢查,修改程序;如果本地通過測試,學生需要將代碼提交到服務器。服務器接收到代碼后,自動調用教師提供的更多的測試用例來檢測程序運行結果是否與預先設置的結果匹配,進行代碼邏輯黑盒測試。如果全部通過,則說明學生的編程邏輯是正確的,此時將學生成績記錄中對應的題目標為通過,并回顯“通過”給學生,學生繼續做下一道題目;如果其中有的用例運行結果不正確,則返回“錯誤”給學生,學生可以接著做本道題目,也可以選做另外一道題目,同時,在學生成績記錄中對應的題目標為錯誤。教師在考試現場調取并查看所有學生成績記錄信息,如果發現異常信息,如在很短的時間內完成了過多的題目,則可能學生在作弊。此時,根據異常學生信息中的IP地址找到該學生,進行現場查證,如果確認為作弊則立即處理。如果學生正確完成了8道題中的5道題,則學生通過上機測試,否則,學生沒有通過上機測試。為了減輕學生的壓力,上機考試可以分兩次進行,如果第一次沒有通過上機考試,還可以組織學生進行第二次考試,取這兩次考試的較高分作為學生成績。

      篇(7)

      中圖分類號:TP312 文獻標識碼:A DoI: 10.3969/j.issn.1003-6970.2012.05.044

      The C Programming Language Teaching Reform and Practice

      waNG Zhong-ying

      (Computer science department of Shangluo College, Shangluo 726000, China)

      【Abstract】C language as human-computer interaction is an important tool, in the IT field is play a decisive role; at the same time, c language is normally It students high-level programming languages, their master degree directly affects the student program literacy and learning interest improve. according to the long term c language program design course teaching experience, combined with the new teaching environment, the paper points out that in the course of the reform in the teaching of some misunderstanding, in view of these problems and how to improve the effect of teaching put forward many suggestions.

      【Key words】c language programming design; teaching reform; algorithm

      0 引 言

      C語言程序設計課程是計算機科學與技術和軟件工程等IT類專業的專業必修課程,也是《數據結構》、《算法設計與分析》等其專業核心課程的先修課程。C語言程序設計的水平在很大程度上決定了學生專業基礎知識的掌握是否扎實,直接影響到后續課程的學習效果和專業興趣的培養。為了提高學生的程序設計素質,為后續專業課程的學習打下基礎,筆者結合自己長期C語言程序設計課程教學的體會,結合新的教學環境,指出了該門課程教學改革中的一些誤區,并對如何提高教學效果提出了許多可行的建議。

      1 C語言程序設計教學中的幾個誤區

      1.1 對C語言程序教學的重視程度降低

      許多人認為,JAVA、C#等目前行業內普遍采用的高級程序設計語言,相對來說簡單易學,源程序可讀性強,又有功能強大的集成編輯環境的支持,有利于讓學生迅速開發項目,而C語言程序語法復雜,調試困難,開發較大規模的應用程序比較麻煩,所以在人才培養的課程體系中,采用JAVA、C#等高級語言來代替傳統的C語言程序。筆者認為,這是一種急功近利的表現。首先是C語言程序的功能同樣強大,在較大規模的應用程序尤其是系統程序的開發中有出色的表現,具有易編寫程序操縱系統底層的優勢,在嵌入式編程中具有不可替代的地位。TIOBE近日公布的2012年4月份的編程語言排行榜中,C語言再次超越JAVA語言重新回到了編程語言的王者地位,這說明具有30多年歷史的C語言依然是歷久彌新[1]。

      1.1 教學學時過度精減

      在近幾年的高校專業教學改革中,許多院校對課程課時進行了精減。在這個過程中,我們發現有的學校缺乏科學規劃,存在許多不合理的地方,如對C語言程序設計課程的學時過分減少就是一個例子。這種現象不僅對提高學生能力的沒有起到積極作用,反而影響了學生專業基礎能力的培養。C語言程序設計是IT專業學生的第一門程序設計課程,不僅培養學生的對C語言本身的掌握,同時還需要培養學生的程序設計思維以及培養學生對IT行業的興趣。在這一階段,沒有老師充分的指導往往是不夠的。如果學個一知半解,會影響到后續課程如數據結構、操作系統等學習,進而失去IT行業的興趣。

      篇(8)

      中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2011)15-3610-02

      《C語言程序設計》是目前世界上十分流行、使用最為廣泛的高級程序設計語言,也是計算機軟、硬件相關專業的基礎課程;并且學生《C語言程序設計》能力的強弱,直接影響他們后續專業基礎課和專業課的學習。該課程在計算機教學中的重要性是不言而喻的。

      1 高職院校《C語言程序設計》課程教與學的現狀

      在從事計算機及相關專業基礎課的教學過程中,發現語言課是學生學得最差、老師教得最辛苦的一門課程。根據專業教學計劃,計算機應用、計算機網絡、應用電子等專業開設了《C語言程序設計》課程,一般設置在二年級。從課程設置的角度來說,經過知識的積累和思維的鍛煉,學生在這個階段應該具備了學習一門基礎語言課的能力。按正常教學規律來講,在教師與學生的共同努力下是可以學好這門課程的,但實際情況確不盡人意。從多年實際教學經歷來看,制約因素主要有兩點:一是學生的數學基礎差,而教材編排和例題分析與數學知識聯系過于緊密,導致學生覺得難學;二是因為計算機編程使用英文,一些學生因英語學習的失敗心理,覺得計算機語言是門高深莫測的課程,還沒有上課就認為難學,而職業院校的部分學生學習不刻苦的現象,進一步導致教學過程中存在更多的障礙。針對這些情況,我認為要學好《C語言程序設計》課程,克服這兩個障礙勢在必然。

      2 教師如何上好《C語言程序設計》課程

      2.1 仔細領會教學大綱,全面深入教材改革

      教師深入分析教學大綱,在全面了解學生的數學基礎知識狀況的前提下,根據大綱制定好教學計劃。將教材中涉及到學生未掌握的數學知識方面的例題進行更換,避免因數學知識問題形成教學障礙。例如在講多分支條件語句的應用中,教材普遍采用一元二次方程求解為例來說明,但一元二次方程的求解對于有些學生來說,虛數是一個知識障礙,可以想象得到,他們會學得一頭霧水,教學效果自然就差。還有“輸入三角形的三條邊長,求三角形的面積。”的例題中,先要判斷三條邊是否能夠組成三角形,再利用海輪公式計算面積,但海輪公式大部分學生都不清楚。這些例題就形成一個本末倒置的結果,為什么不選擇其它的例題來分析呢?在后續的例題中,“根據成績分數,輸出等級。”,問題適當地簡化,效果就很不錯,還可以和后續的SWITCH語句結合起來教學。選取的例題除了有代表性外,涉及到的知識點也不可忽視,要記住,我們是在學習《C語言程序設計》,不是在學習數學,主次要分明。

      2.2 精心準備,加強師生互動

      課前要充分備課,準備好教學的內容和學生的練習,做到有的放矢。例如在講到“自加++”與“自減--”運算符時,我們著重講自加。例題為:int a,b=5;分析:a=++b;a=b++;a=++b++;運算后a,b的值。經過分析后,讓學生掌握其規律:運算符在變量前是先做自加操作,再取其值完成后續運算;而運算符在變量后面則是先取其值進行運算,再完成自加操作。得出這個結論后,提示學生自減的運算也是相似的,要求學生分析將上述例題的自加改為自減后a,b的值,這樣學生學習起來針對性就比較強。為什么要設置上面三個例題呢,上過《C語言程序設計》課程的教師自然知道每道題的代表性。最后可以用綜合題加強這兩個運算符的運用,采用如下練習:int a=4,b=5;分析a=++a-b;b=--a++-b++;運算后a,b的值。學生完成這道綜合題后,對自加與自減的運算及使用自然清晰明了。

      2.3 充分利用學生的成功心理,培養學習興趣

      我們曾經訓練一些學生參加全市編程比賽(用Visual FoxPro編寫),開始學生也是基本一無所知,我們只好從基本函數、語句開始上課。經歷了一個多月時間,他們沒有獨立地完成任何一個程序的編寫。后來不再給他們任何提示,而是讓他們自己思考,有時幾天后才給他們分析。其中有3名同學,經過了一周時間的查資料、上機調試,終于完成了一個圖書管理系統的基本模塊,并找到了成功感。自從那以后,他們能非常深入的分析我們布置的練習并經過反復地調試,找到答案,訓練效果得到很大地提高。從中我們看到創造一個成功的心理,學生學習的興趣就會自然提高,學習起來就會積極主動,效果當然比填鴨式教學好得多。

      在平時的教學中,我們也應重視這一點,特別是對學習積極性較高的學生更是如此,今年的《C語言程序設計》課程實習中,這一點得到了充分體現。很多練習我都不先分析,而是讓他們自己獨立分析、調試,最后才小結。大部分學生兩周實習完成后,總結說:“在這兩周的實習中,所學到的知識比前半學期學到的知識還多”。其實,我想并不是他們在這個過程中學到了很多知識,關鍵是他們經過獨立地思考分析,完成了程序的編寫,獲得了充分的成功感!有了成功感,就有了學習興趣,興趣是最好的老師。學生在學習中能獲得快樂,學習過程自然就會輕松很多。

      2.4 讓學生學以致用,轉變學習動機

      在我初次上《C語言程序設計》這門課程時,有一名學生問:學了這門課有什么用?當時問得我張目結舌、啞口無言,不知如何回答他才好。后來想:我們的學生是職教性質的,所以對他們說學了這門課你可以去當程序員,同時為以后學習其他語言課打下基礎等,這些對學生來說有點和實際不符。教他們這門課,應該讓學生掌握一些解決實際問題的能力,才會促進他們努力學習,毫無目的地學習自然沒動力。認識到這個問題的嚴重性后,在后面的教學中,我把平時遇到的一些問題結合起來進行教學,讓他們知道掌握某些知識就能解決相關的一些問題,讓他們在學習過程中覺得學習與實際生活很近,這樣對《C語言程序設計》課程的認識就沒那么抽象了。如在講數組時,就以統計期中成績情況為例,讓他們完成:每個學生的總分、平均分的計算、排名情況;及每門課程的總分、平均分、最高分、最低分、合格率、優秀率的計算和成績段分析,這既學好了數組的知識,還充分運用了前面章節的一些相關內容,同時,學習該課程的積極性也調動起來了。

      2.5 讓學生克服畏難心理,理性認識計算機編程語言

      我們的學生大多在學習前就有畏難的情緒,覺得《C語言程序設計》課程難學、學不會,造成這種情況主要是對計算機編程語言不了解。另外就是有些學生英語學得差,看到計算機編程使用英文,就未學先棄了。其實學習語言并沒有他們想象的那么難,英語差對學習計算機語言影響不大。比如學習該課程,真正要記的關鍵字只有32個,語法也不復雜,只要大家不帶著畏難的心理,一定能學好的。作為《C語言程序設計》任課教師,在上課前,做好學生的畏難心理工作,會在今后的教學工作中起到事半功倍的效果。

      2.6 從例題中提取精華,讓學生掌握一些代表性的編程方法

      這一點其實和學習數學一樣,不管是教材中的例題還是教師另外安排的練習,一般來說都比較具有代表性,代表了某類問題的解決辦法。因此,學生在學習中不要僅僅滿足于理解或掌握這些題目的解決方法,還要進一步將這些具有代表性的解決辦法提煉出來,為解決相似問題提供參考。比如說在講數組排序方法的應用時,常會講“冒泡法”和“選擇法”兩種排序方法,其實,作為一般的應用,不管是哪種排序方法都比較好,只要是排序的問題,使用其中的一種(或加以變換)都能解決問題的。

      3 教師如何引導學生學好《C語言程序設計》課程

      教學是一個相互配合的過程,涉及到教師如何教、學生如何學的問題,這兩個環節相輔相成、缺一不可。學生如何學也起著舉足輕重的作用,而學生如何學與教師的正確引導是密不可分的,下面就如何引導的問題談幾點看法。

      3.1 強調該課程前四章的重要性,要打好扎實的基礎

      計算機語言的學習,真正要記住的知識不多。如該課程,只要學好前四章:標識符、運算符與表達式、順序結構程序設計、程序調試方法等,并打下扎實的基礎,后面的學習就會輕松得多。我們在教學中經常遇到這種情況,學到后面,有些學生連printf()、scanf()、putchar()、getchar()等常用函數的使用都忘了,這些最基本的知識都不能熟練掌握,又如何學習后面的內容呢?

      3.2 讓學生改變學習方式,為學生多動腦、多分析、多練習提供條件

      據了解,有些學生在初中或高中的學習過程中,都存在著較多填鴨式的教學模式,造成學生在學習過程中不靈活、不動腦、不善于分析問題,只會生搬硬套、死記硬背的方法學習,這種情況對于學習計算機來說是一個最大的障礙。說實在的,如果想要學好、用好計算機,沒有一定的悟性,并且不能融會貫通、舉一反三是不行的。因此,在學習中不要滿足于教師教了多少,而應該多動腦筋,對遇到的問題多分析、多思考,在計算機上多練習、多操作,還可以適當的看些相關的課外書,開闊視野,這樣才會學好、運用好計算機語言。就像前面說到的那些學生,開始他們總是滿足于教師教了他們多少;后來布置的練習,如果是經過教師分析后他們才做出來的,他們總是覺得沒有成就感。因為填鴨式的教學,學生在學習中嘗試不到學習的成功與快樂,自然就學不好。為此,在講到具體程序設計后,每堂課上完后要布置兩三道課后習題沒有的題目,給學生多寫、多編、多讀、多看程序提供機會。

      3.3 引導學生加強數學的學習,努力拓寬數學知識面

      當然,如果要學得更深入一些,要求再高一些,扎實的數學基礎知識對于學習編程無疑是必要的。在后續的編程學習中,對算法等知識的理解與掌握要求有相當的數學知識。因此,要求同學們要努力學好數學。比如在講二維數組的應用時,如果學生提前了解線性代數中行列式和矩陣的相關知識,教學效果肯定顯著。

      篇(9)

      C語言程序設計課程是計算機和軟件專業學生接觸的第一門專業基礎課,也是許多高等院校非計算機專業學生的一門必修公共基礎課,是高等院校的重點課程之一。它的應用領域非常廣泛,既可以編寫系統軟件,又可以根據用戶需要編寫應用軟件。C語言具有較強的邏輯性,處理問題周密、嚴謹。學生一旦掌握了C語言,就可以較為輕松地學習其他任何一種程序設計語言。因此,C語言成為學生學習程序設計的入門課程,而C語言程序設計是一門實踐性很強的課程,實驗教學是該課程不可缺少的重要組成部分。

      C語言的數據類型較多、表達式豐富、語法結構復雜,它也是教師難教、學生難學的課程之一。由于種種原因,傳統的實驗教學多是學生按實驗教材和教師指導的程序一步一步完成,學生雖然有一定收獲,但是也束縛了手腳。學生完全是被動的接受者,沒有充分發揮主體作用[1]。因此,我們需要更新理念,在實驗教學環節中不斷探索,用實驗教學拓廣課堂教學,使學生真正領會并掌握程序設計的基本思想和基本要領。實踐教學是大學本科教學的重要組成部分,應不斷探索其新的教學模式和教學方法,以提高大學生的綜合素質和創新能力[2]。

      1加大實驗教學管理力度

      為了培養學生應用所學知識解決實際問題的能力,樹立學生的團隊合作精神,鍛煉學生的邏輯思維能力和創新思維能力,我們加大了實驗教學的管理力度,組建了一支由6名教師和2名博士生組成的結構完整的實驗指導梯隊,由4名主講過C語言程序設計課程的老師主要負責解答專業方面的問題,并對學生加以引導,重點培養學生的自主學習能力和創新意識;兩名實驗室的指導教師在開發環境的應用方面給學生提供強有力的支撐;兩名博士生發揮其編程能力強、掌握新技術等特長,在算法的程序實現上,給予學生更多的指導。

      實驗教師的水平與修養對學生的影響是巨大的,所以實驗教師應不斷提高自身理論與實踐水平,鉆研業務。在每次實驗課開始前,我院擔任實驗指導的老師們都集中到一起,從實驗內容的具體安排到實驗中學生會遇到的問題等,都會進行討論。在管理上,我們更加強調了分工責任制,每個老師負責哪個班的哪些同學,都做了明確規定,從答疑到驗收,都由這個老師主要負責。有了這樣一支實驗指導梯隊和相應的管理策略,就為完成實驗教學任務、達到良好的實驗效果提供了必要的保證。

      2探索實驗教學方法

      C語言程序設計實踐性非常強,學生只有通過實踐才能真正理解其含義,真正掌握其本質并學會編程。盡管學生學習C語言有不少困難,但興趣是最好的老師,要最大限度地激發學生的學習興趣。有了興趣,學生就能積極地思考,大膽地探索,變被動接受為主動思考。因此,實驗教學總的思路就是要以激發學生興趣為主線,充分發揮學生的積極性和創造性。

      2.1抓好實驗預習工作,培養學生良好的學習習慣

      每次上機實驗之前,就要布置好上機任務,要求每位同學做好預習,寫出上機實驗的內容、編好程序、準備好調試所需的數據,并進行初步的結果分析,對每個題目做到心中有數,避免學生上機實驗時現看教材、現編程序的現象。長期如此,便可養成良好的學習習慣,學習效果自然就有很大的提高。

      例如,在選擇結構編程練習實驗前,我們給學生布置了這樣一個實驗題目,編程設計一個簡單的計算器程序,要求根據用戶從鍵盤輸入的表達式:

      操作數1運算符op操作數2

      來計算表達式的值。指定的運算符為加(+)、減(-)、乘(*)、除(/)[3]。這道題學生拿過來一看非常簡單,只是簡單的輸入與輸出與條件判斷。

      有的同學定義了兩個float型變量a、b來分別代表兩個操作數,兩個char型變量c、answer來分別代表運算符和答案。用scanf函數讀入數據:

      scanf("%f%c%f",&a,&c,&b);

      學生在程序編譯通過后發現并沒有得到預想的結果,程序好象“提前”結束了,而且編譯沒有問題,錯誤不易被檢查出來。學生這時就會產生好奇,得不到正確結果的原因是什么?為什么有的同學的程序看起來與自己的完全相同卻能得到正確結果?

      經過啟發研究,通過跟蹤變量發現,發現是scanf函數讀取緩沖區中數據的問題。學生在輸入運算符時為了與兩個操作數相隔,兩側都用了空格。所有的scanf語句都執行了,并沒有提前結束。只不過有的scanf讀取到了空格符而已。學生恍然大悟:原來看似簡單的問題實際上并不一定那么簡單。這樣在實驗課中,學生帶著問題去修改自己所編寫的程序,觀察修改后的結果,實際上就是了解改動部分在整個程序中所起的作用,這種作用的認識和理解不是通過說教得來的,而是他們親身體驗的,學生對它的理解、記憶就要深刻得多,同時還體會到實驗預習的重要性。

      2.2鍛煉學生發現問題、解決問題的能力

      在每次實驗課開始時,實驗教師對上一次主講教師講課的內容作簡要回顧,對本次實驗的重點、難點以及一些基本算法、編程思路、解題技巧進行必要的分析和講解,讓學生對本次實驗的大致思路和目的心中有數。教師主要起引導的作用,實驗前的講解以重點、難點和注意事項為主,不應面面俱到,可以先給出一些問題,讓學生帶著問題去做、去觀察、去思考。實驗中,應以學生為主體,使學生成為真正的主人。

      有些問題看似簡單,實則包含著很多內容,再簡單的程序都要結合語言的自身特點,以一種最優化的結構去表達,不能忽視任何小問題。比如有這樣一個程序:用近似公式

      e=1+1/1!+1/2!+1/3!+……+1/n!

      求自然對數的底e的值,取n為10(n的值越大越接近e的真值)[4]。

      #include

      main()

      {

      int n;

      float e,p;

      for (n=1;n

      {

      p=p*n;

      e=e+1.0/p;

      }

      printf ("e=%10.7f\n",e);

      }

      對于初學者來說,寫出這樣的程序還是不錯的,無論從語法上還是語義上都沒有錯,可是上機運行時就會發現結果為2.919978×1039!很明顯這是錯誤的,大家都知道e的近似值是2.718。

      通過上機調試,學生會發現:只是因為變量未初始化,就會給結果帶來這么大的偏差,從而深刻體會到使用未初始化的變量有多么危險。這類細節問題還有很多,只看書是體會不到的,只有通過自己動手動腦,才能積累實踐經驗,真正提高。因為編譯通過,不等于程序正確;一種輸入正確,不等于所有的輸入都正確;一次運行正確,不等于次次運行都正確。程序總會出一些莫名其妙的錯誤,想解決這些錯誤,唯一的手段就是動手調試(Debug)[5]。同學們多動手,不僅可以發現程序中存在的問題,同時也可以充分地感受到自己分析問題、解決問題的樂趣。

      2.3培養學生創新精神,向研究型、個性化方向發展

      在具體指導實驗的時候,教師要由以往扮演的主導者、支配者轉向指導者、欣賞者,由臺前退向幕后,由顯性的中心地位退向一個隱性的指導地位,實現指導方式的轉變,培養學生的創新精神、研究能力。對大部分學生,應避免直接回答他們提出的問題,而是作出必要的提示,引導他們去查閱教材和筆記,認真思考與分析,找出錯誤的原因,自己解決問題。提倡創新、個性化,同一問題可讓學生尋找不同的解決方案。如在講到循環時的猴子吃桃問題,猴子第一天摘下若干只桃子,當即吃了一半零一個,第二天又吃了剩余桃子的一半零一個,以后每天都吃前一天剩余桃子的一半零一個,到第十天想吃時,發現只剩下一個桃子了,求第一天猴子共摘了多少桃子[6]。有的同學用循環來解決此問題,而有的同學用遞歸的方法解決,讓學生比較各個方案的優劣,好的解決方案向更多的學生推廣,從而使每位同學的創新思維大大加強。

      創新人才的培養,重在創新能力的培養。這種實驗教學方式,給了同學更大的創造空間。

      3改革課程考核方式

      網絡的應用給我們的實驗教學提供了很好的平臺。比如我院有課程網站,包含全校的計算機類教學。以C語言程序設計網站為例,其中包含講義、實驗指導書、教學課件,還包含自學需要的素材庫、試題庫以及考試系統等豐富的教學資源和軟件[7-8],學生還可以在上面提交作業、討論問題。它們自成體系又相互關聯,學生對課程的高層次需求在課程網站上得到極大的補充,滿足了各專業不同層次學生的需求。

      目前很多高等院校C語言程序設計課程學習成績的評定,僅以期末一張考試卷的好壞而定,這使得很多學生不重視實驗課,認為實驗課上的好與不好對成績影響不大,很多學生重理論、輕實驗。我院對考試進行大膽的改革,采用自主研發的“機考系統”來考核學生,所有的考試都在計算機上進行,學生答完試卷,馬上能看到自己的考試成績,并能看到細節部分:即在哪個位置丟分了。教師從最初上課時就明確告訴學生這種考核方式,使學生從思想上重視實驗;每次上機實驗也讓學生在機考系統的環境下提交程序,作為平時實驗的成績,訓練學生的編程速度,鍛煉學生在指定時間內完成實驗題的能力,培養、提高學生學習的自覺性、實踐意識及編程能力。

      4結語

      幾年來,為上好C語言上機實驗課,很多教師不斷探索,想方設法讓學生從枯燥的語言學習中解放出來。學生通過實驗進一步理解了知識,更加直接簡便地掌握了課程的重點、難點,實驗教學質量得到很大提高。

      參考文獻:

      [1] 周國安. 改革實驗教學 加強科學實驗能力培養[J]. 實驗室科學,2006(1):28-29.

      [2] 葉楓. 深化實驗教學改革,不斷培養創新人才[J]. 實驗室研究與探索,2008,27(10):103-105.

      [3] 蘇曉紅,孫志崗. C語言大學實用教程學習指導[M]. 北京:電子工業出版社,2007:168-168.

      [4] 段興. C語言實用程序設計100例[M]. 北京:人民郵電出版社,2002:267-268.

      [5] 蘇曉紅,陳惠鵬,孫志崗,等. C語言大學實用教程[M]. 北京:電子工業出版社,2004:174-174.

      [6] 譚浩強. C程序設計[M]. 2版. 北京:清華大學出版社,2002:120-120.

      [7]國家級精品課程,教育部-微軟精品課程,黑龍江省精品課程,國家教育部雙語教學示范課程網站[EB/OL]. [2010-06-12] //elite/.

      [8] 樂學網C語言程序設計[EB/OL]. [2010-06-12]. /course/view.php?id=8.

      C Programming Language Experimental Teaching and Practice

      HAO Hui-xin, LI Xiu-kun, XIA Qing-quan

      篇(10)

      關鍵詞:C語言;程序設計;教學內容;教學角度

      中圖分類號:G64 文獻標識碼:A

      1教學現狀

      在高等學校的本科教育中,“C語言程序設計”幾乎成了所有專業的必開課程,從計算機科學與技術、軟件工程、網絡工程等相關專業,到電子信息類理工科各專業,乃至理工科院校的所有非計算機專業,有的是專業基礎課,有的是公共必修基礎課,有的是“非計算機專業的計算機基礎課”。只是課程名稍有差異,常見的有“C語言程序設計”、“高級語言程序設計”、“C語言”、“C程序設計”、“結構化程序設計”等。無論叫什么樣的課程名,也無論是哪類專業,其課程的教學要求和教材選用卻無太大差別,只是課時分配差異較大。

      從網絡調查的16所不同類型高校的“C語言程序設計”教學大綱看,普遍都包含“通過本課程的學習,使學生了解有關程序設計的基本概念、術語及C語言的特點,掌握C語言基本數據類型、語法規則、程序控制結構、常用的標準庫函數,培養學生的程序設計技能,初步積累編程經驗”的教學基本要求;約百分之八十左右的“C語言程序設計”課程都選用由譚浩強主編、清華大學出版社出版的“C程序設計”作為主教材;課時分配從30~108課時不等,其中80課時以上的多為應用型本科院校的計算機相關專業以及綜合性大學的非計算機專業,理論課時與實驗課時的比例一般為1:1到1:1.2。與此同時,其他專業基礎課(如計算機組成原理、操作系統、數據結構等)的課時一般為54課時,最多不超過72學時。相比之下,“C語言程序設計”所占課時是其他專業基礎課的1.5倍至2倍。

      從教學目的看,非計算機專業的“C語言程序設計”課程主要目的是“掌握語法規則和程序結構,具備一定的程序設計能力”,而計算機相關專業的“C語言程序設計”課的教學目的則要分為三個層次,一是使學生全面理解計算機程序設計語言的基本內容和結構;二是通過算法掌握程序設計的基本方法和步驟,并具備一定的程序設計能力;三是為后續課程的算法描述和其他程序設計語言的學習奠定基礎。

      2教學誤區

      從以上的教學現狀(特別是課時分配)看,長期以來,“C語言程序設計”的課程教學存在“教學內容背離教學要求和教學目的”的誤區,主要表現在教材誤區、講授誤區和考核誤區三個方面。

      2.1教材誤區

      國內高校的“C語言程序設計”課大多選用譚浩強主編、清華大學出版社出版的“C程序設計”[1]為主教材,目前使用的是2005年7月修訂出版的第三版,教材共363頁,主體內容分為14章,其中,第3章的數據類型與表達式占用30頁,第4章的格式輸入輸出占用12頁,前9章共占用218頁,后5章共占用145頁。占用如此大篇幅的原因是教材中除了介紹相關語法格式外,還增加了相當多“特殊格式”和“特殊情況”的解釋和說明,因此,該教材的最大優點就是“內容詳盡、解釋清晰”。然而,對于初學者來說,學習計算機程序設計語言就是為了“為計算機描述求解問題的過程”,過于詳細但又遠離現實問題的“特殊格式”和“特殊情況”的解釋,使得學習內容復雜化,增加了程序設計語言學習的難度,誤導了學習者的學習重點,由此也賦予了該教材無法掩飾的缺點,那就是教材編寫的指導思想和教材內容的組織脫離了高校各專業“C語言程序設計”課程的教學目標,過分強調語法細節而忽略了程序設計語言的“正向表達能力”的應用,過分強調“語言的靈活性”而導致教材主體內容的“復雜化”,從而誤導“C語言程序設計”課程的教學內容朝著“重語法學習、輕算法描述”的“語言研究”方向發展。

      2.2講授誤區

      由于教材內容的“復雜”,課堂講授自然需要較多課時,教學重點當然也放在了“語法研究”上。從網上下載的“C程序設計(第三版)”的配套教學課件以及有關院校的“C語言程序設計”教學課件的內容組織上可以清楚的給出以上判斷。“語法研究”型的課堂講授,更加放大了教材對“C語言程序設計”課程內容的“扭曲”程度,給學生提供了錯誤的程序設計語言學習方法,把簡單問題復雜化,更為嚴重的是,挫傷了學生學習計算機程序設計語言的興趣和積極性,把本應“主動學習”的課程成引入了“被動學習”的歧途,直接導致“懂語法、會做題,但不會編程序”的教學后果。

      2.3考核誤區

      多年來,“C語言程序設計”的主體考試內容就是“語法”,無論是選擇題、填空題還是程序閱讀題,大多都無法逃脫“語法”的束縛。考試方式以筆試為主。這在某種程度上肯定了“語言研究”的教學角度,促使“C語言程序設計”的教學重點更向“語法研究”的方向傾斜,最終誤入“增加課時,強化語法,還是不會編程序”的怪圈。

      3應有的教學角度

      按照網上調查的各專業教學大綱中“培養具有一定程序設計能力”的教學目的,“C語言程序設計”課程的教學落腳點應該更確切的理解為培養“能用程序設計語言描述求解問題過程”的一般程序設計者,而不是造就“全面掌握程序設計語言語法、能設計高效、難懂程序”的程序設計語言方面的“作家”。因此,“C語言程序設計”課程教學相當于自然語言中的“基本語言能力”教學,而不是“語言研究”或“高級寫作”能力培養。

      3.1自然語言與計算機程序設計語言

      計算機程序設計語言是用人和計算機都能識別的方式描述計算機求解問題過程的過程描述語言,它具有和人所使用的自然語言相同或相似的組成和結構特點,對于已經掌握了至少一門自然語言(比如漢語或英語)并具備一定文化程度的人來說,學習一種計算機程序設計語言并非難事。自然語言的基本組成包括符號集合、字、詞、句、數據及其運算規則等基本要素,學習過程包括認識符號、發音、識字、組詞、學語法并造句、學文法并寫短文、練習寫文章等基本階段,在具備了基本的語言能力之后,擴充詞匯量和提高寫作能力將成為終身學習的基本內容。按照自然語言的基本組成和學習過程,也可將計算機程序設計語言的基本組成歸納為字符集、標識符(常量、變量、保留字等)、數據類型、運算符、表達式、語句、程序格式等基本要素,其中,字符集和數據類型是定義程序設計語言的基礎,字符按一定規則組成標識符,用來充當常量名、變量名或其他標識,在自然語言中被人們公認的特殊標識符被賦予特定的語言含義,專門為語言系統所用(用戶不得再次定義其意義),稱為保留字;字符集中的特殊符號(如+、-、*、/)被賦予特定的運算意義(如加、減、乘、除)稱為運算符;不同數據類型的常量、變量用運算符按一定規則連接起來組成的式子就構成表達式;將特定的保留字與表達式等語言要素按照語法規則組合起來就形成相應的語句;將語句按照要描述的求解問題的邏輯順序排列起來,就構成了某種程序設計語言求解特定問題的一段程序。

      3.2C語言的特殊性

      一方面,C語言是程序設計語言的一種,具備一般程序設計語言的基本組成要素和結構特點。另一方面,C語言能成為面向過程的結構化程序設計語言的代表,也有其自身的特殊性。首先,C語言的數據類型極為豐富。除了基本數據類型外,還有構造類型、指針類型、空類型和用戶自定義類型,其中,構造類型包括數組、結構體(struct)、共用體(union)和枚舉類型(enum)等四種數據結構。其次,C語言具有位操作能力。除了能夠對各類變量進行操作外,C語言還具備“按位”進行邏輯“與”、“或”、“非”、“異或”運算和“左”、“右”移位運算,這使得C語言具備了更強的系統開發能力。第三,C語言具有顯著的結構化程序設計能力,并通過完整的函數定義來實現。第四,C語言的最大特點就是“語法限制不嚴,解釋靈活”。第五,C語言允許直接訪問物理地址,可直接對硬件端口進行操作。第六,C語言沒有輸入/輸出語句,信息輸入/輸出功能由標準函數庫中相應的I/O函數來完成。

      C語言的這些特殊性,決定了C語言的教、學過程不同于其他程序設計語言的教學過程。

      3.3C語言的教學角度

      根據一般程序設計語言的基本組成與結構特點,結合C語言的特殊性,“C語言程序設計”課程的教學角度應該是:從介紹程序設計語言的基本概念入手,重點介紹語言的“正

      向”設計功能而非“特殊格式”或“特殊語法”說明,側重學生的程序閱讀和程序設計能力培養,從教學內容的廣度和深度兩個方面,恰當把握教學角度。

      “C語言程序設計”課程的內容可分為三個基本模塊,教學過程從第一個模塊切入,逐漸擴展到第二和第三個模塊。第一個模塊可稱為“程序設計語言公共模塊”,主要包括程序設計語言的基本概念、程序設計語言的基本要素(字符集、標識符、常量變量以及保留字、基本數據類型、運算符、表達式、語句與控制結構、程序結構以及程序書寫規范等)以及輸入/輸出格式等內容;第二個模塊是C語言的主體,主要包括函數、數組、指針、文件等;第三個模塊是高級編程內容,主要包括結構體(struct)、共用體(union)、枚舉類型(enum)以及用戶自定義類型等。

      在教學深度方面,各模塊的教學重點應放在“規范的語法描述和直觀易懂而且正確的語義表述上”,避免涉及各種過細的“不符合人類閱讀習慣”的語義描述,暫時避開“特殊格式”或“特殊情況”的糾纏,擺脫“研究語法”的錯誤向導。在此基礎上,第一模塊的教學可與自然語言相比對,通過學生已有的自然語言學習經驗和語言要素,使學生快速建立程序設計語言的基本概念,正確理解程序設計語言的基本要素及其關系,掌握基本語法和程序基本控制結構(順序、選擇、循環),并通過算法歸納求解問題的過程,正確理解算法不同描述方式(自然語言、傳統流程圖、N-S流程圖、偽代碼、程序設計語言)的作用和差異,特別是從“問題”到“程序”的漸進轉化過程,從而培養學生的基本程序設計能力。通過第二模塊的教學,使學生明確函數、數組、指針、文件等概念和作用,掌握它們的定義和引用方法,能進行相應數據類型的編程,進而掌握用函數定義的結構化模塊程序設計的方法;通過第三個模塊的教學,將程序的數據處理能力擴展到結構體、共用體、枚舉類型以及用戶自定義類型等復雜數據類型的處理上來,通過恰當的例子應用這些數據類型,向學生展示C語言強有力的數據表示和處理能力。

      另外,可以將C語言中的“語法靈活性”和不同部分的各種“特殊情況”分類總結,歸納整理成“語言參考手冊”等形式,以附錄的形式提供給學生,以便需要時“備查”。這樣既可節省教學課時,又可向學生提供學習語言的主動權。

      3.4教學策略和方法

      “C語言程序設計”屬語言類課程,教學過程充滿了逐步完善和熟練的基本特點,因此,從教學安排的策略上要分重點、分階段逐步進行,每個階段的教學方法應該采用建立在一定基礎上的有重點的“部分教學法”,以核心內容為基礎,向外逐漸延伸,部分學習,漸進掌握。盡可能避免不分主次、不論難易、不顧急緩,盲目一次性掃清各類知識點的“地毯式”教授方法或學習方法,同時強調自學和上機驗證,強化在特定環境下(如Turbo C++ 3.0)的程序設計訓練,做到“精講多練[2]”,從小程序練起,逐漸過渡到求解較大或實際問題的程序設計上來。

      4結束語

      從目前的教學現狀看,無論是計算機相關專業,還是理工科的電子信息類專業,乃至綜合性大學的非計算機專業,“C語言程序設計”的課程教學均占有重要的教學地位,在全面提高教學質量和教學效率的今天,不同類型專業結合自身優勢和程序設計語言類課程的特點,選擇合適的角度組織和實施“C語言程序設計”課程的教學活動非常重要,而且很有必要。筆者的教學實踐證明,避開“語法研究”的程序設計教學不僅可減少課時,更可提高學生利用程序設計語言“表述求解問題過程”的能力。

      篇(11)

      中圖分類號:G434 文獻標識碼:A 文章編號:16727800(2012)011016703

      作者簡介:溫菊屏(1979-),女,碩士,佛山科學技術學院電子與信息工程學院講師,研究方向為數據挖掘、信息安全。

      0 引言

      《C語言程序設計》課程是大學計算機專業及理工類非計算機專業一門重要的公共基礎課程,它不僅是其它高級編程語言的基礎,而且通過這門課的學習可以掌握程序設計的思想。該門課程具有較強的理論性和實踐性,學好這門課程將為后續專業課程的學習打下扎實的理論和實踐基礎。學生普遍反應,C語言課程內容繁多,雖然感覺課堂上基本聽懂教學內容,但上機實驗也常常顯得力不從心,課堂和上機嚴重脫節。值得一線教師思考的是程序設計類課程上機實驗的重要性絲毫不亞于課堂教學,這是鞏固和發展課堂知識十分重要的一環,在抓課堂教學質量的同時,要切實重視實驗教學環節。因此,必須認真思考這門課程實驗環節存在的種種問題,找到解決問題的辦法,切實提高實驗教學的效果。

      1 實驗教學存在的問題

      1.1 實驗課效率低下

      在以往上機實驗課上,有相當一部分學生事先沒有預習實驗內容,坐在電腦前看教材、看實驗指導書,而不是打開電腦動手編寫程序,導致上機實驗課效率十分低下,根本無法完成實驗任務。

      1.2 過度依賴老師解決問題

      很大一部分學生在上機調試程序時,不會根據提示的編譯錯誤找到錯誤所在,一味依賴教師把錯誤指出加以改正,造成學生發現、解決問題的能力沒有得到鍛煉與提高。

      1.3 實驗素材有待完善

      通過上機實驗環節,可以加深學生對講授內容的理解,尤其是一些繁瑣、枯燥的語法知識,可以通過上機實驗加以鞏固。因此,上機實驗的素材和實驗內容安排是否合理顯得尤為重要。以往使用的實驗教材是和教材配套的實驗指導書,實驗項目基本上是教材每章后面的程序編寫題,每個程序代碼都可以在實驗指導書中找到答案,學生只需要把書中的源程序代碼輸入計算機,進行一些簡單的調試工作。這樣一來,學生只能依葫蘆畫瓢,無法很好地掌握所學知識點,學生喪失獨立思考和創新的能力。

      1.4 學生自我檢測和老師測評環節缺失

      學好C語言這門課程,僅靠課堂和上機實驗的有限時間是不夠的,需要學生課后花很多時間上機實踐。以往學生課后只能依靠教材、實驗指導書和課件復習所學知識點,學習資源匱乏,并且學生無法對自己知識點的掌握情況做評估,不能很好地補缺補漏。教師也沒有提供階段測評環節及時掌握學生各階段的學習情況。

      2 實驗教學探索

      2.1 抓好實驗預習工作,培養學生良好的預習習慣

      上機實驗是程序設計課程一個非常重要的環節,通過上機實驗編寫程序,可以進一步鞏固對理論知識的理解。在以往的實際教學中,教師往往容易忽視實驗課前預習工作,學生事先不做準備,到機房才開始看題目思考如何編寫程序,很難在有限的課堂時間內完成作業。因此,近幾年的教學中,教師要求學生事先將要完成的實驗程序代碼在預習本上寫出,在上機實驗時將代碼輸入計算機進行調試。教師做到每次上機課檢查學生的預習本,實施“沒有完成預習工作的學生不能進機房”的懲罰措施,經過嚴格的督促,所有學生養成了事先預習的好習慣,保證了上機實驗的效率。

      2.2 養成良好程序書寫規范,掌握程序調試工具,培養學生發現問題、解決問題的能力 以往在批改學生作業時,發現大部分學生的程序代碼雖然沒有語法錯誤,但程序書寫很不規范,給查錯、日后閱讀帶來很大的不便。程序書寫應該清晰,便于閱讀、理解、維護,遵循以下規則:①一個語句占一行;②使用{}時,兩個花括號單獨占一行,并且在同一列的位置;③低一層次的語句比高一層次的語句右縮進幾個字符;④在必要的地方加上注釋語句。

      其實在VC 6.0編譯環境中,系統有自動右縮進的功能,代碼書寫每次換行,系統會根據層級關系自動右縮進幾個字符;并且對于沒有正確采取右縮進對齊的代碼,可以通過按ALT+F8組合鍵進行自動對齊。

      由于C語言內容比較復雜,對初學者而言,很容易在編寫程序時遇到各種各樣問題,加上學生的英語水平有限,對于調試出現的錯誤和警告信息看不明白,出現問題就會有畏難情緒和依賴思想。

      程序調試能力是程序設計能力一個非常重要的方面,在以往的教學中,學生調試錯誤能力的培養往往被忽視。很多教師在輔導上機時,只要學生出現調試錯誤,教師直接把錯誤指出,學生發現問題、解決問題的能力沒有得到鍛煉。

      程序錯誤包括兩類:一類是語法錯誤,一類是邏輯錯誤。語法錯誤是學生比較容易犯的錯誤,對于這類錯誤,教師要告訴學生找錯方法。對于邏輯錯誤教師應該在課堂上教會學生使用調試工具,強調調試工具使用的重要性,在上機實驗時,鼓勵學生經常使用調試工具,特別對于循環結構的程序,通過調試工具,可以很好地觀察一些重要變量的變化情況。

      2.3 完善實驗教材,合理安排實驗內容

      以往教學中,使用的實驗教材是譚浩強版的《C語言程序設計題解與上機指導》,這門書的實驗內容基本上是程序編寫題,并且已經附有答案,學生使用該教材實驗效果很不理想。

      2009年10月,在廣東省教育廳下達的課題“C語言程序設計立體教材開發”的資助和要求下,課題組集中精力編寫了一本有助于從多個層次培養學生讀程序、分析程序、修改程序以及編寫程序能力的實驗教材——《C語言實訓教程》。該實驗教材共有12個實驗,其中1個驗證性實驗、9個設計性實驗、2個綜合性實驗。驗證性實驗立足于語法規則,目的在于鞏固C語言的基礎語法知識。設計性實驗是在給定實驗目的和要求的條件下,由學生結合所學知識,自行設計實驗方案并加以實現的實驗,目的在于培養學生充分運用所學知識,去發現問題、解決問題。設計性實驗突破以往只有編寫程序題的模式,每個實驗的實驗任務都設置了3個層次:

      (1)程序改錯題:讀程序找出其中的錯誤,通過改錯訓練,可以讓學生掌握調試工具的使用,并且避免以后編寫程序時犯類似常見錯誤。

      (2)程序擴展題:培養學生在分析、理解原始程序的基礎上,對程序進行擴充修改,為獨立編寫程序打下基礎。

      (3)程序編寫題:訓練學生獨立編寫程序能力以及解決實際問題的能力。

      經過“讀程序—模仿改寫程序—編寫程序”實驗環節,讓學生在由淺入深的逐步引導中理解和掌握程序設計的思想、方法和技巧。

      綜合性實驗是學生經過一個階段的學習之后,運用所學知識點,對實驗技能和方法進行綜合訓練的實驗。綜合性實驗是學生反映最難,也是收獲最大的一個部分。在以往教學中,綜合性實驗在課程快結束的時候布置,學生面對如此綜合性的實驗任務,要一步到位,從無到有寫出一個完整的程序,顯得思緒混亂、手忙腳亂、無從下手。教師應該在學習初期就把綜合性實驗要求提出,演示程序,讓學生直觀感受課程最后要完成一個怎樣的任務。在這樣一個大任務的驅使下,激發學生的學習興趣,隨著知識點的不斷學習,將一個簡單的小程序逐步完善成一個復雜的程序。以《C語言實訓教程》為例,綜合性實驗具體實驗任務是編寫一個學生信息管理系統,每個學生信息包括學號、姓名、性別、班級、3門課成績,主要功能包括數據輸入、數據輸出、數據修改、按照某字段排序、查詢學生信息、統計平均分及不及格科目等功能模塊,通過選擇不同的菜單項來實現各功能模塊。此綜合性實驗涉及到知識點有選擇結構、循環結構、函數、結構體數組等內容,基本上涵蓋了C語言中所有知識點。

      綜合性實驗不是一步到位的,而是分步驟實施,逐步完善程序代碼,具體步驟如下:①在選擇結構實驗環節中,要求學生編寫程序1.cpp:使用switch語句完成“學生信息管理系統”菜單的輸出顯示;②在循環結構實驗環節中,要求學生修改程序1.cpp:在1.cpp基礎上,使用while或do while語句實現菜單的循環顯示,修改后的文件名為2.cpp;③在函數實驗環節中,要求學生修改程序2.cpp:在2.cpp基礎上,對每個菜單項對應設計一個空函數(只有函數名,函數體內是空語句,留待以后加以完善),選擇不同菜單項則調用不同的函數,此時管理信息系統最初的程序框架已經修改,建立修改后的文件名為3.cpp;④在數組和結構體的實驗環節中,要求學生把綜合性實驗中的每個功能模塊分別用一個獨立的cpp文件編寫調試成功,假設有n個模塊,此時程序名分別為41.cpp,42.cpp,…,4n.cpp;⑤新建一個新的cpp文件——5.cpp,在該文件中寫入所有功能模塊對應的函數定義,函數定義部分代碼提煉于步驟4所有獨立的cpp程序文件(41.cpp,42.cpp,…,4n.cpp),main( )函數里順序調用各函數,順序執行各功能模塊;⑥要求學生修改程序3.cpp:將5.cpp程序中所有函數定義的代碼,填入到3.cpp程序中對應的空函數的函數體內部,經過調試修改,最終完成綜合性實驗程序。

      通過以上循序漸進的步驟,學生能夠深刻體會如何將一個復雜的問題分解成一個個小任務加以解決,從而使得學生編寫復雜程序的能力得到很好的鍛煉。

      2.4 借助立體化資源,培養學生自主學習能力

      《C語言程序設計》課程具有信息量大的特點,僅僅依靠64學時課堂教學和上機實驗無法達到良好的教學效果。因此,如何把課堂進行延伸為學生搭建一個課堂外的課堂,為學生自主學習提供一個平臺是值得教師思考的一個問題。

      本課題組除了編寫實驗教材之外,還制作了實驗教材配套的輔導學習光碟,光碟中提供了每個實驗項目問題分析及解決方法的講解視頻、流程圖及參考程序;搭建Blackboard網絡教學管理平臺,BB平臺除了提供學生自主學習的課程資源之外,還提供了學生進行自我測評的“在線測試”,測試題目以章節為單位,涉及單選、填空、閱讀程序及編程題,此環節允許學生反復練習,點擊“提交”按鈕之后,客觀題會自動評分并提供正確的參考答案,讓學生對自己所學知識的掌握情況有個全面了解。通過“實驗教材+輔導光碟+網絡平臺”三位一立體化的資源,使得本課程的實驗教學模式由原來單一的依賴實驗指導書資源學習,轉變為學生依托立體化資源進行自主學習的模式。

      2.5 增加階段性測試,及時了解學生學習情況

      以往教師只能通過學生提交的實驗程序來了解學生知識掌握情況,而大部分實驗作業是學生通過翻看教材和共同討論完成的,教師無法了解學生掌握知識的真實情況,無法及時對掌握不好的知識點加以強化學習。針對這一問題,本課題組利用計算機技能自動測評系統對學生進行階段性測試,通過2~3次的小測試,了解各階段學生知識點掌握情況,及時補缺補漏。測試成績也作為平時成績的一部分,從而督促學生及時復習所學知識點,不至于邊學邊忘。

      3 結語

      針對多年來C語言實驗教學中存在的若干問題,本課題組經過一系列教學實驗改革和實踐,取得了較好的效果,學生對課程和教師的滿意率也顯著提高。在學生對26名任課教師的教學質量評價中,有5位《C語言程序設計》任課老師排名前7名,是歷年來教學評價最好的一次。由此可見,對于C語言實驗教學環節,改進方法在實際教學實施過程中取得了良好教學效果。今后要在實踐教學中勤于思考、時時總結、不斷改進,爭取在教學實踐中取得更好的成績。

      參考文獻:

      [1]侯建花,楊長青.《C語言程序設計》實驗教學的改革與實踐——以淮海工學院為例[J].計算機教育,2010(1).

      主站蜘蛛池模板: 亚洲精品字幕在线观看| 国产精品无码日韩欧| 国产精品无码久久久久久| 久久九九久精品国产免费直播| 日韩精品无码中文字幕一区二区| 成人国产精品动漫欧美一区| 国产精品人人爽人人做我的可爱 | 香蕉依依精品视频在线播放 | 亚洲精品无码久久久久久| 在线人成精品免费视频| 久久亚洲中文字幕精品有坂深雪 | 久久夜色精品国产噜噜亚洲AV| 久久久精品久久久久久| 四虎影视国产精品亚洲精品hd| 精品国产一区二区三区不卡 | 久久精品无码专区免费青青| 欧美国产精品va在线观看| 国产精品久久久久久久午夜片| 国产精品欧美亚洲韩国日本不卡| 久久精品国产亚洲AV无码麻豆| 亚洲国产午夜中文字幕精品黄网站 | 国产精品麻豆高清在线观看| 精品一区二区三区自拍图片区| 真实国产精品vr专区| 人妻少妇看A偷人无码精品| 国产精品99| 成人精品一区二区三区在线观看| 香蕉久久夜色精品国产小说| 精品视频一区二区三区在线观看| 第一福利永久视频精品| 国产精品久久国产精品99盘| 国产精品久久久久久久久| 2021久久国自产拍精品| 国产麻豆一精品一AV一免费| 久久国产乱子伦免费精品| 久久久精品人妻一区二区三区四| 亚洲国产精品SSS在线观看AV| 真实国产乱子伦精品视频| 亚洲欧美精品SUV| 亚洲中文字幕无码久久精品1| 亚洲国产午夜中文字幕精品黄网站|