

摘要:C語言程序設計是非計算機專業的一門重要的公共課程。文章從C語言程序設計課程的特點出發,提出運用知識遷移、案例教學、課堂互動和差異教學等教育學理論對課程的教學方法進行改進。實踐證明,在實際教學中應用教育學理論,很大程度上增強了學生對程序設計課程的興趣,提高了學生采用程序語言解決實際問題的綜合能力,取得了顯著的教學成效。
關鍵詞:程序設計;教育學理論;教學方法
掌握一門高級程序設計語言是高等院校學生利用計算機解決實際問題的基本要求。計算機科學的發展日新月異,不斷有新的程序設計語言被設計出來,集成化的快速開發工具也層出不窮,而高校中非計算機專業主要采用C語言作為程序設計課程的學習語言。C語言是現今應用廣泛、最具影響的程序設計語言之一,具有概念簡潔、數據類型豐富、表達能力強、使用靈活方便、代碼質量高等特點。
非計算機專業C語言程序設計的課程教學中,教師往往專注于理論的講授,而學生由于知識結構的原因處于“被動”的接受地位,因此教學效果通常并不理想。教育學理論歸納和總結了教育活動中的科學理論與實踐,探索解決教育活動產生、發展過程中遇到的實際教育問題,從而揭示出一般性的教育規律和理論。運用教育學理論指導高校的教學活動,能夠使教學過程更加科學和合理化,從而提升教學的質量和效率。教育學理論,如知識遷移、案例教學、課堂互動和差異教學等已經廣泛被應用于各種課程的教學中,取得了顯著的教學成效。如何采用教育學的理論提高C語言程序設計公共基礎課的教學效果,是大學計算機課程教育思考和探索的問題,需要有針對性的進行探討和研究。
1結合專業特點,促進知識遷移
程序設計不僅僅是考察學生對程序語法的掌握,特別需要培養學生采用算法程序解決問題的能力,因此,知識遷移的訓練顯得尤為重要[1]。知識遷移是“一種學習對另一種學習的影響”。學習是一個連續過程, 任何學習都是在學習者已經具有的知識經驗和認知結構、已獲得的動作技能、習得的態度等基礎上進行的。這種原有的知識結構對新的學習的影響就形成了知識的遷移。遷移是普遍存在的現象,但遷移的發生卻不是自動的,它需要我們創設條件,采取有效的方法,才能更好地促進學生所學知識的遷移,從而提高記憶與學習效率,發展學生處理問題的能力。
程序設計教學的第一堂課應該讓學生對程序的學習有個宏觀的把握,因此教師需要向學生講解編程的基本步驟。具體包括:
1) 反復閱讀題目;
2) 規劃解題方案;
3) 測試;
4) 實現上述設計方案,并修改錯誤;
5) 制作文檔。
如果直接給學生講述該過程,學生會覺得非常枯燥,不好理解。因此,在講解的過程中,需要創造條件,讓學生能夠實現知識的遷移。比如教育技術專業的學生中女生比較多,女生對抽象概念的理解往往不如男生,但對小動物等新鮮事物比較感興趣。因此,可以借鑒給貓洗澡一個例子[2],分析洗貓的流程(如圖1所示)。該例子學生很感興趣,通過具體事例的講解,學生很快明白了編程的基本步驟。
模塊化程序設計的概念對C 語言的教學也很重要,在教學過程中可以根據學生所學專業知識的特點進行遷移。例如,在給土木工程專業學生講解模塊化程序設計的時候,針對該專業的特點,進行專業知識方面的比較。通過比較建筑工程和軟件工程之間的相同之處來進行講解。該專業的學生對建筑中的結構很熟悉,對比程序中的結構,就能夠很快的理解程序中模塊化的意義、函數的作用以及空函數的概念。
2案例教學,激發學生學習興趣
程序設計是一門非常重視實踐性的課程,因此案例教學的方式能夠幫助學生理解所學知識、建立編程思想和提高實踐動手能力[3]。案例教學法是一種以案例為基礎的教學法,案例本質上是提出一種教育的兩難情境,沒有特定的解決之道,而教師在教學中扮演著設計者和激勵者的角色,鼓勵學生積極參與討論。案例教學法是以對案例的分析解決為主線,通過對案例中的問題進行分析,激發學生的求知欲,調動學生的積極性,使學生自覺主動地學習案例,掌握原理和方法,實行科學的教育思想觀念的一種教學方式。
程序設計的教學中有很多生動有趣的例子可以給學生進行演示,但如果每次只是講解一些抽象的數學公式的例子,學生并不能很快地理解和消化。教師應該設計合適的案例,使其能夠引起學生的興趣,循序漸進的對學生進行引導,并且使學生每次學習了新的知識就能夠逐步完善原有的程序。例如,課堂上往往需要對學生進行隨機選擇提問,因此,可以設計一個隨機選擇學生的學號或姓名輸出的程序。學生對這樣一個用C語言實現的實例很感興趣,而且該程序中包括了數學庫函數、數組、循環結構、選擇結構,還有隨機數產生的算法等多個C語言的知識點,是一個綜合性的例子。在學生所學知識有限的情況下,先講解程序的原理,并采用最簡單的語法來實現程序的基本功能。當新的知識增加了以后,再逐步細化講解,循序漸進的對程序進行改進,使新的知識逐步被學生所接受。這樣每一堂課,學生都可以通過這個程序了解到新的知識點,在程序逐步完善的過程中也對新的方法以及應用實例有了更直觀的了解。
3課堂互動,重點難點講解循序漸進
課堂互動是新課程倡導的重要理念之一。課堂互動,是師生雙方或學生之間在教學過程中相互交流思想和情感、傳遞信息并相互影響的過程。課堂教學中的互動,就其形式而言,主要有兩種:師生互動和生生互動。
師生互動是指在教學過程中,教師和學生改變傳統的教師控制課堂、學生被動聽講的局面,師生共同探討、共同研究,在這一過程中,教師給學生以指點,學生給老師以啟發,相互促進,共同發展。
生生互動是指學生間擺脫了“各自為戰”的學習方式,在學習活動中,互相推動,從而共同提高學習效益。程序設計中采用師生互動的方式可以促進學生對知識的主動學習,往往能取得較好的教學效果[4]。
程序分析和流程圖的繪制是程序設計學習的難點和重點。學生剛開始學習程序的時候,都喜歡拿到題目就直接編程,并不習慣分析題目,更不會主動的繪制流程圖。因此,需要在課堂上有針對性地設計練習,通過師生互動使學生學會繪制流程圖,這樣對程序的學習會很有幫助。具體做法如圖2所示。
首先,由教師在課堂上給出程序代碼,然后讓學生根據該程序繪制出流程圖,教師在針對流程圖的繪制進行點評,這個過程學生比較容易接受。
其次,教師繪制好流程圖,讓學生寫出程序代碼,教師再對代碼進行修改和講解。
最后,進一步提升學生的理解,讓學生拿到題目先繪制流程圖,再根據流程圖編寫出程序,教師對這一過程進行講評。
通過這種互動的過程,學生比較好的理解了流程圖和程序之間的關系,并能夠主動根據題目進行分析,養成良好的編程習慣。
實驗操作和習題練習也是C語言教學中很重要的組成部分。程序的調試能夠幫助學生理解程序的流程并自覺的進行程序的改進,如果能夠在調試的過程中實現師生互動,對學生的學習會很有幫助。因此,首先由教師在課堂上具體講解程序調試的方法,特別是復雜的程序,讓學生學會通過調試了解程序的算法。學生在課后練習經常會出現程序出錯的問題,直接給出題目的正確答案往往并不能讓他們很快理解問題出在什么地方,而程序調試能夠很好的激發學生的靈感。因此,可以讓學生對自己編寫的程序進行逐步調試,教師對調試過程進行指導,這樣很快能夠找到錯誤的原因,并且印象深刻,在今后的學習中也會有意識的避免。
4差異教學、根據學生層次水平有針對性的進行指導
傳統的教學方法較多地側重于學生的共性,對學生的差異研究不夠,重視學生認知結構的形成,忽視學生在共性條件下個體差異的發展,按照統一尺度要求學生,這樣不僅淹沒了學生的興趣愛好和鮮活個性,而且對學生的知識增長和發展來說也有不利的影響。而差異教學就是將學生個別差異視為教學的組成要素,從學生不同的準備水平、興趣和風格出發來設計差異化的教學內容、過程與結果,最終促進所有學生在原有水平上得到應有發展。差異教學是在班集體教學中立足學生差異、滿足學生個別需要、以促進學生得到充分發展的教學。
程序設計是非計算機專業都開設的一門公共必修課。學生的專業種類繁多,學習的動機、興趣、能
力也就存在較大差異,因而更應該因人制宜,采用差異教學的方法[5]。對大多數學生,著重講解最基本、最常用的內容,掌握最基本的程序設計方法,打好基礎,通過考核。而對部分學習能力強的學生,可以結合所學專業,加寬加深學習內容,切入實際應用,培養創新能力,適當的介紹一些難度深的考級或考證書籍給學生練習。
5結語
通過教育學理論的指導,程序設計課程取得了較好的教學效果,學生的考試成績都比較理想,對教師的評教結果也很好。在今后的教學過程中,還應根據C語言程序設計課程的特點,充分運用新的教學理念,不斷探索提高教學質量的方法,培養高素質的大學生。同時,也希望本文進行的實踐和探索能夠為計算機程序設計教育方法提供一些借鑒。
參考文獻:
[1]