摘要:針對C程序設計的教學,圍繞培養(yǎng)學生邏輯思維能力這一目標,對教材內(nèi)容、教材知識結(jié)構(gòu)和課堂教學方案等方面的問題進行了探討,提出了一些切實可行的方法和見解。
關(guān)鍵詞:C語言;程序設計;邏輯思維;培養(yǎng)
中圖分類號:TP311.52
文獻標志碼:A
文章編號:1006-8228(2011)12-45-02
0 引言
高等教育既強調(diào)知識的傳授,更注重學生能力的培養(yǎng)。這里的能力指綜合能力,而綜合能力的核心是邏輯思維能力。信息技術(shù)的迅猛發(fā)展,要求高校計算機教學必須加大教學改革,培養(yǎng)合格的計算機人才。c程序設計作為計算機專業(yè)教學中的一門計算機語言課程,在培養(yǎng)學生綜合能力方面擔負著非常重要的使命。c程序設計這門課程對培養(yǎng)學生的邏輯思維能力具有—般課程無法比擬的作用。筆者結(jié)合教學實踐,認為抓住c程序設計教學中的以下幾個環(huán)節(jié)對學生邏輯思維能力的培養(yǎng)非常重要。
1 充分的課前準備是培養(yǎng)學生邏輯思維的前提
c程序設計是一門有很強的邏輯性的學科,教師應該在教學前認真研究教材,深入分析教材,并結(jié)合學生的心理特征,選擇恰當?shù)倪壿嬎季S訓練方法。
大學生已經(jīng)具有一定的思維能力,他們對概念性知識的理解,需要和已學過的知識之間建立一定的邏輯關(guān)系。概念具有確定性,即具有明確的內(nèi)涵與外延。在教學過程中要有意識地強調(diào)概念界定的一些基本方法(如定義、限制和概括),將有利于進一步培養(yǎng)學生的邏輯思維能力。同樣,在教學環(huán)節(jié)中還要注意概念間的邏輯關(guān)系,這樣就會使學生在不知不覺中接受了邏輯思維能力的訓練。因此,教師應精心設計教學過程,使學生按照老師事先設計好的思路進行思維,從而提高學生的邏輯思維能力。例如講到指針變量時,已經(jīng)具有了普通變量的知識,學生可以依據(jù)知識之間的聯(lián)系,學習指針變量就較容易了。
教師應創(chuàng)設情境,精選案例去激發(fā)學生的思維。動機是人們“因需要而產(chǎn)生的一種心理反映”,它是人們行為活動的內(nèi)驅(qū)力。思維是從問題開始的,因此教師要通過一些有趣的、有代表性的問題來創(chuàng)設情境,為學生營造良好的環(huán)境,使學生經(jīng)過思考、分析、比較來加深對知識的理解。例如:在講授數(shù)組時,通過“報數(shù)問題”中出隊序列的產(chǎn)生作為案例,這樣設計教學既滲透了“知識來源于生活”的教學思想,又能使學生意識到學習知識的目的是為了解決生活中的實際問題。學生的學習積極性被激發(fā)起來了,自然會去積極思考。例如編程最重視時間復雜度和空間復雜度,就空間復雜度而言,數(shù)組長度就不能定義太大,最好的方法是將數(shù)組想象成環(huán)狀結(jié)構(gòu)。這樣使學生不得不想辦法去處理數(shù)組下標的特殊變化,再如,通過引入大家熟悉的時鐘,提出這樣的問題:為什么13點鐘也可以說成l點鐘。在現(xiàn)實生活中的問題不斷激發(fā)著學生的興趣,使學生去積極思考、分析、歸納,從而使學生的邏輯思維得到訓練。
2 良好的課堂教學是培養(yǎng)學生邏輯思維的保證
在c程序設計課程的教學過程中,教師應根據(jù)課程內(nèi)容適當?shù)卣{(diào)整教學內(nèi)容,巧妙地運用知識間的邏輯關(guān)系,使所講內(nèi)容環(huán)環(huán)相扣,讓學生在不知不覺中接受著邏輯思維的訓練,從而提高學生的思維能力。在教學過程中練習題的設計應有適當?shù)碾y易梯度,以滿足不同學生的需求,使全體學生都得到相應的發(fā)展。如從普通變量到指針變量,從單向鏈表到雙向鏈表等。
在c程序設計教學過程中,由于每節(jié)課的知識內(nèi)容和結(jié)構(gòu)各有特點,所以在教學中應根據(jù)教學內(nèi)容的不同,采用不同的教學方法。靈活多樣的教學方法是激發(fā)、培養(yǎng)、調(diào)動學生學習_--情感的重要手段。學生主體意識的喚醒,課堂氣氛的活躍只有通過多種形式的教學方法才能實現(xiàn)。我們嘗試從社會實際、學生實際出發(fā),采取多種直觀、具體、多樣化的教學方法,以生動感人的具體素材去激發(fā)、調(diào)動學生的學習熱情和興趣,培養(yǎng)學生的邏輯思維能力。如講到數(shù)組中對數(shù)據(jù)的排序問題時,應采用啟發(fā)式和課件演示教學法,多媒體課件中生動的動畫既會吸引學生的注意力,激發(fā)學生的熱情,也能把排序的過程詳細展示,這樣能促使學生利用自己已有的知識結(jié)構(gòu)和邏輯思維對問題進行分析和歸納。
搞好教學的關(guān)鍵是處理好教與學的關(guān)系。教學也是情感與邏輯結(jié)合的過程。一堂成功的課不僅要有知識的傳授、能力的培養(yǎng),更要有老師和學生兩者之間的情感交流。教師以豐富的情感營造良好的課堂氣氛,幽默的語言、豐富的表情,生動有趣的例子,調(diào)動學生學習的興趣,會使課堂氣氛生動活潑,教師飽滿的熱情能感染學生引起師生情感的共鳴。在此情景下,興趣濃厚的學生將會不斷發(fā)揮自己的聰明才智,不斷喚起創(chuàng)新意識,從而實現(xiàn)邏輯思維的培養(yǎng)。
計算機編程需要較強的邏輯思維能力,這就要求我們在程序設計教學過程中不斷調(diào)動學生運用邏輯思維的能力,以促進邏輯思維能力的發(fā)展。c程序設計又是計算機專業(yè)的第一門計算機語言類課程,許多學生是初次學習計算機編程。常用的方法是多找一些邏輯分析性的問題,專門鍛煉學生的邏輯思維能力。
例如:七兄妹問題(根據(jù)下面已知條件判斷七兄妹的性別)。條件1.老二有兩個弟弟。條件2.老三和老四都有兩個妹妹。條件3.老五和老六都有三個哥哥。條件4.不算老七,男女一樣多。
分析:根據(jù)條件1知道老二有兩個弟弟,有三個妹妹。從條件2得知老四一定是男孩,否則,他不可能與老三有相同的妹妹數(shù);再綜合條件1老二應有三個妹妹,說明老三一定是女孩。再看條件3,首先,老五有三個哥哥,則老大和老二一定是男孩,其次,老六也有三個哥哥,則老五一定是女孩。最后再看條件4,可知老六也是女孩。那老七呢,再來看條件1或2,老二、老三、老四的妹妹已經(jīng)夠數(shù)了,因此老七一定是男孩了。
教師在教學過程中,應該多搜集一些像這樣的資料?;蛘吒鶕?jù)當前學習內(nèi)容來刨設情境,設計一些富有邏輯性的思考題,來吸引學生學習,并使學生按思考的程序去探求新知識。逐步養(yǎng)成分析問題的習慣,以達到提高學生邏輯思維能力目的。
在實際編程中,同一個問題往往會有多種不同的解決方法,應鼓勵學生盡可能用不同的方法來解決問題,并且比較不同算法之間的區(qū)別。這樣做有利于拓展和加強學生的邏輯思維能力。
例如:編程將變量A,B,C中的值按由小到大的順序排:
算法1 if(A>B)(T=A;A=B;B=T;)
if(A>C)(T=A;A=C;C=T;)
if(B>C)(T=B;B=C;C=T;)
算法2 if(A>B)(T=A;A=B;B=T;)
if(B>C)(T=B;B=C;C=T;)
if(A>C)(T=A;A=C;C=T;)
分析:算法l是正確的,這是比較明顯的,而算法2是不完全正確的。因為假設當A,B,C的值依次為3,1,2時,排序后結(jié)果是1,2,3,是正確的,但如3,2,1時它們的結(jié)果依次為2,1,3??梢?,算法2犯了一個嚴重的邏輯思維錯誤。如果把算法2改為算法3則正確了,但是一般學生就不太容易理解,因為看到A和c并沒有比較,能實現(xiàn),并且A和B又比較了兩次,不是多余嗎,去掉第一對比較是否可以,學生們會產(chǎn)生很多疑問。這時老師按分區(qū)間分析講解,會使學生更容易理解。
算法3 if(A>B)(T=A;A=B;B=T;)
if(B>C)(T=B;B=C;C=T;)
if(A>B)(T=A;A=B;B=T;)
實際編程中,語句的先后順序、循環(huán)、分支的判斷條件等也經(jīng)常是引發(fā)算法錯誤的原因,要不斷積累這方面的經(jīng)驗,有意識地培養(yǎng)學生的邏輯思維能力。
培養(yǎng)思維能力總是從問題開始的。根據(jù)這一特點,在c程序設計教學中,教師應根據(jù)學生已有的認知結(jié)構(gòu)和思維層次,精心組織問題?;蛘咴诮掏暌粋€例題后可以通過變化條件或問題形式等,將例題作適當?shù)难由?,也可以變換題目,從一個問題拓展到另一個問題,使學生完整地理解例題的解題思路,從而達到以例題為線,真正起到以點帶面、舉一反三的作用。使學生逐步養(yǎng)成按思考的程序去探求新知識,進行正確分析的習慣。
例如:在講完求一個數(shù)的階乘10!,接著問求1!+2!+……+10!。這樣有意制造沖突,引起學生注意,積極思考答案,由于當時還未學習循環(huán)的嵌套,所以提示學生采用n!=(n-1)!*n的原理來分析。
3 科學的課后安排和評價是學生邏輯思維能力培養(yǎng)的必要補充
課后安排是教學的延伸,科學的課后安排不僅可以鞏固已學內(nèi)容,而且可以鍛煉學生獨立分析問題、解決問題的能力,同時,也可以督促學生預習下節(jié)課的內(nèi)容??茖W的課后安排應注意以下幾點:
第一、課后題目應與本節(jié)課內(nèi)容聯(lián)系緊密,或者相似;
第二、具有一定的代表性,可擴展性;
第三、對后續(xù)章節(jié)可能有一定的導向性;
第四、提供多個不同難度的問題,供學生選做;
第五、問題蘊含邏輯性。
我們盡可能遵從以上指導性建議,并注重因材施教,關(guān)注學生不同特點和個性差異,合理安排具有一定邏輯性的問題作為課后作業(yè),營造獨立思考、自由探索的良好環(huán)境,發(fā)展每一個學生的優(yōu)勢潛能,培養(yǎng)學生的邏輯思維。對上節(jié)課后安排的作業(yè),在下節(jié)課上適當討論并總結(jié)。多位同學對同一道題目的思維方法有所不同,所以編寫的程序也有區(qū)別,有些同學的思維方法可能非常出色,有必要給所有同學展示,并講解,這樣不僅鼓勵了那位學生,而且能讓所有同學了解到更好的方法,也激勵了其他同學探索的積極性。總之,教師應該改變以往的觀念,不要總認為課后練習天經(jīng)地義就應該是學生在課后的書面作業(yè),而抱有完成與否無所謂的態(tài)度。課后練習更多的應該是教師課前、課堂、課后認真思考的問題,是師生在下次課堂上共同完成的作業(yè)。
改進教學評價,建立科學、多樣的評價標準,激勵學生勤于思考、勇于探索、善于總結(jié)。
對教學進行評估,主要從教學質(zhì)量和教學效果兩個方面進行。(1)在對教師的評價中,充分考慮教師的工作態(tài)度、教學改革、教學手段、教學效果等方面。具體方法可以采用學生網(wǎng)上評教、同行評教、專家評教等。評價結(jié)果反饋給教師,以促進教學。(2)在對教學效果的評價中,主要根據(jù)學生的作業(yè)、實驗、課堂考核、考試、應用能力等方面進行評價。
教師應根據(jù)不同的教學目的采用不同的科學評價方式,從而促進學生的學習、鍛煉學生的思維能力、改進和提高教師教學質(zhì)量。
4 結(jié)束語
在c程序設計的教學中除了傳授知識和培養(yǎng)基本的編程方法外,還應該大力培養(yǎng)邏輯思維能力。這對學生以后的工作、生活有著很大的影響,可以受用終生。為了在c程序設計的教學中更好地培養(yǎng)學生的邏輯思維能力,需要我們在教學過程中不斷改進教學方法、創(chuàng)設情境、精心設問、加強情感交流、科學安排作業(yè)、強化思維訓練等多方面努力,實現(xiàn)教學由傳授知識到培養(yǎng)能力的轉(zhuǎn)變。這是一個長期而艱巨的任務;也是提高c程序設計課程教學質(zhì)量的有效途徑。