第一篇:C語言循環結構教學設計方案
《C語言循環結構》教學設計方案
一、教學內容分析
循環結構是面向過程編程中三種結構中最重要的一種結構,學好它是學好這門課程的關鍵。循環結構的實質是重復執行一系列語句,這種重復性是在循環條件的有效控制之下完成的。程序的關鍵在于如何控制循環的條件,在恰當的時機執行循環或退出循環。
二、學習者分析
循環結構是一種比較復雜的結構,在C語言中,循環結構主要包括for、while和do-while三種語句,其中for語句的應用更為普遍一些。循環語句的用法對于有程序設計經驗的學生來說輕而易舉,但是對于那些沒有經驗的初學者來說,難度卻不小。在一堂課的設計過程中,引例的作用至關重要。一個好的引例能把抽象問題簡單化、具體化,有利于學生理解掌握。在學習循環結構時可先利用現實生活中的一些具體實例來說明什么是循環以及為什么要研究循環讓一名初學者盡快擺脫日常的思維定式,更加透徹地理解和掌握程序設計中的基本思想,領會程序設計的精髓,總結出程序設計中每一種程序設計結構的本質及適合解決的問題,是高級語言程序設計這門課程在講授過程中,應該時刻注意的問題。
三、教學目標
1.知識與能力
掌握循環構造的基本特點;區分多種不同類型循環結構的運行過程;掌握循環結構的格式及應用方法。
2.過程與方法
首先學會區分多種不同類型的循環結構,而后學會定義及應用方法,利用上機熟練應用技巧。
3.情感態度與價值觀
我們必須抱有自己想學習的心態,多去問老師一些問題,那么你的漏洞將會越來越少,程序量和代碼量才會越來越多。
四、重點難點及處理
1.循環語句的的分類和定義
For循環、while循環和do-while循環
特點:在一個程序中可以通過變換語句來使用不同的循環語句,而不改變程序的功能。
2.循環語句的引用
例如:要從1累加到100
使用For循環: for(sum,=0,i=1;i<=100;i++)sum=sum+i
使用while循環:while(i<=100)sum=sum+i
使用do-while循環:do {sum=sum+i;} while(i<=100)
五、教學準備
1.PPT教學課件
2.實驗操作:Visual C++6.0軟件平臺,PC電腦,教學機房,網絡課堂。
六、教學思路(教學策略等)
在一堂課的設計過程中,引例的作用至關重要。一個好的引例能把抽象問題簡單化、具體化,有利于學生理解掌握。在學習循環結構時可先利用現實生活中的一些具體實例來說明什么是循環以及為什么要研究循環。現在我們可以提出一個問題:在計算機程序設計的世界
里是否也有類似的這種相同操作重復出現的問題呢?利用最簡單累加求和的例子。
例:求1+2+3+4+5+?+100的和。
下面就可以引出本節課的重點,通過分別使用For循環、while循環和do-while循環來完成本程序,我們在整個過程中都做著重復的、相同的事情,也就是前面所說的循環,在試著寫出比較簡單的程序時,可以試著選擇素數或者奇數累加來增加難度,還可以使得讓學生接受和探究雙重循環。
七、教學過程 教學引入
掌握掌握循環結構的基本特點:for語句、while語句和do-while語句 如何計算1+2+3+4+?+100 知識點學習
1)for循環是循環的一種標準形式,通過for語句實現,其語法如下:
for(①;②;③)④
①表達式,通常用于循環的初始化。包括循環變量的賦初值、其他變量的準備等;
②表達式,循環的條件判斷式,如果為空則相當于真值;
③表達式,通常設計為循環的調整部分,主要是循環變量的變化部分; ④循環體,由一條或多條語句構成,多條語句需要用一對花括號括起來。
2)while循環通過while語句實現。while循環又稱為“當型”循環,其語法如下
while(①)②;①表達式,循環的條件判斷式,若值為0,則結束循環,退出while語句;若值為非0,則執行循環體
②循環體,由一條或多條語句構成,多條語句需要用一對花括號括起來。
3)do-while循環,又稱為“直到型”循環,用do-while語句來實現,其一般格式為:
do { ①;} while(②);do-while語句的執行過程為:
先執行循環體①,再判斷表達式②的值。若值為0,則結束循環,退出do-while語句;若值為非0,則繼續執行循環體
4)break語句、continue語句和goto語句
break語句不能用于循環語句和switch語句之外的任何其他語句中,功能為無條件退出循環。
continue語句只結束本次循環,判斷下一次循環環條件,滿足繼續循環,否則退出循環。
goto語句為無條件轉向程序中的某條語句。
思考與探究
分別使用For循環、while循環和do-while循環來累加出1-100之間的奇數和。
實踐與操作
不管是用or循環、while循環和do-while循環都好,核心算法是類似的,由于要累計出1-100之間的奇數,定義i從1開始,每次累加2即可,把i賦值給sum,直到i大于100即跳出,例使用while循環寫出如下語句:
#include
循環結構是面向過程編程中三種結構中最重要的一種結構,學好它是學好這門課程的關鍵。本章介紹的內容主要是For循環、while循環和do-while循環,同時也介紹了下break語句、continue語句和goto語句。while循環和do-while循環的條件判斷一個在前,一個在后,為導致循環體執行的次數不同,需要密切注意;for循環為標準的功能很強的循環,通常用于可控制的循環,對于程序的維護和閱讀都是最佳選擇。循環結構的實質是重復執行一系列語句,這種重復性是在循環條件的有效控制之下完成的。程序的關鍵在于如何控制循環的條件,在恰當的時機由“真”變“假”而退出循環。
八、形成性評價試題
如題所示計算表達式s=1+(1+2)+(1+2+3)+?+(1+2+3+4+?+10),請寫出程序并計算出S的值。
#include
第二篇:《循環結構》教學設計
《循環結構》教學設計
一、教學內容分析
《循環結構》是人民教育出版社課程教材研究所編著的《普通高中課程標準試驗教科書數學3(必修)》(A版)中§1.1.2的第二課時的內容。(1)算法是高中數學課程中的新內容,算法的思想是非常重要的,算法思想已逐漸成為每個現代人所必須具備的數學素養。(2)本節課的內容是循環結構,它與順序結構、條件分支結構是算法的三種基本邏輯結構,可以表示任何一個算法。并且循環結構是算法這一部分的重點和難點,它的重要性就是充分體現計算機的優勢,也即能以極快的速度進行重復計算。
二、學生學習情況分析
學生已經學習了有關算法和框圖的基礎知識。絕大多數同學對算法和框圖的學習有相當的興趣和積極性。但在探究問題的能力,應用數學的意識等方面發展不夠均衡,尚有待加強。
三、設計思想
建構主義學習理論認為,建構就是認知結構的組建,其過程一般是引導學生從身邊的、生活中的實際問題出發,發現問題,思考如何解決問題,進而聯系所學的舊知識,首先明確問題的實質,然后總結出新知識的有關概念和規律,形成知識點,把知識點按照邏輯線索和內在聯系,串成知識線,再由若干條知識線形成知識面,最后由知識面按照其內容、性質、作用、因果等關系組成綜合的知識體。也就是以學生為主體,強調學生對知識的主動探索、主動發現以及學生對所學知識意義的主動建構。基于以上理論,本節課遵循引導發現,循序漸進的思路,采用問題探究式教學,運用多媒體,投影儀輔助,倡導“自主、合作、探究”的學習方式。具體流程如下:
創設情景(課前準備、引入實例)→授新設疑(自主探索形成概念→理解概念能識別框圖)→質疑問難、論爭辯難(進一步加深對概念的理解→突破難點)→溝通發展(反饋練習→歸納小結)→布置作業。
四、教學目標
理解循環結構,能識別和理解簡單的框圖的功能,通過模仿、操作、探索,學習設計程序框圖表達,解決問題的過程,發展有條理的思考與表達的能力,提高邏輯思維能力;能運用循環結構設計程序框圖解決簡單的問題,感受和體會算法思想在解決具體問題中的意義,增強學生的創新能力和應用數學的意識。
五、教學重點與難點
重點:理解循環結構,能識別和畫出簡單的循環結構框圖。
難點:循環結構中循環條件和循環體的確定。
六、教學過程設計
(一)創設情境
引例:德國著名數學家高斯幼年時代聰明過人,上學時,有一天老師出了一道題讓同學們計算:
1+2+3+4+…+99+100=?
老師出完題后,全班同學都在埋頭計算,小高斯卻很快算出答案等于5050。(課本例6)你能否寫出求法,并用框圖表示你的算法。
此例由學生動手完成,投影展示學生的做法,師生共同點評。鼓勵學生一題多解。
【設計意圖】通過高斯求和的故事,復習順序結構,提出遞推求和的方法,導入新課。此環節旨在提升學生的求知欲、探索欲,使學生保持良好、積極的情感體驗。
(二)授新設疑
1.循序漸進,理解知識
(1)引進“計數變量”、“累加變量”。借助“計數變量”和 “累加變量”使學生經歷把“遞推求和”轉化為“循環求和”的過程,同時經歷初始化變量,確定循環體,設置循環終止條件3個構造循環結構的關鍵步驟。①將“遞推求和”轉化為“循環求和”的緣由及轉化的方法和途徑 引例“求的值”這個問題的自然求和過程可以表示為:
用遞推公式表示為:的值的一個算
直接利用這個遞推公式構造算法在步驟中使用了共100個變量,計算機執行這樣的算法時需要占用較大的內存。為了節省變量,充分體現計算機能以極快的速度進行重復計算的優勢,需要從上述遞推求和的步驟
中提取出共同的結構,即第步的結果=第(-1)步的結果+。若引進一個計數變量來表示計算到第幾步,一個累加變量則第步可以表示為賦值過程②“”、“
”的含義
來表示每一步的計算結果。
利用多媒體動畫展示計算機中計數器的工作原理,借助形象直觀對知識點進行強調說明 1)量。
2)賦值號“=”右邊的變量“”表示前一步累加所得的和,賦值號“=”左邊的“”表示該步累加所得的和,含義不同。3)賦值號“=”與數學中的等號意義不同。4)邊的變量的作用是將賦值號右邊表達式。(類比
理解)
在數學中是不成立的。的值賦給賦值號左的作用是將賦值號右邊表達式的值賦給賦值號左邊的變借助“計數變量”、“累加變量”既突破了難點,同時也使學生理解了“”、“
”的含義。
③初始化變量,設置循環終止條件 由的初始值為0,的值由1增加到100,可以初始化循環變量和設置循環終止條件。(2)循環結構的概念
從某處開始,按照一定條件,反復執行某一處理步驟的結構稱為循環結構。
教師學生一起共同完成引例的框圖表示,并由此引出本節課的重點知識循環結構的概念(循環變量、循環體、循環終止的條件)。
【設計意圖】這樣講解既突出了重點又突破了難點,同時學生在教師引導下,在已有探索經驗的基礎上,借助多媒體的形象直觀,共同完成問題的抽象過程和算法的構建過程。體現研究問題常用的“由特殊到一般”的思維方式。2.類比探究,掌握知識
例1:改造引例的程序框圖表示 ①求②求③求的值 的值 的值 此例可由學生獨立思考、回答,師生共同點評完成。
【設計意圖】通過對引例框圖的反復改造逐步幫助學生深入理解循環結構,體會用循環結構表達算法,關鍵要做好三點:
① 確定循環變量和初始值 ② 確定循環體 ③ 確定循環終止條件。
例2:根據程序框圖回答下面的問題
圖A
圖B(1)圖中箭頭指向①時,輸出=_____。
(2)該程序框圖的算法功能是_______________________。(3)去掉條件“
”按程序框圖所蘊含的算法,能執行到底嗎,若能
=______;指向②時輸出執行到底,最后輸出的結果是什么? 對比練習:(1)圖B輸出
=_____。(2)圖A指向②時與圖B有何不同?你能得到什么結論?
(3)對比“引例”與“例2”的程序框圖,試說明二者的區別和聯系? 可由學生小組討論,教師巡視,加強對學生的個別指導,再由學生分析。
例2是寫出程序框圖的運算結果,及其功能。
【設計意圖】設計此例的目的是讓學生通過類比意識到:
①循環結構不能是永無終止的死循環,一定要在某個條件下終止循環,這就需要條件結構來做出判斷,因此,循環結構一定包含條件結構。
②循環結構中語句的順序對算法的影響。③當型循環結構與直到型循環結構的區別。
(三)質疑問難、論爭辯難
例3 圖(1),圖(2),圖(3),圖(4)是為計算而繪制的程序框圖。根據程序框圖回答下面的問題:
圖(1)
圖(2)
圖(3)
圖(4)
①其中正確的程序框圖有哪幾個?錯誤的要指出錯在哪里。
②錯誤的程序框圖中,按該程序框圖所蘊含的算法,能執行到底嗎?若能執行到底,最后輸出的結果是什么?
③根據上面的回答總結出應用循環結構編制程序框圖應該注意哪幾方面的問題?
【設計意圖】通過類比,自主探究,幫助學生深入理解知識,完善知識結構,提升認知水平。通過小組討論,實現生生互動,師生互助,豐富情感體驗,活躍課堂氣氛。
(四)溝通發展、歸納小結 1.溝通發展
仿照本節課例題,同桌倆人一人編題一人解答。【設計意圖】通過練習進一步鞏固所學知識,培養和提升學生的認知水平。溝通發展,有助于及時查漏補缺,保持學生學習的熱情和信心。2.課后小節
①理解循環結構的邏輯。
②明確條件結構與循環結構的區別,聯系。③當型循環結構與直到型循環結構的區別。④數學思想方法:算法思想,類比方法。
【設計意圖】通過小結使學生對本節課的知識有一個全面的認識,掌握知識。為今后學習其它知識打基礎。
(五)布置作業
①課本P11習題1-1 A組 2
②課外拓展:寫出一個求滿足1×2×3×…×n>5000的最小正整數的算法并畫出相應的程序框圖。
【設計意圖】書面作業第一個層次要求所有學生完成,第二個層次,只要求學有余力的同學完成。體現了差異發展教學。
七、教學反思
循環結構這部分內容在算法中起著承上啟下的作用。本節施教過程中,基本完成設計構思,教學效果良好,但仍發現一些不足之處:
1、學生對循環終止條件的確定還存在一定困難,尤其循環體中“”、“”的順序對終止條件的影響。
”、“
”中滲透的函數思
2、教學過程中對循環體“想(數學本質)體現不夠。對算法教學的思考:教材將“算法與程序框圖”和“基本算法語句”分開處理。是否將這兩部分內容結合起來處理,在講基本結構的時候,通過基本算法語句在計算機上演示計算結果,是否會更生動,效果會更好。強調基本結構,適當降低程序框圖和算法語句的難度(學生反映其中的一些例題結構太復雜,理解比較吃力)。
算法作為數學與計算機技術的橋梁,體現了數學研究的一個新的方向,其作用是勿庸質疑的,但作為高中數學課程中的新內容,如何將其更完美地展現給學生,還需大家共同努力!
第三篇:循環結構教學設計
循環結構
一.教學目標
(1)知識目標 ①理解循環結構概念。
②把握循環三要素:循環變量賦初值、循環體、循環的終止條件。③能識別和理解循環結構的框圖以及功能。(2)能力目標
通過由實例對循環結構的探究與應用過程,培養學生的觀察類比,歸納抽象能力;參與運用算法思想解決問題的過程,逐步形成算法分析,算法設計到算法表示的程序化算法思想。
(3)情感目標
①感受算法思想在解決具體問題中的意義,提高算法素養; ②經歷體驗發現、創造和運用的歷程與樂趣,體驗成功的喜悅;
③培養學生形式化的表達能力,構造性解決問題的能力,以及程序化的思想意識。
二.教學重難點:
重點:循環結構的三要素。
難點:循環三要素的確定以及循環執行時變量的變化規律。
三.教學方法:問題探究式教學法 四.教學過程:
(一)創設情景,抽象概念
情景引入:北京取得2008奧運會主辦權的過程。國際奧委會對遴選出的五個城市進行投票表決的操作程序:首先進行第一輪投票,如果有一個城市得票超過一半,那么這個城市取得主辦權;如果沒有一個城市得票超過一半,那么將其中得票最少的城市淘汰;然后重復上述過程,直到選出一個城市為止。
[設計意圖]新穎引入激發學生興趣。教師拋磚引玉,學生積極舉例循環現象,其思考舉例過程實為自主構建循環結構概念過程,體現了自主獲取知識的新課標理念。
(教師引導學生觀察操作中哪些是重復進行的步驟,令其舉例說明社會、生活和數學中的循環現象;引導學生從循環現象中抽象出循環結構概念)循環結構概念:算法中按照一定條件反復執行某些步驟的結構。
(二)提出問題,分析研究
例1:設計算法求1×2×3×?×100的值并畫出框圖。(學生思考后小組討論算法的設計,并將成果展示出來)
[設計意圖]由學生歷經提出解法,嘗試,受挫的過程,引發其認知沖突,為新算法的產生奠定基礎。
問題①:學生展示算法步驟中優劣各是什么?
(三)循序漸進,深入探究
問題②:遞推求積中,每步中重復的操作是什么,變化的是什么?有何變化規律?100個變量的值當中哪個是最終輸出的量?
——每一步中重復操作的是乘法運算,變化的只是參與運算的; 每一步均可描述為:第n步結果?第(n?1)步結果?n(n?2,3,?,100); 最終只需輸出s100,而s1至s99中數據無需保留。
開辟變量s存放每次累乘結果(累乘變量),s的初值為1; 變量i用于追蹤從2至100的變化(計數變量),i的初值為2。
s?s?i教師引導學生得到循環體:
i?i?1
問題③:如何理解s?s?i與i?i?1?算法中“等號”與“變量”的涵義等同于數學中的相應涵義嗎?
問題④:循環體如何結束?
引導學生分析循環體執行的最后一步:
s?s?100i?101
當i?100時執行循環;當i?101時結束循環,即為循環終止條件。[設計意圖]問題②至④環環相扣,層次遞進,使學生歷經問題的抽象過程和新算法的構建過程,培養其歸納抽象能力,逐步形成算法分析,算法設計到算法表示的程序化算法思想。
歸納循環結構三要素:循環變量賦初值、循環體、循環終止條件。循環三要素確定過程:首先確定循環體,再由循環體第一步確定變量初值,由最后一步確定循環終止條件。
根據剛才的分析畫出程序框圖,從中提取出當型和直到型框圖,并給出一般形式,引導學生對這兩種循環結構進行區別和轉化。
直到型:先執行一次循環體,再判斷條件,若不滿足,繼續執行循環體,直到條件滿足,跳出循環。
當型:在每次執行循環體前判斷條件,若滿足,則執行,否則跳出循環。
(四)變式探究,深化理解
變式1:在例1當型框圖中修改循環三要素,學生回答算法功能。
11變式2:改造例1程序框圖,求1???35?1的值。999(組織學生分組活動,繼續改造例1的循環體,比比看哪組的改造創意最豐富,得到的新算法最多。)
[設計意圖]學生在自主改造循環體過程中體驗創造喜悅,深化了對循環結構理解,且體會了此算法的普適性(解決了有規律數列的求和積問題)。
探究①:若更改例1中循環體順序,即由
s?s?ii?i?1 變為
i?i?1s?s?i
程序功能變化了嗎?
若有變化,須如何修改初值和終止條件方能使功能不變? 探究②:若去掉例1中判斷條件i?100程序如何執行?
學生從變式及探究①中體會三要素對于循環結構的影響,并再次體會三要素確定過程:先確定循環體,再由循環體第一步確定初值,由最后一步確定終止條件。
[設計意圖]探究①意在通過類比使學生意識到循環體語句順序對算法的影響,及初值、終止條件的確立依據。探究②說明不能出現死循環,循環結構中定含條件結構。
(五)課堂小結,回顧提高
引導學生從知識、方法即數學思想方面進行小結:
知識與方法: ①循環結構的構建過程和循環三要素的確定。
②當型和直到型循環結構的區別和轉化。③循環要素的改變對程序功能的影響。
數學思想:程序化算法思想;算法思維與數學思維的區別。[設計意圖]培養學生自主梳理知識能力。
(六)布置作業,課外拓展
常規作業:P20習題1.1B組第2題。
拓展作業:查閱“韓信點兵,多多益善”的典故,設計算法求士兵總數,并給出兩種框圖表示。
[設計意圖]鞏固課堂知識。且拓展作業在應用知識的同時開闊了學生視野,將課堂內涵延伸到課外。
第四篇:C語言循環結構實習報告 - 副本
認識(實習)報告 實驗(實習)名稱循環結構程序設計 日期得分指導教師系專業年級班次姓名學號
一、實驗目的(1)掌握在程序設計條件型循環結構時,如何正確地設定循環條件,以及如何控制循環的次數。
⑵了解條件型循環結構的基本測試方法。
⑶掌握如何正確地控制技術型循環結構的次數。
⑷了解對技術型循環結構進行測試的基本方法。
⑸了解在嵌套循環結構中,提高程序效率的方法。
二、實驗內容
1.輸入一個正整數,并將其顛倒過來,如12345對應54321.程序 :
#include
#include
int main()
{
int n,m,t=0;
scanf(“%d”,&n);
if(n<0)
{
printf(“數據輸入錯誤!n”);
exit(0);
}
while(n!=0)
{
m=n%10;
t=t*10+m;
n=n/10;
}
printf(“反序數為: %dn”,t);
return 0;
}
運行:
12345
反序數為: 54321
Press any key to continue
2.將一個長整型數s的每一位數位上的偶數依次取出來,構成一個新的數t,其高位仍在高位,低位仍在低位,如s=87653142時,t中的數為8642.程序:
#include
int main()
{
long s,t=0,p=1;
scanf(“%ld”,&s);
while(s!=0)
{
if((s%10)%2==0)
{
t=t+(s%10)*p;
p=p*10;
}
s=s/10;
}
printf(“%ld“,t);
return 0;
}
運行:
87653142
8642
Press any key to continue_
3.判斷101~200之間有多少個素數。
程序:
#include
#include
int isprime(int m);
int main()
{
int n,s=0;
for(n=101;n<=200;n++)
{
if(isprime(n))
s++;
}
printf(”%dn",s);
return 0;
}
int isprime(int m)
{
int i;
for(i=2;i<=sqrt(m);i++)
if(m%i==0)
return 0;
return 1;
}
運行:
Press any key to continue_
三、分析與討論
(1)總結條件循環結構的一般方法。
(一)for循環
for循環的一般形式為:
for(<表達式1>;<表達式2>;<表達式3>)
{
語句序列
}
(1)先求解表達式1,然后求解表達式2,若其值為真(true),則執行for語句中內嵌的循環語句;若其值為假(false),則結束循環轉到{ }后面的語句執行。
(2)求解表達式3。
(3)轉回上面求解表達式2,繼續執行。
(4)循環結束,執行for語句下面的一個語句。
(二)while語句
while(表達式)
{
語句序列
}
其語義是,首先計算表達式的值,當值為真(true)時,返回循環體語句;當值為假(false)時結束循環。直到表達式的值為0,則執行結構后面的語句。
特點:先判斷,后執行。
(三)do-while語句
do
{
語句序列
}while(表達式);
特點:先執行,后判斷。
當循環條件為真(true)時反復執行循環體,直到循環條件為假(false)終止循環。因此,其循環體將至少被執行一次。
如果for、while或do-while循環控制語句的循環體中又包含循環控制語句就構成了嵌套循環。這3種循環語句之間可相互嵌套,構成復雜的邏輯嵌套結構。
(2)如何測試計數型循環結構的控制表達式中的錯誤?
斷點,或使用try,catch拋出異常
(3)從實驗中你得到了哪些提高嵌套循環程序效率的啟示?
1.注意把循環次數大的循環放在嵌套語句的外層可以產生較好的效率.2.靈活、巧妙運用三種循環語句結構來實現嵌套。
第五篇:《C語言循環結構》課程教學設計研究(定稿)
《C語言循環結構》課程教學設計研究
作者簡介作者簡介:徐東(1972-),男,碩士,中國人民解放軍海軍大連艦艇學院講師、教研室主任,研究方向為計算機視覺與人工智能、計算機教育。0引言
C語言程序設計中,循環結構、順序結構和選擇結構共同作為各種復雜程序的基本構造單元。C語言中幾乎所有實用程序都包含循環,許多問題求解都可歸結為重復執行的操作,比如數值計算中的方程迭代求根、非數值計算中的樹的遍歷等等。循環的特征是:在給定條件成立時,重復執行某程序段,直到條件不成立為止。教學實踐證明,循環結構是整個C語言程序設計課程中的“拐點”,這個環節學好了,就有了進一步學習的興趣,反之,則會讓很多學生對C語言的深入學習望而卻步。因此熟練掌握循環結構的概念及使用方法是程序設計最基本的要求之一。筆者通過總結學生學習C語言循環結構的一般心理思維規律,結合國內外優秀的計算機語言教學方法和模式,在講授C語言循環結構程序設計環節的教學過程中,采取“雙主體教學模式”,充分運用了項目實例教學、問題驅動教學、多媒體輔助教學等多種教學方法,重視學生的學習主體作用,在課堂教學中,以創造性貫徹“啟發式教學原則”為基本特征,鼓勵學生積極主動學習,教師極盡啟發、誘導、調動學生學習的主動性,使學生在掌握知識、形成能力、開發智力等方面得到最大發展。
1C語言公共課教學中存在的問題
C語言公共課程的授課對象均為非計算機專業學生,C語言教學總課時數也偏緊。C語言相對于計算機基礎課程,它注重設計算法、書寫程序并進行調試的整個過程,內容較為抽象、復雜,教學方法和學習方法都有極大的不同。筆者通過觀察并與學生交流,發現很大一部分學生上課時能聽懂課程,但程序一旦稍有改變就便不知所措,學生獨立編程時更是無從下手,尤其到了循環結構設計階段。究其原因,在教學方面存在以下問題。
1.1傳統課堂教學方式存在一些弊端
通常,傳統的C語言教學方法是選用經典教材,教師在講解時先給出一般的語法格式,然后逐步講解語法要點,再給出例子。傳統教學方法比較適合基礎差的學生,但此方式的缺點也是顯而易見的,一方面不利于學生自學能力的培養;另一方面,對于基礎好的學生會覺得太羅嗦,甚至因此喪失學習興趣。多數學生對于這種按部就班講編程的傳統教學方式有厭倦心理,不愿意主動與教師在課后交流,依靠教師的現象比較嚴重。另外,很大一部分學生還在延續高中時的學習方法,缺乏自主學習的意識和能力。C語言畢竟是一門抽象、復雜的課程,知識點非常散。學生在學習C語言的過程中,在教學內容越來越多、編程越來越困難的情況下,很難自我保持學習的興趣和熱度。
1.2教與學比例不合理
教師在教學實施過程中,往往過于注重對知識的傳授,過于強調教學方法,而實際上,C語言是一門實踐性很強的課程,理論理解與實際演練密不可分,相輔相成,因而,整個C語言教學過程中如何分配教與學、理論與實踐的比例,是學生學好C語言的關鍵因素之一。
1.3上機實作課時偏少
由于總課時數的限定,目前計劃學時內安排上機實作學時不足以完成預訂目標,以計劃外形式安排課時,學生在自主學習能力較弱的情況下,學習效果不佳。
2雙主體教學法
經過多年實踐,我們在教學過程中采取了適合C語言公共課的“雙主體互動教學模式”。雙主體互動教學模式是新型的課堂教學理論,它突破傳統教學中的“雙主”理論,極其重視學生的學習主體作用,并引入“互動”觀念,教、學雙方相互影響,彼此促動。在課堂教學中,它以創造性貫徹“啟發式教學原則”為基本特征,鼓勵學生積極主動學習,提倡教師極盡啟發、誘導、調動學生主動性之能事,在授課過程中,采用講解、現場編程演示、幻燈片、提問、目光交流、練、學生自主學習相結合的方式,授課完畢后進行課堂小結,布置上機作業。
2.1采用實例教學法,提高學生對抽象概念的感觀認識
實例教學法打破了以教材為中心的傳統教學模式,不按教材的順序授課,在講課過程中,經常舉一些與實際生活相關的事例,以精選出的程序實例為中心,把學習的重點放在具體實例講述上,并引導學生自己去思考解決方案,從主觀上讓學生感受到成就感,從而保持他們的學習興趣。整個教學過程中強調學以致用,在應用中學習,從而避免了枯燥、繁雜的理論說教,不僅增強了學生的學習積極性,而且對提高學生綜合分析和解決實際問題的能力也大有幫助。
為了達到本課程的教學目的,讓學生能更加深刻地體會到軟件編程的實際作用,提高并保持對該課程的學習興趣,本文引例就從“實彈射擊訓練分析系統軟件”的編制任務開始,該軟件編制任務共分5個階段完成,編制過程將一直持續到本課程結束,并且會在后續章節中得到進一步完善。“實彈射擊訓練分析系統軟件”具體任務安排:
第一階段:能記錄一名學生的打靶成績(平均環數)。
說明:為簡單起見,規定每名學生打10發子彈,記平均成績。
第二階段:能記錄每個班的打靶總成績(總平均環數)。
第三階段:能對參訓學生進行成績排名;能對參訓單位進行成績排名。
第四階段:在前3個階段任務完成的情況下,進一步完善該軟件的功能,學生可以添加自定義功能模塊。
在簡單介紹“實彈射擊訓練分析系統軟件”的編制任務后,提出本次課的任務。運用實例啟發學生,明確本節課要解決的任務,即尋求一種循環機制,能夠自動循環地對10個成績求和。這樣,不僅激起了學生探究問題的興趣,而且輕松地引入了本節課的教學內容:循環結構。接下來,就按照軟件設計的步驟依次進行。
2.2采用進階式問題驅動法,提高上機效率
在C語言教學過程中,上機操作是非常必要的。通過上機,學生不但可以進一步理解和掌握知識,而且許多不清楚或不理解的問題也迎刃而解。但在上機過程中,教師不要總是要求學生按部就班地解決問題,要讓學生自己尋找解決方法,把學習的主動權還給學生,增強學生的自主學習能力,當然,教師的主導地位不能變。在組織學生上機實踐的過程中,教師可以適當地設計一些連續的作業。例如,學完循環結構后,在上機時先帶領學生分析一個程序,其功能是輸出四行六列并且是由星形符號構成的圖案[1,2]。教師可以通過以下步驟引導學生上機實踐:
步驟1:教師可用多種編程方法進行程序演示。①利用普通的輸出函數如何解決;②利用單循環如何解決;③利用雙重循環如何解決;④說明雙重循環的優點及特征,然后讓學生自行編寫并運行程序。
步驟2:待學生完成任務后,在原程序基礎上,進一步提出新問題,讓學生學會靈活編程。①若要輸出每行“#”與“*”相間的四行六列圖案應該如何修改程序;②若要輸出每行兩個連續的“#”和3個連續的“*”的四行五列圖案應該如何修改程序;③若要輸出用“*”組成的一個正三角形應如何修改程序;④行列數在這里是固定的,可否通過鍵盤隨機輸入,等等。
以上問題均可通過修改步驟1中編好的程序逐步解決,每次修改的幅度均不大,難度也是緩慢增加,學生在不知不覺中得到了編程的訓練,在很短的時間內掌握了所學知識并靈活運用,學生會擁有成就感,同時會意識到,只要自己肯動腦,問題就會很快解決,從而激發了學生的學習主動性。
2.3以項目為牽引,強化學生課后自主學習
在完成一定的教學任務后,及時布置項目作業,訓練學生對所學知識的靈活運用能力,并使每一階段的內容有足夠的焦點,讓學生輕松消化每個知識。
在布置項目時,除要包含所學內容的焦點問題外,還要特別注意對新知識的遷移,也就是說,可以在項目中涉及少量的學生沒有學過的知識點,促使學生主動探究、主動解決,教師在恰當的時候再給出解答方案,最后由學生自己總結得出項目結果。這么做不僅讓學生學習的心態更加主動,而且讓學生更具有成就感。