熊啟軍 程格平 谷瓊
摘要:針對程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)的現(xiàn)狀,提出了分組合作實(shí)驗(yàn)教學(xué)模式。通過與項(xiàng)目式實(shí)驗(yàn)教學(xué)模式的比較,闡述了其優(yōu)勢、具體實(shí)施步驟和方法。實(shí)踐證明分組合作實(shí)驗(yàn)教學(xué)模式可有效提高學(xué)生學(xué)習(xí)的參與度、積極性,從而顯著提高實(shí)驗(yàn)效率和成績。
關(guān)鍵詞:分組合作;程序設(shè)計(jì);實(shí)驗(yàn)教學(xué)
中圖分類號:G642? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)28-0250-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
1 引言
目前,各級各類高校日益重視實(shí)驗(yàn)實(shí)踐教學(xué),從校院兩級管理機(jī)構(gòu)的主導(dǎo)措施來看,主要有增大校內(nèi)實(shí)驗(yàn)室硬件建設(shè)投入、增加實(shí)驗(yàn)學(xué)時(shí)、增多實(shí)驗(yàn)類型(驗(yàn)證型、設(shè)計(jì)型、綜合型、創(chuàng)新型等)、增強(qiáng)實(shí)驗(yàn)項(xiàng)目的趣味性和實(shí)用性、改革實(shí)驗(yàn)考核和評價(jià)方式、與企業(yè)合建校外實(shí)訓(xùn)實(shí)習(xí)基地、引進(jìn)企業(yè)實(shí)際案例、培養(yǎng)和引進(jìn)雙師型教師等[1];從教師的日常教學(xué)角度來看,更多的則是改革教學(xué)模式,如普遍采用案例式、演示式、啟發(fā)式、項(xiàng)目式、平臺(tái)式、競賽式、導(dǎo)師制等[2][3]。
雖然學(xué)校、教師都在不斷完善和實(shí)施多種實(shí)驗(yàn)教學(xué)改革措施,即求變;但部分學(xué)生、特別是地方院校的學(xué)生似乎“任憑風(fēng)吹雨打我自巋然不動(dòng)”,即不變,導(dǎo)致教學(xué)效果“理想很豐滿、現(xiàn)實(shí)更骨感”。因?yàn)槎济靼祝呵罢咧皇峭庖?、只起輔助作用,后者才是內(nèi)因、起決定作用。
對于特別強(qiáng)調(diào)計(jì)算思維和動(dòng)手能力的程序設(shè)計(jì)類課程來說,在完成實(shí)驗(yàn)作業(yè)時(shí),部分學(xué)生要么毫無頭緒、要么錯(cuò)誤連篇、要么百度、要么拷貝……極易滋生和蔓延拖沓、抄襲、墮落、放棄等現(xiàn)象。問題的癥結(jié)在于學(xué)生缺乏學(xué)習(xí)的主動(dòng)性、積極性,如何解決這一難題則是提高教學(xué)質(zhì)量的關(guān)鍵。
2分組合作實(shí)驗(yàn)教學(xué)模式
“項(xiàng)目式”是一些設(shè)計(jì)類、實(shí)踐類課程常采用的教學(xué)或考核方式,其主旨上是引進(jìn)公司項(xiàng)目開發(fā)流程和管理策略、實(shí)行角色分工以及各司其職、通過團(tuán)隊(duì)協(xié)作最終完成項(xiàng)目設(shè)計(jì)與開發(fā),呈現(xiàn)出通過分組來實(shí)現(xiàn)項(xiàng)目式教學(xué)。該模式在實(shí)際實(shí)施過程中,存在兩個(gè)明顯缺陷:一是因角色分工而職責(zé)固定,不能達(dá)到全面訓(xùn)練和鍛煉學(xué)生能力的效果;二是團(tuán)隊(duì)內(nèi)只有部分成員在踏踏實(shí)實(shí)地進(jìn)行設(shè)計(jì)與開發(fā),個(gè)別人則濫竽充數(shù)或充當(dāng)添頭,根本沒有實(shí)質(zhì)性參與、根本達(dá)不到團(tuán)隊(duì)合作的效果和目的。
“分組合作”雖與“團(tuán)隊(duì)項(xiàng)目式教學(xué)”有些相近,但更存在不同。
“分組合作”,首先是分組。以一個(gè)寢室作為一個(gè)實(shí)驗(yàn)組,一個(gè)寢室內(nèi)通常有4~6名學(xué)生,他們朝夕相處,在生活習(xí)慣、個(gè)人愛好等方面一般具有共性,且寢室為溝通交流提供了更為便捷的場所;或者志趣相投的4~6名學(xué)生組成一組,這樣的自愿組合為問題的深入探討提供了強(qiáng)大的基礎(chǔ)和凝聚力。
其次是輪流主持。即組內(nèi)每次實(shí)驗(yàn)研討的主持人實(shí)行輪流坐莊,“莊主”負(fù)責(zé)主持、記錄每人的發(fā)言(紙質(zhì)記載和手機(jī)錄音錄像)。研討只涉及算法設(shè)計(jì)、疑難討論,不涉及具體編碼,每人都必須發(fā)言、極力避免一言堂或大包大攬、以及出工不出力等現(xiàn)象。
第三是獨(dú)立編碼。即根據(jù)上一步研討得出的算法,組員各自獨(dú)立完成實(shí)驗(yàn)題的編碼、調(diào)試,出現(xiàn)個(gè)人不能解決的問題,可以再次組織討論和尋求幫助。
第四是答辯和評價(jià)。各組派主持人闡述本組解題算法、特點(diǎn)、優(yōu)勢或創(chuàng)新,全組成員回答其他小組的提問和質(zhì)疑、甚至刁鉆或拓展性的問題等。在闡述、回答、辯論、評比過程中,教師可以適時(shí)地進(jìn)行點(diǎn)評、啟發(fā)、拓展等,這就是實(shí)驗(yàn)翻轉(zhuǎn)。
第五是撰寫實(shí)驗(yàn)報(bào)告。根據(jù)個(gè)人、組內(nèi)和組間的發(fā)言、教師的意見等,撰寫個(gè)人的實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)報(bào)告的重點(diǎn)是實(shí)驗(yàn)項(xiàng)目解決方案及其優(yōu)缺點(diǎn)、程序調(diào)試心得、啟發(fā)、感悟等。
第六是教師評分。教師根據(jù)闡述、問答、辯論、評比、實(shí)驗(yàn)報(bào)告等對各小組及其組員進(jìn)行綜合評分、評語,從而調(diào)控分組合作教學(xué)的全過程。
“分組合作”常態(tài)化、貫穿于實(shí)驗(yàn)教學(xué)過程之中,它雖存在分組、但更強(qiáng)調(diào)合作,組內(nèi)成員全程參與實(shí)驗(yàn)設(shè)計(jì)、討論,最重要的是實(shí)行輪流主持,從而提高實(shí)驗(yàn)參與率;組間通過分享實(shí)驗(yàn)成果、評比、相互借鑒和吸收,從而提高實(shí)驗(yàn)質(zhì)量。
3 分組合作的實(shí)例
3.1 實(shí)驗(yàn)題設(shè)計(jì)
分組合作實(shí)驗(yàn)?zāi)J揭灾就篮系膶W(xué)生分組、恰如其分的實(shí)驗(yàn)題設(shè)計(jì)為基礎(chǔ)而展開。譬如,在學(xué)習(xí)了《C語言程序設(shè)計(jì)》中的數(shù)組、函數(shù)之后,圍繞運(yùn)用數(shù)組和自定義函數(shù)求最值,設(shè)計(jì)了如下實(shí)驗(yàn)題:
(1)求最大值的下標(biāo);
(2)求最大、最小值的下標(biāo);
(3)歌詠比賽中若干評委給一名歌手打分,求歌手的最后得分。評分方式是:去掉一個(gè)最高分和一個(gè)最低分后的平均值就是該選手的最后得分;
(4)求最大、次大值的下標(biāo);
(5)求最大值出現(xiàn)的位置及次數(shù)(若存在多個(gè)最大值,它們必然相等);
(6)實(shí)現(xiàn)類似于考試成績排名的輸出效果(成績相同則名次相同);
(7)實(shí)現(xiàn)數(shù)字黑洞[4](查閱資料了解什么是數(shù)字黑洞);
(8)在一個(gè)整型數(shù)組中,求和最大的連續(xù)子序列[5](求得和及其起始位置)。例如:在{-2,11,-4,13,-5,-2,3}中,和最大的連續(xù)子序列是{11,-4,13},和是20,起止位置分別是1和3。
3.2小組討論
學(xué)生在小組討論時(shí),主要圍繞函數(shù)參數(shù)的選取、算法設(shè)計(jì)及其效率、測試數(shù)據(jù)的設(shè)計(jì)、算法有無Bug、算法改進(jìn)等方面進(jìn)行討論。
3.2.1討論實(shí)驗(yàn)題特點(diǎn)
一組內(nèi)的同學(xué)圍坐在一起進(jìn)行討論:對這些題目進(jìn)行歸類分析,可以確認(rèn)它們涉及的知識點(diǎn)、性質(zhì)、難度。下面是某一小組經(jīng)討論后確認(rèn)的實(shí)驗(yàn)題特點(diǎn),如表1所示。
由此可見,這批題目按照由易到難、由簡入繁、逐步加深、拓展應(yīng)用的思路進(jìn)行設(shè)計(jì)。這種循序漸進(jìn)的設(shè)計(jì)思路有利于發(fā)現(xiàn)知識點(diǎn)的雛形、有利于鞏固基本原理、有利于擴(kuò)展知識應(yīng)用范圍、有利于開拓解題思路、有利于引導(dǎo)創(chuàng)新思維等。
3.2.2討論模塊化
結(jié)構(gòu)化程序設(shè)計(jì)的基本原則是“模塊化”。模塊化通過函數(shù)來實(shí)現(xiàn),重點(diǎn)考慮模塊的劃分、從而體現(xiàn)函數(shù)的重用性,盡量不要將函數(shù)需要的數(shù)據(jù)固化在代碼之中;還需考慮函數(shù)內(nèi)的高內(nèi)聚、函數(shù)間的低耦合。
3.2.3討論函數(shù)原型設(shè)計(jì)
如何設(shè)計(jì)函數(shù)的參數(shù)個(gè)數(shù)和類型是初學(xué)者使用函數(shù)面臨的重點(diǎn)、難點(diǎn),因?yàn)楹瘮?shù)的參數(shù)個(gè)數(shù)和類型這兩個(gè)問題相互交織、相互影響。函數(shù)的參數(shù)個(gè)數(shù)取決于題目的已知條件和求解結(jié)果(返回值)的個(gè)數(shù);函數(shù)的參數(shù)傳遞可分為傳值和傳址,什么情況下使用普通值作為參數(shù)、什么情況下使用指針作參數(shù),是初學(xué)者常常困惑的問題。上述這批題目都需要使用指針作為函數(shù)參數(shù)、且指針型參數(shù)可能有多個(gè)。如第一題的函數(shù)原型可以設(shè)計(jì)成下面幾種形式:
intcalMax(int array[],int n);
intcalMax(int *array,int n);
voidcalMax(int *array,intn,int *pMaxNo);
通過實(shí)驗(yàn)可以回顧和鞏固課堂知識、總結(jié)規(guī)律。譬如,對于函數(shù)形參設(shè)置的規(guī)律性結(jié)論:若需要通過函數(shù)運(yùn)算得到多個(gè)返回值,則應(yīng)該通過函數(shù)參數(shù)來解決、且對應(yīng)參數(shù)必須使用指針型的;凡是涉及到數(shù)組的問題,相關(guān)自定義函數(shù)至少包括兩個(gè)參數(shù):一是數(shù)組的首地址(指針),二是數(shù)組的元素個(gè)數(shù)。
3.2.4討論算法及其效率
在程序設(shè)計(jì)之中,對于簡單的問題應(yīng)講究效率第一、清晰第二,對于復(fù)雜的問題應(yīng)遵循清晰第一、效率第二的原則。
譬如,實(shí)驗(yàn)題中的(2)、(4),應(yīng)該使用一個(gè)循環(huán)中包含if-else的嵌套來實(shí)現(xiàn),而不是使用兩個(gè)獨(dú)立的循環(huán)或者單分支的if來分別求解。
3.2.5討論測試數(shù)據(jù)
對于任意一個(gè)程序,僅僅使用一組測試數(shù)據(jù)不足以檢驗(yàn)其正確性。
譬如,實(shí)驗(yàn)題中的(4),在測試時(shí)至少包含四組數(shù)據(jù):遞增序列、遞減序列、雜亂序列、重復(fù)序列,否則很難發(fā)現(xiàn)代碼中可能存在的Bug。
在選擇測試數(shù)據(jù)時(shí),數(shù)據(jù)相差太大、毫無規(guī)律將會(huì)給人工判斷結(jié)果、辨別程序的正確性帶來困難和不便、從而花費(fèi)較多的人工時(shí)間。因此,測試數(shù)據(jù)的選擇應(yīng)該遵循簡單但不失一般性的原則。
3.2.6 討論Bug
程序是否存在Bug,雖不是《C語言程序設(shè)計(jì)》要重點(diǎn)關(guān)注的問題,但毫不關(guān)心則有可能導(dǎo)致錯(cuò)誤的算法、程序代碼、實(shí)驗(yàn)結(jié)果。
譬如,對于實(shí)驗(yàn)題中的(4),若采用常規(guī)的算法來實(shí)現(xiàn),在測試數(shù)據(jù)的第一個(gè)值就是最大值時(shí)將會(huì)得到錯(cuò)誤的次大值,隨之而來的則是算法的改進(jìn);仔細(xì)研究還會(huì)發(fā)現(xiàn)若測試數(shù)據(jù)中存在多個(gè)相等的最大值,哪個(gè)才是次大值呢?不同的同學(xué)可能存在不同的觀點(diǎn)和結(jié)論。所以,提出了(5)題。
4 實(shí)驗(yàn)效果
在我院計(jì)算機(jī)類2018級兩個(gè)平行班(各70人)分別實(shí)施普通教學(xué)和分組合作教學(xué),選取上面的實(shí)驗(yàn)題作為測試數(shù)據(jù),得到如圖1、圖2所示結(jié)果。
1班沒有開展討論和交流、學(xué)生完全自主完成實(shí)驗(yàn)題,因而對于難度較大的題目,程序代碼正確率不高、而雷同率頗高;2班開展分組合作教學(xué),程序代碼的正確率、質(zhì)量顯著提高。由此可見,分組合作教學(xué)能顯著提高實(shí)驗(yàn)成績。
5結(jié)語
實(shí)施分組合作教學(xué),重點(diǎn)是將全員討論、集思廣益落到實(shí)處。因?yàn)橹挥腥翰呷毫Αⅰ耙粋€(gè)都不能少”才能促進(jìn)和提高學(xué)生學(xué)習(xí)的主動(dòng)性、積極性,否則任何改革都是紙上談兵、緣木求魚。分組合作實(shí)驗(yàn)教學(xué)下一步研究的重點(diǎn)是圍繞知識點(diǎn)設(shè)計(jì)高質(zhì)量的實(shí)驗(yàn)題。
參考文獻(xiàn)
[1] 張士輝,朱冬光,王國英.計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)專業(yè)校企合作創(chuàng)新人才培養(yǎng)模式研究[J].實(shí)驗(yàn)技術(shù)與管理,2017,34(2):189-193.
[2] 鄧雪妍.三結(jié)合課堂教學(xué)方法研究[J].中國大學(xué)教學(xué),2011(7):62-63.
[3] 武春嶺,童世華,何歡,趙鵬舉.高職“產(chǎn)學(xué)制、項(xiàng)目制、導(dǎo)師制”創(chuàng)新型人才培養(yǎng)模式研究[J].中國職業(yè)技術(shù)教育,2017(7):58-61.
[4] 數(shù)學(xué)黑洞[EB/OL].https://baike.so.com/doc/6032390-6245392.html.
[5] 沙丁魚的沙堡. 最大連續(xù)子序列求和(5種)[EB/OL].https://blog.csdn.net/qq_41879767/article/details/82791028,20180920.
【通聯(lián)編輯:王力】