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