李衛
五年一貫制的培養方式是我國高等職業教育的形式之一,學生均是初中畢業后入校,他們在學習方面具有基礎知識薄弱、自制力差、學習主動性差、難以集中精力、學習積極性不高、邏輯思維能力較弱等現狀。C語言是計算機應用技術專業的一門專業基礎課程,無論在其實際應用領域,還是在為其他語言奠定學習基礎方面都發揮著積極的不可替代的作用,傳統的教學手段比較單一,導致課堂氛圍不夠活躍。同時大多數學生比較情緒化,在學習過程中,他們如果覺得所學知識離生活太遠或太抽象,又容易失去興趣,因此激發學生的編程興趣,著力培養學生良好的程序設計風格和編程習慣,成為學好本門課程較為重要的前提。
一、以圖形化編程為前導,培養邏輯思維能力
Scratch是美國麻省理工學院開發的一款圖形化編程軟件,它針對的目標群體是8~16歲的學生,不用學習任何其他計算機語言,采用類似于樂高搭積木方式,通過簡單的拖拽模塊配以執行的命令模塊集合來完成一個程序的編寫,它的目的不在于要求學習者學會編程語言,語言如何去寫,而是側重培養學習者的編程思維,告訴他們如何去思考問題,如何去解決問題,如何去設計從而達到動手能力、獨立思考能力、邏輯能力的訓練和提高。培養在日常的學習生活中用編程思維來解決遇到問題的習慣。為了便于理解,編程思維可以拆分成兩個定義來看,首先是編程,其次是思維,組合起來的意思就是用編程的方式來思考問題。
C語言教學主要從結構化程序設計的概念出發,詳細介紹順序結構、選擇結構和循環結構程序設計。順序結構程序設計是按照指令順序依次執行,比較容易理解,傳統教學方式在學習了基本數據類型、運算符、表達式、格式化輸出函數printf()、格式化輸入函數scanf()和單個字符的輸入/輸出函數之后,學生基本可以編寫簡單的順序結構程序。但在學習過程中,許多學生還不具備編程思維,總是不明白為什么要這樣寫,因此利用Scratch以“奔跑的小貓”為例,在舞臺區將角色(小貓)放在背景中,通過將“移動10步”指令放置腳本區,來達到小貓移動的效果。學生通過觀察發現小貓的移動并不形象,僅僅是圖片的移動,分組討論解決方法,最終添加另一個小貓角色,讓兩個角色來回切換,最終實現了奔跑的形象。由此例,使學生明白了完成一個程序是需要有解決問題步驟的,逐步建立算法的概念。
在選擇結構程序設計教學過程中,傳統方式一般會以一個分段函數為例,讓學生理解根據條件的判斷來決定執行哪一條指令,但初中數學基礎薄弱導致這樣的實例引入效果并不理想。在Scratch中設計在房間內奔跑一個來回的小貓,小貓向左移動,遇到墻就折返向右移動,當遇到右邊墻再折返向左移動,首先將背景換為一個房間,當小貓向左移動遇到墻后,水平旋轉180°,右邊同理,從而使學生明白小貓向哪個方向奔跑是根據條件的判斷來決定的。在此前提下,再講解選擇結構程序設計學生就更為容易理解。
在循環結構程序設計教學過程中,傳統方式一般會通過求1到100的累加和為例,引出循環的概念,而部分學生對于累加和卻有些茫然,因此采用Scratch中選擇結構引例的擴展,讓小貓在房間內反復來回奔跑,采用的方法為將程序/指令區的控制分類中的循環控制加入腳本區,而在腳本區內將奔跑一個來回的指令移動至循環控制內,學生形象地看到奔跑一個來回的小貓加入循環控制后會一直來回奔跑,直到用戶要求停止。使他們明白循環的具體含義,從而建立循環結構程序設計的概念。
二、以堅實的基礎知識為前提,及時訓練編程思路
學好程序設計,不僅僅要學好基礎知識,理解結構化程序設計的概念,還必須掌握如何編寫程序,當學生掌握編程的基本控制語句之后,緊接著應該及時進行學生編程思維的培養,在訓練過程中則會暴露出許多問題,要解決問題,就要求學生進行進一步地學習探索,之后又會出現新的問題需要去解決,如此反復,幾次循環后,學生的心智被充分地調動起來,逐漸懂得了編程的實質,當看到一個題目之后,知道如何迅速地解決,因此在學習某種控制語句后及時訓練編程思路是非常有必要的。例如通過Scratch中在房間內來回奔跑小貓作為引例,使學生理解了循環的含義后,仍然要講述傳統循環結構程序設計的引例1+2+3...+10,然后請學生編寫1+2+3+...+100,求100以內的奇數和及200以內能被3整除數的和等程序,編寫程序的思路訓練是一個循序漸進的過程,在此過程中,最初練習時,需要明白為什么要這樣做,所以我們通過學生感興趣的圖形化編程作為前導,打開學生的思路,而在編寫程序的過程中,起初學生可以跟著老師照做,而在練習過程中,就需要在完全掌握所學知識點以及各種控制語句的前提下進行同類練習,教學過程中要兼顧到每一位學生,在每一個知識點教學結束后,要確保大多數學生能夠觸類旁通,用同樣的編程思維解決類似的問題。理解較慢的學生,可以要求他們通過模仿理解所學知識,用同樣的編程思維解決相同的問題即可;而對于基礎較好的學生,則會在練習過程中鼓勵他們嘗試用多種方法解決同一類問題,或者用另一種方法來完善同一類問題,在編程教學中,每一次練習之后教師一定要及時檢查,并給出相應的分數,而能夠創新的學生則給出附加分,以此激勵學生學習。
C語言程序設計課程的教學關鍵在于培養學生的邏輯思維能力,訓練他們的編程思路,以正確的基礎知識為前提,充分激發每一位學生的編程熱情。而Scratch的應用在培養學生邏輯思維能力方面起著非常重要的作用,使缺乏數學概念和編程思維的學生也能夠很快理解結構化程序設計中所涉及到的三種基本結構。