臧勁松
摘? 要: 目前的程序設計課程教學理論講授多,實踐少,課堂教學存在“一刀切”現象,針對此類問題,文章探討了以能力培養(yǎng)為目的,分層遞進式的課堂教學方式。通過目標分層設定、課堂上的分層教學、差異化輔導、作業(yè)練習的分檔、多層次的考查和評價等多種方法,拓展學生的學習能力,使不同程度學生都能得到“最優(yōu)發(fā)展”,全面提升學生的創(chuàng)新能力。
關鍵詞: 分層; 實踐教學; 程序設計語言; 主體性原則
中圖分類號:G642? ? ? ? ? 文獻標志碼:A? ? ?文章編號:1006-8228(2019)01-90-04
ent, the teaching of programming course has many theories, few practices and the phenomenon of "one-size-fits-all" exists in classroom teaching. In view of this kind of problem, this paper discusses the hierarchical and progressive classroom teaching method aiming at cultivating students' ability. By means of multi-level goal setting, hierarchical classroom teaching, differentiated guidance, assignment practice classification, multi-level examination and evaluation and other methods, students' learning ability can be expanded, so that students of different degrees can get "optimal development" and improve students' innovative ability in an all-round way.
Key words: hierarchical; practical teaching; programming language; subjective principle
0 引言
現代教育學和心理學的研究和實驗表明:學生的來源、性別、家庭、知識、水平、智力、性格等方面的不同,決定著接受知識的能力必然存在著差異。但在以往的教學中,由于受班級授課制本身的束縛,均采用“一刀切”、“一鍋煮”的方法進行教學,很難適應不同程度學生的需求,因而使教學質量徘徊不前。
分層遞進式的教學方式可以在很大程度上解決這個問題,“分層”就是按差異分出學生不同程度,“遞進”就是對不同水平的學生設置不同的“階梯”,讓他們循序漸進地攀登,分層是“手段”,遞進是“目的”。分層遞進式教學就是承認并針對學生之間的個體差異,使不同水平的學生都能在原有的基礎上獲得最優(yōu)發(fā)展的教學方式。
1 存在的問題
傳統的實踐課教學,包括實驗課、習題課等一般都是統一進行的,所有學生按照相同的教學計劃展開學習,教師從備課、授課、作業(yè)、輔導、考查到評價,雖然都力圖把集體教學和個別教學的關系處理好,但依然很難顧及到不同程度學生的智能差異,結果,基礎好、能力強的學生并沒有提升其潛在的能量,而相對基礎薄弱的學生也得不到及時的幫助,不能適應面向全體的教學目標及學習速度,缺乏繼續(xù)提高的信心和學習的動力[1]。
2 實施原則
在分層遞進式教學中,需要遵循以下幾點原則。
2.1 層次性原則
由于學生個體之間受遺傳、環(huán)境等多因素影響,學生之間存在著個體差異,有著多元的不均衡性,而且就自身而言也存在著發(fā)展的興趣方向問題,這使得每個學生發(fā)展的進程和軌跡各不相同,發(fā)展的目標也具有個性化特征。因此,教師在分析學生個體差異的基礎上,應尊重個體的發(fā)展要求,正確判斷學生不同特點及發(fā)展?jié)摿Γ械姆攀傅剡M行有差別的教學指導活動,使每個學生都能揚長避短,獲得最優(yōu)發(fā)展。
2.2 最優(yōu)化原則
前蘇聯教育家巴班斯基認為[2],教學過程最優(yōu)化的實質,就是在一定的教學條件下尋求合理的教學方案,使教師和學生能用最少的時間和精力獲得最佳的教學效果,獲得最好的發(fā)展。為了實現教學過程最優(yōu)化,教師就需要有目的地選擇組織教學過程的最佳方案,從而保證在規(guī)定時間內,使教育和教學盡可能地達到最優(yōu)化。
因此,在教學過程中,只有將各種教學形式和方法相互聯系、相互滲透,才能為學生的全面發(fā)展創(chuàng)造有利條件。而為了使每個學生能獲得最大的發(fā)展,就應該強調用區(qū)別的方式對待學生,不僅是在教材難度和廣度、教學內容的區(qū)別,更重要的是在于對學生進行有區(qū)別的幫助和引導。當教師傳授容易理解的教學內容時,學生在練習或實驗的過程中,教師進行一般性的輔導即可;而當傳授中等難度的教學內容時,學生做練習時就應分層次進行,學習基礎薄弱的學生可以先做些簡單的練習題目,教師給以必要的輔導,而基礎較好的學生則可以嘗試做有一定難度的練習題,并可嘗試分組討論學習的多種方案;當教師傳授復雜、難度較高的教學內容時,就應把集體講授和個別輔導有機結合起來,分層次進行。最優(yōu)化教學應該是個別教學、分組教學和集體教學的有機組合。
2.3 主體性原則
主體性是強調學生在課堂上的主動參與、樂于探究,這是打造高效課堂的必備條件。在教學過程中,教師主動引導學生進行有效地自主學習,讓學生在自學中發(fā)現問題、討論問題,教師則做為課堂的策劃者和組織者,適時參與到學生的討論中,與學生積極互動,幫助學生解決在學習中發(fā)現的疑難問題,激發(fā)學生的學習興趣與主動性,正確引導學生的思維,轉變學生依賴聽講的被動獲取知識方式,而針對其中的共性問題,則可以集中講解,把教師的主導性與學生的主體性有機統一起來,打造高效課堂。
3 分層目標
在教學過程中,教師應根據不同基礎、不同專業(yè)和興趣學生的實際出發(fā),制定不同的個性化教學計劃,并根據學習進度及時調整教學計劃。
程序設計課程目的是培養(yǎng)學生嚴謹的科學態(tài)度、正確的程序設計思想、科學的程序設計方法和良好的程序設計風格。教學目標是依據課程目標設計的,課程目標應貫穿和體現于教學目標之中,因此教學目標的內容范圍與課程目標應該是一致的。現在的學生,他們的成長時期,是中國互聯網技術迅速發(fā)展并投入使用的時期,他們獲得知識的途徑與以往大不相同,而知識發(fā)展的更新速度也史無前例地快速。然而成長環(huán)境也存在著個體差異,學生在對計算機技術的理解水平,數據及文字處理等計算機應用能力卻是參差不齊的,因此,在教學過程中,還需特別注意到其差異性來設定不同階段的目標。確定不同層次的教學目標,應把握住哪些是基本要求,是所有學生應掌握的,哪些屬較高要求,可以讓學有余力的學生通過努力達到的。
針對程序設計課程,我們采用了四維度教學目標,見圖1。
⑴ 知識學習:主要是基本語法知識的掌握;這個目標一般有三個層次的要求:學懂、學會、能簡單應用;
⑵ 程序設計技能:主要是編程能力的訓練,這個目標強調三個過程:做中學、學中做、會反思;
⑶ 編程規(guī)范:主要內容涉及程序設計的藝術、價值判斷和內化;
⑷ 解題思維方法:計算思維的培養(yǎng),這個目標由三個層次組成:認同、體會和習慣。
而這四個目標,實際上又組成了一個問題的多個方面。語言知識的學習是程序設計能力形成的前提和基礎,以語法語義知識的學習做為重點,這是學習過程的共性,所有學生都要掌握的,是處于基礎層次;而對于接受知識快,思維活躍的學生來說,則應以語言知識的應用為重點,多種方式進行邏輯思維能力和解決問題能力的培養(yǎng)上。
4 實踐過程
4.1 課堂的分層教學
隨著慕課、翻轉課堂等現代信息技術手段的介入,以前課堂上不可能做到的事情,現在已經完全可以實現,課堂教學技術的突破,已經為課堂上的分層遞進式學習提供了技術保障。
分層次備課是實施分層教學的前提,首先應圍繞學科的認知特點和規(guī)律,根據學生的學習態(tài)度,學習能力,知識基礎等方面綜合分析,將學生劃分到不同層次的小組:基礎層、提高層、創(chuàng)新層,這樣才可以在后面的教學中做得區(qū)別對待,有的放矢。其次,程序設計課程是一門需要比較強的邏輯思維能力的課程,知識點多且分散,例如C語言的基本知識點主要包括如下幾個方面,見圖2。
教師在備課過程中就需要根據學生層次,再根據程序設計課程的特點,在吃透教材、大綱的情況下,將課程內容中各個知識點重新梳理,設置成有梯度、有層次、由簡到難的任務,把握好授課的起點,處理好知識的銜接過渡,減少教學的坡度;對于處于基礎層的學生,重點是指導他們分析程序的基本結構特點,重要的代碼段,對其中重要的知識點加以講解,然后可以挖空部分程序段,讓學生嘗試完型填充,這是分析程序模仿階段。對處于提高層階段的學生來說,重點應放在指導他們更清晰地掌握課程的知識點及其內部關系,建立起合理的算法與程序設計的認知結構,為將來的發(fā)展提供該領域的知識與能力準備。而能夠運用程序設計的局部知識解決比較復雜的問題,則是對處于創(chuàng)新層學生的學習要求,通過不斷的訓練,可以準確地理解程序設計的基本思想和方法,能系統地運用程序設計的知識,設計算法并編寫程序解決問題,具有一定的技巧性、藝術性。
例如,C語言的指針部分的學習,對大多數學生來說是一個難點,在教學中需要區(qū)別對待。指針和地址的關系,是基本點,是共性,在此基礎上,對處于提高層的學生來說,可以繼續(xù)引導他們學習二級指針、數組指針的含義,如何利用它們的優(yōu)勢更有效地編程;而對處于創(chuàng)新層的學生來說,引導他們自主查找網上資料,學習網上視頻,探討指向數組的指針、函數指針的原理,從實際問題中學習,完成知識掌握-理解-運用的層次遞進過程。
當然,三個小組的學習目標雖然都不盡相同,但小組之間依然可以建立起一幫一的學習伙伴,互相討論,分層提高。教師在整個教學過程中,要特別注意使自己的教學行為主動地去適合學生的學習行為,而不是倒過來做,讓學生去適應老師,要特別關注如何解決學習困難學生的困難和特長學生潛能的發(fā)展,讓尖子生冒出來,使多數邁大步,叫學習困難生不落伍,跟上來,從而達到班級的整體優(yōu)化,這也是分層遞進教學的目的。
4.2 同一知識點的分層教學
為了增強學生對在課堂中學到的知識的識記與理解,教師還應就相同的知識點對不同程度的學生分層教學,分層輔導,這樣才能幫助各個層次的學生適應學習,有效促進教學目標的實現。例如,“文件”是C語言中的一個基本知識點,對這部分的學習,即可采用分層教學的方式,開始,可以通過一個文件的簡單案例,讓所有同學了解文件的作用,第二層次,從文件讀寫開始,介紹文件的使用規(guī)則,基本文件函數的認識,這是所有同學應掌握的。第三層次,繼續(xù)強化文件讀寫操作,批量讀取數據;第四層次,用結構體存儲數據信息,用函數實現問題的分解,理解二進制文件讀寫等,提高學生融會貫通的能力;第五層次,通過指針與文件的完美結合,實現網頁上顯示信息,學習多文件內容的合并及按內容分割等知識。這樣采用層層遞進方式,讓不同程度學生可以理解文件,會用文件。
4.3 分層次的輔導
輔導是教學中的重要環(huán)節(jié)之一,由于不同學生自身基礎知識狀況、對知識的認識水平、智力水平、學習方法等都存在差異,他們接受知識的情況就有所不同,因此教師應因人而異,在課中、課后對不同層次的學生采取不同方法進行有效的幫助和指導,促進學生由低層次向高層次的轉化,達到學。例如,針對程序基本結構知識點,在輔導時針對理解力強的學生,輔導的內容側重于對所學知識的拓展與加深;針對中等成績的學生,輔導內容側重于掌握學習方法、分析與解決問題,培養(yǎng)其思維能力和靈活運用知識;針對基礎較薄弱的學生,則側重于知識的掌握和理解。這樣力爭使每個學生得到最大進步。
4.4 練習的設計分檔進行
練習是對課堂講解知識的消化和補充,練習的設計應在考慮學生掌握知識能力的差異的基礎上,兼顧基礎知識的鞏固與能力的發(fā)展,針對學生的個體差異,分層次要求,分類設計出不同梯度的題目,讓每位學生都能在練習中獲得滿足、成功的體驗,使其對后續(xù)學習更有信心。
對于不同層次的學生,在對同一知識點的選題、設計題目中,應有所側重,譬如在學習完基本結構和模塊化設計知識點后,不同組練習題目的側重點可以參考表1。
例如:對典型的循環(huán)求和問題:S=1+2+3+…+100,首先要求全體學生完成這個問題的基本算法:找規(guī)律,設計變量,遞推求和,循環(huán)求和,設置循環(huán)結束條件,引導學生逐步深入理解循環(huán)結構;對于提高組的學生來說,可以讓他們繼續(xù)思考:對于類似的算式S=2+4+6+…+100;S=1*2*3*…*10;S=1+1/2+1/3+…+1/n;S=12+22+32+…+1002;需要做哪些變更?修改哪個語句?引導學生自己探討如何避免死循環(huán),如何減少循環(huán)次數,如何提高程序運行效率等問題;對于創(chuàng)新組的學生來說,則引導他們主動思考如何在實際問題中應用這些規(guī)律。
總之,為學生搭建分層教學的階梯,從立足于學生現有基礎的問題提出,從糾錯到完善代碼,再過渡到新的問題,不斷創(chuàng)造最近發(fā)展區(qū),使學生由接受性學習、維持性學習轉變?yōu)轶w驗性學習、探索性學習和創(chuàng)造性學習,引導學生不斷的思考、積極探討、超越,使學習成為一種樂趣,把任務順利轉化為學習的內驅力,促進學生的智力向更高層次發(fā)展。
4.5 多層次的考查與評價
期末考試一直是課程考核的基本方式,但教學實踐證明,單一的考試并不能充分體現和評價學生對所學知識的掌握和應用水平,還需要過程考核[3],教師對學生的評價應具有導向和激勵的作用,應該采用多角度考查,多層次分析、全方位、多途徑的考核方式才能真實而客觀地評價學生的實際能力。
例如,對于基礎層次的學生,應重點考查對程序設計的基本知識點掌握情況,能夠閱讀并理解程序功能及設計方法,考查是否具備初級的求解問題的能力。對處于提高層次的學生來說,重點考察能否深入理解指針,熟練利用文件,利用系統提供的相關函數解決問題,是否具有高級編程技能;而對于處于創(chuàng)新層的學生來說,考查的重點應放在創(chuàng)新技能的運用上,能否將實際問題轉化為程序邏輯的思維能力,培養(yǎng)系統設計、復雜問題分解能力。
在階段考查、評價的基礎上,還應建立動態(tài)的分層遞進制。不同分組的學生在學習一段時間之后,可能會出現較大差異,教師應認真觀察,對學生所在的組別,可以進行適時調整,這樣不但可幫助學生及時調整自己的心態(tài),而且有利于學生找到自己的優(yōu)點和不足,始終能保持積極向上的良好心態(tài)。
5 結束語
分層遞進是基于分層,目的是遞進,通過二個學期的實踐,其效果也逐漸顯現出來。各層次學生始終處于積極向上的學習狀態(tài)之中,學生的綜合素質得到了整體提升,并且還有多名學生參加了計算機應用比賽,把在課程學習中的思考應用在比賽中,加深了對知識的深入理解,增強了學生的創(chuàng)新意識和創(chuàng)新應用能力。
參考文獻(References):
[1] 傅川,羅杰,趙鳴.高校程序設計課程的分層教學研究與實踐[J].計算機時代,2015.11:90-92
[2] [蘇]尤·克·巴班斯基著,張定璋等譯.教學過程最優(yōu)化-一般教學論方面[M].人民教育出版社,2007.
[3] 胡元闖,譚曉東,王鳳領.地方本科院校計算機網絡實驗教學改革探索與實踐[J].計算機教育,2018.6:21-23