摘要:目前各高校均開設C語言程序設計課程,該課程教學內容抽象,教師難教,學生也難學。因此,在傳統教學模式基礎上,提出多維立體教學系統,從教學手段和教學方法等方面對C語言程序設計課程進行教學改革和教學實踐,提高學生學習興趣并培養學生分析與解決問題的能力。
關鍵詞:C語言;教學模式;教學改革
0 引言
C語言程序設計不僅是計算機專業的必修課,而且是很多非計算機專業的公共基礎課。它通常是高校學生所接觸到的第一門程序設計語言,其重要性可見一斑。由于是“第一門”,學生的學習熱情高漲,但當碰到數據類型繁多、語法結構復雜的計算機語言時,學生的學習興趣很快就消退了。如何結合現有的教學模式,改進C語言的教學效果,提高學生的學習興趣,讓學生能較快地掌握程序設計基本方法,一直以來都是值得探索的問題。
1 C語言的多維立體教學系統
樹立一個正確的教學目的和學習目的分別是教師教好和學生學好一門課的根本所在。教師和學生都應向這一目標努力。傳統的教學模式存在交互性弱、理論與實踐缺乏聯系等缺點。筆者結合多年C語言程序設計課程的教學經驗,在傳統教學模式的基礎之上,提出多維立體教學系統,如圖1所示。該系統由多元學習系統、實例分析系統、成功激勵系統3個子系統構成多維度、立體化的學習模式。多維立體教學系統為C語言學習者定制完全個性化的學習模式,能全面提升學習者的C語言運用水平,真正實現學知所用、學有所用、學會所用。
1.1多元學習系統
高校制訂教學計劃時,通常將該課程安排在大學一年級開設,而這一時期,學生剛剛由高中進入大學,對專業方向以及后續要學習哪些專業課程還不了解。學生們會疑惑:這門課對后續課程學習到底有什么用?這時,他們根本不可能認識到將這門課作為專業基礎課的真正用意,而從輔導員及學長那里得到的信息是計算機二級證書對于就業大有裨益。于是,學生在學習這門課伊始,心里便有了目標:通過計算機二級考試。對此,教師首先要做的是明確教學目的并調整教學目標,及時引導學生,讓學生明確學習C語言的終極目標是“學以致用”。
多元學習系統是以多媒體教學為基礎,并采用正常學習課、主題沙龍課、學習輔導課相結合的教學環節,幫助學生學習C語言。正常學習課就是教師采用傳統的教學方法,以正常的多媒體及板書形式授課,使學生在短時間內獲取大量信息的教學方法。這種方法雖然存在大家所都熟知的諸多缺點,但要使幾十甚至上百名學生能較快地掌握課程內容,傳統的教學方法不可或缺。教師應在講授這門課程伊始就清楚地告訴學生:學習這門課的主要目的,是通過學習C語言,了解基本的算法,掌握正確的編程思想和編程方法,提高計算機的應用水平,為后續課程打下良好、堅實的基礎。教師在講授這門課的同時,也要注意適時引導,不要過分強調計算機二級考試和期末考試的重要性,應本著實用的目的,讓學生活學活用。至于計算機二級考試,其實與我們上面指明的學習目的并不矛盾,如果學生的學習目標真正明確了,順利通過二級考試也是自然而然的事情。
主題沙龍課和學習輔導課是正常學習課的重要補充。教師在正常學習課環節的基礎上開展主題沙龍課,將正常學習課的重要知識點進行提煉,提出一定主題下的拓展命題,可以訓練學生對知識點的認知能力,使其進一步加深在知識點應用層面上的體會,并促進學生對知識進行消化和吸收。學習輔導課是針對學生上課(包括正常學習課及主題沙龍課)、作業及答疑過程中存在的不足,為學生擴展和補充C語言語法特點和應用案例等方面的知識,幫助學生快速積累知識。由正常學習課、主題沙龍課、學習輔導課構成的多元學習系統如圖2所示,三者相互促進且互為補充,是C語言多元學習中必不可少的環節。
1.2實例分析系統
美國著名的教育家喬伊斯在《教學模式》一書中,將教學模式分成4類。信息處理模式注重幫助學習者獲取信息,并發展學習者獲取信息、加工信息、觀察問題和解決問題的能力;歸納模式側重信息的獲得和加工;概念獲得模式主要是幫助學習者有效地學習概念;探究模式主要在于培養學習者探究的技能。
結合喬伊斯的教學模式理論,筆者提出實例分析系統。該系統以幾個完整的案例為總線,從工程實踐的角度出發,首先提出問題:我要編寫一個什么樣的程序,該程序要實現什么樣的功能;其次再進行功能模塊劃分,引出模塊化的思路;最后以案例為向導實現每個功能模塊,而每個模塊所涉及的知識點也被順理成章地引出來。傳統的C語言程序設計教學以填鴨式教學為主,強調教師“如何教”,忽視學生“如何學”這個問題。教學基本上都是在講解基本語法,配套教材中的案例也只是為了說明語法而已,缺乏趣味性。然而興趣和愛好卻是最好的老師,瓦特發明蒸汽機、牛頓發現萬有引力定律都是興趣的指引。
實例分析系統首先用生動的實例告訴學生這門課的學習目的是什么,避免了是什么、怎么用的介紹方式,而采用提出問題、分析問題、解決問題的方式;其次,掌握枯燥難懂的語法是實現案例功能的重要途徑,采用實例分析系統可以讓學生以輕松和主動的態度學習與掌握知識點;最后,將工程應用能力和創新能力的培養滲透于日常的實踐教學中,這也符合“卓越工程師教育培養計劃”(簡稱卓越計劃)的提出。實例分析系統在具體實施過程中還要注意把握以下幾個方面。
1.2.1多媒體教學結合案例教學
目前,C語言教學大多采用多媒體形式,因此教師應充分發揮多媒體的視聽優勢,注重選用集實用性、趣味性、一致性于一體的案例,通過多媒體演示程序執行流程、數據類型存儲過程、函數參數傳遞過程等。除了貫穿全局的大案例選擇,小案例的選擇也很重要。所選案例既要與教學目的相吻合,又要是學生易于接受和感興趣的案例。
教學選擇“智力大通關游戲”作為貫穿始終的大案例。該游戲由用戶選擇1、2、3、4、5、6(用戶可通過擲骰子選擇點數),然后進入相應的游戲環節,有算術游戲、智力問答、五子棋等游戲。教師通過程序展示環節,讓學生對C語言編寫的應用程序有一個初步了解,然后隨著學習內容的深入,學生從最簡單的模塊開始,不斷完善程序功能。
例如,學生在學習輸入輸出函數時,利用輸出函數輸出一個算術題或智力題,加深對打印輸出函數printf()的理解;利用輸入函數輸入數值,加深對輸入函數scarlf()的理解;學習選擇結構時,利用if-else結構判斷輸入的答案是否正確,若答案正確,輸出“恭喜你,答對了”,答案錯誤則輸出“下次再努力吧!”;利用switch()結構可以選擇游戲類型,練習多分支結構的使用;學習循環結構時,可用“當型循環”或“直到型循環”循環地出算術題或智力問答題,直到用戶選擇退出游戲;在學習函數知識時,可以用函數調用的方式練習出題過程。
至此,“智力大通關游戲”的基本程序框架已搭好。學生對于數組、結構體、共用體及指針內容的學習,可以以教師選擇的信息管理系統為案例進行學習。學生可利用數組的知識,練習編寫計算每門課平均成績及每名學生平均成績的程序;用結構體和共用體及指針的概念來存儲和管理每名學生的基本信息,在此基礎上,逐漸增加該程序的難度,并利用前面所學的函數知識,實現成績查詢、學生基本信息查詢等功能;學習文件時,可編寫如何將學生信息保存到文本文件或如何從文本文件中讀人信息的程序,使學生掌握有關文件處理函數的使用。相關內容學習結束后,一個簡單的信息管理系統程序設計也就完成了。
1.2.2課堂討論與實踐教學相結合
人的能力是在實踐中形成的,實踐是實現由知識到能力轉化的重要過程。要實現具有一定理論基礎、創新能力和扎實的動手能力的應用型人才培養目標,加強實踐教學尤為重要。教師在講課時也可以把一些富有啟發性的問題編成思考題,要求學生查找資料、獨立思考,然后再組織學生就這些思考題進行討論,在討論中鞏固所學內容。
學生有了學習興趣,自然就能積極自主地學習,教師也轉變為學習的輔助工具,從而逐步完成從“做中學”到“學中思”的過渡。在實現“智力大通關游戲”程序后,教師可以給同學留下一些討論題,如增加菜單的功能、增加用戶密碼的功能等,要求同學分組討論(即主題沙龍課環節),利用所學知識完善程序。教師在學生學會設計學生信息管理系統程序后,要求學生實現圖書信息管理系統或飛機訂票系統的程序設計,以激發學生的創造性。課堂討論不僅能拓寬學生的思路,使學生高質量地完成學習任務,而且還可以提高學生的綜合素質。
1.2.3多媒體教學與傳統板書教學相結合
教育心理學研究表明:人獲取的外界信息中,83%來自視覺,11%來自聽覺,3.5%來自嗅黨,1.5%來自觸覺,1%來自味覺。顯然,增加視覺和聽覺信息量是多獲取信息的可取方法。多媒體恰好在視聽方面具有顯著優勢,因此,從教育心理學角度看,運用多媒體輔助教學對提高教學效果必然大有好處。但多媒體教學不只是教師用電子教案取代紙板教案、用電子板書代替粉筆板書,而是在充分理解媒體語言、掌握其傳播特性的基礎上進行設計。
在眾多的教學媒體中,文本擅長表述高度概括、極為抽象或結論性的內容,我們通常將文本用于概念的表達,如語句的基本語法介紹等;圖形、圖像形象直觀,能夠直觀并生動地傳播信息,因此結合文本進行合理的頁面布局可以起到畫龍點睛的作用;動畫是以視聽的方式進行表達,恰當的動畫成分可起到強調主題、增加情趣的作用,如采用動畫方式對指針的應用進行講解,使學生了解每一條語句在執行過程中的作用,增強學生的直觀感受。
教師在利用多媒體技術輔助教學時需要注意以下方面。
1)在教學過程中,不建議一味追求視覺效果,而忽視教學本身,對多媒體類型的選擇要慎重。
2)多媒體技術是教學的輔助手段,因此不能本末倒置。幻燈片相比傳統板書方式包含的信息量大,教師容易忽視學生對知識的消化能力。因此,多媒體教學要有重點地與板書進行結合,有的放矢地利用傳統教學手段強調關鍵內容。
3)制作課件時,避免將課本內容原樣拷貝到課件上,這會使學生難以領會重點。多媒體教學只有與傳統板書教學有機結合,才能使課堂教學環節集知識、專業、趣味于一體。
1.3成功激勵系統
西方教育“以人為本”,從課程學習與實踐上升到人的全方位成功。成功激勵系統幫助學生實現自我認識、自我定位、自我成功等。編程是一種技能,學習C語言的關鍵是將C語言運用到實際應用當中。首先了解你自己,在此基礎上,設定C語言學習目標,以案例為驅動力,嘗試新的挑戰,不斷地從錯誤中總結并提高自己,追求卓越,這是一個不斷循環的過程。成功激勵系統如圖3所示,它可以是C語言學習的成功激勵系統,同時也與“卓越計劃”的初衷一致。
2.1重視買踐環節
通過課堂的理論學習,學生掌握了C語言的語法知識,但是編寫的程序是否正確并符合要求、能否運行,就需要通過上機調試環節來驗證。上機調試可以使學習中的疑點或問題得到明確解答,使學生更好地理解和鞏固課堂內容,并且能培養學生編程和調試程序的能力,因此必須重視上機實踐環節。作為教師,結合學生在課堂上所學的知識,對上機實驗內容進行精心設計,以便學生更好地消化和理解知識;還要盡量結合學生的專業,注重內容的實用性。
C語言是一門實踐性很強的課程,學生僅通過幾學時的上機環節還是不了解到底怎樣編寫一個能夠應用的完整程序。基于此,教師增設了課程設計環節,首先合理選題,題目既要起到訓練的目的,又不能難度太大。從以往的課程設計情況來看,信息管理類的題目比較適合做C語言程序設計題目。另外,考核方式也應靈活,教師不應以成敗論英雄,應摒棄以往以程序是否調通為依據,并將其作為最終成績的做法。實踐證明,“成敗論”有損學生對C語言學習的積極性。考核應以學生的考勤和鉆研精神、所做程序的完整性和運行情況、最終的簡要答辯為依據,著重鼓勵學生通過課程設計掌握編程知識和技能。
2.2教學、實踐與創新的關系
教學環節是知識積累的基礎,而實踐環節是教學環節的必要補充,兩者相輔相成、缺一不可。教學、實踐與創新的關系如圖4所示。實踐環節是學習能力與創新精神的集中體現,是訓練學習能力和創新能力的最佳途徑。教學、實踐、創新,進而促進教學及實踐環節,這樣不但可以促進學生鞏固課堂知識,而且可以激發學生在課外學習自己感興趣的知識,為以后學習專業知識打下堅實基礎。
3 結語
C語言教學需要改革,需要以學生為中心的現代理念。結合工科院校學生的特點,筆者主要從C語言課程的教學模式、教學環節、實踐創新等方面進行切合實際的分析,相信這套教改方案會對提高C語言課程教學效果及實施卓越計劃產生有利的影響。