前言:中文期刊網精心挑選了c程序范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
c程序范文1
具體介紹:
1、數據類型:C的數據類型包括:整型、字符型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
2、常量與變量:常量其值不可改變,符號常量名通常用大寫。變量是以某標識符為名字,其值可以改變的量。
3、數組:如果一個變量名后面跟著一個有數字的中括號,這個聲明就是數組聲明。字符串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。
4、指針:指針不僅可以是變量的地址,還可以是數組、數組元素、函數的地址。通過指針作為形式參數可以在函數的調用過程得到一個以上的返回值,不同于return(z)這樣的僅能得到一個返回值。
5、字符串:C語言的字符串其實就是以''字符結尾的char型數組,使用字符型并不需要引用庫,但是使用字符串就需要C標準庫里面的一些用于對字符串進行操作的函數。它們不同于字符數組。
c程序范文2
關鍵詞:Java;JNT;C++;DLL
在現今的軟件開發領域中,Java以其跨平臺的優勢得到大量的應用,其代碼可以一次編譯多處執行。但這種特性給Java帶來了一定的局限性,幸好Java提供了完備的C/C++語言接口,這樣我們可以利用C語言的強大功能實現Java難以實現的功能,在一定程序上消除Java的局限性和低效率。
JNI是Java Native Interface的英文縮寫,中文翻譯為本地調用,自從Java 1.1開始就成為了Java標準的一部分。
C/C++是系統級的編程語言,可以用來開發任何和系統相關的程序和類庫, 但是Java本身編寫底層的應用比較難實現,使用JNI可以調用現有的本地庫,極大地靈活了Java的開發。
C/C++的效率是目前最好的語言,可以使用C/C++來實現一些實時性非常高的部分。 C/C++和Java本身都是非常流行的編程語言,一些大型軟件中經常使用語言之間的混合編程。
一、創建DLL文件
使用某一種C/C++開發工具創建Dll文件,實現某一功能,供JAVA調用,例如本文在此使用Visual studio 2005創建一個名為testdll的動態庫文件。
二、使用JNI
JNI是Java Native Interface的縮寫,中文為JAVA本地調用。它允許Java代碼和其他語言寫的代碼進行交互。
1.JAVA類
在JAVA程序中,首先需要在類中聲明所調用的庫名稱,如下:
static {
System.loadLibrary(“testdll”); //加載動態庫,testdll為DLL文件名稱
}
還需要對將要調用的方法做本地聲明,關鍵字為native。并且只需要聲明,而不需要具體實現。如下:
public native static void set(int i);
public native static int get();
然后編譯該JAVA程序文件,生成CLASS,再用JAVAH命令,JNI就會生成C/C++的頭文件。
例如程序testdll.java,內容為:
public class testdll { static { System.loadLibrary(“testdll”); } public native static int get(); public native static void set(int i); public static void main(String[] args) { testdll test = new testdll(); test.set(10); System.out.println(test.get()); } }
用javac testdll.java編譯它,會生成testdll.class。
再用javah testdll,則會在當前目錄下生成testdll.h文件,這個文件需要被C/C++程序調用來生成所需的庫文件。
2.C/C++
創建C/C++項目需要增加的頭文件有jni.h、jni_md.h這兩個文件是JNI中必須的;還有就是增加testdll.h。
對于已生成的.h頭文件,C/C++所需要做的,就是把它的各個方法具體的實現。然后編譯連接成庫文件即可。再把庫文件拷貝到JAVA程序的路徑下面,就可以用JAVA調用C/C++所實現的功能了。
接上例子。我們先看一下testdll.h文件的內容:
#include #ifndef _Included_testdll #define _Included_testdll #ifdef __cplusplus extern "C" { #endif JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv * jclass); JNIEXPORT void JNICALL Java_testdll_set (JNIEnv * jclass jint); #ifdef __cplusplus } #endif #endif
在具體實現的時候,我們只關心兩個函數原型 JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv * jclass);和 JNIEXPORT void JNICALL Java_testdll_set (JNIEnv * jclass jint);這里JNIEXPORT和JNICALL都是JNI的關鍵字,表示此函數是要被JNI調用的。而jint是以JNI為中介使JAVA的int類型與本地的int溝通的一種類型,我們可以視而不見,就當做int使用。函數的名稱是JAVA_再加上java程序的package路徑再加函數名組成的。參數中,我們也只需要關心在JAVA程序中存在的參數,至于JNIEnv*和jclass我們一般沒有必要去碰它。
下面我們用testdll.cpp文件具體實現這兩個函數:#include "testdll.h" int i = 0; JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv * jclass) { return i; } JNIEXPORT void JNICALL Java_testdll_set (JNIEnv * jclass jint j) { i = j+5; }
編譯連接成庫文件,這里就是testdll.dll。把testdll.dll拷貝到testdll.class的目錄下,java testdll運行它,就可以觀察到結果了。
三、總結
使用JNI可以在JAVA中調用其它語言編寫的代碼,在一定程度上消除JAVA的局限性和低效率。
參考文獻:
c程序范文3
關鍵詞:C語言程序設計;教學方法;教學手段
中圖分類號:TP3-4
C語言是在國際上被廣泛應用的計算機程序設計高級語言,受到很多大學的青睞,有不少學校將其作為第一門程序設計教學語言來進行學習。在我校C語言也是各理工科專業的公共基礎課。但是,由于高職學生的基礎不好,而程序設計課程邏輯性又很強,有不少學生不能很好地理解算法,編寫程序也很困難,在教學過程中,出現了亟待解決的問題,對此,筆者結合自己在教學中遇到的問題,提出了相應的應對方法,以激發學生學習興趣,提高教學質量。
1 教學目標的定位
教學目標作為教學活動中學習者要預期達到的學習效果,對教學活動起著導向、激勵、調節、檢測和評價的作用,有利于教學目的明確化,應用能力培養的具體化,是教學活動的出發點和歸宿。通過對我院C語言程序設計的教學目標的改革,旨在提高學生的實踐能力,培養應對信息化發展變化的良好素養。
2 教學內容的更新
2.1 從實際問題出發開展教學。C語言程序設計是一門邏輯性很強的課程,有的同學課堂上老師講的也能聽的懂,課本上的例題也能看明白,可是等到自己動手編程時,卻不知道從哪里下手。他們所謂的聽的懂看的明白,只是很膚淺的語法知識,而編寫的程序或軟件則是需要根據相關問題的實際需要結合相關的邏輯分析,編寫語句控制程序的流程,如果沒有深刻地理解C語言的語句的執行流程,是沒辦法編寫程序解決相關實際問題的。所以筆者經常提醒同學,當拿到相關問題時,首先結合實際,思考解決問題的方法和步驟,然后再結合C語言語法語句編寫相關程序。
2.2 注重實踐環節教學。C語言是一門實踐性很強的課程,光學不練、“紙上談兵”是學不好C語言的。筆者在進行C語言教學時,講解了相應的C語言語句語法等理論之后,都會根據相應的理論知識布置1-2個相應的同學們比較感興趣的問題,讓同學通過編程并上機運行調試求得問題的結果,來刺激同學們編寫程序調試程序的興趣,以此來提高同學們編寫程序的實際操作能力。另外實驗指導書,也是旨在讓同學們逐步的由閱讀程序、分析程序內容及結果、補充程序、程序改錯慢慢過渡到能夠獨立編寫程序,每一個實驗所安排的內容都比較多,若僅靠課堂上有限的90分鐘來完成所有實驗內容幾乎是不可能的。所以,我在每次實驗之前都要求同學們對相應的實驗內容進行提前預習,實驗前完成對程序內容分析理解、有需要填充程序的提前結合題目要去及上下程序段意義完成填空、有需要改錯的結合實際意義找出程序中的錯誤并在實驗指導書上改正過來、有需要編寫程序的提前在課下編寫好程序等,在上機實驗時,將補充完整的或改寫好的或編寫好的程序輸入C語言編輯器中進行編輯、運行,這樣在上機實驗時只需要調試程序中的錯誤,找出錯誤的原因,然后對程序進行運行查看運行結果,用來檢驗實際運行結果與分析結果是否一致,這樣不僅大大提高了課堂利用率,而且還鍛煉了同學們分析問題、解決實際問題的能力。
2.3 注意提高學生調試程序的能力。在C語言程序設計中,調試程序是一件很重要的事。俗話說,“人無完人”,所以即使是比較優秀的程序員在編寫程序時也難免會出錯,而且還可能是那種最低級的語法錯誤,但他能快速的發現錯誤并改正,這是因為他們一般都具備相應的程序調試能力;而對于大多數C語言初學者在面對錯誤提示時,卻無從下手,不知錯在哪里,如何改正,這就是差別。筆者在C語言的教學中這樣引導同學進行調試:
首先要求同學們按照教材上的程序實例進行原樣輸入,運行一下程序是否正確。如果能正常運行,再要求同學們在該程序的基礎上進行試驗性的修改,然后再運行一下程序對照一下看程序運行結果發了什么變化,并引導同學分析結果發生變化的原因,以加深同學們對所學知識點的理解。
有時還會引導同學們將教材中的正確程序改寫成錯誤的程序,并上機運行,讓同學注意查看出現的錯誤提示信息,并記下該信息,然后再將程序改寫成正確的,并再次運行。不過要求同學每次只改錯一個地方,目的是讓同學能準確找出發生該錯誤的真正原因,避免因為改動過多,搞不清發生錯誤的真正原因;另外,要求同學們上機調試程序時每個人都帶一個小本子和一支筆,當程序出現錯誤時,記下英文錯誤提示信息和解決相應錯誤的方法,用于積累調試程序的經驗,避免以后編程時再犯同樣的錯誤。同學們通過這樣的反復修改、運行,就能夠掌握相應的調試C語言程序的方法,找出C語言程序發生錯誤的原因及相應的修改方法提高修改錯誤的能力。
當同學們有了一定的C語言編程基礎了之后,要求同學在不看教材的情況下,根據給定的實際問題完成程序編寫、上機調試、運行,如果所編寫程序不能正常運行,看自己能否找出錯誤原因并將其改正過來,使其能正確運行。這樣經過多次練習,必然能提高學生的編程和調試程序的能力。
2.4 注意學生綜合能力的提高。筆者經常鼓勵同學可以先編寫一些小程序,然后對多個相關小程序進行連接,形成一些稍大一點的程序,提高自己的綜合解決實際問題的能力。鼓勵同學在上機實踐的同時多動腦、多思考,多了解并借鑒別人優秀的解題思路和方法,多看別人優秀的源程序代碼,嘗試著自己獨立實現編程或者模仿著去實現編程,來提高自己的綜合能力。
3 教學方法與教學手段的研究
3.1 多種教學方法的綜合運用
對于C語言程序設計課程教學來說,相關知識點繁雜,概念多,理論抽象,學生不容易掌握,在授課過程當中,需要根據授課的內容和學生的具體情況,靈活地運用分小組討論、任務驅動、案例式教學、啟發式教學等多種教學方法,并適當的將多種教學方法進行有機結合,同時,也可以借助于多媒體和網絡等現代教學手段使這些方法得以有效實施。
例如課堂上,不再采用教師滿堂灌的陳舊教學方式,在新課教學時,合理采用任務驅動法:先提出待解決的問題,再引導學生分析問題找出解決問題的相應方法和具體步驟,之后再結合C語言語法給出源代碼,并對源代碼進行分析,再將新知識點引出,對知識點進行講解、強調,最后再留給學生一些相應任務,學習小組經過討論、研究,將任務完成,達到鞏固知識點的目的。新的授課方式使同學們更易接受,更為直觀形象,而且同學們可以直接參與問題的分析與討論,同學上課的積極性得到很好的提高,上課質量和課堂效率得到很好的保障。
3.2 采用多媒體教學
現代社會是個多元化的社會,原始的三尺講臺,一面黑板,一支粉筆的教學方式已遠遠不能滿足現在多元化信息社會的需要,現代的課堂教學需要根據學生的理解和接受能力,借助于多媒體課件進行演示、講解,能更加形象更加直觀地對問題進行分析進行講解,同時對同學們的多個器官進行多方面的刺激引起學生更濃厚的興趣,并且還減少了板書時間,使課堂效率得到更有效的提高。
3.3 課堂教學與網絡教學相結合
在90分鐘的課堂教學中,給予我們的時間畢竟是有限的,并且課堂知識點相對來說比較凌亂繁雜,在一堂課中這么繁瑣的內容要求學生僅靠課堂90分鐘就能熟練掌握是不太現實的。因此,我們可以借助于精品課程網站,將電子課件、教學大綱、經典程序、經典算法、練習題和解答等資料上傳至精品課程網站這個平臺,供學生復習、鞏固和自學,這樣就可以使學生利用網絡教學這個公共平臺查找自己所需要的相關信息,并且還可以使學生養成主動學習的好習慣。
參考文獻:
[1]譚浩強.C語言程序設計(第四版)[M].北京:清華大學出版社,2010.
[2]謝延紅.C語言程序設計公共課教學模式改革與實踐[J].計算機時代,2010,12:45-47.
[3]陳國章.TurboC程序設計技巧與應用實例[M].天津:天津科學技術出版社,1995,5.
c程序范文4
關鍵詞 C語言程序設計;教學理念;教學方法
中圖分類號TP39 文獻標識碼A 文章編號 1674-6708(2010)25-0198-02
C語言程序設計課程是我校理工類各專業必修的計算機程序設計基礎課,是一門實踐性很強的課程,學習者必須通過大量的編程練習,在實踐中掌握語言知識,培養程序設計的基本能力,并逐步理解和掌握程序設計的思想和方法,培養學生編程興趣和編程能力是我們教師的責任,也是該課程的目標。
現行的教學中存在一些問題:一是按照從基礎知識講起,然后講解語句語法,最后應用舉例;二是教材內容安排不盡合理,語法規則編寫過細[1];三是教學理念、教學方法和考核方法比較老套,不適應當今教學的發展。為了讓學生學好這門課程,提高動手能力,必須進行教學改革,探索改革的思路和方法。
1 轉變教學理念
傳統的“蓋房子”教學理念,強調必須先打好地基再砌墻,即強調先打好基礎,然后再進行實際編程。這種教學理念教師往往先介紹概念和定義,再舉例進行講解,這種教學方法死板而枯燥,由于課程的教學重點往往放在了語言語法知識點上,而語言的語法是相當煩瑣而復雜的,這種教學方法缺少應用型、趣味性的案例,使學生一步步地陷入到紛多繁雜而索然乏味的語法學習當中,很難充分調動學生的積極性和啟發學生思維。
研究自然界中“樹”的生長規律可以發現,“樹”并不是先長成發達的根系,再長樹干和枝葉,樹的根系、樹干和枝葉是同步生長的?!皹洹钡纳L過程應用到教學上,就是基礎語法和編程的教學同步進行,甚至先教編程技能再教理論,在不斷地實踐中掌握技能,在技能學習中提高基礎理論。
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語言程序設計網絡教學平臺??梢园颜n程教學大綱、教案、多媒體課件、教學錄像、綜合實例庫、習題庫、學習參考資料、模擬考試系統等教學資源全部上網,通過這個網絡教學平臺,學生可以瀏覽、下載學習資料,也可以提交電子作業,在線提問題,老師在線輔導和答疑等,為學生自主學習提供強大的網絡支持。
4 師資隊伍建設
成立C語言程序設計課程組,建立結構合理的教師梯隊。由具有豐富教學經驗和科研能力的教授任組長,激勵教師努力鉆研教學內容和教學方法,拓寬知識結構。同時,針對組內教師的不同特點,課程組制定了切實可行的目標,并定期進行集體備課,相互探討,號召組內教師積極參與教學研究和科研開發,為提高教學水平打下良好的基礎。建立主講教師之間互相聽課和評課制度,定期召開學生座談會和課程質量分析會,并針對反饋意見提出改進教學的具體措施,從而規范教學的各個環節,為更好地提高教學質量奠定良好的基礎。
5 考核評價體系
對課程考核評價體系進行改革,突出過程考核和編程能力考核,促進學生實際動手能力和創新能力的提高。例如:總評成績=理論課出勤成績+作業成績+實驗出勤成績+實驗完成成績+期末考試成績。期末考試采用《C語言程序設計機考系統》,機考系統為每個考生隨機出題,體現了公平考試的原則。改革后的考核評價體系主要體現了考核形式多樣化、考核標準合理化以及考核試卷個性化三大特征。
6 結論
鑒于目前C語言程序設計課程教學中存在的一些問題,文章通過改革探索,一切從培養學生編程能力的角度出發,按著新的教學理念對教材編寫思路和教學方法進行了探索,提出了教學改革的具體措施。希望對C語言程序設計課程的教學改革有所借鑒。
參考文獻
[1]譚浩強.C程序設計[M].3版.北京:清華大學出版社, 2005.
c程序范文5
關鍵詞: 《C語言程序設計》 教學方法 教學手段 實驗教學
《C語言程序設計》是程序設計類課程的基礎,是計算機專業和相關專業的核心課程,也是全校工科各專業的本、??平虒W計劃中占有重要地位和起著關鍵作用的一門課程。在計算機教育方面,C語言是為數不多的與國外保持內容同步的課程之一。因此,它在高校教學中的地位之重要不言而喻。我們的教學目標是讓學生掌握程序基本編程思想和實用編程技能,訓練學生嚴密的邏輯思維、嚴謹踏實的作風、精益求精的精神,通過全面、深入、系統地介紹程序設計方法和程序設計語言,使學生掌握C語言的基本語法、語句、控制結構,以及結構化程序設計的基本思想和方法,使學生認識到算法、良好的程序設計風格與實踐在本課程學習中的重要性,培養學生熟練使用C語言編程分析和解決實際問題的能力。但在實際的教學過程中,經常有學生學不好、不愿學的情況。我根據自己多年的C語言教學經驗,談談在C語言教學過程中的一些問題,希望對讀者學習和使用C語言有所幫助。
1.存在的問題
很多學生在開始學習時熱情高漲,但隨著課程的深入,該課程里面需要記的規則和規則本身的靈活性特別是思維的轉變使學生慢慢失去了學習的興趣。主要原因有以下幾點:第一,對知識理解不夠透徹,沒有深究里面的知識點。課本里面一般只介紹C語言的格式和規則,因為語言學習的一個漸進性,所以結合實例比較少,學生就比較難于掌握。例如if語句的用法:if(表達式)語句;當表達式為真時執行語句,否則執行if語句的后續語句,如果在“(表達式)”后面加一個分號雖然沒有語法錯誤,但程序的邏輯結構發生了改變,很多初學者會犯此類錯誤。第二,學生的思維方式開始很難轉變過來,經常會用數學里面的表達式來理解和表達C語言里面的表達式。如若要描述三個變量a、b、c的大小關系,很多學生就直接這么寫了:a>b>c,雖然沒有語法錯誤,但同樣出現邏輯錯誤,實際上在C語言里應該這樣描述:a>b&b>c。第三,學生對程序的理解不夠。弄不明白程序的運行過程,實際上時對C語言的控制語句理解不夠。第四,不會動手寫程序。這是很多初學者出現的問題,很多程序能看懂,能理解,但是一叫他獨立寫一個程序,他就無從下手。這主要是平時動手不夠,另外對算法的理解還沒有深入。
2.解決方法
2.1教學方法。教學方法多種多樣,不可采用單一的方式進行講授,在教學過程中教師應該靈活地采用多種方法相結合,充分調動學生的積極性,使其從被動學習轉變為主動學習具體方法如下。
2.1.1互動教學法?;咏虒W法的方式有多樣,如課堂提問、課堂練習等。例如,在講完一個知識點后,教師可拿出幾分鐘時間讓學生自由提問,或者可以出一個相關習題讓學生隨堂練習,這樣既不會讓學生感到枯燥無味,又能加深學生對該知識點的理解。在課堂上還可讓學生直接到黑板上編寫程序,編寫完畢后讓其他同學上來進行點評、講解,這樣可及時發現學生的掌握情況和學生容易犯錯的地方,從而對癥下藥,對學生還沒有掌握的知識點再重新溫習一遍,這樣學生的印象深刻,比直接講解效果更好。
2.1.2啟發教學法。C語言教材中的例題和課后習題比較豐富,給出了一般問題的一般解法,應對其進行歸納、整理和分類,在講解同一類問題時沒有必要逐題講解,而應該在講解一、兩個典型題目的基礎上,拓展學生思路,啟發學生歸納出求解這一類問題的基本算法,這樣既節省了重復講題的時間,又留出時間來給學生討論和思考;或者在講授新的內容時通過復習前面的知識引入新的內容,例如講循環結構程序設計時,應首先讓學生回憶順序結構和分支結構的執行原理和過程,進而引出循環結構的思路和過程。
2.1.3類比教學法。如在講解交換變量a和b的值時,很多學生會直接用a=b;b=a;來處理。這時教師可用交換兩個杯子甲和乙里的飲料這樣的例子來說明,要交換兩個杯子甲和乙里的飲料,則應該要拿第三個杯子丙作為過渡,先將甲杯子里的飲料倒入丙,再將乙杯子的飲料倒入甲,最后將丙杯子里的飲料(亦即最開始甲杯子里的飲料)倒入乙杯子,這樣就實現了甲乙兩杯子的飲料的互換。同樣要交換兩變量的值,也應該要一個中間變量,假設為t,則程序段應這樣寫:t=a;a=b;b=t;如此,學生就很容易理解了。
2.1.4演示教學法。利用黑板或動畫的形式生動地描述程序的運行過程,這樣對一些比較復雜的結構塊或程序段有很好的助理解作用。
2.2教學手段。教學手段也是多樣,針對不同的教學內容和不同的學生個體采取不同的教學手段,這樣才會有針對性。
2.2.1寓教于樂。興趣是激發一個人學習的最大動力,所以教師在教學過程中盡可能地采取一切方法來激發學生學習的熱情。在C語言課程中,也有很多趣味性的數學問題,如“水仙花數”,“完數”,“斐波那契數列”,“猴子吃桃問題”,“百錢買百雞”,等等,這些有趣的問題可激發學生編程的興趣。
2.2.2傳統的板書和多媒體課件相結合。在教學過程中,教師一定不能單純地使用多媒體教學或板書的方式?;贑語言這門課程的特殊性――特別注重動手和程序設計能力,所以在教學過程中,對概念或演示方面可以用多媒體,概念一定要講詳細,寧可少講一個習題,也不能讓學生對概念模糊;涉及程序(特別是學生剛接觸到程序或比較復雜的程序)的時候,雖然多媒體課件上有,但講解的時候最好將其板書出來邊寫邊講,哪個語句段實現什么功能,能否用其他程序段實現相同功能,等等,這樣學生更容易接受這個程序、算法和思想,學習效果更佳。
3.加強實驗教學的管理
《C語言程序設計》是一門實踐性很強的課程,上機實驗是學生消化、理解理論知識,熟悉算法,發現、驗證錯誤,調試程序和提高編程能力的一個重要途徑。學習C語言不能紙上談兵,一定要通過上機來驗證程序,而且學生獨立上機編輯運行一個程序比單獨看書效果強很多。所以教師一定要加強上機實驗的管理,讓學生重視實驗。實驗環節主要有以下幾點。
3.1理論課結束后即要為學生布置實驗課的內容,要有難有易以供不同層次的學生選擇,讓學生在課后先自己編寫好程序或者寫出問題的算法以提高實驗課的上課效率。
3.2上機過程中督促和指導學生進行實驗。上機調試程序的過程中,會出現各種問題,教師應耐心細致地為學生講解并讓其思考原因。另外基于C語言有不同的編譯平臺,常用的有TC2.0和VC++6.0,有個別程序(主要是數據類型里面的問題)在不同的編譯平臺上有不同的結果,一定要讓學生弄清楚為什么。
3.3仔細批改實驗報告。實驗課結束后,要求學生寫實驗報告,上交之后,詳細了解每個學生的實驗情況,出現的問題,這樣就相當于一個反饋了,以后就有針對性了。
C語言是高校計算機教育的一門非常重要的課程,因此C語言教學是一個非常值得探討的問題。教師應盡一切努力讓學生學好這門課程。
參考文獻:
[1]譚浩強.C程序設計(第二版)[M].北京:清華大學出版社,1999.
c程序范文6
關鍵詞:C#程序設計;教學改革;教學方法
C#是從C和C++演變而來的一種新的面向對象的編程語言,也是目前主流語言中不多見的在Internet出現后推出的語言,它可以實現跨平臺操作,避免了C語言中的指針和多繼承,簡單易學且功能強大。C#程序設計課程是計算機和軟件技術專業的一門基礎課程,是后續程序開發、數據庫等專業課的前導課程,課程內容重在算法概念、結構以及程序設計的基本方法與技術。課程對理論知識及實踐環節的要求都較高,該課程的教學目標是使學生掌握使用C#設計應用程序的基本技能,了解面向對象和結構化程序設計方法,能夠在.Net環境下編寫、調試和運行實用、規范、可讀性好的C#程序。筆者結合教學實踐,對教學過程中的一些問題進行探討,與大家共勉,以求集思廣益,共同提高本課程的教學效果。
1教學背景分析
1) 實踐性教學環節薄弱,缺乏針對專業要求的訓練。
學習C#程序設計課程的最終目的是培養學生的實際動手能力。重在技能培養,理論教學以“必需、夠用”為原則,應盡量避免過深過繁的理論探討。但是現在仍然有很多教師在實際教學中重理論、輕實踐,花費大量精力講解基本概念、基本語法規定、基本命令使用等理論,而對實驗課則沒有過多要求,一般只布置一些在理論課堂上講解過的類似習題讓學生去驗證,沒有或很少針對學生實際專業技能的實訓。學生實際動手能力不強,技能培養目標難以實現。
2) 學生學習動力不足。
學好一兩門計算機語言是學好編程的基礎,是從事軟件開發及其他一系列工作的必要前提條件。但大多數學生不明白學習程序設計的作用,覺得這些知識枯燥無用,缺乏興趣和動力。學習僅僅是為了通過期末考試,嚴重背離了學習的最終目標。
3) 由于學生水平不同導致老師無法做到統籌兼顧。
該門課程的學習對象一般是大一新生,由于地區差異,基礎教育程度不同,他們的計算機水平也有所不同。這就給老師提出了一個難題:如何把握講解的程度?怎樣才能做到統籌兼顧?如何讓所有學生都產生學習的信心和興趣?
4) 考核方式單一。
以往的C#語言程序設計主要以筆試考核為主、操作考核為輔,甚至完全沒有操作考核。這也往往導致學生沒有形成“掌握技能而非緊扣分數”的正確觀念。后果就是學生拿到了學分,卻沒能掌握基本的技能。在后續專業課中,需要重新再進行技能學習。
2改革思路與實施方案
2.1明確目標
在高等教育的新形勢下,作為一般的普通高等院校,必須找準自己的位置、合理定位,制定適合自身條件的發展戰略規劃,培養具有一定理論知識、嫻熟動手操作能力和創新意識的技能型應用人才。具體到一門課程,教師首先要理清思路,搞清楚該課程同其他相關課程之間的關系,把握知識間的銜接和融合,如C#程序設計同后續的Windows應用程序開發、、Web Service、SQL Server等課程有密切的聯系,教師首先要明白C#程序設計中哪些需要精講,哪些略講,重點、難點在哪,通過什么案例可以把相關知識點很好地串接起來,給學生系統的認識。另外,老師在授課的過程中應采取適當的方法和手段讓學生對學習的目的有清晰明確的認識,以便達到最佳效果。
2.2教學方法改革[1-2]
教學方法要根據學生的特點、接受程度以及授課內容的特征靈活地進行選擇。我們大膽進行教學改革,摒棄了傳統教學中以教師為主體,學生被動接受的“滿堂灌”教學方式,取而代之以“工學結合”為切入點,靈活使用啟發式教學、懸念式教學、任務驅動教學等方法,突出了“理論教學構筑學生知識結構,實踐教學構筑學生職業技能結構”的教學原則。
2.2.1啟發式教學法
啟發式教學法可激發思維,增強學生學習的主動性、積極性和創造性。例如,講解選擇結構的執行過程時,不是直接給出選擇結構實現流程,而是先回憶“順序結構”的概念,分析一個實例如何一步步執行完畢。暫且以輸入一個圓的半徑,計算圓的周長和面積為例,順序結構的執行過程是:先輸入半徑;然后按照公式計算周長和面積;最后將周長和面積的結果打印輸出。對這一過程進行分析,可發現問題:如果輸入的半徑為一負值,怎么辦?從細節處引導學生對現實生活中可能出現的各種因素進行分析和思考,引出選擇結構的概念,從而獲得正確的結論。
2.2.2任務驅動教學法
對每個知識點的講解采用“任務驅動”的方法,通過“提出問題分析問題解決問題邊學邊做總結”的過程,體現出互動創新、提倡個性、重在應用、共同協作的教學風格。
在教學過程中要根據課程內容創設情境教學環境,采用符合學生認知水平的教學方法,激發學生的求知欲。例如針對“學生如何建立面向對象程序設計思想”的課程難點,全面采用“項目導向”的教學模式,以完成項目任務為目標,整個教學圍繞任務的解決展開,突出知識的應用性,引導學生自主思考創新,培養學生研究性、探究性學習的能力。
考慮到學生的認知水平,我們采用任務驅動法展開對每一堂課的講解,在每堂課開始首先引入一個典型的小案例,激發學生的求知欲,并由案例引出相應的知識點,引導學生進一步尋求解決問題的辦法,從而達到學習知識的目的,培養學生對理論知識的理解與應用能力。
2.2.3重視實驗教學
實驗教學環節對提高學生的實際動手能力至關重要,教師如何上好實驗課也非常關鍵。一般來說,上課之前學生已經對實驗內容作了相關準備,實驗課上,教師把上機要掌握的內容列在大屏幕上,盡量多花一些時間讓學生上機,而教師在學生上機時起引導作用,幫助學生解決問題,同時要特別提倡學生討論問題,讓學生有足夠的機會自己探索、交流。對比較集中的問題,教師再集中講解。筆者提倡“因材施教”法,通過給學生布置不同難度的實驗練習,如基本練習、強化練習、提高練習,針對每章為學生安排不同的實驗內容,讓學生有一種學以致用的認識,基礎好的同學也得到了提升。另外在本課程基本教學內容結束后,讓學生完成綜合作業,讓其將所學連貫起來。另外實驗教學也可采用“討論法”,在調試程序的過程中,讓幾個學生對不同結果進行分析討論,但分組時要注意成員的組成,最好事先了解學生水平,避免強弱扎堆的情況。
2.3教學手段改革[3-4]
在課程的教學過程中,我們采用的現代教育技術手段主要有:
1) 精心設計教學課件,激發學生學習興趣。
營造輕松活潑的課堂氣氛,通過圖片、動畫、實例演示等方式使課程內容變得容易理解,教學方式更為直觀生動,教學過程更為緊湊,更能吸引學生的注意力。
2) 教師課堂編程示范,鍛煉學生編程能力。
由于程序設計課程的特點,如果將大段程序以課件形式提供給學生,可能會出現學生照抄課件的情況。因此在課堂上,應主要采取現場操作,教師邊分析邊示范如何實現程序。主要的分析步驟可以提供在課件上,學生在教師分析的同時,可以自己實現程序,通過與教師所寫程序的比較,找出不足,提高程序編制能力。
3) 充分利用多媒體教學系統,進行課堂輔助教學。
廣播教學:教師理論講解及總結提高時,通過廣播教學方式,可以讓學生集中精力。
個別輔導:在學生課堂練習時,教師可通過多媒體教學系統發現學生遇到的問題,進行個別輔導;同時也可將學生的優秀作品進行展示,給予鼓勵。
作業收發:通過系統功能可以快速收發學生作業。
4) 利用網絡將課堂教學延伸到課外,注重學生課后學習過程監控。
在課堂教學的基礎上,借助網絡為學生提供教學課件、論壇討論、技術前沿等拓展學習資料。學生必須在課后閱讀相關輔導材料,完成網絡課程中提供的對應練習,同時也可將此作為學生最終考核成績的一部分。
2.4考核方式改革
考核是為了檢驗學生對知識的掌握程度,也是對教師教學效果的一種有力評價。以往的考核方式比較單一,一般采用“平時表現+作業+期末考試”的形式,對于實際動手能力的考核很少甚至幾乎沒有,不能很好地檢驗學生實際的知識技能水平。因此,需要采用一種合理的考核機制,最大程度地檢驗教學效果。
課程考核應緊緊圍繞以能力為中心,通過課堂教學過程考核、實訓項目考核、期末理論考核相結合的方式進行。其中課堂教學過程考核強調平時的出勤、課堂紀律、課堂表現、基本作業、練習作業以及提高作業。期末考核分上機和理論兩部分內容,主要考查學生對課程知識的綜合運用能力。實訓注重考核學生的實際編程能力、分析問題與解決問題的能力。因此,應主要對學生的程序開發調試能力、創新能力以及實際項目的完成情況、實訓報告完成情況等進行考察。
2.5改進建議[5]
根據職業技術教育的特點,從實際應用出發,筆者認為要提高學生的實踐能力和就業競爭力,應從以下3個方面著手:
1) 提高教師自身素質。
軟件學院開設的課程不同于計算機學院的傳統課程,剛畢業的教師一般沒有接觸過很新的課程,除非自學過。特別是年輕教師若沒有相關的項目開發經驗,可能對整個課程的把握程度不夠,以致對今后學生工作需要的實踐應用知識講解會受到限制,即不能很好地將解決問題需要的經驗知識傳授給學生,而只是一味地按照教材內容教授,缺少了針對性和應用性,使學生感到枯燥無用。所以建議教師在教授軟件方面課程時首先要備好課,準備一些跟生活中結合比較緊密的、通俗易懂的小例子給學生講解、演練,激發學生興趣,讓他們把學習變成是一種主動的對知識的渴求,這樣教學一心就能達到理想的效果。
2) 經常與學生進行思想交流。
來校就讀的目的影響著學生的學習態度,作為老師,所承擔的責任不只是教授知識,更重要的還是教育學生一種學習方法,教育他們如何去做人做事。輔導員及相關教師應做好學生思想及學習觀方面的工作,軟硬兼施、獎懲分明。
3) 學校課程的設置要以學生為中心。
由于學生入校時基礎差,剛開始接觸計算機就學習程序設計課程,確實有些難為學生。短時間內學好程序設計實屬不易,建議相關學校在開設課程時要以學生為中心,保證學生能夠在規定的課時內完成相應知識技能的學習,少開設一些與專業技能培養無關或者關系不大的課程,多增加一些技能培養方面的課時,同時提學結合的場地,以便學有所用。
3結語
筆者從??圃盒#程序設計課程的教學目標入手,從教學方法、教學手段、考核方式、教師素質等方面提出了一些改革措施,但教學改革是一個不斷進行的過程,我們不僅要在教學過程中更加嚴格地要求自己,通過多種形式積極開展教學內容及教學方法的研究,還需要在教學過程中進一步加大C#程序設計課程教學改革的力度,不斷努力,提高教學質量,真正落實C#程序設計課程在軟件技術專業技能型人才培養中的作用。
參考文獻:
[1] 熊夢儂. 案例教學法在教學實踐中的運用[J]. 廣東教育:教研版,2008(6):102-103.
[2] 李永剛,杜選,魏遠旺. 面向對象程序設計教學改革與實踐[J]. 嘉興學院學報,2008(5):136-138.
[3] 劉甫迎,劉光會,王蓉,等. C#程序設計教程[M]. 北京:電子工業出版社,2005.