摘要:本文從教學(xué)方法改革、教學(xué)內(nèi)容研究、實踐環(huán)節(jié)建設(shè)、特色教材編寫等方面介紹該課程建設(shè)的一些做法。并介紹了幾年來通過對該課程建設(shè)進行的研究和實踐所取得的成果。
關(guān)鍵詞:C++程序設(shè)計;課程建設(shè);負反饋教學(xué)法;實踐環(huán)節(jié);特色教材
中圖分類號:G64文獻標(biāo)識碼:B
文章編號:1672-5913(2007)12-0018-03
C++不僅是一門程序設(shè)計課程,而且是這些專業(yè)后續(xù)專業(yè)課程(如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、微機原理、單片機及應(yīng)用等)的重要基礎(chǔ),更是這些專業(yè)開展計算機研究和應(yīng)用的重要表達工具和開發(fā)工具。因此,Visual C++程序設(shè)計課程的教學(xué)改革與建設(shè)具有十分重要的意義。本文下面從教學(xué)方法改革、教學(xué)內(nèi)容研究、實踐環(huán)節(jié)建設(shè)、特色教材編寫等方面介紹我校VC++課程建設(shè)的一些做法。
1積極推進教學(xué)方法改革,形成頗具特色的負反饋教學(xué)法
負反饋教學(xué)法的原理是從教學(xué)過程中反饋(作業(yè)、實驗、答疑、單元測驗等)的問題入手,通過及時講評,解決學(xué)生學(xué)習(xí)中存在的問題,以達到預(yù)期的教學(xué)目標(biāo)。由于反饋的是教學(xué)過程中存在的問題故稱此方法為負反饋教學(xué)法。負反饋教學(xué)法包括以下方面。
1.1用“范例”組織課堂教學(xué),貫徹“發(fā)現(xiàn)式”教學(xué)思想
范例教學(xué)法由教育學(xué)家瓦根舍因提出,教師通過范例輔助學(xué)生理解、掌握知識和原理,其目的是讓學(xué)生能夠獨立地獲得判斷能力、推理能力、認識能力和繼續(xù)學(xué)習(xí)的能力。以往,程序設(shè)計課程教學(xué)通常以一門具體語言為主線,圍繞語法知識展開。而實質(zhì)上,設(shè)計程序是為了解決實際問題,是一種縝密思維方式、創(chuàng)新素質(zhì)和綜合能力的培養(yǎng)。要使學(xué)生對程序設(shè)計有興趣,必須親自感受并體驗程序設(shè)計的無限魅力。為此,我們改用范例組織課堂教學(xué)。在多媒體教學(xué)設(shè)備和真實編程環(huán)境的支持下,課堂教學(xué)以程序(范例)為主線。所選范例程序具有典型性、綜合性和可擴展性,涉及基本語法、基本算法和基本調(diào)試技術(shù)。范例程序的講解首先符合“現(xiàn)象→發(fā)現(xiàn)問題→分析問題→解決問題→驗證”的探索過程,使學(xué)生掌握基本語法、算法及應(yīng)用。其次,通過對范例程序的啟發(fā)式擴展,揭示程序由小到大、由簡單到復(fù)雜直到實用的過程,激發(fā)學(xué)生的探索熱情和興趣,使學(xué)生掌握知識間的聯(lián)系和編程的工程化思想,獲得實際編程能力。
1.2采集教學(xué)負反饋信息,做好分類、分析和講評
按負反饋教學(xué)法要求,任課教師做好作業(yè)和實驗報告的抽樣批改、單元測驗的全樣批改,重視實驗指導(dǎo)和答疑,從中了解學(xué)生的學(xué)習(xí)情況。在獲取足夠的負反饋信息后,任課教師及時做好問題的分類、分析和講評,及時發(fā)現(xiàn)和解決學(xué)生學(xué)習(xí)中存在的問題,確保學(xué)生對所學(xué)知識的真正掌握。
1.3根據(jù)大班教學(xué)特點,推進強同步教學(xué)策略
大班教學(xué)成功的關(guān)鍵在于保持師生教與學(xué)的同步狀態(tài)。負反饋教學(xué)法的師生同步措施有授課、作業(yè)、實驗、講評和測驗等。其中,作業(yè)與實驗報告由于學(xué)生存在一定抄襲現(xiàn)象,同步效果欠佳,為弱同步措施。授課、講評和測驗同步效果較好,為強同步措施。為使大班教學(xué)取得較好效果,采用強同步措施是必要的。特別地,我們在每個單元安排一次測驗,以實現(xiàn)師生的強同步,及時取得真實的負反饋信息。
1.4編寫負反饋教學(xué)法配套教輔資料,培養(yǎng)學(xué)生自學(xué)、探索和自我完善能力
配套教輔資料主要有:①學(xué)習(xí)指導(dǎo)。注重概念理解、知識鞏固,設(shè)單元測試,便于學(xué)生學(xué)習(xí)和自測自查;②實驗指導(dǎo)。共有17個實驗,每個實驗包含調(diào)試技術(shù)介紹、程序調(diào)試題、程序設(shè)計題和選做題,注重培養(yǎng)學(xué)生的編程能力和調(diào)試能力,激發(fā)學(xué)生編程興趣;③典型問題和綜合問題編程。共8個專題,便于學(xué)生突破難點,融會貫通,體驗綜合編程的樂趣,培養(yǎng)分析和解決問題的能力;④二級考試模擬試卷;⑤VC++ 6.0程序調(diào)試技術(shù),包括使用VC++ 6.0 IDE編寫和調(diào)試程序的方法和技巧。
2強化實踐教學(xué),注重培養(yǎng)學(xué)生的實際編程能力
VC++課程是一門難點多、綜合性較強的課程,實驗是該課程至關(guān)重要的環(huán)節(jié),只有通過實驗才能檢驗自己是否真正掌握和運用該語言。通過上機調(diào)試程序,會發(fā)現(xiàn)很多想不到的問題,通過解決這些問題,可以加深對語言和算法的理解,提高程序調(diào)試和實際編程能力。為此,本課程設(shè)有課內(nèi)實驗(32學(xué)時)和課程設(shè)計(兩周)實踐教學(xué)環(huán)節(jié)。
2.1課內(nèi)實驗注重培養(yǎng)學(xué)生基本編程和調(diào)試能力
基本編程和調(diào)試能力是深入學(xué)習(xí)本課程并取得實際編程能力的前提。課程實驗是至關(guān)重要的教學(xué)環(huán)節(jié),與課堂教學(xué)同步進行。我們根據(jù)教學(xué)內(nèi)容編寫了一套以調(diào)試技術(shù)、基本語法、基本算法、綜合編程為核心內(nèi)容的同步實驗指導(dǎo),共擬定了17個實驗,每個實驗通常包括調(diào)試題、編程題和選做題,可供不同層次的學(xué)生選用。
2.2課程設(shè)計注重培養(yǎng)學(xué)生綜合編程和實際應(yīng)用能力
課程設(shè)計安排在課程結(jié)束以后,以綜合性程序設(shè)計訓(xùn)練為主,選題具有典型性、綜合性和示范性,突出難點與實用價值,使學(xué)生體會到難點不難,難點在實際編程中非常有用。通過課程設(shè)計,學(xué)生進一步鞏固和掌握基本語法、基本算法和基本調(diào)試技術(shù),養(yǎng)成良好程序設(shè)計風(fēng)格(模塊化、結(jié)構(gòu)化)和嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng),初步形成軟件工程化思想,具有一定的程序組織能力。
課程設(shè)計的內(nèi)容涉及基本算法和數(shù)據(jù)結(jié)構(gòu)?;舅惴òǜF舉、迭代、遞推、遞歸、排序和查找等?;緮?shù)據(jù)結(jié)構(gòu)包括數(shù)組、結(jié)構(gòu)、指針、動態(tài)內(nèi)存分配、單向鏈表、對象、文件等。課程設(shè)計的實施,對非計算機專業(yè)采用小綜合方案,計算機專業(yè)采用大綜合方案。所謂小綜合是指程序規(guī)模在幾十到幾百行的小題目,大綜合則是程序的規(guī)模在數(shù)百行以上有一定實用價值的題目。
2.3實踐教學(xué)認真實施,嚴(yán)格考核,確保效果
在課內(nèi)實驗和課程設(shè)計的實施過程中,配備富有經(jīng)驗的指導(dǎo)教師,現(xiàn)場實時進行輔導(dǎo)和答疑,指導(dǎo)學(xué)生解決編程中出現(xiàn)的問題。同時對學(xué)生嚴(yán)格要求,嚴(yán)格考核,確保實踐教學(xué)質(zhì)量。加強實踐環(huán)節(jié)的考核是提高實踐教學(xué)質(zhì)量的重要保證。預(yù)習(xí)和考勤占總成績的30%,上機檢查并回答提問占總成績的40%,課程實驗報告和課程設(shè)計報告占總成績的30%。
3積極開展教學(xué)內(nèi)容研究,不斷優(yōu)化和更新教學(xué)內(nèi)容
根據(jù)程序設(shè)計課程本身發(fā)展快、更新快、綜合性強、存在問題多的特點,針對同類教材中存在的一些問題和不足,積極開展教學(xué)內(nèi)容的研究,先后發(fā)表 “C++運算符重載教學(xué)和編程中易被忽視的問題”、“C++中二維數(shù)組與指針關(guān)系的深入剖析”、“C++語言引用型變量的實現(xiàn)機制淺析”、“C/C++語言可變參數(shù)函數(shù)的參數(shù)傳遞機制剖析” 等論文,并及時把這些教研成果和學(xué)科最新進展引入教學(xué)。
3.1課程內(nèi)容分為三個知識模塊
(1) 結(jié)構(gòu)化程序設(shè)計基礎(chǔ):包括C++概述、數(shù)據(jù)類型、運算符、表達式、簡單的輸入輸出、算法與流程控制語句等。
(2) 模塊化程序設(shè)計:包括函數(shù)、編譯預(yù)處理、程序的多文件組織、數(shù)組、結(jié)構(gòu)體、共用體、枚舉類型、指針和引用。
(3) 面向?qū)ο蟪绦蛟O(shè)計:包括類、對象、構(gòu)造函數(shù)、析構(gòu)函數(shù)、繼承、派生、友元、虛函數(shù)、靜態(tài)成員、運算符重載、I/O類庫、命名空間、模板和異常處理等。
3.2課程的重點、難點及解決辦法
(1) 算法表達、結(jié)構(gòu)化語句:結(jié)構(gòu)化編程的基礎(chǔ)。注重講授算法的結(jié)構(gòu)化表示法,結(jié)構(gòu)化語句,常用基本算法,斷點+單步調(diào)試技術(shù)。
(2) 函數(shù):模塊化編程基礎(chǔ)。注重講授程序的模塊化組織思想和方法,自頂向下逐步求精的程序設(shè)計思想,參數(shù)傳遞,變量作用域,程序的多文件組織。
(3) 數(shù)組、結(jié)構(gòu)體、指針:數(shù)據(jù)的結(jié)構(gòu)化和模塊化組織基礎(chǔ)。指針是重點和難點,應(yīng)正確區(qū)分指針與地址,強調(diào)指針類型的作用,講清各類指針的含義及作用。特別注重講授指針在動態(tài)生成基本數(shù)據(jù)結(jié)構(gòu),解決實際問題方面的綜合實例。
(4)類、對象、繼承、運算符重載、虛函數(shù):面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)。運算符重載較易理解,但有些方面易忽視,應(yīng)提請學(xué)生注意。虛函數(shù)是重點和難點,應(yīng)注重講授虛函數(shù)的必要性、重要性、實現(xiàn)機制和綜合實例。
4改革考評方式,正確發(fā)揮考試的導(dǎo)向作用
根據(jù)VC++課程的特點,正確發(fā)揮考試的導(dǎo)向作用。改革考評方式,實行考教分離,并使其與江蘇省大學(xué)生計算機等級(二級)考試方式接軌,采取筆試(50%)+機試(50%)的方式,理論與實踐并重。
試卷的試題源自題庫和現(xiàn)任教師的征卷,試卷由選題算法和軟件系統(tǒng)產(chǎn)生,難度與二級考試相當(dāng),提高了考評的科學(xué)性。
5總結(jié)提煉教學(xué)經(jīng)驗和成果,積極開展特色教材建設(shè)
教材建設(shè)是課程建設(shè)的重要方面。幾年來,課程組對國內(nèi)外流行C++教材進行研究、分析和試用,總結(jié)、積累和提煉自己的教學(xué)經(jīng)驗和成果,從校內(nèi)講義開始,逐步開展具有自己特色的教材建設(shè)工作。2005年2月,自編教材《Visual C++程序設(shè)計習(xí)題、實驗與編程實踐》由華東理工大學(xué)出版社出版,同年12月又第二次印刷,得到了社會讀者的認可。2005年10月,本課程獲江蘇省高等學(xué)校精品教材立項建設(shè),課程組編著的體現(xiàn)“負反饋”教學(xué)特色的教材《C++程序設(shè)計實踐教程》一書目前已與清華大學(xué)出版社簽訂出版合同,書稿已經(jīng)交付,將于2007年上半年出版。
6運用現(xiàn)代化教學(xué)手段,加強網(wǎng)絡(luò)教學(xué)資源建設(shè)
經(jīng)過多年的教學(xué)、研究、建設(shè)和總結(jié),本課程已積累了豐富的網(wǎng)上教學(xué)資源,經(jīng)常更新,在教學(xué)中發(fā)揮重要作用。網(wǎng)上教學(xué)資源包括:課程教學(xué)大綱、課程設(shè)計大綱、教學(xué)日歷、課程設(shè)計任務(wù)書、實驗指導(dǎo)書、教學(xué)課件、習(xí)題集、典型問題及參考程序、相關(guān)教學(xué)論文、英文版課外輔導(dǎo)材料、模擬試卷等。課程組成員開發(fā)的“基于WEB的《C語言程序設(shè)計》教學(xué)系統(tǒng)”2006年11月獲得第二屆全國高等學(xué)校計算機課件評比二等獎。本課程網(wǎng)上教學(xué)資源的網(wǎng)址為:http://jpkc.ntu.edu.cn。
參考文獻:
[1] 劉維富,陳建平,王春明. 淺談“C++程序設(shè)計”課程的建設(shè)與實踐[C]. 第二屆全國計算機課程報告論壇,2006,11.
[2] 劉維富,丁衛(wèi)平,沈?qū)W華. Visual C++程序設(shè)計習(xí)題、實驗與編程實踐[M]. 上海:華東理工大學(xué)出版社,2005,2.
[3] 顧暉,劉維富,管致錦. 負反饋教學(xué)法的原理與實踐[J]. 電氣電子教學(xué)學(xué)報,2004,(4): 102-104.
[4] 邱建林,劉維富,顧暉. C語言程序設(shè)計教學(xué)的研究與實踐[J]. 電氣電子教學(xué)學(xué)報, 2003,(4):96-98.
[5] 劉維富. C++運算符重載教學(xué)和編程中易被忽視的問題[J]. 南通工學(xué)院學(xué)報(自然科學(xué)版),2003,(3):56-59.
[6] 劉維富. C++語言引用型變量的實現(xiàn)機制淺析[J]. 南通工學(xué)院學(xué)報(自然科學(xué)版),2002,(1):64-66.
[7] 顧暉. C/C++語言可變參數(shù)函數(shù)的參數(shù)傳遞機制剖析[J]. 電腦與信息技術(shù), 2004,(3): 37-38.
[8] 丁衛(wèi)平,劉維富,沈天晴. C++中二維數(shù)組與指針關(guān)系的深入剖析[J]. 南通工學(xué)院學(xué)報(自然科學(xué)版),2004,(3):85-87.
投稿日期:2007-2-24
作者簡介:陳建平(1960-),男,江蘇南通人,碩士,教授,研究方向為快速算法設(shè)計與實現(xiàn)等。
劉維富(1961-),男,江蘇南通人,碩士,副教授。研究方向為計算機語言與程序設(shè)計等。
通信地址:江蘇省南通市嗇園路9號南通大學(xué)計算機科學(xué)與技術(shù)學(xué)院陳建平郵編226019
E-mail:chen.jp@ntu.edu.cn
電話:0513-85975405,13962955020
基金項目:江蘇省高校精品教材建設(shè)項目“Visual C++程序設(shè)計”(蘇教高[2005]26號)
南通大學(xué)精品課程建設(shè)項目“Visual C++程序設(shè)計精品課程的建設(shè)與實踐”