伍 祥 王曉慶 王嘯楠
(安徽信息工程學(xué)院 計(jì)算機(jī)與軟件工程學(xué)院,安徽 蕪湖 241000)
《C語言程序設(shè)計(jì)》是絕大多數(shù)本科院校計(jì)算機(jī)專業(yè)一年級上學(xué)期所開設(shè)的第一門專業(yè)必修課程,同時,C程序語言也是多種軟硬件課程的先修課程和基礎(chǔ),該課程對計(jì)算機(jī)專業(yè)的重要性不言而喻。因此,針對《C語言程序設(shè)計(jì)》,國內(nèi)諸多學(xué)者在該課程諸多方面和不同角度提出了一系列卓有成效的舉措和改革。羅愷韻等人為提高學(xué)生學(xué)習(xí)C語言課程的主觀能動性和自學(xué)能力,提出了一種基于反轉(zhuǎn)課堂的教學(xué)模式[1];尹蘭蘭等人利用easyX插件,將C語言課程中涉及的重要算法可視化,以畫面的方式展現(xiàn)給學(xué)生,大大提升了課堂的趣味性和學(xué)生的學(xué)習(xí)熱情[2];王磊等人提出以計(jì)算思維為導(dǎo)向的C語言教學(xué)模式改革和時間,用以提高學(xué)生各方面專業(yè)能力[3];謝方方等人通過“思維導(dǎo)圖”對C語言課程的知識點(diǎn)進(jìn)行梳理總結(jié),使得學(xué)生在掌握該課程零碎內(nèi)容更具條理性,極大地提升了其學(xué)習(xí)和掌握知識的效率[4];賈金芳等人為改變“老師只講、學(xué)生只聽”以及授課形式單一的課堂格局,提出了基于SPOC方法的C語言課程改革模式,并將其應(yīng)用到實(shí)踐當(dāng)中,在學(xué)生的知識掌握程度和動手能力等方面,取得了良好的效果[5];林平根據(jù)MOOC靈活、針對性強(qiáng)等特點(diǎn),將其引入至計(jì)算機(jī)教學(xué)改革之中,提出計(jì)算機(jī)相關(guān)課程未來的改革方向[6]。
上述改革和實(shí)踐在一定程度上對學(xué)生的C語言學(xué)習(xí)起到助力作用,并在真實(shí)的課程教學(xué)中起到較好的效果,但目前C語言教學(xué)仍存在以下幾方面的問題:(1)學(xué)生在C語言學(xué)習(xí)過程中難以培養(yǎng)模塊化編程思維;(2)C語言理論知識和中學(xué)課程理論知識差異性較大,學(xué)生一時難以很好地接受;(3)學(xué)生課下對該“理論+實(shí)踐”類課程的復(fù)習(xí)、預(yù)習(xí)情況得不到有效監(jiān)管。
C語言課程是《面向?qū)ο蟪绦蛟O(shè)計(jì)》《數(shù)據(jù)結(jié)構(gòu)》等相關(guān)編程課程的先修課程,因此C語言課程在整個計(jì)算機(jī)專業(yè)類課程的地位舉足輕重。但是,學(xué)生在進(jìn)行后續(xù)編程類課程中,很少具有將模塊化思維運(yùn)用到實(shí)際編碼中的意識,即少有學(xué)生將獨(dú)立功能模塊化為函數(shù),進(jìn)而在主函數(shù)中調(diào)用,而是把整個程序代碼寫入主函數(shù)之中。這一編程習(xí)慣會直接對后續(xù)課程的學(xué)習(xí)產(chǎn)生較大障礙,對專業(yè)知識的掌握和科學(xué)思維的鍛煉造成極為不利的影響。
傳統(tǒng)經(jīng)典教材通常涵蓋C語言相關(guān)的所有知識,通常包括C語言介紹、C語言算法、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體及文件等章節(jié),其目錄也依據(jù)從易至難逐個鋪開,圖1為該類教材的目錄結(jié)構(gòu)。
如圖1所示,該類教材函數(shù)章節(jié)處于整個教材的后半段內(nèi)容之中,學(xué)生在學(xué)習(xí)該課程大半過后才進(jìn)入函數(shù)的學(xué)習(xí)當(dāng)中。根據(jù)近幾年的授課情況,學(xué)生在課程的學(xué)習(xí)過程中,學(xué)期前期的學(xué)習(xí)興趣和熱情度明顯高于學(xué)期后期,因此,如果在學(xué)習(xí)的后半段才接觸函數(shù)知識,其無法有效地將函數(shù)思想貫穿到C語言程序編寫中,從而很難具有模塊化的思維過程,直接影響后續(xù)編碼的效率和習(xí)慣及面向?qū)ο蟮乃枷胄纬伞?/p>
圖1 傳統(tǒng)C語言程序設(shè)計(jì)教材目錄結(jié)構(gòu)
為解決這一問題,本文對C語言課程的目錄課程進(jìn)行了部分調(diào)整,下頁圖2即為本文所述的授課目錄順序。
本文將原來目錄下的第七章“函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)”調(diào)整至第四章,原四、五、六三章依次后移,形成如圖2所示的目錄結(jié)構(gòu)。
圖2 該課程授課目錄順序
通過上述調(diào)整,一旦學(xué)生對C語言有初步的了解,掌握了C語言基本語法之后就立即進(jìn)入到函數(shù)的學(xué)習(xí)中,并在后續(xù)諸如選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組等章節(jié)中,強(qiáng)制要求學(xué)生使用函數(shù)“封裝”功能模塊。
通過課程的目錄結(jié)構(gòu)優(yōu)化,學(xué)生在之后的編碼中明顯具有模塊化思維,并在一年級下學(xué)期及大二學(xué)年的面向?qū)ο蟪绦蛟O(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等課程中,能對其思想有更好的理解和掌握。
由于理工科學(xué)生在中學(xué)階段的學(xué)習(xí)重點(diǎn)主要集中在數(shù)學(xué)、物理、化學(xué)等科目,因此,即便是計(jì)算機(jī)專業(yè)的學(xué)生,剛進(jìn)入大學(xué)對計(jì)算機(jī)類專業(yè)課如C語言程序設(shè)計(jì)等課程重視程度不夠。此外,C語言課程本身和中學(xué)課程在學(xué)習(xí)和理解方面差異性較大,如果采用中學(xué)的思維方式,可能無法達(dá)到很好的學(xué)習(xí)效果,這就使學(xué)生在C語言學(xué)習(xí)過程存在較多困難,更加降低了其學(xué)習(xí)的興趣度。
為了解決上述問題,本文首先通過問卷調(diào)查,梳理出C語言重點(diǎn)和難點(diǎn)(亦即學(xué)生普遍存在問題的章節(jié)內(nèi)容)的交集主要集中在函數(shù)、數(shù)組和指針章節(jié)。
表1 導(dǎo)學(xué)故事情節(jié)舉例
針對該課程的重點(diǎn),制作形象生動的故事情節(jié)導(dǎo)入資源。將重點(diǎn)內(nèi)容變成生活中常見的、有趣的故事情節(jié),利用聲音、文本、圖像等多媒體形式為學(xué)生提供關(guān)于新知識的引入,包含了與已學(xué)知識的聯(lián)系,課程實(shí)際應(yīng)用價值,與之后知識體系的關(guān)聯(lián),課程內(nèi)部知識之間邏輯關(guān)系,幫助學(xué)生系統(tǒng)認(rèn)識課程。然后將動畫共享至課程學(xué)習(xí)資源中,以便學(xué)生能有效地預(yù)習(xí),大大降低課程的乏味性,極大地激發(fā)和提升了學(xué)生的學(xué)習(xí)興趣。以單分支結(jié)構(gòu)和雙分支結(jié)構(gòu)為例,導(dǎo)學(xué)內(nèi)容如表1所示(故事情節(jié)來源于自編講義)。
學(xué)生脫離“高壓”下的高中學(xué)習(xí)進(jìn)入大學(xué)生活,學(xué)習(xí)狀況和節(jié)奏落差較大,缺乏自我約束能力的學(xué)生無法合理規(guī)劃課下時間,使學(xué)生在課程內(nèi)容的預(yù)習(xí)和復(fù)習(xí)中產(chǎn)生極大的障礙,C語言程序設(shè)計(jì)是一門學(xué)生在一年級上學(xué)期理論與實(shí)踐結(jié)合重要的專業(yè)必修課程,因此,針對該課程制定一個科學(xué)合理的課下監(jiān)管機(jī)制顯得更加必要。
為此,本文基于博思智慧學(xué)習(xí)平臺[7],有效地將學(xué)生的課下學(xué)習(xí)時間作合理的安排和規(guī)劃。該課程的授課形式包括理論、實(shí)踐和線下三個部分,其比例為1:1:1。線下課程并非類似于傳統(tǒng)課程要求學(xué)生“刷題”“刷課”,不僅沒有起到應(yīng)有的效果,反而浪費(fèi)了學(xué)習(xí)時間。
博思智慧學(xué)習(xí)平臺對瀏覽速度過快判定為“惡意刷課”,對重復(fù)度過高的代碼判定為“抄襲”,有效杜絕了過程中的違規(guī)行為。此外。教師可以通過“報表中心”導(dǎo)出學(xué)生的學(xué)期情況。圖3為教師端可見的各班學(xué)習(xí)時長統(tǒng)計(jì)。
圖3 各班學(xué)習(xí)時長統(tǒng)計(jì)圖
另外,在整個學(xué)期之中,分別在分支結(jié)構(gòu)章節(jié)、循環(huán)結(jié)構(gòu)章節(jié)、結(jié)構(gòu)體章節(jié)結(jié)束之后安排三次階段考核,其總和所占綜合比較與期末成績等同,多維度多次考核增加了考核的公平性、科學(xué)性和合理性[8],同時,也讓學(xué)生在學(xué)習(xí)過程中做到反復(fù)復(fù)習(xí),避免了期末考試之前“臨時抱佛腳”的尷尬局面。
針對傳統(tǒng)C語言課程教學(xué)中可能存在的問題,本文分別通過優(yōu)化目錄結(jié)構(gòu)、趣味故事情節(jié)導(dǎo)入及基于博思智慧學(xué)習(xí)平臺的過程化監(jiān)管機(jī)制有效地解決了部分問題。上述改革和實(shí)踐還應(yīng)在過程化考核中將比例更加細(xì)化、科學(xué)化,這也將是下一步的研究方向。