c程序設計語言范文
時間:2023-03-26 07:39:54
導語:如何才能寫好一篇c程序設計語言,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
關鍵詞:關鍵詞:C++ ;教學方法;系統化程序設計思想
中圖分類號:G4 文獻標識碼:A 文章編號:
面向對象是當前計算機界關心的重點,面向對象的軟件開發方法是吸收了軟件工程領域有益的概念和有效的方法而發展起來的。它集抽象性、封裝性、繼承性和多態性于一體,可以幫助人們開發出模塊化、數據抽象程度高的,體現信息隱蔽、可復用、易修改、易擴充等特性的程序。C++是面向對象的編程語言,是一門既有難度又有深度的課程。學生要學好它,自己的學習方法與學習態度固然重要,但教師好的教學方法尤為關鍵。好的教學方法,可以讓學生學習起來達到事半功倍的效果。
在這里筆者結合自己的實際教學經驗談談通過采用什么樣的教學方法來激發學生的學習興趣,使學生在教學過程中能主動的學習。
1.良好的開端
精心準備第一堂課、激發學生學習的積極性。C++程序設計語言是一門比較抽象的課程,很多內容只可體會,很難言傳。在學習過程中感覺會比較枯燥、難懂,沒有一定的毅力很難堅持下去。這需要將學生很好地引入門,要讓學生認知該課程的重要性與實用性,要提高他們的學習興趣,有信心去學好它。為此在第一堂課上教師可從不同專業角度為學生介紹學習本課程的意義。往屆學生的C++課程設計、數學建模、程序競賽等作品是教師第一節課的最好素材。
2.學生為主體
提倡“以學生為主體的教學模式”,教師使用多種教學媒體給出學習資源,講解重點、解釋難點、解惑疑點。充分利用多種媒體資源,發揮學生的主體作用,引導學生自主學習,培養學生的自學能力。
教師要隨時了解學生是否掌握了教學目標中要求學會的知識和技能,有多少人掌握和掌握的程度等。從而針對學生的學習現狀,確定應重點講解和輔導的知識點,再根據學生的實際情況來設計教學環節,這樣才能保持學生的學習興趣,防止他們因難懂、不懂而產生畏懼情緒,中途退出。
3.利用多媒體、網絡教學平臺,增強教學效果
教師在備課過程中要精心制作課件,可通過示例類比(如:在講解調用的不同執行方式時,舉例:經理將“自己要到外地出差”的消息告訴他身邊的人(妻子、下屬、秘書)?妻子:準備行李;下屬:準備出差的資料;秘書:安排車票和住宿)、動畫演示等方法來簡化學習難度,營造輕松活潑的學習氛圍。
在上次授課過程中出現的難點問題、遺留問題要盡量在下次課的課件上能體現出來,避免不同授課老師,不同授課時段,不同授課班級課件一塵不變。同時在教學過程中,教師要充分利用廣播平臺演示操作過程,集中學生注意力,再通過角色轉換,由學生演示自己或所在小組的作品并進行解說和點評,充分調動學生參與的積極性。
授課教師應開發課程網上教學平臺和網上討論和答疑系統為學生提供有效的網絡環境,這不僅是一個有效的師生互動平臺,同時也為學生提供電子教案、多媒體課件、網絡教學、視頻等豐富的網上教學資源,構建以學生為中心的自主學習環境。
4.學生系統化程序設計思想的培養
C++是一門面向對象的編程語言,而面向對象編程方法的出現,實際上是程序設計方法發展的一個返璞歸真的過程。從本質上講,軟件開發就是對軟件所要處理的問題域進行正確的認識,并把這種認識正確地描述出來。
C++程序設計課程教學一般是以程序設計語言自身的體系為脈絡展開,存在注重語句、語法教學的特點。許多學生在學習C++程序設計語言課程時,覺得聽得懂,但學過之后不能用其來解決實際問題。在這樣的教學模式下,學生雖然學到了一定的程序設計知識,但編程能力較差,部分學生遇到實際問題無從下手。系統化程序設計思想培養模式從大學生的認知特點出發,使教師在教授學生程序設計課程、提高學生編程能力的同時,培養學生的系統化程序設計思想,這對學生整體素質的提高有很大的作用。
程序設計課程的學習不僅要教會學生如何進行計算機編程,而且要教學生如何去思考問題。系統化的程序設計思想,不僅可以解決學生在程序設計中遇到的問題,還可使學生的邏輯思維更加嚴密,這對一個學計算機的大學生來說是至關重要的。系統化的程序設計思想的培養過程就是讓學生自己動手解決實際問題的過程,這個過程使學生自主去探索問題、并對它進行研究和創新,從而使學生覺得學有所用,一直保持學習的興趣。
5.理論聯系實際,加強實踐操作
C++程序設計語言課程的特點決定了上機實踐是教學過程中一個十分重要的組成部分。在學習C++程序設計語言的過程中要不斷練習、不斷實踐。因此,如何加強上機實踐,提高實際操作的能力,并以此進一步提高課堂教學的質量和學生學習的興趣是值得廣大教育工作者應該認真思考的問題。要使學生熟練使用C++程序設計語言解決問題,在教學過程中可采用“問題引導、問題說明,問題解決,項目驅動”的教學流程,把知識點融入到實際項目的開發過程中,通過項目的不斷擴展引入新的知識點。做到引(教)、探(學)、做(實踐)相結合,通過編寫、編譯、調試、運行、剖析和討論一些實例程序去主動地探索、學習知識,掌握技能。本課程的內容是通過多媒體講授、學生課后搜索相關資料,安排平時的作業訓練等環節組成的,各環節應緊密配合。為使教學符合學生認知規律,并堅持理論知識和實踐技能并重的原則,可以從以下幾個方面考慮。第一,合理分配上機時數;第二,上機內容要有趣味性和針對性,教師應多花心思去精心準備上機操作的內容;第三,提高學生自主創新、自主學習的積極性,要學生多寫程序,不能只聽不練;最后,要檢查學生的實訓結果,保證上機操作達到預期效果。
6.換位思考
在教學過程中發現,很多學生不提問,不要認為學生沒有問題,而是他們有問題不知道如何提出。這時教師需換位思考,站在學生的角度去思考學生可能會存在的問題,然后由教師提出,讓學生自己來解答,如果學生答不上來,教師再為學生解答。教師備課時不僅僅只是準備自己要講授的內容,還要思考學生會遇到什么難點,需要向學生提什么、解答什么問題,這種模式可 激發學生去積極思考、分析和解決問題。
7.綜合評價體系
期末考核評價包括:理論成績、實驗結果、案例設計成果、項目進度、完成質量、協作能力、溝通能力和考勤情況等。各項指標采用加權評分和突出能力評價兩種方式。案例設計采用“自我實現,自我管理”的理念進行開放式管理,學期最后一個月學生可自由分組選擇某個案例。每組同學在老師的指引下,自發形成研發項目組,通過分工協作,共同完成整個項目設計。要求設計成果與案例庫比較要具有新意,從而拓展學生的創新意識,激發學生的學習興趣。
總之,課堂教學是師生的雙向活動.現代課堂教學倡導學生主動參與,主動探索的主體意識。教師作為主導者,要科學地組織雙邊活動,盡管教無定法,但要教學有法,教學得法。作為教育工作者要不斷地更新觀念,更新知識,在保證學生學習積極性的前提下,按照他們的認知規律組織教學,并為適應新知識而進行教學改革,以培養出更多的符合社會需求的計算機人才,使教育更好地為社會服務。
參考文獻:
[1].錢能.C++程序設計教程[M].北京:清華大學出版社,1999
篇2
1、不是;
2、C是面向過程的程序設計語言;
3、C++是面向對象的,C#和Java也都是面向對象的,而且面向對象的程度比c++高,但不是完全面向對象的;
4、Ruby是完全面向對象的編程語言,連int等基本類型也是對象。
(來源:文章屋網 )
篇3
在這個星期里,我們專業的學生在專業老師的帶領下進行了c語言程序實踐學習。在這之前,我們已經對c語言這門課程學習了一個學期,對其有了一定的了解,但是也僅僅是停留在了解的范圍,對里面的好多東西還是很陌生,的在運用起來的時候還是感到很棘手,畢竟,萬事開頭難嘛。
由于時間的關系,我們的這次實踐課程老師并沒有給我們詳細的介紹,只是給我們簡單的介紹了幾個比較重要的實際操作。包括了程序模塊處理.簡單界面程序.高級界面程序.程序的添加修改.用程序做一元線性回歸處理以及用c語言程序來畫粒度分布圖等這幾樣比較重要的時間操作。
上機實驗是學習程序設計語言必不可少的實踐環節,特別是c語言靈活、簡潔,更需要通過編程的實踐來真正掌握它。對于程序設計語言的學習目的,可以概括為學習語法規定、掌握程序設計方法、提高程序開發能力,這些都必須通過充分的實際上機操作才能完成。
學習c程序設計語言除了課堂講授以外,必須保證有不少于課堂講授學時的上機時間。因為學時所限,課程不能安排過多的統一上機實驗,所以希望學生有效地利用課程上機實驗的機會,盡快掌握用c語言開發程序的能力,為今后的繼續學習打下一個良好的基礎。為此,我們結合課堂講授的內容和進度,安排了12次上機實驗。課程上機實驗的目的,不僅僅是驗證教材和講課的內容、檢查自己所編的程序是否正確,課程安排的上機實驗的目的可以概括為如下幾個方面:
1.加深對課堂講授內容的理解
課堂上要講授許多關于c語言的語法規則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。通過多次上機練習,對于語法知識有了感性的認識,加深對它的理解,在理解的基礎上就會自然而然地掌握c語言的語法規定。對于一些內容自己認為在課堂上聽懂了,但上機實踐中會發現原來理解的偏差,這是由于大部分學生是初次接觸程序設計,缺乏程序設計的實踐所致。
學習c語言不能停留在學習它的語法規則,而是利用學到的知識編寫c語言程序,解決實際問題。即把c語言作為工具,描述解決實際問題的步驟,由計算機幫助我們解題。只有通過上機才能檢驗自己是否掌握c語言、自己編寫的程序是否能夠正確地解題。
通過上機實驗來驗證自己編制的程序是否正確,恐怕是大多數同學在完成老師作業時的心態。但是在程序設計領域里這是一定要克服的傳統的、錯誤的想法。因為在這種思想支配下,可能你會想辦法去"掩蓋"程序中的錯誤,而不是盡可能多地發現程序中存在的問題。自己編好程序上機調試運行時,可能有很多你想不到的情況發生,通過解決這些問題,可以逐步提高自己對c語言的理解和程序開發能力。
2.熟悉程序開發環境、學習計算機系統的操作方法
一個c語言程序從編輯、編譯、連接到運行,都要在一定的外部操作環境下才能進行。所謂"環境"就是所用的計算機系統硬件、軟件條件,只有學會使用這些環境,才能進行程序開發工作。通過上機實驗,熟練地掌握c語言開發環境,為以后真正編寫計算機程序解決實際問題打下基礎。同時,在今后遇到其它開發環境時就會觸類旁通,很快掌握新系統的使用。
3.學習上機調試程序
篇4
由于時間的關系,我們的這次實習課程老師并沒有給我們詳細的介紹,只是給我們簡單的介紹了幾個比較重要的實際操作。包括了程序模塊處理.簡單界面程序.高級界面程序.程序的添加修改.用程序做一元線性回歸處理以及用c語言程序來畫粒度分布圖等這幾樣比較重要的時間操作。
上機實驗是學習程序設計語言必不可少的實習環節,特別是c語言靈活、簡潔,更需要通過編程的實習來真正掌握它。對于程序設計語言的學習目的,可以概括為學習語法規定、掌握程序設計方法、提高程序開發能力,這些都必須通過充分的實際上機操作才能完成。
學習c程序設計語言除了課堂講授以外,必須保證有不少于課堂講授學時的上機時間。因為學時所限,課程不能安排過多的統一上機實驗,所以希望學生有效地利用課程上機實驗的機會,盡快掌握用c語言開發程序的能力,為今后的繼續學習打下一個良好的基礎。為此,我們結合課堂講授的內容和進度,安排了12次上機實驗。課程上機實驗的目的,不僅僅是驗證教材和講課的內容、檢查自己所編的程序是否正確,課程安排的上機實驗的目的可以概括為如下幾個方面:
1.熟悉程序開發環境、學習計算機系統的操作方法
一個c語言程序從編輯、編譯、連接到運行,都要在一定的外部操作環境下才能進行。所謂 環境 就是所用的計算機系統硬件、軟件條件,只有學會使用這些環境,才能進行程序開發工作。通過上機實驗,熟練地掌握c語言開發環境,為以后真正編寫計算機程序解決實際問題打下基礎。同時,在今后遇到其它開發環境時就會觸類旁通,很快掌握新系統的使用。
2.學習上機調試程序
完成程序的編寫,決不意味著萬事大吉。你認為萬無一失的程序,實際上機運行時可能不斷出現麻煩。如編譯程序檢測出一大堆錯誤。有時程序本身不存在語法錯誤,也能夠順利運行,但是運行結果顯然是錯誤的。開發環境所提供的編譯系統無法發現這種程序邏輯錯誤,只能靠自己的上機經驗分析判斷錯誤所在。程序的調試是一個技巧性很強的工作,對于初學者來說,盡快掌握程序調試方法是非常重要的。有時候一個消耗你幾個小時時間的小小錯誤,調試高手一眼就看出錯誤所在。
通過這次為數不多的幾天計算機實習學習,我們了解了一些關于c語言的知識,理解鞏固了我們c語言的理論知識,著對我們將來到社會工作將會有莫大的幫助。同時它讓我知道,只要你努力,任何東西都不會太難。
3.加深對課堂講授內容的理解
課堂上要講授許多關于c語言的語法規則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。通過多次上機練習,對于語法知識有了感性的認識,加深對它的理解,在理解的基礎上就會自然而然地掌握c語言的語法規定。對于一些內容自己認為在課堂上聽懂了,但上機實習中會發現原來理解的偏差,這是由于大部分學生是初次接觸程序設計,缺乏程序設計的實習所致。C語言程序設計實習心得體會(3篇)C語言程序設計實習心得體會(3篇)。
篇5
關鍵詞:C語言; 程序設計;教學方法; 教學效果;教學實踐
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)07-1467-02
1 概述
C語言功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好,兼有高級語言和低級語言的特點,是高校程序設計語言課程中的典型代表,C語言課程的教學目的是通過理論教學和上機實踐,使學生了解程序設計語言的基本概念,初步掌握解決簡單問題的編程思路和C語言的程序設計方法,并通過上機實踐鍛煉學生的程序調試能力,為后續課程的學習和應用奠定程序設計基礎。因為C語言是計算機專業大一學生最先接觸的程序設計語言課程,所以一個好的開始對激發學生學習專業的興趣是必須的。
2 C語言教學中存在的問題與現狀
在多年教學實踐中發現學生普遍認為課程難度較大,特別是到第二學期學到函數、指針、文件,有些學生感覺越來越困難,從預習作業不能完成到實驗課三道題只能完成一題,越來越失去學習的信心。還有些學生對學習C語言很茫然,不知學了有什么用?,F在的學生對上網、淘寶、微信、手游、網游等感興趣,對學習C語言覺得和現實脫節,課本的例子和完成的作業實驗基本是一些簡單的數值計算,所以認為C語言學了沒用,也缺乏了學習動力。再加上采取的教學方法比較陳舊、單一,往往采用傳統的教師講授的填鴨式教學,學生學習缺乏主動性。教學過程以章節為綱,先講理論知識點,在課堂上花了很多時間講述語法、格式和注意的問題。這些書上已經很詳細地講述了。所舉的例題也都是小的數值計算題,結果學生到課程設計時總感覺無從下手,設計出來的程序有一些必須的需求都沒考慮到。比如做的管理系統出現數據不保存,每次運行輸入數據,或者沒從文件中讀出原來的數據。
3 改進C語言教學的方式方法
3.1 以小游戲激發學生的學習興趣
以前課堂舉例都以數值計算為主,如求5!,輸出100~200之間所有的素數,學生覺得較為枯燥,沒什么意義和樂趣,所以可以投其所好,舉一些小游戲的例子讓學生編寫并嘗試。如可以用猜數、簡易貪吃蛇等讓學生覺得C語言學習和實踐很有樂趣和挑戰,這樣就激發了學生學習的興趣。
3.2 以項目驅動法培養學生的軟件開發的能力
項目驅動教學法鼓勵學生通過項目中涉及到的課程內容主動地提出問題,然后再去探索、尋找答案,改變僅由教師上課的填鴨式教學模式。在實施項目的過程中,將學生分成項目小組,有項目組長組織小組活動,這樣既培養了學生發現問題、解決問題的能力,同時鍛煉了團隊合作精神。用項目驅動法來進行教學,以一個具體的項目,貫通需要的知識點,并且按照軟件工程的思想,經歷從需求分析到設計再到編程和測試運行的幾個階段,逐步培養學生軟件開發的思想和能力。
首先要設計一個合適的項目。比如在學習函數、結構體和文件內容的時候,可以設計一個管理系統軟件項目,在項目中讓學生體會到函數、結構體和文件的作用比教師單純的強調效果要好。可以選取學生能切身體會的成績管理系統。
然后在實施的時候,先將學生進行分組,選取項目組長負責項目的執行。第一步進行需求分析,確認新系統的功能需求。學生分析后得出結論,新系統需要具有學生信息輸入、增加學生、刪除學生、修改學生信息、統計成績、查詢成績、顯示信息、讀取文件和保存的功能。第二步進行系統設計。為系統分解成以下幾個模塊:
l輸入初始的學生信息:其中包括學生的姓名、學號和性別以及學生的各門課程成績等相關信息。
l查詢模塊:根據學生的姓名或學號查找輸出此學生全部信息包括學生的各門課程的成績。
l插入模塊:插入學生,其中通過學號的大小來比較的,并且以此來排序。
l統計學生成績模塊:統計各門課程的平均分數、最高和最低分數。
l初始化模塊:若有文件則從文件中讀入學生信息到內存中。
l退出系統模塊:首先將信息保存到文件中,釋放動態創建的內存空間,再退出此程序。
系統分解的功能模塊將由相應的函數來實現。項目組長可以將任務進行分配給組員來詳細設計和實現相應的模塊。通過這個過程,讓學生切身體會函數的作用,通過一定的自學和教師的精講,掌握函數的使用的重點和難點。
這時在設計學生的信息數據結構的時候,學生會發現和思考以往學習和使用的簡單的數據類型能否較好地組織和保存學生的信息,便于教師適時引入結構體類型來解決這個問題。
在保存學生數據的時候,學生自然會思考保存在哪里,如何保存。這時引入文件的讀寫操作幫助學生解決這個問題。
第三步是實現。在學習了相關知識點后,學生在項目組長的組織下編程實現系統。
第四步是測試。指導學生應用相應的測試方法,設計測試用例,分析測試結果、進行相應的調試和維護。
3.3 以動畫演示幫助學生理解課程難點
一些算法、概念和步驟僅由教師口頭講授,太抽象,缺乏想象力的學生很難理解,所以用FLASH制作動畫將步驟演示給學生看,提高課堂生動性及學生的學習興趣。如通過動畫演示冒泡排序、選擇排序、插入、二分法、遞歸過程、漢諾塔問題、指針、數組、結構體和鏈表的創建、遍歷、插入、刪除等操作。
3.4 以網絡教學增加師生互動
可以把教學內容做成課程網站。課前上課資料,方便學生預習。學生課后可以隨時查看每次講課的內容,遇到問題可以進入網站查看資料,也可以在公告欄或討論板問題,尋求教師和同學的幫助。還可以在網站上布置作業和收取作業,參考資料和前沿動態。
3.5 以分層教學適應學生差異
學生剛入校時的編程水平有差異,有的是沒接觸過編程,有的卻學過VB編程,或者有的參加過中小學信息技術培訓和比賽,那么如果按照統一標準教學,則有的困難很大,有的卻覺得太簡單沒意思。針對這種情況采取班內分層教學,根據是否有編程基礎和能力將學生分成A、B、C三等,在教學、實驗題和作業上有一定區別,為A等學生增加難度題,為C等學生減少題目數量要求質量??梢园才艃炐銓W生擔任實驗輔導員,在熟練迅速完成自己的實驗后,也不必無所事事,而是幫助教師輔導學生,幫助學生調程序,在期末成績上給予一定的加分獎勵。這樣既增強了先進同學的自豪感和積極性,同時減輕了輔導教師的工作量。
3.6 改革課程考核辦法,開發相應的考試系統
傳統的考試只有期末考試,并且只有筆試。這種弊端是學生到課程快結束時,才會感到考試的緊迫而匆匆學習,俗稱“零時抱佛腳”,這對課程內容的掌握的扎實度和對后續課程的深入都是欠缺的。所以有必要改變“一考定終身”式的和單一的筆試考核方式,發揮以考促學的效果,改革考核形式和方法。將考核分為平時+實踐+考試三部分,考試有期中和期末兩次成績,并且包括理論和上機兩部分的考試,開發相應的考試系統,能夠自動組卷和閱卷,讓學生考不同的卷子,減少作弊的可能性,減少教師閱卷的工作量。平時除了考勤、作業,在單個知識點或相聯系的幾個知識點結束后,安排相應的小測驗。通過測驗和考試,不斷拉緊學生學習的弦,檢查自己有哪些薄弱的地方,以促進提高。
4 結論
C語言是計算機專業和相關專業的一門重要基礎課程,但是具有相當的難度和枯燥性,大多數學生難以掌握,所以在教學中要不斷探索總結經驗,充分利用現代教學手段,激發學生的學習興趣,靈活應用各種教學方法,這才能達到較好的教學效果。
參考文獻:
[1] 孟朝霞,王琴竹,李妮. C語言程序設計課程項目教學目標建設與實踐[J]. 中國科技信息,2010(4).
[2] 陳湘驥,徐東風,楊秋妹. 在線評判在C語言課程設計教學中的應用[J]. 計算機教育, 2010(3).
[3] 蔣霞. 基于CDIO理論的C語言程序設計課程改革[J]. 電腦知識與技術, 2012(27).
篇6
程序設計 C語言教學 基本方案
一、引言
計算機科學與技術學科強調4個方面的專業能力:計算思維能力,算法設計與分析能力,程序設計與實現能力,以及計算機系統的認知、分析、設計和運用能力。程序設計與實現能力在程序設計C語言課程得到了具體的體現。其中設計到的程序設計的內容,為算法設計與分析能力奠定了良好的基礎。
作為一種系統程序設計語言,C語言已廣泛用于為各種不同的計算機系統編寫系統軟件,如操作系統、編譯系統、匯編器及編輯器等;作為一種應用程序設計語言,C語言已廣泛用于編寫各種應用領域的應用軟件。
關于C語言的教學探討一直都是學者、教師和相關人員的主要探討的課題之一。與國外相比,我國的教學往往缺少活力。在開設的理工類課程中,科學邏輯很強,通常采用演繹方式進行教材編寫和教學活動,學生缺乏主動探索精神和自己設計課程內容環節。C語言的教學也大體如此。
1.沒有充分調動學生的學習積極性。一般在大一開設C語言,對于剛進入大學的學生,C語言概念性強,理論內容較豐富;抽象性強;邏輯性要求高;一開始容易陷入C語言的繁瑣的細節中。
2.沒有突出C語言本身的特點。課堂教學沒有突出C語言本身的特點,如靈活的指針、追求執行效率等,不容易掌握C語言的精華。
3.對實踐環節重視不夠。對實踐環節重視不夠,導致要求完成的實踐內容脫離實際的、有趣的應用。
4.相關基本內容設計不足。對算法思想、數據結構的相關基本內容設計不足。
二、解決的主要問題
1.強調以學生為中心。要在學習過程中充分發揮學生的主動性,要能體現出學生的首創精神;要讓學生有多種機會在不同的情境下去應用他們所學的知識(將知識“外化”);要讓學生能根據自身行動的反饋信息來形成對客觀事物的認識和解決實際問題的方法(實現自我反饋)。
2.強調“情境”教學。在教學過程中,實際情境下的學習,能使學生更加深刻地理解所學知識的意義,并容易看到自己的勞動成果,從而激發學習的動力和興趣,提高學習的效率。
3.強調“協作學習”。學生們在教師的組織和引導下一起討論和交流,共同建立起學習群體。在群體中,允許觀點和方法的碰撞和交鋒,但最終需要群體成員的配合和支持,才能完成一個具體的任務。這樣的協作學習對培養學生的團隊精神起著關鍵性的作用。
4.強調對學習環境(而非教學環境)的設計。學習環境是學生可以在其中進行自由探索和自主學習的場所。學生可以利用其中的各種工具和信息資源來達到自己學習的目標。
5.強調利用各種信息資源來支持“學”(而非支持“教”),建立教學資源庫。在學習過程中為學習者提供各種信息資源(包括各種教學媒體和資料),以支持學習者主動探索和完成意義建構。
三、具體方案
1.教學目標分析。確定當前學生學習的主題(即確定與基本概念、語法以及程序設計有關的知識內容),是教學設計面臨的首要任務。
2.學習任務設計。基于真實問題情景下的探索、學習的過程,就是解決實際問題的過程。擬采用“以培養能力為核心,以實踐為主線,以項目為載體,用任務進行驅動”的教學方法。以某個實際項目為主線,貫穿順序、選擇、循環結構和數組、指針等所有章節中,課程教學具有連貫性。同時結合現場提供實際項目案例(子項目)組織教學。教學過程中,通過案例導入,任務驅動,引導學生由簡到繁、由易到難、循序漸進地完成一系列“任務”。在完成“任務”的過程中,培養學生分析問題、解決問題以及用計算機處理信息的能力,完成課程設計和教學訓練的全過程。使學生體會到知識的實用性,提高學習興趣。
內容由淺入深,涉及的相關的專業基礎知識較為全面,并以一個完整的典型的小型軟件系統的設計與實現為主線,貫穿教學的各章內容。
借助于計算機相關課程(如軟件工程、算法設計與分析、數據結構、編譯原理等)的基本內容,對C語言加深理解和應用。
3.學習情境設計。學習情景指為學生提供一個完整、真實的問題背景,以此為支撐物啟動教學,使學生產生學習的需要;同時促進學習共同體中成員間的互動、交流,即合作學習,驅動學習者進行自主學習。將實際開發項目引入課堂教學,作為教學和實驗實訓項目。根據課程內容和工作過程,結合學生特點,采用任務驅動、項目教學、講練結合等教學手段,把工作項目開發過程的工作環節及任務穿插于各個知識點的學習中。
4.信息資源設計。確定與項目完成相關的信息資源。確定所需信息資源的種類和每種資源在完成本次任務的過程中所起的作用。需要確定從何處獲取有關的信息資源,如何去獲取以及如何有效地利用這些資源等問題。建立系統的信息資源庫,提供引導學生正確使用搜索引擎的方法。
5.自主學習設計。自主學習是讓學生進行自我學習、自我探究的學習方式。其核心是發揮學生學習的主動性、積極性,充分體現學生的認知主體作用,其重點是如何幫助學生“學”。自主學習策略的設計是整個以學為主教學設計的核心內容之一。
6.協作學習環境設計。在個人自主學習的基礎上開展小組討論、協商,以進一步完善和深化對主題的意義建構。整個協作學習過程均由教師組織引導,討論的問題可由師生根據教學內容,聯系生活實際提出,在教師的指導下通過個人、小組搜集材料、提取信息、處理信息、合作研究、探索解決問題的學習方式,為學生提供一個交流、合作、探索、發展的平臺。
7.考試考核方法改革。在對學生進行能力評價時,要根據目標多元、方式多樣、注重過程的評價原則,綜合運用觀察、測驗、操作、作品展示、項目設計等多種評價方式。評價要體現:突出能力本位;重視對原有學習能力的認可;個性化評價;強調創新能力的評價。
四、總結
通過對程序設計C語言課程的教學改革,培養學生編程思想,使其具備基本程序結構代碼的編寫能力,熟悉基本程序設計方法,能更好地利用程序設計思想解決本專業領域中的問題,將程序設計方法用于后續計算機語言課程的學習中,為其他相關課程奠定基礎。
參考文獻:
[1]蔣宗禮,姜守旭.形式語言與自動機理論(第2版)[M].北京:清華大學出版社,2007.
[2]朱清新.計算機算法設計與分析導論[M],北京:人民郵電出版社,2008.
篇7
關鍵詞:C++程序設計;教學建議
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2012)29-7028-02
1 目前存在的問題
C++程序設計語言因為其語言簡潔、緊湊,語法靈活,語言表達能力強,代碼容易維護、可移植性強、執行效率高,支持數據抽象、支持面向對象程序設計和泛型程序設計等優點而被廣泛應用,成為當今軟件開發的主流語言之一,也逐漸成為許多高校計算機專業程序設計基礎編程語言的首選。。但由于C++語言本身是從C過渡來的一個面向對象的程序設計語言,所以C++即支持c的面向過程的編程又支持面向對象的編程應用,因此C++教學內容非常多,知識點多,語法多,并且C++中有很多比較難的知識點,比如指針、多繼承等,而教學課時一般都比較少,理論加實踐72學時左右安排在一學期上完??傮w導致的結果就是,本課程學完后,學生感覺學習內容多而且零亂,沒有系統性,一旦遇到實際面向對象編程應用問題時感覺無從下手,無法編程。針對這些現象進行思考后,結合自己的教學經驗提出了一些教學建議。
2 教學中的建議
2.1 教學內容的裁剪
總體思路是突出重點,適當降低難度;把面向對象關鍵性技術的知識點盡量前提,增加學習熟悉、使用和掌握的機會。
在面向過程內容學習中重點為:基礎數據類型、常量變量、控制結構、數組、指針、函數、結構;在面向對象學習中重點:類、對象、封裝、繼承、多態和輸入輸出流。
數組雖然是重點,但教學中只以一維數組和字符數組為重點平時也應用最多,而對于二維數組及多維數組只需弄清楚其含義就可以了,到具體要應用時補充再自學。對于指針既是一個重點又是一個難點:雖然指針是C++一個最重要的特性,它的靈活性、方便性和快捷性令其他語言望塵莫及,但同時也帶來了不安全性的隱患和學習的難度。但現在C++中又引入很多技術代替指針的很多功能。比如C++中的引用,其功能可以代替指針實現間接訪問,但比指針安全也比指針的使用簡單,另外成員函數可以取代函數指針等等。因此在講解指針內容時,我們可以適當的降低難度,簡化內容。重點是要弄清指針的含義,指針對一維數組的引用就可以了。
對于面向對象部分的內容我們可以適當弱化語法方面的問題,而重點強調面向對象程序設計方法,語法方面的問題主要在應用中進一步強化和鞏固。
對于面向對象的關鍵性技術我們可以盡量讓學生提早接觸,比如多態,我們在講解函數時,就可把函數重載和函數模板提前到這部分講解,讓學生無意中先接觸和使用多態技術,到后面真正講解面向對象的這部分內容時,學生實際上早已熟悉相關知識,只是加強理解和應用而已。
2.2 教學思路
C++的內容,從總體上而言由2部分構成:面向過程和面向對象;在這2個部分的教學及銜接中要各有側重點,良好過渡;
在面向過程教學中主要強調算法、流程圖和程序跟蹤調試的學習;在從面向過程向面向對象的過渡過程中,把面向過程與面向對象之間的內在關系凸顯出來(見圖1和圖2),讓學生意思到面向對象程序設計包含面向過程程序設計,是面向過程程序設計的發展。可以這么理解,面向對象程序設計主要勾勒出了程序的整體框架,體現程序各部分及各層次之間的內在關系,而面向過程的程序設計方法可用在面向對象的底層開發中,即對象內部(或者說類內部)的算法實現中。不然學生會覺得2者之間很突兀,不能銜接起來,有一種抵觸或覺得難以接受的思想。而在面向對象的教學中,重點突出面向對象程序設計的方法。如何針對具體的問題進行對象的劃分和對象設計的過程。
由圖2中的框出部分能很容易看出,對象內部的算法實現部分依然要用面向過程的方法設計。
2.3 教學手段
綜合利用多種教學手段:多媒體+板書+網絡;以多媒體為主,板書為輔,同時課外充分利用網絡進行交流等多種教學手段;因為利用多媒體講課可以圖文并茂、形象生動、同時交互性好、信息量大等特點。對課程中難以理解的一些比較抽象的內容,可以給予直觀展示和動態模擬,起到事半功倍的效果。比較在講到指針變量概念時,說指針變量是指向同類型變量的變量,這個概念聽起來很饒口,并且不好懂。通過多媒體講解時,在給出一個指針變量賦值語句之后,緊接著用一個圖形動態表明這個指針變量的內容和所賦值的那個變量之間內存地址的關系,然后用一個箭頭動態表示出這種指向,學生很快就可以清楚明白的理解指針變量的含義了。傳統的板書教學雖然速度有些慢,但是在講解一些難點時,卻可以作為必要的輔助手段。比如講解算法的設計過程,由于放慢了講解速度,正好可以方便學生理解和回味。另外由于課堂上時間總是有限的,當課余學生想和老師探討問題時,就可以充分發揮網絡的便利。學生可以利用電子郵件或QQ等給老師提問或留言,老師可以很方便及時的答疑解惑,這樣也進一步促進和提高了學生學習的興趣和積極性,加強了師生互動。
2.4 實驗實訓
現在一般學校都由于學時緊張,安排的實驗課課時很有限,在這些規定的課時中只能針對所學的知識點進行相應復習、鞏固和應用,而不能將相應知識點連貫起來,所以所有知識點都是孤立的,感覺很零碎。因此當他們遇到一個綜合性應用或稍微復雜一點的問題時,就感覺無從下手。因此非常有必要在本課程學習完后,利用假期時間增加一個為期2周的小型綜合應用項目的課程設計,比如圖書管理系統或者成績管理系統等。讓學生把面向對象程序設計從分析、設計、實現到測試這個完整的流程走一遍,將所有的知識點綜合起來形成一個系統性的知識結構。雖然是小型應用項目,但麻雀雖小五臟具全,使得學生有了一個整體設計的概念后,就不至于以后在工作中遇到一個實際應用的編程時毫無頭緒。注意在實訓過程中老師要給予必要的指導,但主要依靠學生自己完成。
2.5 學習習慣
凡是程序設計語言課,要想學好都無一例外的要求:多想、多寫、多上機調試。因此從學生開始實習時多就要求他們養成這些好習慣。另外編程時,為了增加程序的可讀性,為以后工作打下良好的基礎,在書寫程序時要求有良好的編程習慣。比如代碼的縮進、必要的空格空格和空行;標識符的命名最好做到見名知義、簡潔、易區分;變量名小寫,宏和常量大寫。對代碼進行必要的注釋等。這些看起來很簡單的一些編程習慣,對增強程序的可讀性有非常大的作用,但是平時學生為了圖省事或方便都不愿意堅持這樣做。因此在學習編程初期老師要堅持不懈的多強調這些問題。
3 結束語
針對目前學生學習C++程序設計教學中遇到的一些問題,進行思考和總結后提出了自己的建議。把這些建議的內容在近2屆學生中貫徹和執行后,發現學生編程應用能力有較大的提高,學習積極性和主動性也比以前強。
參考文獻:
[1] 溫秀梅,丁學鈞,李建華.C++語言程序設計教程與實驗(第三版)[M].北京:清華大學出版社, 2012.
篇8
關鍵詞 C語言 實驗教學 任務驅動式
中圖分類號:G424 文獻標識碼:A
C語言是通用的計算機程序設計語言。其數據類型豐富、表達能力強、使用靈活方便、生成目標程序設計代碼質量比較高,對硬件也能直接進行操作,因此C語言將作為大部分高校的普遍程序設計的首選課程,也是其編程的基礎性課程。學習程序設計必須具有語法規則、算法思想、數據結構和程序設計等方面的知識,C語言比較復雜,教學內容理論性較強,較難掌握,學生易產生厭煩情緒。以前C語言運行環境是以Turbo C2.0為主,現在雖然可以在VC++6.0運行環境下進行編程與調試,但是它的程序運行還不能完全可視化。就對我校高職計算機專業學生的具體調查發現:學完C語言后能熟練掌握、靈活運用的學生為10%左右,基本掌握的學生為45%左右,大部分學生還是不能掌握其編程技巧。為了提高和改善學生學習C語言的教學現狀,根據C語言自身特點,探討新的教學模式和教學方法。以促使提高該課程的教學效果。
1 根據人才培養方案,合理調整其教學內容
高職院校教育的目的是培養生產一線應用型和技能性人才,著重培養學生的學習能力、就業能力、工作轉換能力和創業能力。高職學生的學習基礎較差,邏輯思維能力較弱,想象空間較窄,因此,在學習C語言程序設計課程時,必須考慮學生的學習能力和基礎能力,適當降低理論知識的難度和深度,力求教學內容淺顯易懂。在本門課程的教學過程中一般要求學生掌握程序設計的三種程序設計的基本結構、數組、函數、指針等教學內容,對于其中過繁過深的知識,例如指針,結構體等,我們則可以進行取舍,使學生知道它們即可。對于重點、難點的教學內容必須進行詳細講解,使學生不僅掌握它們的理論知識,更能靈活編寫類似程序以求解決生活中的實際問題??傊?,教學目的是使學生真正掌握并力求能熟練靈活運用C語言進行編程。
2 重視培養模式,培養學生學習興趣
傳統模式下,C語言程序設計課程的教學內容一般則采用黑板式的教學方式來實現。大部分理論知識都要在教室來進行學習,很少在機房來進行程序的編寫。C語言程序設計運行環境一般以Turbo C2.0為主,但Turbo C2.0的調試環境采用DOS模式,調試不是很直觀,且操作采用命令和鍵盤來實現,界面不可視化操作使學生很不理解,因此會使學生失去學習的動力和學習的積極性。盡管C語言實用價值很高,但理論性很強的教學內容,很難引起學生的學習興趣,如果我們再不講究其教學方法,則難以達到本課程的培養目標。為了改變目前的教學現狀,教師必須利用學院現有的教學資源對教學內容進行重新整合,改進以往單一、枯燥乏味的教學模式和教學方式,讓知識變得有趣而生動化,從面提高學生的學習興趣、學習的積極性、學習的動力和學以致用的能力。
3 合理利用多媒體技術,提高教學效果
傳統的教學模式是利用黑板式教學手段在教室進行講授C語言程序設計課程。特別是在講解如何利用運行環境進行上機步驟、程序調試方法,程序運行過程和程序運行結果的查看等內容時,課堂教學則顯得枯燥無味、不夠清楚,也不直觀,在這種教學方式下,大部分學生則會對C語言這門課程失去學習興趣、學習的積極性、學習的動力和學習信念。高職院校多年來進教學改革和更新教學設施,基本上來講,教學設備都比較齊全。先進的多媒體教學手段出現后,被廣泛使用在許多課程的教學上,多媒體教學具有直觀生動、圖文并茂的優勢,能夠把枯燥無味的理論知識變得生動形象化。但先進的教學手段并不完全代表一定會收到良好的教學效果,教師則必需精心制作出適合自己課程的教學課件,把傳統教學不能很好表達的教學重點和教學難點進行重新設計,并與傳統教學有機結合,從而達到滿意的教學效果。合理利用多媒體技術不僅可以加強學生的學習興趣,也能激發學生的學習動力和求知欲,使學生真正體會到學習的快樂和滿足。
4 加強實踐環節,培養學生的編程能力
C語言程序設計是一門實踐性很強的課程,學生不僅要掌握C語言的概念,語法規則,又要動手編寫程序,并進行上機調試運行得出結果。所以培養學生的實際操作能力則顯得尤為重要。在實踐課的教學過程中教師必須做到:教師必須為每次上機習題做到精心挑選,認真對待,在實驗內容上應做到有較容易的題目,也要有綜合性較強的題目,題目要求不僅要顧全驗證性、綜合性和設計性實驗的比例,也要做到使所學的知識內容進行整合,達到學習的系統化。學生在進行實驗時,根據學生的學習能力和操作能力,將其分組來進行實驗。實驗過程中,要求學生根據實驗內容再進行分解,教師正確引導學生學會運用正確的思維方法,由易到難,自頂向下,逐步求精,找出解題的關健,并且鼓勵他們互相學習、大膽討論,這樣不僅能調動每一位學生的學習動力,也能加強團隊精神的培養。
5 考試考核制度的改革
C語言程序設計課程的培養目標是學生的思維能力和實踐能力,學生最終成績評定也是體現學生在整個學習過程的主要評價,采用單一的試卷考試方式已經不能體現出學生的實際能力水平。我們對學生的要求不僅要考學生的知識水平,更注重考核學生的學習能力、知識應用能力、對問題的分析能力和解決實際問題的操作能力綜合考評。即要更多地通過關注學生的學習過程,用可持續發展的方略去評價每一位學生,更好地體現評價的激勵功能,使其做到促進學生學習的主動性和積極性。建議的考評標準為:理論占40%,實踐技能占60%,或進行全國計算機等級二級C語言考試,凡通過者可獲得一定獎勵。
在目前信息社會中,計算機的應用越來越廣,因此,高職院校的責任重大,學院在進行計算機教育中應依據培養目標提出不同的教學要求。使每一位學生在學習C語言時,都能由淺逐深、循序漸進地進行教學培養,教師在學生學習的過程中必須激發學生的興趣,更新教學理念,充分利用、整合各種教學資源,注重教學模式和教學方法的探索,真正使C語言程序設計這門課程成為學生學習其他計算機編程知識的基石。
參考文獻
[1] 張長海.以程序設計為主線為主線講授“高級語言程序設計”課.計算機教育.2005(5).
[2] 譚浩強.C語言程序設計.清華大學出版社.2002(6).
篇9
關鍵詞:C語言程序設計實踐教學;課時統一化;小組競賽;網絡平臺
中圖分類號:G642.41 文獻標志碼:A 文章編號:1674-9324(2015)51-0224-02
在21世紀信息技術時代,大學生不能只滿足于會用辦公軟件。為了迎接新世紀的挑戰,無論計算機專業還是非計算機專業的學生,都應當學習C程序設計課程,并且把它當作進一步學習與應用計算機的基礎。C語言作為一種程序設計語言,它功能強大、使用靈活方便、應用面廣、目標程序效率高、可移植性好,既具有高低級語言的許多優點和特點,適用于編寫系統軟件,又能方便地用來編寫應用軟件[1,2]。因此,C語言程序設計作為第一門計算機語言教學顯得尤為重要,且實際上它也日益受到各個高校的重視。然而,當今大學生在學習這門課程的過程中卻出現了各種問題,如學不會、不想學、聽不懂,這些問題逐漸地惡性循環,致使這門課程沒有完全發揮出價值,形同虛設。所以,我們亟需大家探討并發現問題,解決問題。
一、實踐教學現狀
C語言程序設計作為一門計算機基礎教育課程,已經在各高等院校開設,現各高校普遍采用板書或多媒體講解概念、語法、教材,然后讓學生上機操作,這種方式存在弊端,致使大部分學生只能讀懂程序而不會編寫程序,甚至一部分學生變成程序代碼的“搬運工”,與我們的教學目的背道而馳。根據目前的教學狀況,C語言程序設計的教學存在以下一些問題。
1.學生的參與度不夠。在傳統的教學中,教師采用的是全板書形式,如今,多媒體普及,教師又改為全多媒體教學[3]。實際上,多媒體就是節省板書時間,但依然是教師照本宣科地講,學生一頭霧水地聽這種陳舊的模式。一味地采取“填鴨式”教學,從頭講到尾這樣被動的課堂,學生就是一名觀眾,沒有參與到學習與思考中來,正因如此,學生注意力不集中成為一件高頻率事件,等學生再集中注意力回歸課堂,會發現對教師的話已經是不知所云,所以為了保證學生高效率聽課,一定要讓學生參與其中。
2.理論與實踐脫節?,F在,大多數高校普遍存在的一個問題是課時總量不夠,時間安排也不適當,表現在師資力量匱乏,教學班級多,教學任務繁重。以筆者所在的學校為例,一個學期理論課共42個授課課時,26個上機實驗課時,加上各種節假日,上課的時間少之更少。C語言程序設計是長期的、逐步深入的教學過程,依照現在的教學任務設置,教師要想按照考試大綱要求進行講解,就只能加快教學進度,顧不上對實踐內容進行詳細講解,結果導致學生的實際操作能力偏低,但若全部進行機房實踐,又不利于學生掌握基本理論。而且,為了教學課程的安排,通常學生的上機實驗課會比理論課晚兩天左右,甚至周一理論課,周五才安排上機操作,不能將實驗與課堂教學環節很好地進行連貫,導致理論與實踐的嚴重脫節[4]。
3.實踐與應用太少。學以致用是學生學習的最終要求,我們的教學目的是讓學生可以運用所學的知識讀懂程序、編寫程序,然后去解決實際問題,而現在高校的大部分學生做不到這一點。目前,多數高校的學生學習C語言程序設計這門課程的學習方法非常不到位,即在課堂上,學生僅僅翻開教材,盯著講臺聽課;在上機課上,學生也只是按照課本照搬程序。除此之外,在課余時間,學生們不鞏固復習教材,也不看程序,更不會自己編寫代碼。如此下去,他們的實踐能力不僅不會提高,反而極大地降低了他們對C語言程序設計的學習興趣。
4.實踐未得到及時反饋。由于課時緊張,教師不能將學生上交的實踐報告或上機操作的實驗結果及時地反饋給學生本人,以致于學生不能在第一時間對自己的錯誤或疑惑有進一步的了解與解決,造成學生盲目地學習,甚至不學習。但等到課堂上,教師也不能占用大部分時間去點評學生的實踐結果而耽誤課程的進展。另外,新的知識點講完就會有新的練習內容,如此積累,工作量繁雜,學生對之前編程的細節也會慢慢忘記,更重要的是程度較落后的學生會出現知識的缺陷,長此下去,學習困難的打擊會使學生的學習興趣急劇下降。
二、教學方法
要解決上述問題,我們就要緊緊抓住學生的實踐鍛煉,重視實踐教學,明確實踐教學方法,才能使我們的教學目標達到事半功倍的效果。
1.課時統一化,采用多種方式考察。既然由于課時原因,全理論授課與全上機操作導致學生的參與度不夠,理論與實踐脫節,我們可以統一課時,即我們的C語言程序設計課程全部在機房授課。如今,機房設施完備,軟硬件已足夠完善,我們可以選擇在機房授課,利用機房的多媒體與黑板,講解理論知識,遇到需要學生動手的地方,可以讓學生及時地動手操作。教師完全不用擔心在授課時,學生玩電腦游戲影響聽課,我們可以遠程控制桌面,實時控制學生的電腦,進行各種操作,提高學生的聽課效率。同時,系統還可以自動統計出勤率,比點名更加快捷,具有實時的監督作用。另外,教師再也不用擔心學生由于近視問題而看不清多媒體屏幕。其次,這種機房授課以多種方式對學生學習狀況進行考察,例如提出問題法、糾錯獎勵法、學生演示法、小測試法……提出問題法是指教師提出一些重點或難點問題,由學生來回答;糾錯獎勵法指教師給出某個算法或程序讓學生去發現其中的錯誤并糾正,最快找出的學生給予小小的獎勵,如一張精美的書簽、一句鼓勵的話語等;學生演示法指的是找一名學生到教師端編寫一個小程序或某個算法中的易錯點,以此找出學生的通病,引起大家的注意;小測試法是在課堂最后十分鐘左右給學生發放一份提前寫好的試題,兩到三題即可,可以按照計算機二級等級考試模式編寫,學生提交,系統直接核對,省時省力。這樣多種方式進行考察,真實地反映學生對該節課的掌握程度,也讓教師真正了解學生的學習情況,以便進一步開展教學工作。
2.小組競賽法,模擬各種編程競賽。為了激發學生的學習興趣,增強學生的動手實踐能力,可以采用小組競賽的方法來加強學生對C語言課程的學習。整個班級可以自由分組,兩到三個人一組,教師布置相應的編程題目,要求學生在規定的時間內上交,由教師來評分,選出程序最清晰、代碼更簡練的一組。在學期中后期,學生擁有一定的基礎和能力的情況下,可使其參與評選過程,通過評選人員相互交流討論,在提高被評學生編程能力的同時使參評學生也有所提高,即所謂的“教學相長”。除了進行班級內小組競賽,還可以進行班級之間、專業之間集體賽。依然是先在班級中進行初選,再經過層層選拔與淘汰,指出各方的優缺點,最終評出優秀、良好等。獎項不是重點,關鍵在于讓學生都參與到實踐活動中來。通過以上各種形式的競賽,可以提升學生對C語言的學習興趣和編程能力。
3.網絡交流法,建立多種網絡平臺。伴隨網絡化時代的到來,教師可以通過多種網絡平臺與學生交流、互動,及時指出并解決問題。如教師可以給每個班建立一個QQ討論組、微信群,如果學生在課下時間有難題或者對課堂上的知識點有疑問,可以在第一時間通過網絡交流平臺和教師取得聯系,以此使得“教學課堂”在時間和地域上得到無限制的延續。另外,通過網絡平臺,教師還可以給每個年級建立公共郵箱、論壇,用來分配任務、布置作業、共享教學資源等。更重要的是,教師可以把一些實踐或實驗發到網上,對學生的作品進行網上點評,把優秀的程序分享給大家,同時指出學生的不足之處,到網上,學生自行查收,及時地給學生反饋。另外,這些平臺還可以作為學生們的“討論網”,大家自由交流各自的學習經驗與學習心得,成為學生在線學習交流、在線測試的途徑。通過各種網絡平臺,使教師與學生、學生與學生的交流不受時間的限制、地點的約束,由學生自主地選擇學習,從而解決教學時間不充足的問題,消除教師與學生之間在時間和空間上的距離感,進一步方便學生及時解決疑惑,及時得到反饋,取得更有效的學習效果。
本文探索的一些方法和改革創新是優缺點共存的。研究發現,采用以上多種方法相結合,一環扣一環的教學組織與管理,能保證學生學到一定的知識。沒有最棒的方法,只有最適合自己的方法,我們做的就是盡可能給予學生指導,建立良好的學習氛圍。但是,如果學生對自己不負責任,學生之間存在相互包庇、幫忙完成實驗上機報告等問題,將影響整個教學效果。所以,教師要特別關注這些學生,經常鼓勵、輔導他們,督察學習情況,特殊情況特殊處理,引導和幫助他們找到自己的學習目標和學習方法。C語言程序設計成為越來越多高校學生選擇的課程,也是全國計算機等級考試的選擇之一。我們要緊跟時代的步伐,不斷更新教學內容,分析和探討C語言程序設計教學過程中存在的問題,進行教學方法的改革,適應時代需要,做好十足的準備去迎接未來的挑戰。
參考文獻:
[1]譚浩強.C語言程序設計(第四版)[M].北京:清華大學出版社,2010.
[2]薛小鋒.《C語言程序設計》教學方法探析[J].福建電腦,2004,(01):87-88.
篇10
關鍵詞:C語言 教學內容 教學手段 教學方法 教學改革
學習計算機程序設計語言是提高人們計算機知識水平的重要步驟。C語言作為當今最為流行的程序設計語言之一,不但成為計算機專業的必修課,而且也越來越多地成為非計算機專業的學習課程[1]。但在《C語言程序設計》課程教學中,許多教師和學生都認為C語言涉及的概念比較復雜,規則繁多,使用靈活,容易出錯,教師教學和學生學習都感到困難,并不同程度產生畏難心理[2]。特別是多數高校將C語言作為計算機專業學生進校后首先接觸的第一門專業基礎課,這種現象尤為明顯。筆者根據多年的程序設計課程的教學實踐,對《C語言程序設計》課程從教學內容、教學手段、教學方法等方面進行了大膽的改革,并取得較好的教學效果。
1 教學內容的改革[3]
1.1 課堂教學內容的改革
以福建省高校計算機系列教材《C語言程序設計與應用教程》為例,教學內容主要包括C語言語法基礎、程序控制結構、數據類型、指針、函數、文件以其它們的應用等。教材在內容組織上,雖然依邏輯思維方式進行了歸類,但難點還是較為集中,跨度大;概念講得多,分析少;語言深硬,不夠形象,較難理解。雖然教材在各章節也舉了一些編程例子,但多數難度較大,適用性不強。筆者本著“深入淺出,突出實用”的指導思想,在課堂教學過程中,對教學內容重新進行了歸納,將難點再次分散,以縮小臺階,達到循序漸進。例如,C語言數據類型、運算符、表達式種類繁多,放在一塊講授,學生學習起來難度較大,于是筆者就刻意將算術型的數據類型、運算符以及相關的表達式先介紹,使學生學習起來沒有想象中的那么難。緊接著又教學生編寫簡單的、實用的C程序設計,然后趁機引入基本輸入、輸出函數就順理成章了。這樣一來臺階小了,學生的信心也增加許多,學習積極性很快就被提高起來。對于深硬的語言敘述,筆者則改用生動的比喻,進行詳盡引導。譬如,在開始學習指針的概念時,教材對“間接存取”敘述比較深硬,學生難以理解,筆者就借用比喻:將A房間的鑰匙放在B房間里,若要取A房間里的物品,就需要先打開B房間,取出A鑰匙,再打開A房間,取出A房間的物品,這就是“間接存取”。學生很快就能理解,也加深了指針的概念。在教學過程中,筆者還及時查閱英文版教材和有關報刊雜志,對較難理解的概念,用不同的方式給以解釋,甚至直接引用英文原版教材內容。
1.2 實驗教學內容的改革
計算機語言教學的主要任務是培養學生具有一定的閱讀程序、設計程序的能力,分析問題、解決問題的能力和邏輯思維的能力。而C語言程序設計是一門實踐性很強的課程,既要掌握概念,又要動手編程,還要上機調試運行[2]。因此,C語言的教學特別需要重視實踐環節,包括編程和上機實驗。為了突出實踐教學,培養學生的知識應用能力,筆者對實驗內容進行了較大的改革,一方面保留基礎性實驗,例如:三角形面積計算、求一元二次方程的根、各類三角圖形的繪制、簡單的排序算法等基礎編程實驗。使學生能夠較順利地通過實驗,并及時理解和消化課堂教學內容,學生也會獲得一定的成就感,學習熱情會進一步得到提高。另一方面,增加一些實用性強的、難度略大的實驗,并組織學生討論,通過討論得出算法流程,然后上機編程調試。例如:要求分別用數組與指針,將一個字符串中的所有英文字母取出,并轉為大寫,然后再將它們倒序存放。做這個實驗之前,學生先通過討論,分別得出使用數組與指針進行讀取英文字母及倒序存放的算法流程圖,然后上機實驗。這樣一來,一方面有利于培養學生對知識的應用能力與問題的分析能力,更主要的是也培養了他們協作能力。另一方面通過用數組與指針不同的解題方法,有利于學生加深對所學知識的理解,讓學生真正體會到C語言的靈活性,激發學生的求知欲。
2 教學手段的改革
在教學過程中,運用多媒體技術輔助教學,有利于激發學生的學習興趣,能發展學生的主體能力;同時由于多媒體信息量大,也能夠優化教學過程[4]。但多媒體輔助教學也有不利之處,主要體現在不恰當的使用會分散學生注意力,影響主要問題的理解,也不利于發揮學生的想象力,影響師生之間的情感交流。在C語言程序設計課程教學過程中,筆者考慮到課程的特點,揚長避短,將傳統教學與多媒體教學進行了有機的結合。例如:由于C語言的數據類型、變量類型、運算符、程序結構等,它們的定義、概念較多,又沒有深奧的理論,也沒有多少邏輯推理,所以筆者就采用多媒體教學。在教學過程中,事先將概念、大信息量的案例代碼制作成課件,在課堂做展示供學生增加信息量用,也簡化傳統教學無法板書的缺點,課堂教學也不再顯得枯燥無味。但對于案例分析或程序的編寫過程,筆者就發揮傳統教學的優勢,進行課堂討論、板書講解、結合提問,將問題層層剖析、層層深入,達到師生互動的效果,學生的想象力就會得到充分的發揮,對問題的理解也變得更容易。另外,筆者也充分利用網絡資源,將電子教案、大綱、課件、習題等放在網上,供學生自行調用,同時通過Email、QQ對學生的提問進行答疑、討論,以彌補課堂教學的不足。
3 教學方法的改革
在C語言課程教學過程中,一方面要求教師能夠準確把握授課內容,同時也要求教師注意應用相應的教學方法,以此提高教學質量。以下是筆者在幾年的C語言課程教學中采用的一些教學方法。
3.1 問題探究教學法
問題探究教學法在C語言教學中是一種相當有用的教學方法。這種教學法能夠充分發揮學生的思維,突出學生的主體作用,能有效地培養學生的分析問題與解決問題的能力。以“冒泡排序”為例,筆者沒有平鋪直敘地介紹算法與程序代碼,而是先跟學生講解什么叫“冒泡”,然后讓學生思考冒泡排序的算法思路,進而讓學生討論并寫出算法流程圖,接下來講解如何用for與if程序結構實現算法,最后才講解為了減少交換次數而引入swap這一判定變量,直至整個程序編寫完整。整個講解過程結合板書,逐步引導,層層深入,取到很好的教學效果。
3.2 歸納教學法
C語言有很多的定義、概念、語法規則,它們使用靈活、難以記憶,也特別容易出錯。如果能夠引導學生進行歸納,將會起到事半功倍的效果。C語言的定義、概念、語法規則有許多相似的地方,例如:printf()與scanf()函數,有很多語法規則是一樣的,對它們進行歸納之后,學生只要記住其中一個,另一個自然就會使用了。又如:數組與指針,由于它們使用靈活,許多學生與教師都認為它們很難,尤其是指針。但如果對它們進行歸納之后,就會發現無論是二維數組,還是指向指針的指針或其它類型的指針,它們都會變得與一維數組的使用一樣容易。為了這些歸納便于記憶,筆者還將它們編成了順口溜,例如二維數與各類有二重地址的指針歸納如下:數組名與指針名代表二重地址,即無“*”也無“[ ]”加減數值對行操作;僅有1個“*”或“[ ]”代表單重地址(即行地址),加減數值對列操作;“*”與“[ ]”加起來有2個就是元素值。
3.3 討論教學法
在C語言教學過程中,充分發揮學生的積極性與主動性是非常重要的一環。筆者針對這門課程的特點與學生的興趣,課前給學生布置了幾個專題,讓學生利用課余時間去思考、收集資料,并在課堂上組織學生發言和討論。這種教學法不僅可以讓學生獲得許多課外知識,同時也促進教學內容的改革,而且也有利于充分挖掘學生的學習潛力。
3.4 因材施教法
由于學生學習的動機、興趣、能力存在較大的個體差異,所以決定了C語言課程必須因材施教。對于學習能力較強的學生,筆者就鼓勵他們自學,并給予方向性指導,讓他們超前學習。在C語言教學中,培養學生的自學能力尤為重要,如果學生的學習完全依賴教師才能掌握,而沒有一定的自學能力,其所學的知識很快就會被淘汰。對于多數學生,則把精力放在最基本、最常用的內容上,讓他們學好基本功,掌握程序設計的方法,為后續課程的學習打下基礎。另外,教學過程中,筆者還不時地從學生的角度來考慮問題,講解內容,加強師生的互動效果,以降低學生學習的焦慮情緒。
3.5 實踐教學法
學習程序設計課程的目的是掌握設計程序的思路,學會用計算機語言編寫程序,以實現所需處理的任務[2]。因此教學重點要放在解題的思路上,通過大量的實踐讓學生學會怎樣設計一個算法,構造一個程序。筆者一開始,讓學生編寫簡單的程序,然后逐步深入。在實驗題目設置上,根據課時安排以及要掌握基本知識,設置必做與選做題,以滿足各個層次學生的需要。在本課程結束后,安排一次綜合的大實驗,培養學生綜合應用能力。
3.6 綜合考核法
衡量這門課學習的好壞,不是看學生“知不知道”,而是“會不會干”。考核的方法不能主要用是非題和選擇題,而應當把重點放在編制程序和調試程序上[2]。所以筆者對學生學習成績的評定,采用綜合考核法,將平時的實踐成績與期末卷面成績進行綜合,得出本課程綜合考評分。這種教學法,不但能更客觀地反映學生的學習情況,同時也能促進學生學習,起到很好的教學效果。
4 結束語
上述教學內容、教學手段與教學方法的改革,是根據實際教學過程中學生存在的問題提出的,并已經在《C語言程序設計》課程教學實踐中運用,取得了良好的教學效果。當然,同樣的教學內容面對不同的學生,在使用與設計某種教學方法時,還要求學生的配合才行,也就是說教的方法與學的方法要有機統一。筆者將繼續努力探索,使《C語言程序設計》課程教學日趨完善。希望本文能對大學計算機基礎教學有一定的借鑒作用。
參考文獻:
[1] 嚴桂蘭.C語言程序設計與應用教程[M].福建:廈門大學出版社,2001
[2] 譚浩強.C程序設計(第三版)[M].北京:清華大學出版社,2005