摘要:C語言程序設(shè)計課程由于語法規(guī)則繁多、解決問題方法獨特,學(xué)生不易接受,厭學(xué)情緒較為普遍。課堂教學(xué)的主要問題是如何激發(fā)學(xué)生學(xué)習(xí)的積極性。以建構(gòu)主義學(xué)習(xí)理論為指導(dǎo),從問題的提出、問題解決和問題拓展等渠道,探討了激發(fā)學(xué)習(xí)積極性的C語言程序設(shè)計課堂教學(xué)。
關(guān)鍵詞:C語言程序設(shè)計;課堂教學(xué);建構(gòu)主義;興趣
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2013)25-0097-03
一、引言
C語言作為編程的入門語言,高等院校理工科專業(yè)均作為必修課開設(shè)。通過學(xué)習(xí)該課程,可以加深對計算機工作原理的理解,初步掌握程序設(shè)計方法,提高用計算機解決實際問題的能力。而對于計算機類專業(yè),它又是后繼課程的重要基礎(chǔ),在課程體系中的地位更是舉足輕重。但目前該課程的教學(xué)效果不甚理想,學(xué)生厭學(xué)情緒較為普遍。實際教學(xué)中不難發(fā)現(xiàn),C語言的語法規(guī)則繁多,開始接觸C程序就遇到函數(shù)、包含指令、輸入輸出格式等。新概念和新方法不斷涌現(xiàn),學(xué)生不能很快理順關(guān)系,從而也不能很好地記憶和應(yīng)用。另一方面,程序設(shè)計的思想比較獨特,如函數(shù)調(diào)用、順序執(zhí)行思想等,學(xué)生也不易接受。因此教師在設(shè)計課堂教學(xué)時,如果不考慮學(xué)生的認知規(guī)律,照搬書本,以展示程序、解釋語句、語法規(guī)則為主,學(xué)生就容易產(chǎn)生厭煩情緒,失去學(xué)習(xí)的興趣。
建構(gòu)主義理論被認為是20世紀至今最有影響力的學(xué)習(xí)理論。以建構(gòu)主義學(xué)習(xí)理論為指導(dǎo),分析學(xué)生厭學(xué)的根本原因。以實例說明激發(fā)學(xué)習(xí)興趣的C語言程序設(shè)計的課堂教學(xué)設(shè)計方法。
二、建構(gòu)主義教學(xué)理論
20世紀70年代,以皮亞杰為代表的日內(nèi)瓦流派在認知理論的基礎(chǔ)上創(chuàng)立了建構(gòu)主義思想。皮亞杰認為,兒童是在與周圍環(huán)境相互作用的過程中,逐步建構(gòu)起關(guān)于外部世界的知識,從而使自身認知結(jié)構(gòu)得到發(fā)展。在此基礎(chǔ)上的系列研究使建構(gòu)主義理論得到進一步的豐富和完善,為實際應(yīng)用于教學(xué)過程創(chuàng)造了條件[1]。
建構(gòu)主義主要觀點是:[2]291-293學(xué)習(xí)不應(yīng)被看成對于教師所授予知識的被動接受,而是學(xué)習(xí)者以自身已有知識和經(jīng)驗為基礎(chǔ)的主動建構(gòu)活動;學(xué)習(xí)活動的一個主要特點在于一個“順應(yīng)”的過程,即不斷地對主體已有的認知做出必要的發(fā)展或變革。
建構(gòu)主義學(xué)習(xí)觀表明:教學(xué)是以“學(xué)”為中心,與傳統(tǒng)的“教”為中心不同,教師起主導(dǎo)作用。因此要求教師要做到:[2]313-321(1)努力調(diào)動學(xué)生學(xué)習(xí)的積極性。在整個學(xué)習(xí)過程中,激發(fā)學(xué)習(xí)的動機,讓學(xué)生感覺學(xué)習(xí)是“需要”的。(2)深入了解學(xué)生真實的思維活動,根據(jù)教學(xué)對象、教學(xué)內(nèi)容和教學(xué)環(huán)境的具體情況采用適當(dāng)?shù)慕虒W(xué)方法。(3)為學(xué)生的學(xué)習(xí)活動創(chuàng)造良好的學(xué)習(xí)環(huán)境。
三、厭學(xué)情緒原因分析
1.照本宣科的問題表述不能激發(fā)學(xué)習(xí)的興趣,心理學(xué)認為,興趣是人積極探求某種事物和愛好某項活動的意識傾向。帶有情緒的色彩和向往心情,并與需要有關(guān)[3]。若對問題認識不清,就不會產(chǎn)生良好的情感和興趣。以下面的三個問題為例,說明照本宣科提出問題,無法激發(fā)學(xué)生的學(xué)習(xí)興趣。
問題1:要求在屏幕上輸出以下信息:This is a C program.[4]問題的目的是讓學(xué)生了解C程序的構(gòu)成和如何輸出信息。但是像“輸出是什么?”“為什么要輸出?”等問題立刻會浮現(xiàn)在學(xué)習(xí)者的腦海。因為出現(xiàn)了以前沒聽說過的新名詞,跟已有經(jīng)驗聯(lián)系不起來。問題表述沒有從學(xué)生的認知實際需要出發(fā),是“教師占據(jù)主動,學(xué)生被動等待”式的提出問題。
問題2:求兩個整數(shù)之和。[4]目的是讓學(xué)生了解C語言運算和輸出的方法。學(xué)生的反應(yīng)是:口算就可以了,或者用計算器,為什么還要編程序?表述沒有讓人感覺到需要,甚至誤認為太簡單沒必要解決。
問題3:求兩個整數(shù)中的較大者。[4]目的是了解C語言的選擇執(zhí)行,并了解結(jié)構(gòu)化實現(xiàn)方法。學(xué)生的第一反應(yīng)是:給出兩個數(shù)的時候不是已經(jīng)知道了嗎?為什么還要判斷?學(xué)生對問題的意義不理解。
2.缺乏探索性的問題解決過程。展示事先編好的程序然后逐條解釋,是一種常被使用的方法。雖然該方法穩(wěn)妥,容易掌控全局,但在學(xué)生角度看,是“欣賞”別人的成果,沒有體會到自己探索獲得成功的快樂,因此很容易讓人失去興趣。
歸根到底,學(xué)生沒有興趣的原因,是教師沒有從學(xué)生的認知規(guī)律出發(fā)設(shè)計合理的教學(xué)過程。教材為了簡潔起見,文字都盡可能簡明且使用專業(yè)術(shù)語。如果照搬書本,新概念一下涌出,學(xué)生對問題的目的不解或誤解,就不能很快提起興趣。由于教師處于“穩(wěn)操勝券”,占據(jù)主動知識傳授地位,學(xué)生只能被動接受,缺乏參與探索的體驗。長此以往,學(xué)生產(chǎn)生厭學(xué)情緒就不難想象了。
四、基于建構(gòu)主義學(xué)習(xí)觀的課堂教學(xué)設(shè)計
1.設(shè)計貼近生活實際、聯(lián)系已有知識和經(jīng)驗的問題。問題設(shè)計要接近生活實際,與學(xué)生已有知識、經(jīng)驗等聯(lián)系起來,意義明了,讓人感覺必要,才能產(chǎn)生好的情感,從而激發(fā)探索欲望。應(yīng)盡量使用通俗易懂的語言,避免新概念突然出現(xiàn)使人迷惑,感覺不到意義所在,或誤解的表述。
問題1的改進:學(xué)習(xí)一種語言,都要先學(xué)會和人打招呼。我們學(xué)習(xí)C語言,就要先學(xué)會C語言問候的語句。我們來寫一個程序,讓計算機跟我們說“Hello!”。
問題讓人容易憶起學(xué)習(xí)自然語言的經(jīng)歷,曾經(jīng)使用軟件時屏幕出現(xiàn)的歡迎詞等,輕而易舉地理解了問題的意義,也使學(xué)生對問題如何解決產(chǎn)生了好奇心。
問題2的改進:計算是人們最常見的需要。C程序既然能為人做事,那么它能否做計算工作呢?
問題3的改進:告訴計算機兩個數(shù),它能不能準確回答出哪個比較大?
2.富于探索的問題解決過程。要設(shè)計富于探索的問題解決過程,模擬科學(xué)家解決問題的過程,學(xué)生才有參與的感覺,有獲得成功的體會。對于初學(xué)者,可以從關(guān)鍵的步驟突破,再增加細節(jié),按照“關(guān)鍵步驟—細化—全局”進行探索解決。同時也要求教師對教學(xué)過程把握更為到位。因為這一過程中學(xué)生可能會產(chǎn)生新的思路,教師就要適當(dāng)?shù)丶右砸龑?dǎo)。如果學(xué)生一時找不到任何思路,教師可以適當(dāng)提示加以引導(dǎo),應(yīng)盡量避免閱讀式的解決問題。
問題1的解決。問題提出后,學(xué)生會迫切地想了解“計算機是怎么打招呼的”。首先寫出輸出語句printf(),說明這個函數(shù)就是用于打招呼的。但怎樣才能引入C程序的構(gòu)成呢?“但是,C語言程序是有規(guī)矩的,解決任何問題都要寫出完整的程序”。以這樣的方式認識程序,從主要的語句開始,從局部到全局,學(xué)生可以認識到解決的關(guān)鍵點和程序的整體性。
問題2的解決。產(chǎn)于“計算機怎么算”,首先要寫兩個整數(shù)常量的和,然后補充輸出函數(shù),說明輸出整數(shù)是語法規(guī)定等,再將程序補充完整。以后再將問題拓展到變量存儲等。
問題3的解決。學(xué)生迫切想了解的是“計算機怎么判斷”。先將整數(shù)兩個常量分別賦給兩個變量,直接在if else語句中輸出,以解決燃眉之急。以后擴展到將判斷結(jié)果保存后,再輸出。
3.問題拓展。將問題拓展是加深理解、擴大知識面、增強興趣的有效途徑。
問題1的拓展:輸出任意“原樣照印”的信息??砂l(fā)現(xiàn)“計算機‘說話’,是以顯示方式來進行。如果想輸出其他文字信息呢?”然后用實驗演示,這樣能起到舉一反三的作用。
問題2的拓展:直接顯示整數(shù)常量和的結(jié)果后,問題可拓展到(1)數(shù)據(jù)存儲思想?!凹訑?shù)和被加數(shù)先保存,再求和;求和的結(jié)果先存起來,以后再輸出,如何設(shè)計?”引入變量存儲思想。(2)計算任意整數(shù)。問:“如果不想修改程序,又可計算任意兩個數(shù)的和,怎么設(shè)計?”引入從鍵盤輸入的方法。(3)其他運算?!坝嬎愠?、除等其他運算呢?”適當(dāng)介紹其他運算,為以后學(xué)習(xí)運算做好準備。
問題3的拓展:問題3解決后,問題可拓展到(1)要比較的兩個數(shù)由鍵盤輸入(問題2的拓展已解決)。(2)由函數(shù)調(diào)用實現(xiàn):班級工作一般由班長自行完成。但如果任務(wù)繁多,班長就要將任務(wù)分派給其他班干,使工作更加高效。C語言也有這種機制,“函數(shù)”就像“班干”,可以被主函數(shù)調(diào)用,提高編程的效率。(3)多次調(diào)用函數(shù),體驗高效編程。
五、結(jié)論
建構(gòu)主義教學(xué)理論的核心是以學(xué)生為主體,教師要激發(fā)學(xué)生的積極性,關(guān)鍵在于吸引學(xué)生的主動參加與和成功體驗。教學(xué)實踐證明,遵循學(xué)生的認知規(guī)律,設(shè)計貼近生活、聯(lián)系已有知識經(jīng)驗的問題,有利于產(chǎn)生積極的情感,激發(fā)探索的欲望;模擬計算機科學(xué)家解決問題的教學(xué)過程,增強學(xué)生參與意識,體驗成功的快樂,有利于激發(fā)學(xué)習(xí)的興趣,改善課堂教學(xué)效果。
參考文獻:
[1]何克抗.建構(gòu)主義的教學(xué)模式、教學(xué)方法與教學(xué)設(shè)計[J].北京師范大學(xué)學(xué)報(社會科學(xué)版),1997,(5):74-81.
[2]朱敬蘇,朱佩章,等.心理學(xué)原理與應(yīng)用[M].北京:中國農(nóng)業(yè)出版社,1990:309.
[3]鄭毓信.數(shù)學(xué)教育哲學(xué)[M].成都:四川教育出版社,1995:291-321.
[4]譚浩強.C程序設(shè)計[M].第四版.北京:清華大學(xué)出版社,2010:6-34.
基金項目:廣西教育廳科研項目(200708MS084)