摘要:文章對計算機程序設計課程的教學改革進行了初步探討,并結合教學實踐對其有效性進行了初步驗證。
關鍵詞:程序設計;教學改革;任務驅動;規律
0 引言
經過幾年的教學實踐與改革,我校計算機程序設計教學已由傳統的“板書+講解”方法,逐步過渡到“講解+演示+操作”的授課方法。然而實踐證明,僅是授課方法的改進,教學效果仍然欠佳。因此,我們在廣泛調研和實踐基礎上,進行了進一步的教學改革,總結積累了如下一些經驗方法,以供參考。
1 任務驅動,激發興趣
一個教師不僅要把有關知識傳授給學生,而且要研究學生的認識規律:他們是怎樣接受知識的,怎樣才能更快、更容易、更有效地接受知識。
在程序設計課中會遇到的一個問題是:講課是從語法規則入手還是從具體問題或任務入手。在程序設計課的傳統教學中,經常是一開始就介紹一大堆規則、定義,就如講外語先講語法,等講完語法再講造句閱讀。然而人們的認識規律往往是從具體到一般,因此,講授程序設計課程,不能孤立地講語法規則,要把它結合到程序應用中,通過閱讀和編寫程序讓學生自然地理解和記住有關規定。
為了激發學生的學習熱情,我們采用了任務驅動的方式,即在講授新的課程內容時,精心設計,從具體問題入手,在授課之初首先提出一個學生比較熟悉且實際的任務,然后告訴學生,要通過后續課程的學習來完成這一任務。學生一聽,“哦,原來這些新的內容可以解決很實際的問題”,學習的興趣被激發出來了,同時也會激起學生達成任務的好勝心。在此基礎上一步步深入,將學生逐步引向相應的學習內容,通過學習和討論來完成這個任務,解決這個問題。隨后再通過大量例題說明有關語句或函數的功能,并歸納總結出幾點結論,說明使用規則和需要特別注意的細節。簡單地說,即采用“提出任務——介紹完成任務的方法、知識——歸納結論和規律”三部曲。這樣學生看得見、摸得著,思想跟得上,學了就能用。
如在教輸入輸出函數時,可問學生“如何將全班學生的學號、姓名、性別、家庭地址、課程、成績等信息輸入并以數據庫形式存放起來,供查詢時輸出使用?”,然后引出輸入輸出函數的運用方法,讓學生在上機時解決這個問題,并由此推廣,然后加以總結,導出結論和注意事項。
2 注意銜接,設置懸念
每次授課內容完成后,為了很好地銜接新的授課內容,教師可先設置懸念——提出一些利用前面教學內容可以完成,但學會后續的內容可更好地完成的實際任務。先讓學生想想如何利用已學知識來完成這一任務,到新的授課內容開始時,教師再把自己設計的、用新的教學內容完成任務的方案提供出來,與學生的方案放在一起進行比較,討論二者的優缺點。通過這種方式,不但可以讓學生自然地產生學習新知識的渴望,同時對于前后所學內容的特點、差異以及聯系都可以有更深刻的認識。教學實踐表明,這種可以銜接前后教學內容的任務或者說懸念對于后續課程的學習具有很好的促進作用。
例如在學習循環語句之前,可以給學生布置任務:用簡單語句完成1到100的累加。這個問題的解決很容易,但又會使學生充分認識到沒有循環語句的不便,則學生可以很好的體會循環結構的特點。又如在學習數組之前,可以給學生布置一個任務:輸入10個整數,要求對其從小到大進行排序并輸出。為了解決這一問題,不采用數組時,僅排序就需要45條語句才能完成,且隨著問題規模的增大,語句數還會急劇增加。采用數組則只需一條雙重循環語句即可。通過這一簡單的任務,有規律地處理大量同性質數據時數組的優勢就很明顯地體現出來。學生對數組的學習興趣得到提升,對數組的認識也會更加深刻。
3 因材施教,劃分層次
由于學生水平參差,學習態度、學習目的各異,按一個模式去教,以同一目標去要求必然導致教學的失敗。我們要把握學生間的差別和特點,在教學中不能用一樣的要求、一樣的教學方法、一樣的講稿和內容去對待,而是要做到因材施教。因此我們在授課之前要了解學生的情況(學科基礎、是否學過其它相關課程、有無充分的復習時間、有無上機條件等),并根據實際教學情況調整授課內容、重點和進度,對不同的學生提出不同的要求。
例如,對非專業學生來說,他們最主要的是要學會使用計算機,因此主要應當通過語言課使學生建立起計算機工作方式的基本概念,掌握用計算機解題的方法和程序設計的技巧,并盡可能地與其所學專業相結合,為他們日后使用計算機解決實際問題打下基礎。
而對于本專業的學生,由于計算機知識更新較快,各種新語言也在不斷產生,故要求他們培養較強的自學能力和獨立工作能力,因此課堂上可以相對少講些。對于基本的規則講解清楚后,有些不重要的規則不需要一一細講,有些較簡單的內容可以讓他們自學,學生在用到時查一下說明書即可。程序設計課程通常包括介紹語言規則和算法兩部分內容,我們應把重點放在后者上,即講課主要講程序設計的技巧和學習方法,幫助學生提高編制程序的水平,讓他們多上機,多實驗、探索,鍛煉獨立工作能力。
同一類型的學生也會存在知識背景、學習方法、接受能力等多方面的差異,這就需要劃分層次。劃分層次不是給學生進行差生或優生的定性,而是承認學生的差異,本著“以人為本,學生第一”的教學理念,實施目標分級,教學分級,是符合教學中可接受原則和因材施教原則的。分級教學有利于發揮教師的主導作用,使教師的“教”更好地適應不同層次學生的“學”;分級教學面向全體學生,使教學適合每個學生的發展需要和實際水平,這也符合學生的心理要求,有利于激發他們學習的自信和興趣,提高他們的學習主動性和積極性。
4 教研結合,注重實踐
有實際編程經驗的教師,可以在教學過程中將自己碰到的一些問題的解決方案穿插在授課內容中,這樣可以讓學生有更深的體會。同時還可以把一些程度適中的課題部分項目介紹給學生,讓有興趣的學生通過解決實際問題來進一步提高自己的能力,增強其信心和競爭力。
此處的研究不僅指科研,也包括教學過程中的經驗總結與相關研究。每個人在教學過程中都有自己的體會和經驗,別人的經驗可以給以啟示,但不能代替自己的實踐。在講課和教材中應該體現出自己獨特的見解,這對學生是很有益處的,因為它是一般書上所沒有的。為促進教師進行經驗總結,我校采取了觀摩優秀教師教學并進行討論,經常與學生座談了解學生反饋信息等方式。另外在講課時,盡量把自己實踐經驗中有價值的東西增加進去,如在編寫程序過程中學生經常出錯的地方可加以總結后寫入教案。
傳統的程序設計主要以完成作業為主,學生上機多數是將書上的程序作業在計算機上運行一遍,形式單調,學生處于被動實踐狀態,效果不佳,沒有對課程內容作深入的理解。我們在實踐課程中除了完成作業外,重點加強學生的創造能力的培養,增加課程設計的內容。教師在設計實踐課程題目時,根據學生學習程度的差異和興趣愛好的不同,設計不同難度、不同內容的課題,增加學生的學習興趣,激發學生的創造能力。比如,對能力強、基礎好、常上網的學生可以布置他們思考:如何做一個最基本的BBs系統?這樣既能激發學生的探索欲望,又可巧妙地將所教所學知識應用到實際中,增強學生的實踐動手能力。5統一考試,促進教學
就現階段而言,考試是教學過程中的一個重要環節,是評價教學得失、進行教學工作信息反饋的一種手段,也是穩定教學秩序、保證教學質量的重要措施之一。考試不僅可以檢測學生的學習成績,評價學生知識水平與能力狀況,還能檢測教與學的綜合效果,并為教學改革提供必要的依據。我校原來的考試形式存在一些問題:各門課程考試沒有統一要求,導致教師教學目標和學生學習目標不明確;考試形式單純,一般都采用筆試或機試;試題的質量不高等。針對這些狀況,我校采取了如下措施。
對有國家等級考試的課程,提倡學生參加全國統一的等級考試。實踐證明,由于需要參與等級考試,老師和學生目標定位明確,教學過程和教學內容能緊扣目標,促進了教學質量的提高。等級考試試題覆蓋面廣,既能測試學生對理論知識掌握的情況,又能測試出他們的實踐操作能力。另外全國計算機等級考試證書可提升學生的就業競爭力。
對于沒有國家等級考試的課程,我校也要求所有的同一課程的授課教師統一出卷和閱卷,其中程序設計課程分機試和筆試兩部分進行,并要求平時成績占總評成績的30%,力求比較全面客觀地考察和評價學生的學習情況與教師的教學情況。這種考核方式在教學實踐中得到了學生和教師的一致認可。
6 結束語
總之,我們的體會是:要教好計算機程序設計及其他學科,關鍵在于掌握學生認識規律,激發學生學習興趣,并不斷總結借鑒經驗,在教學實踐中不斷學習、進步,適時進行必要的教學改革,這樣才能取得較好的教學效果。然而教無定法,我們還需要在教學實踐中進行更深入的探索和研究。