王曉燕
摘要:C語言是江蘇省對口單招計算機專業(yè)的考試科目,中職學生在C語言學習上缺乏學習興趣,建構(gòu)主義理論提出,知識并不是教師通過課堂教授給學生的,而是學生在既定情境過程中,通過教師與同學的幫助,利用相關的學習輔助資料,經(jīng)過意義構(gòu)建的方式來獲得的。學生獲得知識量的多少與學習者構(gòu)建能力有著密切的關系,而不與學生的記憶能力與背誦能力有著直接的關系。想要學生獲得源源不斷的動力就需要讓學生對所學知識產(chǎn)生興趣,只有當學生對所學知識展現(xiàn)出較大興趣時,才會以更加集中的思想來進行學習與分析,從而主動去構(gòu)建知識。在教學實踐中采用多種教學方法培養(yǎng)學生程序設計興趣。
關鍵詞:學習興趣;創(chuàng)設情境;設置陷阱
一、什么是學習興趣
從教育心理學的角度來說,興趣是一個人傾向于認識、研究獲得某種知識的心理特征,是可以推動人們求知的一種內(nèi)在力量。學習興趣分為直接學習興趣與間接學習興趣兩種。前者是由所學材料或?qū)W習活動──學習過程本身直接引起的。后者是由學習活動的結(jié)果引起的。間接學習興趣具有明顯的自覺性。當一個人意識到學習的社會意義或與自己的關系時,學習興趣就隨之產(chǎn)生。學生對某一學科有興趣,就會持續(xù)地專心致志地鉆研它,從而提高學習效果。
二、對口單招學生學習興趣缺乏原因
對口單招是普通高校面向中等職業(yè)學校的招生,難度低于普通高考,為中職學生考入高等學校提供一次機會,近幾年對口單招招生規(guī)模逐步擴大。2010年,江蘇省對口單招計算機應用專業(yè)把C語言程序設計列入考試科目,共占分值150分(總分1 000分),所占分值比例較大,對學生高考成績起著至觀重要的作用。C語言課程教學難度較大,主要表現(xiàn)在以下幾個方面。第一,教學內(nèi)容難度大。C語言課程的基本概念抽象、理論性較強,涉及語法復雜,擁有大量數(shù)據(jù)類型與運算符,不同數(shù)據(jù)類型相對應的規(guī)則數(shù)量較多,并且十分容易混淆。第二,C語言課程教學需要進行一定的實踐訓練。在C語言課程教學中,不單單要開展基礎的理論教學,同時還須要給予學生一定的實驗課程實踐訓練與項目設計,讓學生能夠以理論指導實踐,用實踐檢驗理論。第三,在中等院校接受教育的學生學習基礎參差不齊,學習能力較弱,并且學生在進入中職院校學習后程度不一,給C語言課程教學帶來了一定的阻礙,普遍表現(xiàn)為:有畏難情緒,從而喪失學習興趣。
三、 培養(yǎng)中職學生C語言學習興趣的策略
(一)創(chuàng)設情境,激發(fā)學生學習興趣
生動的情景可培養(yǎng)學生學習的興趣。在講循環(huán)結(jié)構(gòu)程序設計時,展示一個故事:
很久以前有一位十分貪婪又十分吝嗇的財主,經(jīng)??丝酃と说墓べY。有一天,一個聰明人看不過去財主的惡行,決定為大家出一口氣。于是他來到財主家中,要與財主做一筆交易。交易的內(nèi)容為財主第一天給他0.01元,第二天給他0.02元,第三天給他0.04元,第四天給他0.08元,以此類推,往后每一天的錢都是前一天的兩倍,要持續(xù)給一個月。而他在這一個月里每天都給財主100元。財主一聽,覺得這個交易,自己肯定賺錢,二話不說就同意了??吹竭@兒有同學說:“財主就是精明,這個人是個笨蛋?!眲傞_始財主每天都樂呵呵的,可是越往后,財主需要付出的錢越多,后來把所有家產(chǎn)都輸給了那個聰明人。對于故事的結(jié)果,同學都很詫異。于是提出讓學生編程計算一個月后財主付了多少錢,學生都興趣盎然開始了編程。
(二)設置陷阱激發(fā)學生學習興趣
例如,“=”和“==”
給出下面的程序段:
a=0;
if(a=0)
printf(“ a=0”);
else
printf(“ a=1”);
請學生分析運行結(jié)果。
上面程序的運行結(jié)果為a=1, 因為在C語言中“ =”是賦值號, 關系運算符為“ ==”,在if(a=0)語句中,括號中的a=0是賦值表達式, 把0賦給a,于是“a=0”這個賦值表達式的值為0,也就是為假,程序轉(zhuǎn)到else分支中執(zhí)行, 輸出“a=1”。
再給出下面的程序段:
a=0;
if(a==0)
printf(“ a=0”);
else
printf(“ a=1”);
請學生分析運行結(jié)果。
在if(a= =0)語句中, 括號中的a==0是關系表達式,由于a==0為真,所以執(zhí)行if分支,輸出a=0。
(三)通過實例教學而不是枯燥的理論激發(fā)學生興趣
1.選擇結(jié)構(gòu)問題:if-else結(jié)構(gòu)與if語句的等價性。
中職學生對if-else結(jié)構(gòu)理解存在困難,設計以下兩個程序。
問題1:假設month=2,以下程序段的運行結(jié)果是什么?if后的邏輯表達式執(zhí)行了幾次?
兩個程序的運行結(jié)果都為february,這時學生露出疑惑的表情,這兩個程序運行結(jié)果相同,這兩個程序是等價的嗎?
問題1中if后的邏輯表達式執(zhí)行次數(shù)為2,問題2中if后的邏輯表達式執(zhí)行次數(shù)為4,這是由于程序設計語言中“if- else”結(jié)構(gòu)執(zhí)行時,在當if后面的表達式成立時,將執(zhí)行if下面的語句,執(zhí)行結(jié)束后會退出整個if語句, 不會再去執(zhí)行else下面的語句。由于問題2中沒有else結(jié)構(gòu),問題2中的if語句都要執(zhí)行一遍,所以問題1和問題2的執(zhí)行過程是不同的。
通過具體實例對比,讓學生認識兩個程序的邏輯關系及執(zhí)行過程的不同,學生對這兩個程序的異同表現(xiàn)出興趣,從而主動探究學習。
2.函數(shù)調(diào)用的參數(shù)傳遞。
函數(shù)調(diào)用的參數(shù)傳遞也是C語言程序設計的一個難點,很多學生畏難而退,為激發(fā)學生學習興趣,設計以下兩個程序。
交換兩個數(shù)的函數(shù)為:swap(inta,int b)
學生發(fā)現(xiàn)上面兩個程序很相似,但是下面的程序把變量換成了指針,運行結(jié)果顯示:兩數(shù)成功實現(xiàn)了交換。學生這時表現(xiàn)出興趣:想知道為什么指針版的交換程序就能實現(xiàn)交換。
第一個程序沒有完成交換的原因:C函數(shù)的所有參數(shù)均以“傳值調(diào)用方式”進行傳遞,函數(shù)將獲得參數(shù)值的一份拷貝,這樣函數(shù)可以放心修改這份拷貝,而不修改調(diào)用程序?qū)嶋H傳遞給它的參數(shù)。
第二個程序完成交換的原因:當用指針做函數(shù)參數(shù)時,實際傳遞的該數(shù)據(jù)的地址(指針),也就是傳遞給函數(shù)的實際是這個指針(地址)的一份拷貝。函數(shù)得到地址,就會按地址找到要相應的數(shù)據(jù)執(zhí)行交換操作,而不是只是對這個數(shù)據(jù)的拷貝執(zhí)行交換操作。
綜上所述,學習興趣應在程序設計教學過程有目的、有計劃地培養(yǎng),從而增強學生的求知欲,強化學生內(nèi)在學習動機,從而提高C程序設計的學習效果。