摘 要:著名教育家陶行知先生說過:“沒有生活做中心的教育是死教育;沒有生活做中心的學校是死學校;沒有生活做中心的書本是死書本。”如何立足于職業學校對口高考班計算機專業學生的實際,開拓學生思維,啟發學生思考,激發學生學習的積極性,提高分析和解決問題能力就成為C語言老師責無旁貨的重要責任之一。
關鍵詞:程序;教師;生活
在現實生活中,許多為人所熟知的故事,都蘊藏著豐富的哲理與規律,在教師傳授知識的過程中,不妨引領學生步入生活,到生活中挖掘知識。
一、活用生活之源,激活學生創新思維
許多中職計算機專業的學生,特別是對口高考班的學生,存在著“學習人數多,得分比率低”的問題,究其原因,并不在于網絡、網頁、計維、office這些知識性學科學習難度大,而是程序設計這些邏輯性學科知識過于艱深,不易掌握,在考試中,C語言在專業總分中一般占20%~25%的比例,C語言成績將直接影響到總成績的高低。一般而言,C語言成績優秀學生的專業課往往會在300分以上,反之則只會在250分以下徘徊,C語言的重要性可見一斑。正是基于C語言所具有的“分數高但內容難”,使學生產生了“欲罷而不能”的困惑,許多學生起初蠻有情趣,但是在學習一個多月后就“力不從心”了,接著便是“云里霧里”,最后則變得“一竅不通”,結果不言而喻。那么如何讓C語言的教學變得生動有趣,使學生在“易懂”中提高學習的積極性,就成為C語言教師最為重要的任務之一了。
C語言這門課程雖然是一種通用的、過程式的編程語言,極具高效、靈活、功能豐富、表達力強和較高的移植性的優勢,但是其最終的目的則是服務于我們的現實生活,據此而言,C語言與我們的現實生活息息相關,在教學中,教師就可以在C語言課堂教學中適當引入生活活水,以學生所非常熟悉的生活故事或事例為切入點,使學生品出生活之味。
例如,在講授“兩變量交換數值的問題”時,課前我首先在講臺上放置了一杯豆漿與一杯開水,然后板書這樣一道題:給變量a,b分別賦值,要從屏幕上從大到小輸出。接下來編程環節里,我把時間完全放給學生,其結果五花八門。為將學生的思路引導到排序方面來,我把輸出語句定為:Printf(“從大到小順序是d%,d%,”a,b)提示給學生,大部分學生此時就有了a,b,兩個變量的值應該是從大到小順序排列的想法,普遍得出a=b、b=a的結果,但對于如何實現卻莫衷一是,教師以“現在請你將豆漿和開水交換,但不能有混合物”的問題化抽象為具象,“還要一個杯子!”學生異口同聲!教師拿出了藏起來的空杯子,“變量就是杯子,賦值相當于倒來倒去,a=b;b=a;這樣的辦法難道不成了混合物?”學生發出了會心的笑。豆漿杯子被稱作a,開水杯子被稱作b,空杯子被稱作d,這樣學生也就順理成章寫出了“d=a;a=b;b=d;”雖然也存在“d=a;b=d;a=b”的順序混亂的現象,但是如果再次引領其思考“豆漿杯子”“開水杯子”“空杯子”這一生活常識,問題就會迎刃而解。
二、巧用生活之法,培養學生良好習慣
毋庸置疑,職業中學學生存在“知識基礎差,探究問題膚淺、思考問題短期化”的缺點,一旦遇到“攔路虎”,不是去積極主動思考,尋求解決對策,而是輕言放棄,究其原因,就是因為職校學生良好的學習習慣尚未養成,這就急需教師采用恰當的生活之法予以
引領。
在講授“冒泡算法求最值”這一問題時,為使學生較快地理解課題,我就特意設計了《猴子下山》這一故事情境。借助多媒體,我將本課的知識自然融入《猴子下山》的故事中去:有一天,小猴子媽媽要小猴子下山去玩,并告訴它“回來后把你看到的最大數字告訴我”。小猴也聽話,在途中特別注意一些數字,它依次遇到了30,43,21,1,56,34,8這些數字。回到家后,媽媽問:“你遇到的最大數是多少呀?”“56”,小猴子回答道。“那你今天遇到哪些數呀?”“這個……,你不是只要我記最大數嗎?我可沒記喲。”“你不把其他數說出來,怎么知道你對了呢?”“媽,絕對沒問題,雖然剛剛學數字,大小還是分得清的”。小猴子特別自信地回答。
在故事的最后我提出“請把猴子記下56這個最大數的詳細經過說一說”的問題,許多學生對此不屑一顧:“講幼兒故事,問幼兒問題,太小看我們了吧。”當我把“編程求30,43,21,1,56,34,8中的最大數”板書在黑板上時,學生們換以嚴肅的面孔,教師繼而做出提示:“猴子下山記住‘56’的詳細過程,就是本程序執行的過程。”大家展開激烈的討論與探究,教師根據學生的反應,也開始了具有針對性的點撥。
當教師問道“小猴子下山初次遇到了30,這個數要不要?”這一問題時,出現了截然不同的兩種聲音,教師順勢要求學生說出自己的理由,有的學生認為“30不是最大的”,而有的學生則提出反對意見“沒有30,哪來比30大的56呢,再者,如果后面遇到的全是比30小的,不就錯了?”兩種觀點針鋒相對,互不相讓,課堂上一時劍拔弩張,絲毫沒有意識到是在討論一個原本不感興趣的問題,這達到了教師預設的效果。學生的辯論最終以教師“是的,30你不記下來,如果后面比30都小,怎么辦,難道真的隨便說個數去忽悠猴媽媽嗎?”的點評暫時告一段落。教師此時乘勝追擊:“30記在猴子的腦子中,那么在程序中誰是小猴子呢?”許多學生提到了“用個變量”的概念,教師作出補充:“程序中我們也要有‘小猴子’的變量,不過習慣我們把最大值的變量叫‘max’,最小值叫‘min’……”在教師的引領下,程序的核心部分解決了,但是又出現了“max=a”這條語句位置問題,為使學生更好地理解,我列出“求出此題中的最小值”這一問題,并請一同學上機驗證,結果是“0”,在大家的疑慮下,我不失時機作出評價:“程序沒有寫錯,關鍵是我們寫的這個程序不嚴謹的問題,也就是小猴子遇到第一個數時如何處理的問題,”經我一點撥,許多同學想到了原因:“是max的初值為0!”有的學生自然在循環前加上了一條語句:max=a[0],隨之把循環for(i=0,i<7,i++)改為了for(i=1,i<7,i++),于是程序也水到渠成。
生活是一切知識的源泉,在教授C語言這一門課程的時候,就應該活用生活之源,激活學生創新思維,巧用生活之法,培養學生良好習慣,從而提高C語言課程教學的有效性。
(作者單位 湖南省瀏陽市職業中專)
編輯 劉青梅