劉 哲
【摘 要】 C語言程序設計學習與教學本身枯燥、難懂,如何解決這個問題,并找出一條比較可行的教學方法,越來越為廣大計算機教師和程序編制愛好者們所關注。筆者總結了最近幾年C語言程序設計教學經(jīng)驗,與大家進行探討。
【關鍵詞】C語言程序設計 教學方法 資源整合
C語言是一門結構化程序設計語言,對于學生來說,C語言程序設計的思維方式和概念都是全新的,學生接受起來很困難。那么,在C語言程序設計教學過程中,怎樣開展這種構造性的又具有創(chuàng)造力活動的教學呢?筆者經(jīng)過這幾年的自我學習以及實際教學中的不斷摸索,對C語言程序設計教學方法有了一些認識,與大家共同探討。
一、注重網(wǎng)絡環(huán)境下的資源整合
互聯(lián)網(wǎng)技術的飛速發(fā)展徹底引發(fā)了閱讀、計算等方式的變革,巨大的信息量、便捷的信息傳
遞、極強的交互性,使得網(wǎng)絡成為最有效的資源獲取工具。因此,在教學過程中建立或利用一個以C語言為專題的編程學習網(wǎng)站,整合與C語言編程相關的豐富的學習資源,為學生提供動態(tài)的、協(xié)作性的學習環(huán)境和學習工具,讓學習者自己選擇信息資料,自己收集、分析并應用知識,去解決實際問題。通過網(wǎng)絡學習環(huán)境開展C語言教學,提高了C語言教學活動的有效性。
二、以合作學習為導向,改革課堂教學環(huán)節(jié)
合作學習是備受國際教育界推崇的學習模式,因為它有助于培養(yǎng)學習者的合作精神和協(xié)同解決問題能力。
教學中,以幾名學生為小組組成學習的基本單位,學生在學習小組內(nèi)相互協(xié)作、相互幫助、群策群力,共同完成相應的教學任務。實際教學中,教師向各小組布置項目任務,給以必要的說明,提供必要的資料和網(wǎng)絡資源,然后各學習小組研究問題,制定解決方案,最后將結果展示出來。例如,在C語言中的函數(shù)調(diào)用這一個問題,將程序分解為數(shù)個模塊,每個小組各自承擔其中一個模塊的程序編寫,C語言模塊化程序設計的思想在這時得到充分地展現(xiàn),讓學生深刻理解了模塊化程序設計理念,同時也使學生感受到了團隊合作的重要性,培養(yǎng)了學生協(xié)作互助精神。
三、抓住重點,分散難點,注重循序漸進
學習程序設計是一個逐步積累的過程。教材在整體設計上,要注意分散難點、合理選材,為學生建立科學的學習順序,并注意適時、適量,學以致用地逐步滲透相關的知識、思想和方法。對于有難度的知識點,采用先用一個簡單的例子讓學生有所了解,經(jīng)過一段時間的反復練習以及相關知識的積累后,再引入一個復雜一些的例子,深入理解和掌握,然后再加以概括和總結。讓學生對知識的認識、理解、運用有一個逐步深入的“螺旋式”上升過程。幫助學生把已學到的內(nèi)容不斷納入新的內(nèi)容體系中去,使學生認知結構中原有的概念和新的知識建立起實質(zhì)性的聯(lián)系。例如,雙循環(huán)結構知識點中的打印規(guī)則圖案的程序設計方法,就可依據(jù)問題的難易程度,先找出直角三角形圖案形成的規(guī)律,再探究等腰三角形圖案的形成特點,最后解決構成菱形圖案的程序設計,讓學生有一個全面、系統(tǒng)的理解和掌握解決該問題的思想方法。
四、立足任務驅(qū)動,滲透基本概念
概念的形成過程常常是學生進行邏輯思維的過程,如果遵循邏輯思維過程去組織教學,必將使學生容易掌握概念。因此,要想讓學生領會C語言中抽象的概念,教學中以實例任務作為知識的載體,在每個實例中適時、適量滲透一些相關的概念和知識,由實例去驅(qū)動學生主動發(fā)現(xiàn)、分析和處理問題,讓學生在做中學,在學中做,使學生在完成任務的過程中,逐漸地、很自然地去體會C語言的語法規(guī)則及相關概念,并且在這一過程中,學生還能體會到相似概念之間的差別,以及解決這一問題的不同程序設計步驟。比如,當型循環(huán)while與直到型循環(huán)do-while語句的區(qū)別,如果只通過教師講述,多數(shù)同學一般只能在表面上知其然,實則不知其所以然,但如果給出一個具體的任務實例,讓同學們在實踐后的結果中自己去體
驗兩者之間的不同,留在學生腦海中的記憶將猶為深刻。
五、引導學生建構自己的知識體系
基于網(wǎng)絡環(huán)境下的學習過程具有開放性、廣域性和易交流性。因此,網(wǎng)絡環(huán)境下的創(chuàng)新教育能真正達到因材施教、發(fā)展個性的目的,能夠使學生主動參與學習過程,并按照自己的認知水平有序地進行學習和提高,并使其創(chuàng)造性學習成為一種習慣。建構主義的教學活動中,教師的教學形式并不固定,學生則作為一個主體,積極會同其他的小組成員一起,通過已經(jīng)整合的學習資源在網(wǎng)絡下討論和學習,教師給予學生引導和幫助,解決學生建立知識體系過程中所出現(xiàn)的問題。這樣,學生既掌握了教材上的內(nèi)容,同時又通過網(wǎng)絡資源學習了相關的知識點,完成了對自己知識體系的建構,形成了自己的學習方式,而教師不但完成了教學任務,也教會了學生學習的方法,為學生以后的自我學習打下基礎,正所謂“教”與“學”相得益彰。
六、做好歸納總結,提高學生學習效率
C語言程序設計的學習,很重要的一點在于歸納總結。一個章節(jié)的結束,學生則難以形成完整、清晰的框架,因此,教師在教學中要及時歸納、做好小結。教學歸納可以是一個知識點的歸納(如if條件語句的歸納),也可以是對一種知識結構的歸納(如分支結構中包含if語句、while語句、循環(huán)語句等的歸納)。總結可以是一個小節(jié)的總結,也可以是一個單元內(nèi)容的總結。歸納總結的形式也可以多種多樣,可以使用文字概括,也可以使用圖表總結,重點難點要著重強調(diào)。做好歸納總結,有利于學生對知識的理解、做到融會貫通,順利實現(xiàn)知識遷移,提高學生的學習效率。
教學方法在程序設計教學中的重要性是不言而喻的,它制約著程序設計教學的效率。面對的教學對象不同,教學方法各異,但使每位學生都能得到充分的發(fā)展,培養(yǎng)創(chuàng)新人才,是我們的同一目的,教學絕不能脫離學生的知識背景和認知規(guī)律。
參考文獻:
[1]扈中平.現(xiàn)代教育理論.高等教育出版社,2004.
[2]余勝泉.網(wǎng)絡課程的設計與開發(fā).教育技術通訊,2000,(10).
[3]何克抗.建構主義——革新傳統(tǒng)教學的理論基礎.電化教育研究,1997,(3).