c語言程序設計范文
時間:2023-04-03 18:40:58
導語:如何才能寫好一篇c語言程序設計,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
關鍵詞:考試系統;多媒體技術;數據源;連接數據庫
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2007)03-10854-03
1 課題研究的意義和目的
1.1研究意義
現在,多媒體技術日趨成熟,多媒體系統以其能輸出精彩的圖形和圖像、美妙的聲音、動感的畫面贏得了用戶和社會各界廣泛的關注和應用。如果把按傳統考試方式同現代化的多媒體技術相結合,并且用多媒體著作工具及其它多媒體技術,編制一套符合高校考試需求的系統及其配套的多媒體教學軟件,利用多媒體技術生動、直觀、形象展示信息的特點,輔助教師授課和學生進行考試,尤其對部分有限制性的實驗環節,可利用活動視頻技術進行展示,這將會解決一系列目前存在的問題。總之,該課題是在計算機輔助教學及考試上進行的一次積極有意義的嘗試,為其他實踐性較強的課程進行多媒體輔助教學開辟一條新的路子,具有一定的理論和現實意義。
1.2目的
傳統的考試手段主要依靠有紙試卷,幾乎沒有可重用性。本課題將實現:用計算機輔助考試系統,把多媒體生動、直觀的顯示出來,使學生不再將考試視為一種枯燥無味的東西,提高了考試效果,使學生在一種愉悅的心情中進行考試,把枯燥的重復變為充滿樂趣、具有啟發性的考試過程,使學生能比較全面的學習知識,掌握技能,達到素質教育的要求。
2 系統流程圖設計
2.1初始化流程設計
在使用Authorware創建任何多媒體項目的時候,都應該先設置當前項目文件的窗口大小,將其設置為“800×600”,然后選擇“演示居中屏幕”,同時取消對“顯示標題欄”和“顯示菜單欄”復選框的選擇。
2.2主界面的設計
本界面采用了Photoshop7.0圖形圖像處理軟件來繪制。為了避免界面的單調和呆板,用蒙版和濾鏡技術加以美化。該界面把Photoshop中的圖層技術、圖層蒙版技術、文字效果及濾鏡等功能完美的結合了起來。并且在底部設置了一個Flas,增加視覺效果。
2.3背景音樂的交互控制
該多媒體教學以MIDI作為背景音樂,背景音樂的交互控制包括背景音樂的隨機選曲播放、停止等功能,另外當該教學程序處于活動狀態時,能夠隨時調整背景音樂和講解聲音的大小及比例,讓使用者在一種輕松悅耳的環境中考試(調出WINDOWS的音量控制實現),還能夠暫停背景音樂,當再次進入活動狀態時則能重新播放背景音樂。
為了充分考慮用戶計算機的不同配置情況,首先利用BUDAPI.U32的BASOUNDCARD函數判斷用戶機器是否已經安裝了聲卡,如果已經安裝則執行背景音樂播放,否則不允許播放任何背景音樂操作.程序如下:
IF BASOUNDCARD() THEN
MIDI:=1
TEST(MIDI,MIDILOOP (FILELOCATION^”MUSIC\\MUSIC-”^RANDOM(1,5,1)^”.MID”),STOPMIDI())
END IF
軟件中的背景音樂交互控制是通過交互響應來實現的。在程序執行過程中,用戶始終可以通過按鈕控制背景音樂的播放與暫停。在計算圖標“播放音樂”后添加一交互圖標并命名為“音樂控制”,并在交互圖標右邊添加三個計算分支。設置“STOP/PLAY”分支為按鈕響應交互,其功能是實現對背景音樂的控制。由于在整個程序執行過程中它都是有效的,因此須設置其為永久按鈕,即選擇“PERPETUAL”屬性選項,同時設置“ACTIVE IF”條件為:BASOUNDCARD(),即檢測到用戶沒有安裝聲卡的情況下該按鈕及響應分支無效。
2.4內容的導航設計
該多媒體教學涉及內容繁多,不僅包括文本、圖片、聲音和動畫,而且還有其它多媒體工具與Authorware 配合,同時,還把視頻文件導入,以增加實用性。為使用戶操作簡單方便,設計了合理的教學內容導航。主文件與各章節之間的導航設計根據結構規劃中的該章節內容的欄目劃分,在流程設計中為這些欄目設計了導航,如圖1為主程序內容導航的設計流程圖。
這樣的流程設計使整個主程序結構清晰,可讀性強。由于該文件結構是主-分結構,即主文件調用各章節模塊文件的方式,因此在主文件的章節內容中實際存放的是一個起鏈接橋梁作用的調用腳本,而具體的考試試題題型內容則放在各章節的模塊文件內。
2.5各模塊的內容流程設計
圖中的考試模式、練習模式、教學模式及退出系統這四部分主要程序流程圖如下圖2、圖3、圖4、圖5所示。
第五部分的原理演示則是通過熱區交互以及調入用VC6.0制作的演示內容的庫文件,抽象的工作原理形象化,具體化。在打包的過程中采用了分步打包,首先對每部分進行打包。通過主文件調用其它各部分,這樣避免了主文件過大,影響運行速度。
3 以完成單選題為例來看具體實現過程
從單選題的數據庫題庫中隨機抽取相應題數的問題;每一題只能選擇一個答案;用戶可以按次序做答,可跳過不答,在回答過程中,可以隨時返回已做過的題目進行修改;交卷后會給出完成情況可以查看每題的回答情況.最后回到選題主界面,并把學生所做的答案成績保存到數據庫中。
當用戶在主界面中,選擇了“考試模式”后,系統就會進入到登錄界面系統會提示輸入用戶名和密碼,當輸入后,點擊“確定”后,系統將會進入到題型選擇界面。在提示框中輸入用戶名和密碼,我們點擊“確定”后,就會進入到正式的單選題型界面中,選擇“單選題”單擊。
C語言程序設計考試系統的選擇題從數據庫中取出選擇題,在一個界面上顯示。利用三個熱區域交互按鈕“上一題”“下一題,”“完成”,按鈕和四個熱區域設置計算圖標用來記錄學生所選擇的答案。在學生選擇“完成”后,彈出學生做題的情況界面,然后回到選題主界面,并把學生所做的答案成績保存到數據庫中。
3.1“未命名”用來擦除以前的圖像
(1) 打開“未命名”的屬性,進入“未命名”的屬性窗口。
(2)在“屬性窗口”中單擊擦除標簽在設置過渡效果進行設置。
(3)單擊“確定”按鈕
3.2 設置“單選界面”插入一個圖像
(1)雙擊“單選界面”圖標進入顯示圖標窗口
(2)單擊繪圖工具箱 圖標進行繪制一個和窗口矩形一樣大的矩形
(3)設置矩形的顏色為“綠色”
(4)單擊顯示圖標窗口的關閉按鈕,關閉保存對“單選界面”的設置。
3.3 設置交互“進入”
(1)在交互圖標的右邊拖放一個群組“單選”。
(2)設置單選的熱區為“按鈕”。
(3)單擊確定后,雙擊“選擇”。
3.3.1“未命名”用來擦除上次運行的圖形
3.3.2 在“打開數據庫”的輸入如下源程序:
hint0:="您的數據庫沒有連接上......"
--顯示連接數據庫的信息
title:="數據庫連接...."
ODBChandle:=ODBCOpen(WindowHandle,"","database","","")
--得到數據源
getrecord:="select count(sequence) from erigister"
--得到記錄的個數
record:=ODBCExecute(ODBChandle,getrecord)
if ODBChandle=0 then--測試連接數據庫是否連接成功
MessageBox(WindowHandle,hint0,title,17)
end if
ODBCClose(ODBChandle)
ODBChandle:=ODBCOpen(WindowHandle,"","database","","")
if ODBChandle=0 then
MessageBox(WindowHandle,hint0,title,17)
end if
sqlstring1:="select ssdb from erigister where sequence="^record^"" -從表中選擇單選庫表題
ssdatabase:=ODBCExecute(ODBChandle,sqlstring1)
getrecord:="select count(sequence) from "^ssdatabase^""
record:=ODBCExecute(ODBChandle,getrecord)
--ssdb數據庫的記錄個數,以便產生隨機數
sssum:=0
number1:=1
sui:=[]
sui[1]:=Random(1,record,1)
--下面程序用來產生一個隨機數不能出現相同的題目
i:=2
repeat while i
flag:=0
repeat while flag=0
sui[i]:=Random(1,record,1)
flag1:=0
repeat with p:=1 to i-1
if sui[i]=sui[p] then flag1:=1
end repeat
if flag1=0 then flag:=1
end repeat
i:=i+1
end repeat
3.3.3 在“做選擇的背景”顯示圖標中設計單選題的界面如上圖5.4
3.3.4 在“數據庫的操作”中輸入如下代碼:在這里,我們就要實現對數據庫的隨機讀取和跟蹤答案的長短來選擇界面
x:=0
ran:=sui[number1]
result:=""
record1:=Number(record)
record:=record1--得到記錄的個數
sqlstring1:="select topic from "^ssdatabase^" where sequence="^ran^""分別得到選擇題各項
sqlstring2:="select a from "^ssdatabase^" where sequence="^ran^""
sqlstring3:="select b from "^ssdatabase^" where sequence="^ran^""
sqlstring4:="select c from "^ssdatabase^" where sequence="^ran^""
sqlstring5:="select d from "^ssdatabase^" where sequence="^ran^""
sqlstring6:="select result from "^ssdatabase^" where sequence="^ran^""
get1:=ODBCExecute(ODBChandle,sqlstring1)
--get1得到選擇題目內容
get2:=ODBCExecute(ODBChandle,sqlstring2)
--get2得到選擇項A內容
get3:=ODBCExecute(ODBChandle,sqlstring3)
--get3得到選擇項B內容
get4:=ODBCExecute(ODBChandle,sqlstring4)
--get4得到選擇項C內容
get5:=ODBCExecute(ODBChandle,sqlstring5)
--get5得到選擇項D內容
get6:=ODBCExecute(ODBChandle,sqlstring6)
--get6得到選擇題的答案
inputa:=1 --用來設置熱區域的激活條件
3.3.5空“操作”用來設置跳轉標志
3.3.6在交互圖標右邊拖入四個熱區域
在計算圖標中從左到右的四個計算圖標中輸入: result:="A" result:="b" result:="c" result:="d"在交互屬性中設置激活條件為inputa=1: ,鼠標指針設置為標準鼠標指針,其它的為默認設置.其中result變量用來記錄用戶所選的答案.
3.3.7拖一個交互圖標“未命名”在它的右邊拖兩個計算圖標為“上一題”和“下一題”,再拖一個群組“完成”放在“下一題”右邊 ,設置熱區為按鈕。在“上一題”的激活條件中輸入number1>1,鼠標指針設置為:標準的鼠標指針。在“下一題”的激活條件中輸入:number1
4 結束語
根據對教師上課時課堂練習的分析,開發出該考試系統,主要是能夠方便課堂練習,同時還可用于期中期末測試,該系統主要是針對《C語言程序設計》課程來設計的。對該系統做簡單修改,即可用于其它課程。
參考文獻:
[1]王嘉寧,朱雋.Photoshop7.0中文版新概念百例[M].中國水利水電出版社,2004,4.
[2]龔祥國.主編.Photoshop圖像處理實用教程[M].科學出版社,2002,2.
[3]王龍,金海.主編.Flash MX實戰入門新概念[M].中國水利水電出版社,2005,5.
[4]李恒.Authorware 6.0多媒體實例大制作》[M] 冶金工業出版社,2002,4.
[5]袁海東.Authorware 7.0教程[M].電子工業出版社,2004,9.
篇2
【關鍵詞】C語言程序設計;教學內容;教學手段;教學方法;教學改革
C語言是一種廣泛使用的程序設計語言,它具有高級語言的特性與直接操縱計算機硬件的能力。因而,在當前許多高校中,C語言被列為程序設計課程的首選語言,成為了計算機專業的必修課程,也越來越多地被非計算機專業所采用[3]。然而在《C語言程序設計》課程的教學中,由于C語言概念比較復雜,規則繁多,同時在實踐中又具有靈活多變運用,所以教師對于課程教學難易度的把握有困難,學生對于課程的學習與實踐亦感到迷惑,甚至產生一些畏難心理[2]。作為實踐性很強的C語言程序設計課程,它的學習有自身特點:光聽只看是不夠的,還必須加以練習,通過大量的編程訓練,反復夯實語言的概念基礎,并在實踐中培養程序設計的基本能力,逐步理解和掌握程序設計的思維與方法。所以,C語言程序設計課程的教學重點是培養學生的實踐編程能力,以程序設計為中心來組織課程內容。在筆者多年的教學實踐中,針對《C語言程序設計》課程的難點與特點,在教學內容、教學手段、教學方法等方面做出了一些改革與嘗試,收到了較好的教學效果。
1、教學內容的改革[1][3]
1.1課堂教學內容的改革
目前關于C語言的教材很多,內容主要包括數據類型、表達式、分支、循環、函數、數組、指針、結構體、文件的概念和應用以及指針和各種構造類型的混合運用、基本算法等。很多教材側重于語言本身的理論體系介紹,而對于編程方面的介紹卻相對較少,這樣的安排雖然突出了知識結構的認識,但是也弱化了學生的程序設計能力和語言應用能力,而這些能力對于學生學好這門課程又恰恰是至關重要的。筆者在教學中,嘗試以程序設計為向導,輔以編程應用,將案例和問題引入課堂,使學生盡快建立起程序設計的思想和方法,然后在這些框架上穿插講解相關的語言知識。在前幾次課中,簡單介紹相關的背景知識和利用編程求解問題的過程,然后引入實例,在對問題的解決過程中介紹順序、分支和循環3種控制結構以及函數的使用,使學生對C語言有一個大概的了解。然后深入講解程序設計的思想和方法,并演示應用C語言解決問題。通過實例程序的引入來介紹語言知識,在每節課中介紹一些程序設計的方法、技巧以及編程中的常見錯誤,并設置練習題,鼓勵學生多思考、多練習,提高綜合能力,每章課程結束后, 設置綜合性的習題,包括本章的綜合以及從第一章到本章的綜合,主要是程序設計題。學生要想學會并應用C語言進行程序設計,除了對程序設計語言了解外,更重要的是在實踐中領會并掌握程序設計的基本思想和方法,要求學生從開始學習C語言起就試著編寫程序,先模仿例題中的程序,然后嘗試加以改寫,循序漸進,最后能獨立地編寫程序來解決比較復雜的問題。
1.2實驗教學內容的改革
C語言的教學特別需要重視實踐環節,包括編程和上機實驗。針對不同水平的學生,筆者在教學班中抓兩頭,學得好的學生鼓勵給大程序,難一點的實驗,學得一般的學生做基礎性的題目。在保留基礎性實驗的同時,增加一些實用性強的、難度略大的實驗,并組織學生討論得出算法流程,然后上機編程調試。
按照實驗指導書上的內容,每個實驗內容以編程題為主,學生可以先模仿課堂案例操作,然后再做實驗題,通過“模仿-改寫-編寫”三步曲的上機實踐過程,在循序漸進的引導中逐步熟悉編程環境,理解和掌握程序設計的思想、方法和技巧,以及程序調試方法[4]。
實驗題分為必做題和選做題,在實驗過程中針對學生有問題的程序統一講解,然后再選一個有錯誤的程序讓學生自己找錯誤(開始一個月內的時間,讓學生學會找到語法錯誤)。這樣學生能力會提高很快,在后期發現邏輯錯誤,也會自己先找出,然后再求助老師。實驗題量一次課(2節課)至少留6-8題實驗。
2、教學手段的改革
運用多媒體技術輔助教學,是當前課堂上很流行的一種教學手段,因為這種方式包含的信息量大、豐富,學生學習起來感覺生動,提高了學習的興趣,同時也能夠優化教學過程。但是多媒體輔助教學的弊端也越來越被了解,比如不恰當的使用會分散學生注意力,甚至影響學生對主要問題的理解。所以將多媒體教學引入C語言程序設計課程教學過程中,必須要考慮到兩者的特點與優勢,取長補短,將傳統教學與多媒體教學進行有機的結合。比如:對于C語言的概念性知識點如數據類型、變量類型、運算符、程序結構等,可以采用多媒體教學,通過課件的制作,既滿足了課堂上演示的需要,也簡化了傳統教學大量板書的缺點。而對于程序的編寫或案例的分析,就需要發揮傳統教學的優勢,更靈活的進行板書講解、課堂討論,使問題在師生之間的良性互動中得以解決。因此,教學中將各種手段如PPT、板書、現場編程并運行等多種手段有機結合,使得課堂教學達到最優化,如果條件允許盡量現場編程(或事先準備好的程序),學生可以學習教師的思路考慮問題,收到更好的效果,同時也能加快教學進度。
另外,利用網絡資源的便利性,將大綱、電子教案、課件、練習題等放在網絡上,方便學生隨時查用學習,同時通過飛信、QQ、Email等網絡交流手段與學生進行答疑、討論等互動交流,從而擴展了課堂教學的空間。
賞識學生,注重學習興趣的培養。在教學過程中,教師應運用多種信息技術適時的輔導,創設豐富的情境,發揮最佳效應,運用多種教學手段激發學生主動學習獲取知識的熱情。
篇3
關鍵詞:教學創新;教學法;教學設計;教學過程
我校是隸屬于“中國一航沈陽黎明航發(集團)公司”下的一所高職院校,目前社會發展對高職畢業生要求越來越高,為了跟上時代的步伐,為我國經濟建設培養高素質的應用型人才。通過《C語言程序設計》課程教學中的教學創新努力提高教學質量。
一、教學創新的觀念
(一)創新全面教學觀
創新全面教學觀。一是即要注重教書,又要注重育人,二是在教學中研究各門課程之間的聯系,研究同一課程不同章節之間的聯系,研究同一章節不同知識點之間的聯系。《C語言程序設計》課程具有語言的特點,學習語言要先會字、詞、句然后構成段落寫出文章。C語言也具有C語言的字、詞、句構成功能編寫程序。各章是對C語言的字、詞、句的詳細講解,前一章為后面章節打基礎,后一章應用前面章節的知識。全面教學觀培養出來的學生,理論系統,實踐能力強,學的知識較實用,且具有應變能力。
(二)創新內動教學觀
創新內動教學觀。從高職教學的對象看,學生都是經過普高畢業或職高畢業高考后錄取的,這些學生具有一定的文化基礎知識,學習也有一定的自覺性。內動教學觀要求教師在施教時,要從分析研究學生心理活動入手,采用適合于學生心理特點和適應能力的教學模式和教學方法,充分調動學生的學習積極性和創造性。《C語言程序設計》課程是一門能開發計算機軟件的語言,實踐性較強,要有一定的英文基礎,一定的邏輯思維的能力。青年人好學心勝,只要教師由淺入深,循循善進,一定能提高學生的學習興趣。
(三)教師創新意識觀
創新師資是高職教學創新的基本條件,教師的強烈創新意識,是教學創新必要保證,創新師資要具有對教學進行改革創新的欲望。才能進行創新教學。創新師資要具有勇敢的創新精神,不僅意識到教學需要創新,而且積極投身于教學創新活動,在這一活動中,他們勇于排困克難,開拓進取,不達目的,誓不罷休。創新師資具有全面的創新能力,這些教師不僅具有扎實的理論基礎和專業知識,以及很強的實踐動手能力,而且還具有很強的發現問題和解決問題的能力。他們往往是教學創新的探索者和先行者。
二、教學創新中應用的教學方法及內容
在教學創新中應用了三步教學法:課堂教學―機房教學―實驗教學。以課堂教學內容為主線,機房授課講解實例歸納總結,機房實驗加深學生對主題的理解和學生的動手能力。每步驟教學的具體內容如下:
(一)課堂教學
課堂教學:講理論知識點,按照教學大綱提煉出要講授內容的主線,通過分析主要實例規納總結知識點,用問題引出法要求學生獨立思考,提高學生的邏輯思維能力、理解問題的能力及解決問題的能力。
(二)機房教學
機房教學:通過課件講授,減少寫板書的時間。進入C語言編輯環境,通過演示實例,直觀、形象地看知識點的應用過程,每條語句功能的實現,加深對課堂教學內容的理解。討論講授知識點的應用范圍,提出問題進行互動。根據不同的層次的學生提出的多個問題,讓學生根據老師提出的問題,不同的層次讓學生做不同理解性的、邏輯性的編程練習。提高學生的實際應用能力,學生可根據自己能力練習。
(三)實驗教學
實驗教學:實驗內容分為二部分:分析程序和獨立編程。要求學生實驗課前一定要預習,對于分析程序部分,學生寫出分析程序的功能、程序執行過程中各變量值的變化,程序的運行結果。對于獨立編程部分,學生根據問題要求給出解決問題的方法做編程練習。
三、教學創新中教學過程的設計
(一)講授教學設計
無論是在教室講課,還是機房講課,每次上課開始,先講本次課重點主線,抓學生的注意力,對重點內容一次講授,多次強調,多次練習,給出學生一些思考時間、練習時間、理解時間。對于難點內容的分析講解,根據學生理解情況和時間安排決定深度。對于非重點內容,為了使所傳授的知識有個完整性,擴大學生的知識面,要抓住基本概念講,高職教育按照專業學習的要求,以必須和夠用為度,以實際應用為重點。
機房授課先講授知識點的應用,每次還要提出一個問題及要求,讓同學們上機實踐,時間要靈活掌握。有時課堂教學講的重點內容,同學難理解的,也應在機房授課時抽出一定的時間演示講解。
(二)實驗教學設計
實驗教學重點驗證學生的分析能力、邏輯思維能力和實際應用能力。對難理解的實驗內容通過演示相似例子講解,通過演示和練習,力求學生掌握實驗的主要內容,實驗教學過程重點抓輔導到位和檢查監督到位。提高學生的實際動手能力。
(三)輔助教學設計
認真制做生動活潑、重點突出的教學課件,對學生作業詳細批改,重點總結,統一解答與各別輔導相結合,要求學生一定要各章的知識點。
四、教學創新課堂教學過程舉例
(一)講授教學重點主線
課堂講授教學重點主線,例如:講C語言程序設計的第五章:函數。先講授本次課的主線:函數的定義,函數的調用、函數的聲明。這三點為本次課主線,展開講函數的定義格式并做具體說明;函數聲明的作用及位置,通常什么情況下可以省略函數聲明;函數的調用的三種形式,通過分析例題,分析主函數中調用子函數采用的調用方式、及傳遞的參數。講函數的具體應用過程等內容。
(二)根據主線提出問題
給出問題:定義一個比較二個數大小的函數,解決輸入多個數據,完成輸出最大值的問題。用什么樣的調用方式實現從輸入的三個數或四個數中找出其中的最大值并輸出?要求學生自己去定義一個函數,自己決定采用什么方式去調用函數,實現程序功能。
(三)學生對問題的求解及驗證
根據不同層次的學生,給出不同的問題,提出不同的要求,讓學生們自己選擇解決問題的方法,練習編寫程序。對于理解能力強的學生,完成從輸入的四個數中找出其中的最大值并輸出。差一點的完成從輸入的三個數中找出其中的最大值并輸出。再差一些學生的完成從輸入的二個數中找出其中的最大值并輸出。并要求上機實現。學生一定要掌握函數的定義,函數的調用的正確形式及使用。
五、總結
高職學院的教學創新不但要有創新觀念,必須具有創新師資。創新師資是高職教學創新的必要條件,沒有創新師資,高職教學創新將是一句空話。教學活動是由教師來完成的,教學創新理所當然地要由教師來進行的。因此,作為高等職業技術學院的教師,我深深的體會到要進行教學創新,必須從我們每個教師做起,教師要有強烈的創新意識,勇敢的創新精神,全面的創新能力,還要積極實踐,才能全面實現高職院校的教學創新。才能盡快培養出具備一定專業基礎理論和專業知識,具有較強的實踐技能,面向生產、管理和服務的高技能應用型人才。
參考文獻:
篇4
關鍵詞:C語言程序設計;以應用為本位;啟發式教學
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2013)10-2412-03
C語言功能豐富,應用面廣,當下,很多高校依然把C語言作為非計算機專業學生的一門通識平臺課開設。然而,在C語言課程的開設過程中,教師和學生不同程度地存在著缺位和誤區,教與學的效果不盡如人意。在C語言的教學過程中,不少任課教師因循守舊,教學目標不清,教學方法單一,教學觀念陳舊,使C語言的課堂蛻化為單純的語法規則的灌輸,使C語言的學習變為簡單的語法知識的學習,學生普遍反映難學厭學。C語言程序設計課程一般面向的都是大學一年級的新生,他們剛剛結束高中生活步入大學校園,對一切充滿了新鮮感和不適應感,學習觀念、學習目的和學習方法有待轉變和調整,學習的主體意識和自覺性有待增強和提高。針對這些問題和現象,筆者在自己的教學過程中進行一些了探索和實踐,取得了一定的效果。
1 教師自覺轉變教學觀念,提高自身素質
縱觀C語言程序設計課程的教學,現在最典型影響面最大的教學模式就是由教師和學生構成一個教學體,教師在講臺上自我表演,學生充當看客或聽眾【1】。所謂知識也好、信息也好,都是一個從教師到學生的單向流動。在這種以教師為主導、以教材為核心、以課堂為中心的教學模式下,教學蛻化成為一種單純的知識傳授,學生學習的積極性和主動性的調動,學生創新能力和創新思維的培養,都無從談起。面對這樣的現狀和背景,教師教學觀念的轉變和自身素質的提高顯得尤為重要。本著對學生負責,對學校負責的態度,教師應在自身責任感的驅使下,主動了解先進的教育思想和教學理念,像教學互動性、學生主體性和知識建構性等等;認真思考大學教育的功能,比如授人以魚還是授人以漁;結合教學實際,轉變教學觀念,改變傳統的教與學的地位,由過去的“以教師為中心”轉變為“教師主導,以學生為主體”,營造民主的教學氛圍;改變課堂老師單向灌輸、學生被動聽講的授課模式,引入多元化的教學方法,比如啟發式,探究式,引導學生獨立思考,鼓勵學生主動參與學習。
2 引導學生轉變學習觀念,培養學生學習的主體意識
C語言程序設計課程的開設面對的多數是大學一年級的新生,而對于剛入校的大學生來說,受中學養成的學習習慣的影響,學習的自主意識淡薄,學習還習慣性地全部寄托在老師身上,對老師的依附心理嚴重。同時,面對大學里比中學多得多的自由學習時間不知如何有效地管理和支配,對新的學習環境和新的學習生活有不同程度的不適應和困惑。面對這樣一個處在比較特殊階段的學生群體,承擔C語言程序設計課程的任課教師要有針對性對學生進行引導和管理。首先,任課教師從一開始就讓學生明確一個觀點,即C語言是學生自己學會的,而不是老師教會的。俗話說,“師傅領進門,修行在個人”,盡管教師的教在教學活動中起著主導作用,但更重要的是學生的學,學習的主體是學生本人,只有學生充分發揮自己學習的自覺性和主動性,教師的教學思想才能得到很好地貫徹,教學效果才能得到很大的提高,整個學習活動也才會成功。其次,強化學生的責任意識。對絕大多數學生來說,如果單從年齡判斷,步入大學校園也往往意味著步入成年人的行列。而成年人也就意味著要對自己負完全責任了。教師在教學過程中要不斷強化學生對這一點變化的認知,讓他們知道要對自己負責,對自己的學習負責,而不應再完全依賴教師或家長的監督。最后,教師的指導和管理。學習觀念的轉變,新的學習習慣的養成,不是一蹴而就的事情,需要在實際的學習活動中逐步完成。課前的預習、課堂的參與、課后的作業、實驗的完成、期末的考試等是C語言教學活動不可或缺的環節,每一個環節里需要學生完成的任務,任課教師從一開始都給出一個明確的要求并嚴格按照要求去管理,將大大有益于轉變學生的學習觀念,培養學生學習的主體意識。
3 激發學生的學習興趣,調動學生學習的積極性
在C語言程序設計課程的教學過程中,往往有學生反映C語言比較抽象,課堂教學又枯燥無味,很容易喪失學習的興趣和熱情。如何激發學生學習C語言的興趣并始終保有這種興趣,也常常是教授C語言課程的老師很頭疼且又不能回避的問題。“興趣是最好的老師”,每位教師都深知學生的學習興趣對教學活動成功的重要性,但C語言程序設計課程側重思維訓練的特點又決定了在這方面留給任課教師的空間是有限的。筆者在自己的教學實踐中做了一些嘗試。
1)演示典型的完整的C語言應用,培養學生的學習興趣
學生在學習C語言程序設計課程之初,對該門課程的學習目的和學習目標多數是模糊的,對C語言的認識也多半是空白,任課教師適當的引導很容易引起學生學習的興趣和探究的欲望,因此該門課程的開篇很重要。筆者摒棄了以往通過文字抽象地介紹C語言的產生、C語言的特點和C語言的應用的做法,直接從演示典型的完整的C語言的應用開始。演示的程序有難有易,涉及的范圍涵蓋實際生活中的應用、有趣的數學問題、圖形動畫、游戲等。筆者一度選擇了圖書管理系統、文本編輯器、學生成績管理系統、兔子產子問題、百錢百雞問題、圖形時鐘、撲克牌的自動發牌、猜數游戲、五子棋游戲等應用,引起了學生濃厚的學習興趣。
2)營造輕松的學習氛圍,創造愉快的學習體驗,強化學生的學習興趣
要引起學生對C語言一時的興趣不是一件難事,但要讓學生在整個C語言程序設計課程的教學過程中始終抱有這樣的學習興趣就不是一件易事了。哪位任課教師做到了這一點,他的教學活動無疑就是成功的。C語言比較抽象,課堂教學容易枯燥無味,是一個不爭的事實。為此,在實際的教學活動中,選擇難易適中貼近生活的問題,比如利息的計算、持有的股票價值的計算、學生成績的管理、募捐活動的模擬等;涉及C語言的語法特性時,盡量使用生活化的直白的語言,少用專業術語;課堂教學的開展過程中鼓勵學生積極參與,對學生提出的任何有意義的問題都及時地給予肯定;面對問題,對學生做出的任何有價值的回答都及時地給予表揚,都有助于營造輕松的學習氛圍,有助于讓學生體驗到成功的歡樂,有一種成就感,有助于強化學生學習的學習興趣和熱情。
4 踐行以應用為本位的教學思路,有選擇性地采用以知識為本位的教學思路
C語言程序設計課堂教學的組織有兩種思路兩種模式。一種是以知識為本位的教學思路下形成的“建筑模式” 【2】,課堂教學以講授語法為主,先是提出語法概念,然后解釋該語法概念,最后舉例說明其應用,強調先系統學習理論打下寬厚的理論基礎,然后再進行應用,講究的是理論的系統性與嚴密性。另一種是以應用能力為本位的教學思路下形成的“生物模式”,課堂教學以程序設計為中心,以編程為目的,從應用的角度切入,先是提出問題,然后引導學生分析解決問題,最后著重介紹涉及的C語言的語法特性,強調結合應用學習必要的理論知識,隨著應用的展開,編程難度的逐步提高,算法和語法的學習同步趨向深入,有利于學生能力的培養。
C語言系人工設定的具有確定內涵的概念和知識體系[3],同時C語言程序設計又是一門實踐性很強的學科。為此,在C語言程序設計課堂教學的組織上,筆者始終踐行以應用為本位的教學思路,同時根據課程內容的特點有選擇性采用以知識為本位的教學思路,比如C語言中的基本數據類型、運算符和表達式、文件等基本概念和語法知識,在教學中只需把規定的內容闡述清楚,使學生理解并接受,同時又不破壞這些理論知識的系統性,就適宜采用以知識為本位的教學思路。
5 根據課程內容特征,選擇靈活多樣的教學方法
教學方法是在教學過程中,教師為了實現教學目的、完成教學任務而采取的教與學相互作用的活動方式的總稱。C語言程序設計課程的教學目的是使學生掌握用C語言進行程序設計的基本思想和方法,并具有靈活應用這些思想和方法分析解決實際問題的能力。實現這一教學目的要完成的教學任務包括C語言基本語法的介紹,結構化、模塊化程序設計思想和方法的引入,基本程序設計訓練以及程序調試方法的演示等。面對這些多樣的教學目標和任務,靈活多樣的教學方法的選擇和恰當應用成為必須。筆者在自己的教學實踐中,結合課程內容的特點,有選擇性地應用了如下的教學方法。
1)啟發式教學,引導學生思考,在應用中學習。
在C語言程序設計的課堂教學中,根據課程內容的特點,精心設計任務或場景,引導學生發現問題、思考問題,使學生在啟發誘導下獲取知識,解決學習中的疑難問題。比如,在引入數組時,筆者設計了這樣一個任務,即編寫一個C語言成績管理程序,要求能夠統計出學生C語言成績的平均分、最高分、最低分以及各個分數段的人數(為了說明問題的方便,假設當前要處理的有10個學生的成績)。第一步,引導學生描述出10個學生的成績。根據之前的學習經驗,學生很容易想到用10個float類型的簡單變量表示,比如score1,score2,、、、,score10。第二步,為節省時間,直接給出用這10個相互獨立的簡單變量實現的程序,引導學生觀察。在學生感嘆程序復雜之余,帶領學生讀程序,引導學生發現,當前的程序無論是成績的錄入、求學生成績的最高分、最低分,還是統計各個分數段的人數,對每位學生成績的處理方法都是一樣的,存在大量的相似的操作。同時提出問題,這些相似的操作能不能用循環結構描述和實現,讓學生思考。誘導學生分析發現,要想用循環結構描述這些相似的操作,學生成績的描述必須有一個統一的表示方法。適時地給出score[i]這一表示方法,指出讓i從0到9變化表示10個學生的成績,和學生一塊用該表示形式改寫之前程序的關鍵部分。讓學生比較改寫前后的兩個程序,很容易得出結論,用score[i]描述批量數據,方便和循環結合起來使用,數據的處理更為有效。最后指出score[i]這一描述形式就是數組,接下來介紹數組的定義完善改寫后的程序。
和學生一塊模擬執行該程序,由之前的知識積累學生知道,形參m、n和實參a、b對應的是不同的存儲單元,m、n和temp是自動變量,從變量的作用域和生存周期的角度,容易得出一個讓學生意外的結論,該swap函數中形參m、n值的交換影響不到實參a、b。在學生詫異之余,啟發學生思考,誘導學生嘗試給出不同的解決方法。往往有學生提出定義a、b為全局變量,誠然這不失為一種解決方法,在鼓勵學生的同時,再次誘導學生發現問題的關鍵并在此基礎上找解決方法。和學生一塊梳理思路,發現swap函數中形參m、n值的交換傳遞不到實參a、b,一方面是因為彼此對應的是不同的存儲單元,另一方面是由于變量的作用域和生存周期的問題。學生提出的定義a、b為全局變量的解決方法顯然是從后者考慮的,現在有意識地誘導學生只從前者考慮,讓學生大膽假設在什么樣的前提下形參m、n值的交換即是實參a、b值的交換。毋庸置疑,只有當形參m、n和實參a、b對應的是相同的內存單元時。在學生給出了這一假設之后,啟發學生思考該假設能不能成立以及如何成立。和學生一塊分析,要使形參m、n和實參a、b對應的是相同的內存單元,表面上看它們不能是相同的類型,但實現又要求形參m、n操作的對象是實參a、b,顯然形參m、n操作的對象和實參a、b應該是相同類型,同時形參m、n指向的是和實參a、b相同的內存單元,學生相對容易想到形參m、n應該是指向實參a、b的指針變量,問題由此迎刃而解。最后結合該任務的完成引導學生總結,在主調函數和被調函數之間雙向傳遞數據變化,全局變量和指針變量都是不錯的解決方法。
2)注重當堂實踐,現場編程互動,在學習中應用。
C語言程序設計是一門實踐性很強的課程,在踐行以應用為本位的教學思路的過程中,筆者不僅重視實驗課這一實踐環節,更是把實踐延伸到課堂教學中。在帶領學生對特別設計的問題做了充分的分析之后,引導學生當堂實踐,或者師生現場編程互動,不僅可以調動學生學習的積極性,更能培養學生解決實際問題的能力。
參考文獻:
[1] 李克東.教育技術學研究方法[M].北京:北京師范大學出版社,2003:132-137.
篇5
1.1理論教學
對于大多數課程而言,從宏觀上將課程知識點及其關聯講授給學生非常必要,這便于學生更加系統深刻地理解所學內容。作為教材講解C語言程序設計的知識點結構。知識點之間的關聯可以層層細化,教師首先從宏觀上給學生介紹C語言程序的整體組成結構。教師對涉及的知識點進行歸類,共包含預處理命令、數據類型、運算符、語句和函數等5部分,從宏觀上梳理C語言與程序設計課程的知識點是非常必要和重要的,這樣可以避免學生“只見樹木,不見森林”,最后只學到一堆零散的知識點,只有從宏觀上把握各個知識點在知識體系中的位置和作用,才能學得深、記得牢。對于程序語言課程,如果僅僅介紹語法的運用,學生往往對知識點理解不深刻。我們在教學實踐中的體會是:在講解C語言語法的基礎上,適當地剖析編程語言在計算機中的運行機制,會讓學生的理解更加透徹。因此,我們的課堂教學方法分為如下兩部分。
1)課件講解。課件講解包括兩部分,即知識點要點總結和知識點運行機制剖析。知識點要點總結就是告訴學生該知識點如何使用;而知識點運行機制剖析則告訴學生該程序在計算機內存中的執行過程。由于絕大部分高校在開設C語言程序設計之前都會開設計算機文化基礎等課程,因此學生有足夠的計算機基礎知識來理解C語言程序的運行機制。
2)實例演示。作為一門編程語言,C語言需要在實踐中理解和掌握,因此,課堂教學中,在具體的編程環境(如VC++6.0)下演示十分必要。通過在具體的軟件環境下編程,告訴學生應該做什么和不應該做什么,并總結該知識點的注意事項。相比傳統的脫離編程環境,只在PPT或黑板上進行板書的教學模式,該方法的教學效果要好得多。在課堂教學中,具體的教學步驟如下:①使用PPT或者板書列出該知識點的注意要點;②在編程環境(如VC++6.0)下演示該知識點的用法,給出正確的和錯誤的使用方法,并進行對比;③通過幻燈片動畫或Flas等形式演示程序在計算機內存中的執行過程,讓學生更加深刻地理解程序的運行機制。
3)教學難點與重點——“復合知識點”。從C語言的教學內容來講,數組、函數和指針是教學的重點章節,這些章節之間相互關聯的部分又是重點中的難點,如數組和函數結合,數組名做函數參數,數組和指針結合,指向數組的指針變量,函數和指針結合,指向函數的指針變量等。在教學過程中要反復強調各個知識點的注意事項,如果基本知識點能夠理解透徹,上述難點內容也就迎刃而解了。
1.2上機實踐教學
在實踐教學中,教師可以通過實際教學案例循序漸進地強化學生對C語言知識點的理解。上機實踐的教學內容通常分為兩部分:基本知識點練習和綜合訓練。首先通過基本知識點的練習,讓學生掌握該知識點的使用,即鞏固課堂所學內容;然后通過一個綜合性的大作業,訓練學生綜合應用C語言知識點的能力,例如,通過編寫“學生課程成績統計系統”考查學生對數組、結構體、指針、函數、文件等知識的綜合掌握情況。對于初學編程語言的學生,往往沒有養成良好的編程習慣,出錯的可能性較大,而出錯之后進行調試又將耗費較長的時間,這勢必對學生的學習熱情產生負面影響。因此,一開始就給學生制定科學的編程步驟和規范,使學生養成良好的編程習慣,將大大減少程序出錯的可能。下面是按照上述五步編寫的一個完整的C語言程序,用來比較兩個整數的大小。按照上述五步進行編程,經過一段時間的訓練之后,學生出現語法錯誤的可能性大大降低,此時學生更多的精力將集中在程序算法的設計和實現上。
1.3考試形式
對于C語言程序設計的考核方式,我們采用知識點考核和編程實踐相結合的方式。知識點考核偏重于C語言基本語法,用于檢驗學生對知識點的掌握是否全面,此項考核約占總成績的40%;編程實踐考核用于檢驗學生的實際動手能力,學生將在規定的時間內根據題目在機器上編程,此項考核約占總成績的60%。為了實現知識點的考核,我們將考試與計算機二級C語言上機考試緊密結合,采用題庫平臺進行上機考試,學生直接在機器上答題并提交,知識點考核多采取客觀題,如填空題、程序修改題以及讀程序題等,編程題在實戰編程中考核。C語言程序設計課程的重要特點就是實踐性強,學習該課程的目的就是為了編寫程序。因此從考試的角度講,進行編程實踐是最合適的方式,通過上機編程來考核學生的學習情況也是最公正和客觀的方式。
2C語言程序設計教學實踐結果分析
中國礦業大學(北京)每年都有40多個班級同時開設C語言程序設計課程,因此該課程教學質量的高低將直接影響全校理工科學生對C語言的理解和掌握。中國礦業大學(北京)C語言程序設計教學團隊經過長期的探索總結出一套行之有效的C語言教學方法,我們將上述方法在學校越崎實驗班中進行了試點。如圖2所示,采用上述教學法的越崎實驗班的C語言程序設計課程考試成績要明顯好于其他班級,其中90分以上的學生占10.7%,80分以上的學生占總人數的53.6%。另外,學生的學習積極性比采用上述方法前得到明顯提高,很多學生都對計算機編程產生了濃厚興趣,實踐證明我們提出的上述方法是行之有效的。
3結語
篇6
關鍵詞:C語言;程序設計;教學方法
中圖分類號:G642文獻標識碼:B
1引言
隨著大學的擴招,越來越多的普通學生進入大學學習,大學也從精英教育向普通教育過渡。不論理科還是文科,C語言程序設計成為很多大學生學習計算機知識的入門課程之一。這使我們這些長期從事程序設計教學的人員,遭遇到了前所未有的挑戰。
如何挑選教材,如何安排教學內容,如何選擇適當的案例等等是我們必須要面對的問題。本文就這些問題作一些探討。
2以往的教學經驗
多年來,我一直在教學第一線教授C語言程序設計,在以往的教學中,我要求自己做到以下幾點:
第一,講課內容要符合初學者的認知規律,從簡單到復雜,循序漸進。
第二,通過實例講解相關的概念,重點在培養學生的程序設計能力。
第三,算法要盡量簡單,有利于學生的理解。
第四,授課涉及的內容,要講解透徹、詳盡。
譚浩強老師的《C程序設計》是我在教學中長期選用的教材,因為它能夠很好地滿足自己的教學思想和要求。
該教材的編寫順序和內容,非常符合初學者的認知規律,難點分散,內容的安排較合理,每一章都講解了新的概念,但又注意到不引入太多的新概念;為了避免從概念到概念,從理論到理論,教材中使用了大量通俗易懂的實例,并使用很多有意義的圖表來分析和講解概念,方便同學們對概念的理解;該書的內容重點突出,對C語言中最基本和常用的部分進行了詳細的分析和講解,為學生以后更深層次的學習打下了牢固的基礎。
學生們普遍反映《C程序設計》是一本非常好的教材,不但幫助他們掌握了程序設計的理念,還能真正動手編寫一些實用程序。只不過,我以前的學生,大部分是錄取分數超過一本的,《C程序設計》的難度和深度對他們很適合。最近幾年,由于擴招和學校合并等原因,學生的水平越發參差不齊,給教學工作帶來了不少難度,也使自己更多地思考和嘗試搞好程序設計教學的方法。
3選擇適當的教材
有關C語言程序設計的教材,真可謂是百花齊放,百鳥爭鳴了,筆者并不認為這是一件壞事情,恰恰相反,如果每個作者經過自己多年的教學和科研,都對程序設計課程的教學方法有自己獨特的想法,同行們可以互相交流,取人之長補己之短,何樂而不為呢?但不論如何,由于教材比較多(也確實有些教材水平不高),給教師們選擇教材帶來了難度。為此,譚浩強老師總結了自己多年的教學和寫作經驗,根據讀者的不同需求將C語言教材分為三種版本,以適應不同的學生。
第一本就是發行了1000多萬冊的新世紀計算機基礎教育叢書之《C程序設計》,已經發行第三版了,該教材全面細致、深入淺出地介紹了使用C語言進行程序設計的方法,語言生動案例豐富,不僅講解了C語言的語法,還通過大量的例題講解了構造程序和設計算法的基本要領;第二本是普通高等教育“十一五”國家級規劃教材,“中國高等院校計算機基礎教育課程體系規劃教材”之《C程序設計教程》,這本書以《C程序設計》為基礎,科學地減少了部分內容,更加突出了教學重點,采用了既通俗又精練的寫法;第三本也是普通高等教育“十一五”國家級規劃教材,高等院校計算機應用技術規劃教材應用型教材系列之《C語言程序設計(第二版)》,與前兩本相比,內容更加精練。三本書均采用了“提出問題―解決問題―歸納分析”的寫作思想,在講解程序時,包括了提出問題、解題思路、編寫程序、運行結果、程序說明和深入思考等幾部分內容。
筆者在教學工作中接觸了很多學生,有號稱“小清華”的本科學生,有普通本科學生,還有夜大的學生,實踐證明,將學生準確分類,選擇適合他們的教學內容和教材是非常重要的。上述第一本教材適合學生基礎好、學時較多(一般應超過56學時)、對程序設計的應用要求比較高的專業的學生,例如軟件工程、信息安全等專業;而第二本教材適合學生基礎一般、學時中等(一般為48學時)、對程序設計的應用要求不太高的專業,例如通信工程、計算機審計等專業;第三本教材適合學生基礎一般、學時較少(32學時左右)、對程序設計的應用要求很低的專業,例如管理科學等,對這些專業,只要求學生能看得懂程序,了解計算機是怎么解決問題的就達到教學目標了。
而對于一些重點院校,尤其是學生的自學能力非常強的學校,如果教師自己的水平也足夠高,有很深的程序設計功底,不妨選擇吳文虎老師的《程序設計基礎》,這也是一本非常好的教材。
4靈活安排教學內容
教材不是講稿,任課教師需要根據各自專業的特點,對教學內容做適當的取舍,不需要面面俱到。盡管譚浩強老師的三種教材已經根據學生的不同層次,將教學內容做了重新取舍,但是教師的工作就是要因材施教,而不能照本宣科。
例如,對于位運算的內容,信息安全專業的學生必須掌握,該專業需要了解計算機低層的運算,才能理解密碼學具體的實現方法以及網絡安全的實現細節,而對于軟件工程專業,位運算可以少講,甚至不講。
又例如,盡管譚老師的《C程序設計》中寫的最好的內容是它對指針的解釋和描述,想當年,我自己就是在閱讀了很多書都不得要領的情況下,通過學習《C程序設計》才理解什么是指針的。譚老師將C語言中的精髓―“指針”的概念描述十分清楚、透徹,尤其是對指針使用時一些細節問題的描述,使我非常受益。但是,并不是所有的專業都需要將這部分內容的全部作為教授的內容,有些專業可以作適當的調整,例如那些偏文科的專業:會計學、審計學等。對于這些專業,只要通過簡單的案例將指針的概念交代清楚就行了,畢竟這是C語言的精髓。
再比如,不論任何專業,遞歸的概念對于大多數低年級學生來說是很難掌握的,注意,這里說的是掌握,那么,我們只要求他們能看得懂遞歸程序就可以了。也就是說,要明白遞歸是自己調用自己,而不是讓他們學會編寫解決類似迷宮、八皇后或者是背包問題的程序,這些內容可以放到高年級學習數據結構課程的時候學習。
5精選與學生專業相關的案例
譚老師教材中的案例都是經過精心挑選的,有很多有趣的問題,例如國王的小麥、猴子吃桃、漢諾塔等等,這些對于學生們學習程序設計都是很好的例子。但是一本教材的容量畢竟是有限的,作為教師,應該花一些時間,挑選更多的案例,幫助學生們舉一反三。程序設計思想的形成可以通過閱讀大量的程序,并經過自己的思考和提練,最后達到掌握思想的目的。
挑選什么樣的程序作為案例,就是教師需要考慮的問題。我認為,除了教材上一些基本的案例,教師需要選擇與專業背景有關的案例。
例如,針對信息安全專業可以選擇凱撒密碼的實現方法、HILL密碼的實現方法、異或運算實現加解密、簡單的暴力破解口令、大整數的算術運算、素數的產生和使用、簡單身份驗證系統的實現,等等。這些案例既可以作為教學的例子,也可以作為實踐環節的實現內容。
使用與專業相關的案例進行教學和實踐,不但可以極大地激發學生的學習興趣,還使他們學到了運用所學知識解決問題的方法及動手能力。
6結束語
C語言程序設計的教學不僅僅是教一門語言,也是教程序設計方法,教材的選擇,課程內容的安排,乃至案例的選擇不但要符合教學的要求,更要適合學生的特點,還要兼顧不同的專業要求。
參考文獻:
[1] 譚浩強. C程序設計[M]. 3版. 北京:清華大學出版社,2005.
篇7
關鍵詞:教學模式;任務驅動;c語言程序設計;教學實踐
0 引言
《C語言程序設計》作為計算機程序設計的基礎,是理工類本科學生的一門必修課,尤其是C語言對計算機硬件具有很好的編程能力,使其在工科教學中的生命力越來越強。我們學院在C語言的教學上基本上還是采取傳統的教學模式:按照C語言教材自身的內容上課、上機,采取筆試形式考試。這樣的教學模式使得學生過分注重C的語法、語句等規則,而忽視了對編程思路的培養,學生獨立分析問題和解決問題的能力沒有很大的提高,給學生參加全國等級考試以至后續課程的學習留下了隱患。下面就作者在C語言教學過程中的經驗談談想法。
1 傳統教學模式
傳統教學模式是以教師作為課堂的中心,以廣大學生為講授對象,以課本作為講授的主線。雖然現在教學環境大都采用多媒體大屏幕,操作方便,易于控制教學內容和節奏,能在規定課時內呈現較多信息量;但是學生往往處于被動學習狀態,教學內容難以適應學生的個體差異,所有學生被迫按照老師的講授速度進行學習,不利于培養思維能力與創造能力。
上機實踐課上通常老師會事先布置幾道編程題,但是學生上機目標不是很明確,問的問題多數是屬于同一類問題。老師不停地在機房各處一一解答,既浪費時間,也沒取到很好的效果。學生在機房沒有緊迫感,甚至有些學生覺得無事可做,就會打游戲等。這種上機方式不利于培養學生的動手能力和自我解決問題的能力。
學生學不好C語言主要是因為C語言教學的重點不是放在如何解決問題上,而是把大部分的時間放在講解語法規則和語句格式上,其后果就是學生一拿到任務后首先琢磨如何定義變量,用什么語句,而不是對問題進行合理的分析,考慮最佳算法,這樣當然覺得很難而且也設計不出好的程序。學生參加全國等級考試的通過率很低也就不足為怪了。
2 “任務驅動式”教學模式
采用“任務驅動式”的教學方法,知識及技能的傳授以完成典型“任務”為主,有利于提高學生利用計算機進行自主學習與解決問題的能力。
2.1 教學內容的改革
我們把通過全國計算機二級考試作為學習c語言的目標,針對等級考試大綱來確定教學計劃以及教學內容。為此,我們從第一堂課起就強調并要求學生通過全國二級考試,既讓學生明確短期學習目標,又放眼長遠的努力方向,以激發學生進行自主學習的主動性。我們將教學內容分離為幾個相對獨立的模塊,即結構模塊、數組模塊、指針模塊、函數模塊和文件模塊。模塊的內容要循序漸進,把握好由易到難,由簡單到復雜的教學過程,否則容易使學生一開始就產生一種畏懼情緒,失去學習興趣。然后,力求概念準確,分散難點。各模塊的教學目標要十分明確,教學量適中,讓學生很容易把握住教學要點,理解和掌握教學內容。
2.2 設計好實驗任務
實驗任務的設計包括任務的提出與分解、最終達到的目標、解決問題的方法等。目的性要強,任務要明確,這樣才能很好地緩解計算機基礎課程實驗教學中學生無事可做,玩游戲、上網聊天等現象。要培養學生限時編程的良好習慣,要求學生在規定的時間內編寫和調試好給定的程序。通過這些基本功的訓練,學生在具備了扎實的計算機程序設計能力后,就較容易通過全國計算機二級考試。
在程序設計語言教學中,算法是程序設計的靈魂,學生編寫不出程序的首要原因是設計不出―個合適的算法。因此,在教學中應對常用的算法結合典型實例進行詳細地講解,強調算法的步驟,讓學生對算法有比較深刻地了解,并鼓勵學生從不同角度去思考問題,對于同一個問題的解決用多種方法來實現。這樣有助于拓展學生的思維,增加學生對學習C語言的興趣。
例如:計算n!
我們可以采用遞歸法:
2.3 學習成績評價方式的改革
采用“筆試+上機考試”的評價方法可以提前讓學生體驗全國等級考試的過程。同時,兩種形式考試都通過才算這門課程通過,也能促使學生在學習c語言的基本知識之外加強編程實踐,讓學生學到c語言的語法規則的同時也掌握了程序設計的方法。
篇8
由于時間的關系,我們的這次實習課程老師并沒有給我們詳細的介紹,只是給我們簡單的介紹了幾個比較重要的實際操作。包括了程序模塊處理.簡單界面程序.高級界面程序.程序的添加修改.用程序做一元線性回歸處理以及用c語言程序來畫粒度分布圖等這幾樣比較重要的時間操作。
上機實驗是學習程序設計語言必不可少的實習環節,特別是c語言靈活、簡潔,更需要通過編程的實習來真正掌握它。對于程序設計語言的學習目的,可以概括為學習語法規定、掌握程序設計方法、提高程序開發能力,這些都必須通過充分的實際上機操作才能完成。
學習c程序設計語言除了課堂講授以外,必須保證有不少于課堂講授學時的上機時間。因為學時所限,課程不能安排過多的統一上機實驗,所以希望學生有效地利用課程上機實驗的機會,盡快掌握用c語言開發程序的能力,為今后的繼續學習打下一個良好的基礎。為此,我們結合課堂講授的內容和進度,安排了12次上機實驗。課程上機實驗的目的,不僅僅是驗證教材和講課的內容、檢查自己所編的程序是否正確,課程安排的上機實驗的目的可以概括為如下幾個方面:
1.熟悉程序開發環境、學習計算機系統的操作方法
一個c語言程序從編輯、編譯、連接到運行,都要在一定的外部操作環境下才能進行。所謂 環境 就是所用的計算機系統硬件、軟件條件,只有學會使用這些環境,才能進行程序開發工作。通過上機實驗,熟練地掌握c語言開發環境,為以后真正編寫計算機程序解決實際問題打下基礎。同時,在今后遇到其它開發環境時就會觸類旁通,很快掌握新系統的使用。
2.學習上機調試程序
完成程序的編寫,決不意味著萬事大吉。你認為萬無一失的程序,實際上機運行時可能不斷出現麻煩。如編譯程序檢測出一大堆錯誤。有時程序本身不存在語法錯誤,也能夠順利運行,但是運行結果顯然是錯誤的。開發環境所提供的編譯系統無法發現這種程序邏輯錯誤,只能靠自己的上機經驗分析判斷錯誤所在。程序的調試是一個技巧性很強的工作,對于初學者來說,盡快掌握程序調試方法是非常重要的。有時候一個消耗你幾個小時時間的小小錯誤,調試高手一眼就看出錯誤所在。
通過這次為數不多的幾天計算機實習學習,我們了解了一些關于c語言的知識,理解鞏固了我們c語言的理論知識,著對我們將來到社會工作將會有莫大的幫助。同時它讓我知道,只要你努力,任何東西都不會太難。
3.加深對課堂講授內容的理解
課堂上要講授許多關于c語言的語法規則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。通過多次上機練習,對于語法知識有了感性的認識,加深對它的理解,在理解的基礎上就會自然而然地掌握c語言的語法規定。對于一些內容自己認為在課堂上聽懂了,但上機實習中會發現原來理解的偏差,這是由于大部分學生是初次接觸程序設計,缺乏程序設計的實習所致。C語言程序設計實習心得體會(3篇)C語言程序設計實習心得體會(3篇)。
篇9
關鍵詞:《C語言程序設計》;教學改革;案例教學;師生互動;多媒體
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2009)25-7182-02
Practicing on Teaching of "C Programming"
QIAO Zheng-hong
(Sci. & Tech., Institute of Science, PLA University, Nanjing 211101, China)
Abstract: C Programming is a basic course in public, it is also a practical course with highly experimental demand. Old measure of teaching in C do not adapt the student' s need, the measure of reforming teaching is introducted, such as Case Study, Teacher-student interaction, Rational use of multimedia, which gets rather good response.
Key words: C Programming; reform of teaching; case study; Teacher-student interaction; multimedia
1 引言
我校為非計算機專業的學生設置了兩門計算機公共基礎課程:一是“大學計算機基礎”,二是“計算機程序設計基礎”,要求所有學生必須選修。其中“計算機程序設計基礎”課程選用目前流行的C語言作為教學語言。
C語言是我校學生學習程序設計的入門語言,學生分析問題、解決問題的能力和程序設計思想的形成都與C語言有著密切的聯系。C語言既具有高級語言的優點,又具有低級語言的許多特點,既可以用來編寫系統軟件,又可以用來編寫應用軟件。C語言語法限制不嚴格,程序設計自由度大,在使用時會出現一些“副作用”,再加上現行在教學過程中存在的一些弊端,所以在學習中學生普遍反映“難學”、“不懂”、“沒興趣”,這也是在C語言教學中普遍遇到的問題。
2 現行教學過程中存在的問題
2.1 以書本為中心,忽視學生能力的培養
以書本為中心的教學模式,采用從概念到概念的注入式教學,偏重于C語言語法知識的詳細講解,而對程序設計思想、程序設計方法和程序設計風格的介紹很少,對編程能力的培養不足,導致學生學不深、學不透、學不精,不會編寫和調試程序,不會測試程序的正確性,編寫的程序可讀性很差,遇到稍微復雜的程序就讀不懂,更不用說運用學到的概念去解決實際問題了。
2.2 以教師為主體,忽視學生的能動作用
以教師為主體的教學方法中,由于片面強調和突出教師的主導作用,忽視和壓抑了學生的能動作用;片面地強調知識的傳授和灌輸,忽視了學生創新能力的培養;注重“知識型”人才,忽略了“智能型”人才的培養。在教學的過程中,教師只注重講解概念、語法和程序,不注意調動學生的學習熱情,學生被動接受灌輸的知識,學習熱情低,即使掌握了這些內容,也不能靈活運用,達不到舉一反三的目的。
2.3 多媒體教學過分強調表現形式,忽略了內容本身
在現代化的教學過程中,利用投影儀、計算機、網絡等現代設備開展多媒體輔助教學,具有較好的教學效果。但是在課件制作上過分強調表現形式,忽略了內容本身,往往造成喧賓奪主,達不到預期的效果;另外在課堂上,教師過分依賴課件演示,忽視與學生溝通,影響學生參與教學活動的積極性。
針對以上存在的不足,我們在對C 語言教學過程中,開展了一系列的教學改革,在教學中采用案例教學法,強化師生互動,積極培養學生學習興趣,并合理使用現代教育手段,取得了良好的教學效果。
3 教學改革方法
3.1 采用實例教學,突出能力培養
為了改變以書本為中的注入式教學方式,我們探索采用了實例教學法,以程序設計的需要帶動語言知識的學習,在每個知識點上以引例開頭,激發學生的好奇心和求知欲,從而促進學生成為教學主體,引導學生進行自主學習、合作學習、研究性學習,增強學生的綜合應用能力,從而提高了教學質量,取得了良好的效果。
在實際教學實施過程中,我們采用了項目遞進驅動教學法,改變滿堂灌的做法,將學生的眼手腦全部調動起來。精心設計實例,給學生一個比較實際的切入點,通過教師的演示使學生感覺能夠入手,然后再將此實例不斷修改、擴充,引導學生參與到程序的編寫過程中,并將學生設計的程序展示,讓學生來評判優劣、吸收優點、修改錯誤,引導學生進行程序優化。比如在進行if語句的教學時,針對符號函數的求解,我們給出多種可能實現的程序段,讓學生分析哪些程序段能夠完成計算,哪些不能完成計算,對不能完成計算的程序段如何進行修正等。通過這些程序的分析,使他們加深了對if語句的理解,掌握了if與else的配對關系,并靈活運用去解決其他問題。
3.2 強化師生互動,激發學習學習熱情,發揮學生主觀能動性
在C語言教學中,我們大力強化師生互動,充分發揮學生的主觀能動性,注重培養學生獨立學習、獨立思考、勇于創新的能力。師生互動教學我們采用了“問答式”、“討論式”等多種形式。每一種方式都有其特點和特定的適用范圍,在實際教學中我們根據具體情況加以靈活運用。
“問答式”就是教師事先設計好問題,啟發學生思考,引導學生在問題解決中構造算法進而掌握相關的概念、語法、功能及應用。例如:要求學生編程實現輸入三角形的三條邊a,b,c,計算以這三個數為邊長的三角形面積。我們可以適當進行提示提問:①輸入的三條邊能否構成三角形?②已知三邊長,三角形面積該如何求呢?這就要結合中學時的數學知識,對于問題①用數學語言來描述為:兩邊之和大于第三邊。那么用程序語言該如何描述呢,應該采用哪一種程序結構?順序、選擇還是循環?程序結構知道了,下一步就是根據數學公式計算面積。這樣,逐步對學生進行提示和引導,可以使學生的思維一直處于活躍狀態。
“討論式”就是教師預先設定討論題目和要求,由學生分組討論的一種互動教學方式。它適用于課程中的重點難點問題。如在鏈表的教學中,我們就如何利用鏈表實現棧、隊列,用鏈表實現與用數組實現各有什么優劣等問題時就采用“討論式”教學方法。課前教師將問題提出來,讓學生自己去思考。學生自由組合形成若干各小組,每個小組應有一位秘書,負責全程記錄討論過程,最后每個小組要出一份討論報告,然后由每個小組推選一位學生上臺講解本組的實現方案,其他組的同學可自由提問,最后由教師對方案的可行性、是否有創新、須改進之處一一進行分析講評。這種方式有利于培養學生的思維能力和協作能力,激發學生學習熱情。
3.3 合理使用多媒體,提高教學效率
在教學中結合形象直觀的事例或圖形講解概念,可以充分發揮學生的形象思維能力,不但易于理解和掌握,而且印象深刻,能有效地提高學習效率。因此在C語言教學中我們可利用多媒體代替傳統的板書,將文本、圖像、聲音、動畫結合起來,使抽象的內容變得形象生動,學生通過多種感官來獲取知識,形成相關的概念。但是濫用多媒體教學,不但達不到預期的教學效果,反而會分散學生的注意力,削弱教師在教學過程中的主導作用,甚至影響學生的學習積極性。在C語言多媒體教學實踐中,我們著重解決好以下問題。
3.3.1 課件內容與形式的關系
在制作C語言課件時,我們要根據課程的教學內容的性質和特點選擇恰當的技術手段和表現形式,充分利用了各種媒體信息為教學內容服務。在課件制作上,不需要花時間、花精力對課件進行包裝,刻意追求特技效應。在課堂教學中,過多的畫面切換,容易造成學生在學習過程中應接不暇,對所學內容生吞活剝,能力的培養無從談起。實踐證明,附加信息和無關信息過多,雖然從心里上加深刺激了學生的感知能力,但卻顯得主次部分,容易分散學生的注意力。因此我們要求課件制作要務實,不必特別美觀,也不必有很高的技術含量,涵蓋的知識點也不必很多,只要能使抽象、難懂的內容變得直觀、易懂,有利于學生更好地接受所學的知識就夠了。
3.3.2 注意發揮教師的主導作用
雖然教學課件事先已經做好,但不是說在課堂上教師只充當“解說員”、“演示員”就可以了,這樣可能會出現學生看了很多,聽了很多,卻不知道要學什么,什么是重點難點,而事與愿違。其實,多媒體輔助教學作為一種現代化的教學手段,是用來提高課堂教學效率、突破重難點、解決一些傳統板書教學不容易理解的問題。作為教師應把握住自己在教學中的主導地位和作用,通過教學過程的設計和靈活多變的操作,使多媒體發揮最佳教學功能。
4 結束語
采用這些教學方法,有提出問題、解決問題、擴展問題、再解決問題、對解決問題方法的評價、優化等幾個環節,實際上是一個螺旋式滾動向前的過程,在這個螺旋式不斷向前的過程中,能夠非常自然地調動學生參與的積極性,而且通過問題的擴展,通過一個問題的多種解決方法,使學生在課堂上真正地成為“主體”,教師扮演“主導”角色。當然,在改進和探索教學方法的同時,我們還要充分利用機房、網絡和課外環境,啟發和調動學生的學習積極性,培養和提高學生的自學能力。
參考文獻:
[1] 中國高等院校計算機基礎教育改革課題研究組.中國高等院校計算機基礎教育課程體系2006[M]. 北京:清華大學出版社,2006.
篇10
關鍵詞:C語言程序;調試技術;探究與分析
近些年來,筆者在研究C語言程序設計過程中,發現許多人對于自身編輯的C語言程序運行中出現的錯誤的處理方法存在許多問題,無法有效判斷程序錯誤的原因以及其對應的調試方法,文章主要從兩方面分析C語言程序設計調試技術。
一、運行錯誤的判斷與調試
一般情況下,C語言程序運行錯誤被分為兩種:邏輯錯誤與程序設計錯誤,前者是指編譯時沒有錯誤提示,可以運行,但實際的運行結果與程序預期結果之間有偏差;后者是指程序設計中存在的問題,在編譯與連接程序時也沒有被發現,程序設計錯誤的主要表現為:計算機突然死機、自行熱啟動或輸出信息混亂等[1]。
文章主要介紹兩種常見的運行錯誤調試方法:
①程序算法設計不合理
有一種邏輯錯誤主要是由于C語言程序設計時的算法不合理而引起的,例如對邊界及特殊情況未作預先處理,例如下述循環:
While(count)
x
…
count=count-1;
y
該循環的設計構思是進行count次循環,但是在該循環中,while旁邊的判斷條件恒為真,程序就會進入“死循環”,這顯然是由于算法設計錯誤而導致的,但是編譯器對于該類錯誤的敏感度較低,只有程序運行出現異常的時候才可能被發現[3]。再舉一個例子:根據海倫公式計算三角面積的時候,首先需要對給出的三條邊長是否符合“三角形任何兩邊的和大于第三邊”的定理,若不符合這一定理則運算結果毫無意義;而程序員在設計一般實系數一元二次方程的程序時,必須設定處理復數情況的程序,避免出現運行錯誤[4]。若采用手算的方法是不需要先考慮到這方面,可以在出現問題后再根據實際情況提出解決措施。但是C語言程序是為計算機設計的,計算機不具備人腦自行應變的能力,因此,在程序設計的過程中必須事先將可能發生的一切問題都考慮到,特別是客戶委托程序員設計的或是作為商品出售的軟件更要注意這一問題。
②程序輸入時的打字錯誤
還有一種常見的邏輯錯誤是在C語言程序輸入過程中,由于程序員不小心打錯字導致的,例如將判斷條件中的“>=”輸為“>”,將相等判斷“==”輸為“=”等。存在此類錯誤的程序在運行過程中出現的錯誤表現具有多樣化,且很難將該錯誤出現的原因與打字錯誤聯系起來[5]。
數據輸入中存在的字符錯誤或字符的格式錯誤等都會影響程序的運行結果,尤其是在數據量大,且數據輸入采用人工輸入的工作中,極其容易發生這種錯誤。筆者以多年工作經驗建議當數據輸入量較大時,采用文件記錄的方式,再通過讀寫文件來進行數據輸入,這樣就能夠通過編輯數據文件來檢測數據中存在的錯誤,并且在重新計算或調試過程中就不需要反復輸入[6]。這種方法非常適用于科學或工程計算應用程序中的數據計算。
還有一種方式就是采用自行編寫的、比較完善的數據校驗輸入模塊來取代C語言中的scanf()函數來輸入數據。這種方法多用于數據處理、事務管理等復雜的應用程序開發,常常需要將數據輸入與用戶界面等模塊相結合,對編程技能有較高的要求。
二、C語言程序設計基本調試方法
文章主要針對C語言程序設計基本調試方法的四種方法進行介紹。
1.標準數據校驗
在程序編譯、連接完畢之后,下一階段就是運行調試。運行調試階段首先需要使用若干組已知結果的標準數據對程序進行檢驗。在此過程中標準數據的選取對檢驗結果具有重要影響,因此,標準數據的選擇需要選取具有代表性且比較簡潔的數據,主要是為了簡化對檢驗結果正確性分析的不足[7]。此外,對重要的臨界數據也需要進行檢驗。
2.程序跟蹤
對于復雜的大型程序而言,上述檢驗一次性通過是不可能完成的。一般情況下,程序存在各種各樣的問題(程序存在問題是一個普遍現象,一個錯誤也沒有的程序在實際中較少),因此,需要對程序進行嚴謹的跟蹤調試。
程序跟蹤是調試工作中的一種方法。程序跟蹤的方法是通過讓程序一句一句的執行,通過觀察程序執行過程中的數據以及程序的流程變化來分析其中存在的錯誤。例如在Turbo C中,可以采用兩種程序跟蹤的方法,一種是通過利用集成環境中分步執行、斷點設置以及變量內容顯示等功能觀察程序的合理性;還有一種方法是傳統方法,其主要通過在程序中直接設置斷點、打印重要變量來觀察程序有無錯誤存在。
3.邊界檢查
在數據檢查過程中,要重視邊界可能存在的特殊情況,例如以下循環:
While(count
x
…
y
需要檢查設計數據count等于0、負數、999及1000等情況。若程序中存在if-else或switch等語言組成的分支時,也需要設計相應的判斷數據,且對分支中的路徑進行檢測。
4.簡化循環次數
在調試程序的過程中,可以通過簡化程序來實現提升調試速度的目的,例如減少循環次數、減小數組規模、屏蔽部分次要程序段等方法。但是在簡化程序的過程中,要注意不能太過簡化,否則無法代表程序真實的運行狀況。舉個例子來說,對于一個求解N元一次方程組的程序來說,僅通過將N設置為2的檢測是遠遠不夠的,不能確定該程序是否在數值較大的方程組中也能得出正確的數據。若在N=5或6的情況下程序計算正確,則可以確保程序出錯的可能性較小。
結束語
計算機技術的不斷發展促使現代人們工作、學習以及生活方式發生巨大改變,且隨著計算機軟件功能的不斷強大,使得計算機軟件廣泛應用于各個領域中。但是在C語言程序應用過程中,程序錯誤的出現威脅著程序軟件的正常運行。因此,提高程序安全性成為程序員有待解決的問題。文章主要針對C語言程序設計調試技術展開分析,首先介紹了C語言運行錯誤的判斷與調試,分析了2種常見邏輯錯誤判斷與調試方法,然后針對4種C語言程序設計基本調試方法進行闡述,旨在提高C語言程序設計調試技術水平。
參考文獻
[1]張秀美,趙旭霞.程序調試技術在C語言函數教學中的應用[J].教育教學論壇,2014,22(11):85-86.
[2]崔光佐,程旭,佟冬等.面向處理器的系統級模擬、仿真及調試技術 ――基于軟硬件協同設計的新方法[J].計算機研究與發展,2011,38(3):361-367.
[3]李從宇,王寶光.嵌入式DSP系統C語言硬件編程技術[J].測控技術,2013,26(4):68-70.
[4]姚放吾,金鑫.基于Monitor的C語言源代碼調試器的設計與實現[J].計算機技術與發展,2014,21(6):55-58.
[5]吳興華.基于C語言軟件開發的效率、移植及調試[J].數字技術與應用,2013,14(12):172-172.