馮瑩瑩,李林國,趙莎莎
(阜陽師范學(xué)院 信息工程學(xué)院,安徽 阜陽 236000)
案例教學(xué)法在《C語言程序設(shè)計》中的應(yīng)用實踐
馮瑩瑩,李林國,趙莎莎
(阜陽師范學(xué)院 信息工程學(xué)院,安徽 阜陽 236000)
本文針對《C語言程序設(shè)計》傳統(tǒng)教學(xué)“重理論、輕實踐”的問題,在教學(xué)過程中引入案例教學(xué)方法,通過精心組織和認(rèn)真分析,從學(xué)生的認(rèn)知規(guī)律考量,有效的激發(fā)了學(xué)生的學(xué)習(xí)熱情,顯著提升了學(xué)生的邏輯思維能力和抽象思維能力.
《C語言程序設(shè)計》;任務(wù)驅(qū)動;能力
《C語言程序設(shè)計》是一門理論與實踐并重的計算機(jī)專業(yè)基礎(chǔ)課程,不僅要求學(xué)生熟練掌握繁瑣的語法規(guī)則,更加注重編程能力和實際解決問題能力的培養(yǎng).作為一名計算機(jī)專業(yè)教師,在《C語言程序設(shè)計》授課過程中,不僅僅需要關(guān)注課堂講授的內(nèi)容,更應(yīng)該注重教學(xué)方法的設(shè)計.實踐表明,選擇恰當(dāng)?shù)?、有趣的案例引入到課堂,通過案例引導(dǎo),極大的調(diào)動了學(xué)生的學(xué)習(xí)積極性和自主性,提高了學(xué)生獨立解決實際問題的能力.
傳統(tǒng)的教學(xué)方法中,學(xué)習(xí)《C語言程序設(shè)計》的理論知識非常的枯燥乏味,學(xué)生的學(xué)習(xí)積極性不高,計算思維能力得不到培養(yǎng).經(jīng)過改革,課堂中通過將趣味性案例與理論知識有效整合,學(xué)生在探究問題的過程中,培養(yǎng)了分析問題、解決問題、動手實踐的能力,達(dá)到了事半功倍的效果.在設(shè)計案例教學(xué)時,遵循以下原則:
(1)注重基礎(chǔ)知識的應(yīng)用.由于《C語言程序設(shè)計》的語法繁多,要將本堂課的基礎(chǔ)知識貫穿到一個簡單、完整的教學(xué)案例中,讓學(xué)生熟練掌握所學(xué)知識點.
(2)注重培養(yǎng)學(xué)生的學(xué)習(xí)興趣.俗話說:興趣是最好的老師.在設(shè)計案例時,通過引入日常生活中通俗易懂、簡單有趣的例子,結(jié)合計算機(jī)專業(yè)特點,真正激發(fā)學(xué)生的學(xué)習(xí)熱情.
(3)有圖有真相.引入案例時,不可一味的全部是文字、代碼,為了便于學(xué)生生動形象、直觀的理解案例,可以包含程序流程圖、動態(tài)演示圖、運(yùn)行圖等.
循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化設(shè)計中的三大基本結(jié)構(gòu)之一,for循環(huán)更是實現(xiàn)循環(huán)的重要語句.如何解決程序設(shè)計語句本身枯燥乏味、而學(xué)生又普遍不感興趣的問題,使學(xué)生能夠在輕松、愉悅的環(huán)境中加深對循環(huán)結(jié)構(gòu)的理解.在循環(huán)結(jié)構(gòu)的教學(xué)設(shè)計中,以培養(yǎng)學(xué)生的抽象邏輯思維為目標(biāo),引入了恰當(dāng)?shù)陌咐?,達(dá)到了較好的學(xué)習(xí)效果.
圖1 For循環(huán)教學(xué)設(shè)計流程
(1)為什么要學(xué)習(xí)循環(huán)結(jié)構(gòu)?
案例1 假如從今天開始,第1天為“希望工程”存入1元錢,第2天存入2元錢,第3天存入3元錢,問100天后總共將為“希望工程”存入多少錢?
這是一個數(shù)學(xué)問題,從純數(shù)學(xué)的角度分析得出結(jié)論:求1+2+3+……+100!如何編程實現(xiàn)求累加和?引導(dǎo)學(xué)生用已學(xué)過的賦值語句求和,并分析算法的優(yōu)劣.
以上算法雖然可以實現(xiàn) 任務(wù)1的要求,經(jīng)過分析,絕大多數(shù)語句都是重復(fù)性的語句,算法非常不靈活,效率低下.
(2)引入循環(huán)結(jié)構(gòu)的框架與一般語法
在上述for循環(huán)結(jié)構(gòu)中,表達(dá)式1是循環(huán)結(jié)構(gòu)的入口,主要的作用是為循環(huán)變量賦初值;表達(dá)式2是循環(huán)條件,只有表達(dá)式2成立了,程序的執(zhí)行流程才會轉(zhuǎn)到循環(huán)體中的語句;表達(dá)式3用于改變循環(huán)變量,使循環(huán)趨于結(jié)束而不至于陷入“死循環(huán)”.
圖2 循環(huán)結(jié)構(gòu)流程圖
在for循環(huán)中,循環(huán)的執(zhí)行流程是:先執(zhí)行表達(dá)式1,為循環(huán)控制變量賦初值;其次進(jìn)行表達(dá)式2的判斷,若表達(dá)式2成立,執(zhí)行循環(huán)體中的語句,反之,跳出循環(huán);執(zhí)行完循環(huán)體語句后,最后再執(zhí)行表達(dá)式3,改變循環(huán)變量的值,流程轉(zhuǎn)向表達(dá)式2的判斷.直到表達(dá)式2的條件為假時,循環(huán)結(jié)束.
(3)用for語句完成任務(wù)1
上述算法中,i=1是循環(huán)變量賦初值;i<=100是判斷循環(huán)是否結(jié)束的條件;i++用于改變循環(huán)變量;sum=sum+i用于累加求和.以上三個表達(dá)式缺一不可.
如果缺少i++語句,程序的執(zhí)行將是什么情況?課堂教學(xué)中啟發(fā)學(xué)生自主思考,為學(xué)生留出思考的時間和空間,可以加深對算法的理解和掌握.經(jīng)過分析,缺少i++語句,i變量的值將不會改變,永遠(yuǎn)保持值為1,導(dǎo)致循環(huán)條件始終成立,從而陷入“死循環(huán)“狀態(tài).
(4)模擬循環(huán)的執(zhí)行流程
圖3 執(zhí)行流程
在案例教學(xué)中引入動態(tài)模擬算法的執(zhí)行流程,使學(xué)生形象直觀的了解到循環(huán)變量i及累加和s在每一步執(zhí)行中的變化,循環(huán)結(jié)束時循環(huán)變量的終值、算法的循環(huán)次數(shù),有效的培養(yǎng)了學(xué)生的邏輯思維能力和抽象思維能力.
逆序求1~100中所有自然數(shù)的和
本題和書本原程序相比難度不大,只要將循環(huán)變量的初值改為100,循環(huán)條件改為i≥1即可,在模仿的前提下同學(xué)們就可以完成.
在程序運(yùn)行過程中任意輸入一個自然數(shù)n,計算n的階乘n!(n!=1×2×3……×n),并將結(jié)果輸出.
在前面的基礎(chǔ)上又增加了一點要求,即循環(huán)變量的終止值需用變量n來表示,二需要在程序的前面增加一條定義變量n的語句.這兩點要求同學(xué)們能夠把以前所學(xué)的知識綜合起來運(yùn)用,對剛剛學(xué)習(xí)編程的同學(xué)來說這還是有一定難度的,但通過練習(xí)同學(xué)們的綜合編程能力可以得到訓(xùn)練提高.
案例2 青年教師講課比賽,7位評委的平均分就是該選手的最終得分,請設(shè)計一個程序,輸入7位評委的分?jǐn)?shù),輸出該選手的最終得分.
問題解析:第一、隨機(jī)輸入7位評委的得分,循環(huán)的次數(shù)已知(7次),所以可以借助FOR循環(huán)實現(xiàn);第二、要求平均分,首先要先計算7位評委的總分(累加求和),然后再求平均分,程序流程圖如下所示:
圖4 算法流程圖
在解決問題的許多算法中,需要對問題的條件重復(fù)做出邏輯判斷,判斷后依據(jù)條件成不成立做出相應(yīng)的處理,這就需要用循環(huán)結(jié)構(gòu)來實現(xiàn).
算法實現(xiàn)
圖5 程序運(yùn)行截圖
該案例的設(shè)計符合初步學(xué)習(xí)FOR循環(huán)的同學(xué),通過該案例的鍛煉,學(xué)生能夠?qū)⒄n本的理論知識靈活運(yùn)用到一些實際問題的解決中,加深了學(xué)生對于for循環(huán)的理解,培養(yǎng)了學(xué)生分析問題、解決問題的能力.
案例教學(xué)法通過設(shè)置有效的、合適的案例,將教學(xué)內(nèi)容穿插其中,有效的解決了傳統(tǒng)教學(xué)方法中重理論、輕實踐的問題,學(xué)生在解決任務(wù)的過程中,培養(yǎng)了學(xué)生分析問題、解決問題的能力,激發(fā)了學(xué)生對編程的熱愛.在整個教學(xué)過程中,充分體現(xiàn)了學(xué)生的主體地位、以及對學(xué)生各種能力的培養(yǎng).無論是引入課題還是對本節(jié)課的重點、難點,通過啟發(fā)引導(dǎo)、提出問題、鞏固練習(xí)等形式,充分調(diào)動學(xué)生的學(xué)習(xí)積極性,使他們參與到教學(xué)的整個過程,讓學(xué)生在積極思考,積極探索中掌握新知識、消化本節(jié)課的重點、難點,教學(xué)效果良好.
〔1〕王平,朱艷輝.計算機(jī)程序設(shè)計教學(xué)中的教學(xué)方法研究[J].電腦知識與技術(shù),2005(21):93-95.
〔2〕楊其宇,張霞.“C語言程序設(shè)計”課程教學(xué)探討[J].廣東工業(yè)大學(xué)學(xué)報:社會科學(xué)版,2006(增刊1):94-95.
〔3〕于帆,趙妮,王中生.程序設(shè)計語言基礎(chǔ)(C語言版)[M].北京:清華大學(xué)出版社,2006.
〔4〕顧元剛,等.C語言程序設(shè)計教程[M].北京:機(jī)械工業(yè)出版社,2004.
〔5〕余麗紅.C語言程序設(shè)計課程教學(xué)改革探究[J].中國科教創(chuàng)新導(dǎo)刊,2011(16):150.
〔6〕顧秉林.加強(qiáng)實踐教育培養(yǎng)創(chuàng)新人才[J].清華大學(xué)教育研究,2004,25(6):1-5.
G642.4
A
1673-260X(2017)02-0200-03
2016-10-23
安徽省質(zhì)量工程項目(2014zjjh079),安徽省重大教學(xué)改革項目(2016jyxm0777)