朱俊++陳琳琳++朱嫻++謝玲++帥輝明
摘 要 分析獨(dú)立學(xué)院C++課程教學(xué)現(xiàn)狀,總結(jié)當(dāng)前教學(xué)過程中的不足,并針對(duì)存在的問題,從課堂管理、教學(xué)內(nèi)容、教學(xué)模式、教學(xué)輔助手段、課程考核制度等方面,提出C++課程教學(xué)改革的方法。
關(guān)鍵詞 獨(dú)立學(xué)院;計(jì)算機(jī)專業(yè);面向?qū)ο驝++程序設(shè)計(jì);教學(xué)改革
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1671-489X(2017)02-0103-04
Teaching Reform and Practice on C++ Course of Computer Ma-jors in Independent Colleges//ZHU Jun, CHEN Linlin, ZHU Xian, XIE Ling, SHUAI Huiming
Abstract This paper analyzes the current teaching situation and sum-
marizes the disadvantages during C++ teaching and learning in inde-
pendent colleges. Thereafter, we put forward corresponding reform methods on classroom management, teaching contents, teaching approach, assistant teaching measure and examination system.
Key words independent college; computer major; object-oriented C++ programming; teaching reform
1 C++程序設(shè)計(jì)課程的地位
隨著“互聯(lián)網(wǎng)+”時(shí)代的到來,我國高度重視軟件產(chǎn)業(yè)的發(fā)展,為軟件產(chǎn)業(yè)提供了良好的發(fā)展環(huán)境。在國家政策的保障下,我國軟件產(chǎn)業(yè)基礎(chǔ)建設(shè)已初具規(guī)模。程序設(shè)計(jì)作為軟件開發(fā)的基石,是開展軟件開發(fā)工作的必備技能。因此,程序設(shè)計(jì)類課程已經(jīng)越來越受到各高校的重視。在該類課程中,面向?qū)ο蟪绦蛟O(shè)計(jì)(以C++和Java語言為主要代表)是與面向過程程序設(shè)計(jì)(以C語言為主要代表)完全不同的一種程序設(shè)計(jì)模式,是目前軟件開發(fā)和程序設(shè)計(jì)的主要方法[1]。
C++又被稱為“帶類的C”,其主要特征是具有封裝性、繼承性和多態(tài)性,具有數(shù)據(jù)結(jié)構(gòu)豐富、應(yīng)用面寬、通用性和可移植性好、目標(biāo)程序效率高等高級(jí)語言的優(yōu)點(diǎn),是眾多程序設(shè)計(jì)語言中最有活力和應(yīng)用最為廣泛的一種。自20世紀(jì)90年代中期開始,面向?qū)ο驝++程序設(shè)計(jì)課程逐步成為各高校計(jì)算機(jī)專業(yè)開設(shè)的專業(yè)必修課程,該課程掌握得好壞,不僅會(huì)影響學(xué)生對(duì)整個(gè)學(xué)科知識(shí)體系的理解,更能反映出學(xué)生的專業(yè)素質(zhì)和技巧。
2 獨(dú)立學(xué)院C++課程教學(xué)現(xiàn)狀
獨(dú)立學(xué)院計(jì)算機(jī)專業(yè)培養(yǎng)目標(biāo) 獨(dú)立學(xué)院是從普通高校衍生出來的、具有民辦機(jī)制的本科院校。隨著我國教育體制的不斷革新,向應(yīng)用型本科院校轉(zhuǎn)型已經(jīng)成為獨(dú)立學(xué)院的發(fā)展趨勢(shì)。計(jì)算機(jī)專業(yè)作為實(shí)踐性非常強(qiáng)的專業(yè),要求學(xué)生具有開拓精神和解決計(jì)算機(jī)應(yīng)用領(lǐng)域?qū)嶋H問題的能力,能夠成為綜合素質(zhì)高、實(shí)踐能力強(qiáng)的高級(jí)應(yīng)用型人才。
為了實(shí)現(xiàn)這一總體目標(biāo),獨(dú)立學(xué)院計(jì)算機(jī)專業(yè)面向?qū)ο驝++程序設(shè)計(jì)課程應(yīng)著重培養(yǎng)學(xué)生掌握程序設(shè)計(jì)的思想和方法,切實(shí)提高學(xué)生的動(dòng)手編程能力,注重實(shí)踐教學(xué),使學(xué)生打下堅(jiān)實(shí)的基礎(chǔ),提升學(xué)生在專業(yè)領(lǐng)域中應(yīng)用計(jì)算機(jī)解決實(shí)際問題的意識(shí)和能力。
獨(dú)立學(xué)院學(xué)生的特點(diǎn) 盡管大部分獨(dú)立學(xué)院是以地方高等院校為母體,其區(qū)域定位、辦學(xué)層次的定位等與母體有著一定的相似之處,但在生源質(zhì)量和教學(xué)設(shè)施等方面仍存有較大差異。與母體學(xué)校的學(xué)生相比,獨(dú)立學(xué)院的學(xué)生的知識(shí)基礎(chǔ)沒有那么扎實(shí),且學(xué)習(xí)習(xí)慣、學(xué)習(xí)的主動(dòng)性與自覺性等方面要稍微欠缺,但是他們動(dòng)手能力較強(qiáng),對(duì)新事物的接收能力、創(chuàng)新能力、組織溝通能力往往并不比一本的學(xué)生差。
以南京理工大學(xué)紫金學(xué)院為例,計(jì)算機(jī)專業(yè)的學(xué)生在國家級(jí)甚至是國際級(jí)的軟件人才大賽(如微軟創(chuàng)新杯大賽、中國大學(xué)生服務(wù)外包創(chuàng)新創(chuàng)業(yè)大賽、藍(lán)橋杯大賽)中取得許多優(yōu)異的成績。總的來說,獨(dú)立學(xué)院的學(xué)生對(duì)實(shí)際的上機(jī)編程實(shí)踐和真實(shí)的軟件開發(fā)過程更感興趣。
當(dāng)前C++教學(xué)過程中的不足 因?yàn)槊嫦驅(qū)ο驝++程序設(shè)計(jì)課程本身具有較強(qiáng)的理論性和非常高的實(shí)踐操作性,內(nèi)容繁多、概念復(fù)雜、語法嚴(yán)格,所以學(xué)生在剛剛接觸這門課程時(shí)通常會(huì)覺得難以理解,這給C++教學(xué)工作帶來一定的困難。同時(shí),本門課程大多數(shù)在大學(xué)一年級(jí)開設(shè),對(duì)于大一學(xué)生而言,他們對(duì)計(jì)算機(jī)的熟悉程度參差不齊,尤其是在獨(dú)立學(xué)院學(xué)生自主學(xué)習(xí)意識(shí)不是太強(qiáng)的情況下,要在較短的時(shí)間內(nèi)建立程序設(shè)計(jì)思維,獨(dú)立編寫能夠正確運(yùn)行的程序,的確有一定的難度。目前,獨(dú)立學(xué)院計(jì)算機(jī)專業(yè)C++課程教學(xué)過程主要存在以下問題。
1)忽略了課堂管理。與中小學(xué)相比,大學(xué)教師對(duì)課堂紀(jì)律的管理沒有那么嚴(yán)格。由于C++課程是計(jì)算機(jī)類各專業(yè)的必修課,經(jīng)常采用大班教學(xué)的方式,學(xué)生人數(shù)較多,座位也不固定,加之教師一般不認(rèn)識(shí)所有學(xué)生,因此,一旦有個(gè)別學(xué)生缺課,教師很難發(fā)現(xiàn),只能通過點(diǎn)名的方式來檢查學(xué)生的到課情況,這往往需要占用寶貴的上課時(shí)間。此外,在授課過程中如果發(fā)生某個(gè)學(xué)生違反課堂紀(jì)律,任課教師往往不及時(shí)點(diǎn)名阻止,導(dǎo)致學(xué)生上課隨意說話、睡覺、玩手機(jī)等不良現(xiàn)象時(shí)有出現(xiàn)。
2)教材不夠“精、細(xì)、新”。目前大部分學(xué)校的教學(xué)計(jì)劃是連續(xù)兩個(gè)學(xué)期分別開設(shè)C程序設(shè)計(jì)課程和面向?qū)ο驝++程序設(shè)計(jì)課程,而由于C++語言是從C語言發(fā)展而來的,因此,C++教材的前半部分往往與C語言教材所講的內(nèi)容一致,教師經(jīng)常是從后半部分開始講,一本教材只用到一半的有效內(nèi)容;由于教材篇幅和教學(xué)學(xué)時(shí)有限,大部分所選教材并不能真正在幾個(gè)重要的關(guān)鍵技術(shù)上讓學(xué)生理解透徹。此外,由于計(jì)算機(jī)技術(shù)發(fā)展很快,陳舊的教材內(nèi)容往往落后于目前市場(chǎng)需求,與時(shí)代相脫節(jié)。
3)忽略了學(xué)生實(shí)踐能力的培養(yǎng)。大多數(shù)C++教師仍采用課堂講授、布置作業(yè)及實(shí)驗(yàn)這種“教本位”教學(xué)模式,將教學(xué)重點(diǎn)放在語法規(guī)則等理論講授上,采用“提出概念—解釋概念—例題講解—習(xí)題”的教學(xué)思路,學(xué)生只有遇到上機(jī)時(shí)才有機(jī)會(huì)進(jìn)入機(jī)房面對(duì)電腦進(jìn)行實(shí)際操作。因此,多數(shù)學(xué)生通過一學(xué)期的學(xué)習(xí)之后,只會(huì)解決書本和試卷中的練習(xí)題,不會(huì)解決實(shí)際問題,不能動(dòng)手編寫較復(fù)雜的程序。此外,在C++程序設(shè)計(jì)教學(xué)過程中,部分教師輕視設(shè)計(jì)、編碼以及團(tuán)隊(duì)協(xié)作能力的培養(yǎng),忽視工程經(jīng)驗(yàn)的積累,導(dǎo)致學(xué)生不會(huì)融會(huì)貫通,程序調(diào)試能力差,對(duì)程序設(shè)計(jì)的積極性不高。
4)傳統(tǒng)的作業(yè)布置、提交和批改方式。C++課程的作業(yè)一般是程序編寫類的題目,且作業(yè)一般通過紙質(zhì)材料上交。對(duì)教師來說,批改作業(yè)是個(gè)既耗時(shí)又耗精力的事情,而且對(duì)于學(xué)生的錯(cuò)誤或不足部分,只能通過叉或問號(hào)來體現(xiàn),把作業(yè)發(fā)還給學(xué)生的時(shí)候,學(xué)生也不一定會(huì)去看,或者看了也不一定改。
5)片面的、不合理的考核方式。大多數(shù)情況下,C++課程的考核方式是通過一張?jiān)嚲韥頉Q定最終成績。這種考核方式有兩大弊端。
①很多學(xué)生為了應(yīng)付考試,在復(fù)習(xí)過程中只注重死記硬背,甚至連程序代碼都是強(qiáng)記的,并沒有真正理解程序的邏輯與結(jié)構(gòu),只會(huì)紙上談兵。
②由于采用筆試的方式進(jìn)行考核,考核的重心偏向理論而不是實(shí)踐,因此,有些實(shí)踐能力較強(qiáng)的學(xué)生所取得的成績可能反而沒有對(duì)理論知識(shí)進(jìn)行“突擊”的學(xué)生好。這樣的考核方式并不能真正反映出學(xué)生對(duì)C++程序設(shè)計(jì)掌握的好壞程度。
3 C++課程教學(xué)改革內(nèi)容及收獲
加強(qiáng)課堂紀(jì)律管理 良好的課堂紀(jì)律是課堂教學(xué)得以順利進(jìn)行的重要保證。根據(jù)獨(dú)立學(xué)院學(xué)生的特點(diǎn)以及多年的教學(xué)經(jīng)驗(yàn),筆者認(rèn)為可以通過以下兩個(gè)方面來加強(qiáng)課堂管理。
1)固定座位,確保課堂井然有序。在第一節(jié)課上課前,提醒學(xué)生選擇好座位,在座位固定之后讓班長寫好座位表,要求學(xué)生以后每節(jié)課都必須按照座位表上規(guī)定的位置入座。教師通過座位表,既可以一眼看出學(xué)生的到課情況,又避免了占用寶貴的課堂時(shí)間來點(diǎn)名。同時(shí),該方法方便了教師提問某個(gè)具體的目標(biāo)學(xué)生、及時(shí)點(diǎn)名制止某學(xué)生影響課堂紀(jì)律的行為。
2)嚴(yán)格執(zhí)行“手機(jī)入袋”制度。獨(dú)立學(xué)院的大多數(shù)學(xué)生缺乏學(xué)習(xí)自覺性,上課時(shí)往往不由自主地就玩起了手機(jī),為避免這一現(xiàn)象,筆者在教學(xué)中嚴(yán)格執(zhí)行“手機(jī)入袋”制度:以班級(jí)為單位,每個(gè)班級(jí)購買一個(gè)手機(jī)收納袋,并為收納袋上的每個(gè)小口袋寫上學(xué)號(hào);學(xué)生在進(jìn)入課堂之前,將手機(jī)放入與自己學(xué)號(hào)對(duì)應(yīng)的小口袋中,隨后坐于固定的座位上。該方法有效地杜絕了學(xué)生上課沉溺于手機(jī)的現(xiàn)象,提高了上課的專注力。
合理安排與組織教學(xué)內(nèi)容 為了能夠在有限的課堂時(shí)間內(nèi)展示出最優(yōu)化的教學(xué)內(nèi)容,采取以下5個(gè)措施。
1)構(gòu)建“多元化教材”模式?!岸嘣滩摹蹦J绞侵笇W(xué)生通過綜合利用“課本+參考書+MSDN幫助文檔+網(wǎng)絡(luò)”獲得知識(shí)和技能。該模式既能提升學(xué)生閱讀中英文技術(shù)文檔的能力,又可以讓學(xué)生對(duì)最新的編程技術(shù)有所了解[2]。
其中,針對(duì)之前提出的問題,在選擇課本教材的過程中更傾向于把面向?qū)ο笈c面向過程有機(jī)地結(jié)合起來,盡早引入面向?qū)ο蟮母拍睿趯W(xué)習(xí)之初就讓學(xué)生接觸到C++程序設(shè)計(jì)語言“封裝性”的特點(diǎn),并要求學(xué)生編寫的所有程序都需要帶有“封裝”功能,從而盡快融入面向?qū)ο蟮氖澜缰小S捎讵?dú)立學(xué)院的學(xué)生往往比較依賴教材,因此,所選擇的教材必須重點(diǎn)突出,以講基本原理為核心,既要涉及基本算法和數(shù)據(jù)結(jié)構(gòu)的初步知識(shí)[3],又要利于學(xué)生后期向Java程序設(shè)計(jì)思想過渡。
鑒于以上考慮,采用譚浩強(qiáng)教授編著的《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》(第2版)作為課本教材,該書直接從C++對(duì)C的擴(kuò)充開始講起,其最大的特點(diǎn)是語法講解翔實(shí)全面,適合初學(xué)者學(xué)習(xí)理解,可以與課堂教學(xué)相互補(bǔ)充[4]。
2)強(qiáng)化基礎(chǔ),突出重點(diǎn)內(nèi)容。在進(jìn)行C++課程教學(xué)時(shí),既要注重面向過程部分基礎(chǔ)知識(shí)的鞏固,又要始終堅(jiān)持把重點(diǎn)放在面向?qū)ο蟪绦蛟O(shè)計(jì)思想上。盡管通常情況下學(xué)生在學(xué)習(xí)C++之前已經(jīng)學(xué)習(xí)了一學(xué)期的C語言,但由于獨(dú)立學(xué)院的學(xué)生對(duì)程序設(shè)計(jì)入門較慢,基礎(chǔ)不夠扎實(shí),尤其是對(duì)指針部分的知識(shí)感到難以理解,因此,在組織和安排C++課程教學(xué)內(nèi)容時(shí),教師可首先安排4~6課時(shí),通過講解綜合習(xí)題(以指針、函數(shù)、數(shù)組內(nèi)容為主)甚至是學(xué)生C語言期末試卷,幫助他們對(duì)面向過程的基礎(chǔ)知識(shí)進(jìn)行復(fù)習(xí)和加強(qiáng)。在幫助學(xué)生進(jìn)行查漏補(bǔ)缺之后,可開始引入類和對(duì)象的概念,重點(diǎn)讓學(xué)生理解兩者之間的關(guān)系,并在此基礎(chǔ)上介紹構(gòu)造函數(shù)和析構(gòu)函數(shù),讓學(xué)生對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)的“封裝性”有切實(shí)的體會(huì)和深刻的理解。
此外,C++的另外兩個(gè)特性——“繼承性”和“多態(tài)性”則既是重點(diǎn)又是難點(diǎn),教師在講授時(shí)應(yīng)注意讓學(xué)生學(xué)會(huì)單一繼承、多重繼承的方法,理解“繼承性”不僅能減少代碼的冗余性,更可以使得一個(gè)龐大的系統(tǒng)變得條理清晰、便于管理;在講授多態(tài)時(shí),要讓學(xué)生了解子對(duì)象、父對(duì)象的賦值兼容規(guī)則,并學(xué)會(huì)如何通過父類型的指針或引用調(diào)用子類型的成員方法,進(jìn)而拓展到虛函數(shù)、虛基類等難點(diǎn)的學(xué)習(xí)。對(duì)于其他的一些比較瑣碎的語法,如友元、運(yùn)算符重載等,教師可適當(dāng)介紹,而不需要花太多時(shí)間在課堂上講授,只需讓學(xué)生理解語法規(guī)則即可。
3)引入實(shí)際項(xiàng)目案例。由于計(jì)算機(jī)軟件的發(fā)展日新月異,因此,在講授C++程序設(shè)計(jì)的語法和思想時(shí),不應(yīng)光講死板的理論和煩瑣的語法,而應(yīng)與時(shí)俱進(jìn),將實(shí)際開發(fā)案例引入教學(xué)內(nèi)容中[5]。一方面,教師在課堂講授時(shí)將語法概念融入實(shí)例中,結(jié)合實(shí)例講解算法設(shè)計(jì)思路和編程思想;另一方面,學(xué)生在上機(jī)練習(xí)過程中結(jié)合布置的實(shí)驗(yàn)案例分析問題、解決問題。實(shí)踐證明,引入實(shí)際項(xiàng)目案例的做法能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,增加學(xué)生的成就感。
4)重視程序調(diào)試能力的培養(yǎng)。學(xué)生在寫完程序代碼之后,需經(jīng)過編譯、連接、運(yùn)行三個(gè)步驟才有可能得到預(yù)期結(jié)果。在這個(gè)過程中,很少有人能不經(jīng)過任何調(diào)試就一氣呵成地完成程序。而在組織教學(xué)內(nèi)容時(shí),教師往往忽略了程序調(diào)試能力的培養(yǎng),初學(xué)者(尤其是獨(dú)立學(xué)院的學(xué)生)遇錯(cuò)后往往就手足無措甚至直接放棄。
一般來說,程序的錯(cuò)誤有兩種:編譯錯(cuò)誤和邏輯錯(cuò)誤。其中,編譯錯(cuò)誤調(diào)試起來比較簡(jiǎn)單,教師在授課過程中應(yīng)注意要求學(xué)生認(rèn)真閱讀編譯器的報(bào)錯(cuò)原因,并注重經(jīng)驗(yàn)積累,初學(xué)時(shí)若在報(bào)錯(cuò)原因中遇到出現(xiàn)頻率較高的單詞或句子,可摘抄下來加深記憶;邏輯錯(cuò)誤則比較難解決,教師應(yīng)教會(huì)學(xué)生利用調(diào)試工具來解決問題,比如斷點(diǎn)設(shè)置、單步調(diào)試,將動(dòng)態(tài)執(zhí)行過程分解為靜態(tài)片斷,推測(cè)錯(cuò)誤來源。
5)編制校本作業(yè)。學(xué)生具備了相關(guān)的知識(shí)與能力基礎(chǔ)后,課后應(yīng)溫故而知新。根據(jù)多年的教學(xué)經(jīng)驗(yàn),筆者聯(lián)合C++課程組的其他教師共同編制適合本校學(xué)生的習(xí)題集,其中的題目大多數(shù)來源于歷屆期末考試的易錯(cuò)題以及歷年計(jì)算機(jī)等級(jí)考試的真題。在選擇習(xí)題時(shí),力求每道題目都具有針對(duì)性,希望通過作業(yè)做到“夯實(shí)基礎(chǔ),促進(jìn)發(fā)展,反饋教學(xué)”。
改進(jìn)教學(xué)模式,提高學(xué)生實(shí)踐能力 C++課程的最終目的是讓學(xué)生學(xué)會(huì)程序設(shè)計(jì)的思想和方法,將理論知識(shí)轉(zhuǎn)換為實(shí)戰(zhàn)能力。為了達(dá)到這一目的,進(jìn)行以下改革。
1)講練統(tǒng)一,理論授課與上機(jī)實(shí)訓(xùn)互動(dòng)。在傳統(tǒng)教學(xué)模式中,C++課程的理論教學(xué)通常在教室進(jìn)行,教師一邊播放PPT一邊講解知識(shí)點(diǎn),但PPT往往無法演示程序的編寫、執(zhí)行過程,學(xué)生只有課后才有機(jī)會(huì)去驗(yàn)證程序代碼的正確性。在本次教改中,不管是上機(jī)還是理論課的教學(xué),所有的授課工作都和上機(jī)實(shí)踐一起全部放到實(shí)驗(yàn)室去完成。教師不再是照本宣科,學(xué)生也不再是光聽不練,而是在講語法規(guī)則的同時(shí)運(yùn)行實(shí)例程序,并對(duì)程序進(jìn)行現(xiàn)場(chǎng)修改、分析、調(diào)試,讓學(xué)生參與理論內(nèi)容的檢驗(yàn)與實(shí)踐。
2)雙主教學(xué)模式。為了改變“以教師為中心”的傳統(tǒng)教學(xué)模式,采用“雙主教學(xué)模式”,即教學(xué)過程中既發(fā)揮教師的主導(dǎo)作用,又充分體現(xiàn)學(xué)生的主體作用。在雙主教學(xué)模式中,堅(jiān)持“教師精講、師生互動(dòng)、學(xué)生動(dòng)手”的原則:教師仍然發(fā)揮教學(xué)的組織和主導(dǎo)作用,控制整個(gè)課堂進(jìn)程,但不會(huì)自始至終處于中心地位,而是適當(dāng)時(shí)候指導(dǎo)學(xué)生主動(dòng)思考、探索,讓學(xué)生成為課堂的另一主角,做到自主學(xué)習(xí)。
3)以任務(wù)組織教學(xué)內(nèi)容。教師在授課時(shí)采用以“解決問題、完成任務(wù)”為主的多維互動(dòng)式的教學(xué)理念,將教學(xué)內(nèi)容的各個(gè)部分組織到相應(yīng)的任務(wù)中,圍繞任務(wù)展開教學(xué)。學(xué)生主動(dòng)學(xué)習(xí)、積極探究,根據(jù)任務(wù)的完成結(jié)果檢驗(yàn)和總結(jié)學(xué)習(xí)過程,主動(dòng)構(gòu)建探究、實(shí)踐、思考、運(yùn)用的學(xué)習(xí)體系??紤]到獨(dú)立學(xué)院學(xué)生的基礎(chǔ),任務(wù)的設(shè)計(jì)難度應(yīng)適當(dāng),要符合學(xué)生當(dāng)前的認(rèn)知水平,從小任務(wù)逐漸過渡到大任務(wù),循序漸進(jìn)地培養(yǎng)其解決問題的能力。在完成任務(wù)的過程中,可鼓勵(lì)學(xué)生組隊(duì)討論,以培養(yǎng)學(xué)生項(xiàng)目開發(fā)和團(tuán)隊(duì)協(xié)作能力,積累工程經(jīng)驗(yàn)。
4)引入“2W1H”教學(xué)方法?!?W1H”分別是指What、Why、How?!?W1H”教學(xué)方法是指讓學(xué)生在清楚地知道了“是什么”和“為什么”之后,再去研究和實(shí)踐“怎么做”。比如在介紹類的概念時(shí),教師首先從身邊的自然世界入手,讓學(xué)生知道類是什么,為什么要對(duì)自然界中的萬物進(jìn)行歸類,最后激發(fā)學(xué)生思考怎么做才能定義一個(gè)新的類,進(jìn)而產(chǎn)生新的對(duì)象?!?W1H”教學(xué)方法對(duì)吸引學(xué)生興趣有很大的幫助,并能培養(yǎng)學(xué)生主動(dòng)獲取新知識(shí)、發(fā)現(xiàn)新問題的能力。
充分利用在線程序評(píng)測(cè)系統(tǒng) 教師通過借鑒ACM競(jìng)賽的Online Judge系統(tǒng),開發(fā)出一個(gè)適合獨(dú)立學(xué)院學(xué)生的在線程序評(píng)測(cè)系統(tǒng),徹底改變傳統(tǒng)的作業(yè)模式。教師在該平臺(tái)上出題時(shí),仿照ACM命題的原則,每個(gè)任務(wù)都包含題目描述、輸入樣例和輸出樣例,并準(zhǔn)備好解決問題的標(biāo)準(zhǔn)程序、測(cè)試數(shù)據(jù)和標(biāo)準(zhǔn)答案[6]。教師在上課前將每節(jié)課的作業(yè)先輸入系統(tǒng)中,并設(shè)置好本次作業(yè)的開始時(shí)間和結(jié)束時(shí)間;學(xué)生先自主查看本節(jié)課的授課任務(wù)和作業(yè),在進(jìn)入教室的時(shí)候就心中有數(shù)。
課后,學(xué)生在在線程序評(píng)測(cè)系統(tǒng)上查看、提交作業(yè),該系統(tǒng)就像是一個(gè)實(shí)時(shí)電子裁判,在學(xué)生提交完程序代碼的那一刻就能給出程序的正確性、運(yùn)行時(shí)間、占用內(nèi)存資源和輸出格式的判斷,從而使學(xué)生能在第一時(shí)間就知道對(duì)錯(cuò),并根據(jù)系統(tǒng)給出的評(píng)判結(jié)果進(jìn)行必要的修改與提交。在作業(yè)時(shí)間截止之后,教師查看系統(tǒng)給出的成績排名,如圖1所示。此外,該系統(tǒng)還能對(duì)每次的作業(yè)完成情況進(jìn)行記錄和分析,如圖2所示。
在線程序評(píng)測(cè)系統(tǒng)的引入,一方面大大減輕了教師批改作業(yè)的工作量,徹底改變了傳統(tǒng)的作業(yè)批改模式;另一方面,學(xué)生在肯定自己成績的同時(shí),也能找出和其他學(xué)生之間的差距,從而進(jìn)一步促進(jìn)學(xué)生的發(fā)展,提高了教學(xué)質(zhì)量。
優(yōu)化現(xiàn)有考核方式 教改中實(shí)行新的考核制度,將C++課程最終的綜合成績確定為:平時(shí)成績×20%+期末試卷成績×40%+實(shí)驗(yàn)成績×40%。平時(shí)成績主要考查學(xué)生的作業(yè)情況、出勤記錄和學(xué)習(xí)態(tài)度;期末試卷主要側(cè)重于語法概念的理解能力、讀程序能力和程序分析能力的考查;上機(jī)實(shí)驗(yàn)考試則是利用在線程序評(píng)測(cè)系統(tǒng)考查學(xué)生的實(shí)際編程能力,時(shí)間限定在90分鐘以內(nèi),要求學(xué)生當(dāng)場(chǎng)完成。這種綜合的考查方式可以公平、全面地反映出學(xué)生對(duì)C++課程的真實(shí)掌握情況。
4 總結(jié)
誠然,由于教學(xué)目的、教學(xué)內(nèi)容及學(xué)生情況等因素千差萬別,沒有哪一種教學(xué)模式或教學(xué)方法是一勞永逸的。路漫漫其修遠(yuǎn)兮,對(duì)C++課程進(jìn)行教學(xué)改革工作仍然任重而道遠(yuǎn),今后將不斷尋求適合獨(dú)立學(xué)院學(xué)生的教學(xué)模式和教學(xué)方法,以獲得最佳的教學(xué)效果?!?/p>
參考文獻(xiàn)
[1]武永成.應(yīng)用型本科院校計(jì)算機(jī)專業(yè)C++教學(xué)改革研究[J].教育教學(xué)論壇,2015(25):138-139.
[2]杜卿,陳天.高級(jí)語言程序設(shè)計(jì)(C++)教學(xué)改革實(shí)踐與思考[J].中國校外教育:理論,2008(11):173-174.
[3]吳乃陵.面向?qū)ο驝++程序設(shè)計(jì)教學(xué)改革[J].電氣電子教學(xué)學(xué)報(bào),2003(2):9-11,43.
[4]楊煉,鄒超偉,毛韶陽.應(yīng)用型本科院校C++課程教學(xué)改革探索[J].計(jì)算機(jī)教育,2014(21):95-97.
[5]周立章.基于CDIO工程教學(xué)模式的C++程序設(shè)計(jì)教學(xué)改革探索[J].大眾科技,2011(10):208-210.
[6]朱月秀.基于ACM競(jìng)賽的C++程序設(shè)計(jì)課程教學(xué)改革[J].閩南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2012(1):96-99.