馮瑩瑩,李林國,趙莎莎
(阜陽師范學院 信息工程學院,安徽 阜陽 236000)
案例教學法在《C語言程序設計》中的應用實踐
馮瑩瑩,李林國,趙莎莎
(阜陽師范學院 信息工程學院,安徽 阜陽 236000)
本文針對《C語言程序設計》傳統教學“重理論、輕實踐”的問題,在教學過程中引入案例教學方法,通過精心組織和認真分析,從學生的認知規律考量,有效的激發了學生的學習熱情,顯著提升了學生的邏輯思維能力和抽象思維能力.
《C語言程序設計》;任務驅動;能力
《C語言程序設計》是一門理論與實踐并重的計算機專業基礎課程,不僅要求學生熟練掌握繁瑣的語法規則,更加注重編程能力和實際解決問題能力的培養.作為一名計算機專業教師,在《C語言程序設計》授課過程中,不僅僅需要關注課堂講授的內容,更應該注重教學方法的設計.實踐表明,選擇恰當的、有趣的案例引入到課堂,通過案例引導,極大的調動了學生的學習積極性和自主性,提高了學生獨立解決實際問題的能力.
傳統的教學方法中,學習《C語言程序設計》的理論知識非常的枯燥乏味,學生的學習積極性不高,計算思維能力得不到培養.經過改革,課堂中通過將趣味性案例與理論知識有效整合,學生在探究問題的過程中,培養了分析問題、解決問題、動手實踐的能力,達到了事半功倍的效果.在設計案例教學時,遵循以下原則:
(1)注重基礎知識的應用.由于《C語言程序設計》的語法繁多,要將本堂課的基礎知識貫穿到一個簡單、完整的教學案例中,讓學生熟練掌握所學知識點.
(2)注重培養學生的學習興趣.俗話說:興趣是最好的老師.在設計案例時,通過引入日常生活中通俗易懂、簡單有趣的例子,結合計算機專業特點,真正激發學生的學習熱情.
(3)有圖有真相.引入案例時,不可一味的全部是文字、代碼,為了便于學生生動形象、直觀的理解案例,可以包含程序流程圖、動態演示圖、運行圖等.
循環結構是結構化設計中的三大基本結構之一,for循環更是實現循環的重要語句.如何解決程序設計語句本身枯燥乏味、而學生又普遍不感興趣的問題,使學生能夠在輕松、愉悅的環境中加深對循環結構的理解.在循環結構的教學設計中,以培養學生的抽象邏輯思維為目標,引入了恰當的案例,達到了較好的學習效果.

圖1 For循環教學設計流程
(1)為什么要學習循環結構?
案例1 假如從今天開始,第1天為“希望工程”存入1元錢,第2天存入2元錢,第3天存入3元錢,問100天后總共將為“希望工程”存入多少錢?
這是一個數學問題,從純數學的角度分析得出結論:求1+2+3+……+100!如何編程實現求累加和?引導學生用已學過的賦值語句求和,并分析算法的優劣.

以上算法雖然可以實現 任務1的要求,經過分析,絕大多數語句都是重復性的語句,算法非常不靈活,效率低下.
(2)引入循環結構的框架與一般語法

在上述for循環結構中,表達式1是循環結構的入口,主要的作用是為循環變量賦初值;表達式2是循環條件,只有表達式2成立了,程序的執行流程才會轉到循環體中的語句;表達式3用于改變循環變量,使循環趨于結束而不至于陷入“死循環”.

圖2 循環結構流程圖
在for循環中,循環的執行流程是:先執行表達式1,為循環控制變量賦初值;其次進行表達式2的判斷,若表達式2成立,執行循環體中的語句,反之,跳出循環;執行完循環體語句后,最后再執行表達式3,改變循環變量的值,流程轉向表達式2的判斷.直到表達式2的條件為假時,循環結束.
(3)用for語句完成任務1

上述算法中,i=1是循環變量賦初值;i<=100是判斷循環是否結束的條件;i++用于改變循環變量;sum=sum+i用于累加求和.以上三個表達式缺一不可.
如果缺少i++語句,程序的執行將是什么情況?課堂教學中啟發學生自主思考,為學生留出思考的時間和空間,可以加深對算法的理解和掌握.經過分析,缺少i++語句,i變量的值將不會改變,永遠保持值為1,導致循環條件始終成立,從而陷入“死循環“狀態.
(4)模擬循環的執行流程

圖3 執行流程
在案例教學中引入動態模擬算法的執行流程,使學生形象直觀的了解到循環變量i及累加和s在每一步執行中的變化,循環結束時循環變量的終值、算法的循環次數,有效的培養了學生的邏輯思維能力和抽象思維能力.
逆序求1~100中所有自然數的和
本題和書本原程序相比難度不大,只要將循環變量的初值改為100,循環條件改為i≥1即可,在模仿的前提下同學們就可以完成.
在程序運行過程中任意輸入一個自然數n,計算n的階乘n!(n!=1×2×3……×n),并將結果輸出.
在前面的基礎上又增加了一點要求,即循環變量的終止值需用變量n來表示,二需要在程序的前面增加一條定義變量n的語句.這兩點要求同學們能夠把以前所學的知識綜合起來運用,對剛剛學習編程的同學來說這還是有一定難度的,但通過練習同學們的綜合編程能力可以得到訓練提高.
案例2 青年教師講課比賽,7位評委的平均分就是該選手的最終得分,請設計一個程序,輸入7位評委的分數,輸出該選手的最終得分.
問題解析:第一、隨機輸入7位評委的得分,循環的次數已知(7次),所以可以借助FOR循環實現;第二、要求平均分,首先要先計算7位評委的總分(累加求和),然后再求平均分,程序流程圖如下所示:

圖4 算法流程圖
在解決問題的許多算法中,需要對問題的條件重復做出邏輯判斷,判斷后依據條件成不成立做出相應的處理,這就需要用循環結構來實現.
算法實現


圖5 程序運行截圖
該案例的設計符合初步學習FOR循環的同學,通過該案例的鍛煉,學生能夠將課本的理論知識靈活運用到一些實際問題的解決中,加深了學生對于for循環的理解,培養了學生分析問題、解決問題的能力.
案例教學法通過設置有效的、合適的案例,將教學內容穿插其中,有效的解決了傳統教學方法中重理論、輕實踐的問題,學生在解決任務的過程中,培養了學生分析問題、解決問題的能力,激發了學生對編程的熱愛.在整個教學過程中,充分體現了學生的主體地位、以及對學生各種能力的培養.無論是引入課題還是對本節課的重點、難點,通過啟發引導、提出問題、鞏固練習等形式,充分調動學生的學習積極性,使他們參與到教學的整個過程,讓學生在積極思考,積極探索中掌握新知識、消化本節課的重點、難點,教學效果良好.
〔1〕王平,朱艷輝.計算機程序設計教學中的教學方法研究[J].電腦知識與技術,2005(21):93-95.
〔2〕楊其宇,張霞.“C語言程序設計”課程教學探討[J].廣東工業大學學報:社會科學版,2006(增刊1):94-95.
〔3〕于帆,趙妮,王中生.程序設計語言基礎(C語言版)[M].北京:清華大學出版社,2006.
〔4〕顧元剛,等.C語言程序設計教程[M].北京:機械工業出版社,2004.
〔5〕余麗紅.C語言程序設計課程教學改革探究[J].中國科教創新導刊,2011(16):150.
〔6〕顧秉林.加強實踐教育培養創新人才[J].清華大學教育研究,2004,25(6):1-5.
G642.4
A
1673-260X(2017)02-0200-03
2016-10-23
安徽省質量工程項目(2014zjjh079),安徽省重大教學改革項目(2016jyxm0777)