成都信息工程大學(xué) 何鈺娟
自1972 年C 語(yǔ)言誕生以來(lái),歷經(jīng)幾十年,其間出現(xiàn)了許多其他的編程語(yǔ)言,但C 語(yǔ)言的地位卻依舊穩(wěn)固,一直保持活躍的狀態(tài)。根據(jù)編程語(yǔ)言社區(qū)TIOBE 編程語(yǔ)言排行榜公布的數(shù)據(jù),C 語(yǔ)言長(zhǎng)居榜首前三名。2020 年5 月開(kāi)始,C 語(yǔ)言王者歸來(lái),重新回到榜首,雄踞第一。C 生萬(wàn)物,是編程之本,C 語(yǔ)言不僅自身功能強(qiáng)大、應(yīng)用廣泛,學(xué)習(xí)C 語(yǔ)言還可以為學(xué)習(xí)其他計(jì)算機(jī)語(yǔ)言打下基礎(chǔ)。
多年來(lái),C 語(yǔ)言程序設(shè)計(jì)一直是我校理工類專業(yè)學(xué)生的第一門程序設(shè)計(jì)課程,通常在大學(xué)一年級(jí)開(kāi)設(shè)。該課程的教學(xué)目標(biāo)是教會(huì)學(xué)生使用C 語(yǔ)言進(jìn)行程序設(shè)計(jì),使學(xué)生掌握程序設(shè)計(jì)的基本思想和方法,培養(yǎng)學(xué)生分析問(wèn)題和解決問(wèn)題的能力。通過(guò)該課程的學(xué)習(xí),學(xué)生應(yīng)具備較強(qiáng)的程序設(shè)計(jì)能力,為后續(xù)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
由于C 語(yǔ)言是我校新生的第一門程序設(shè)計(jì)課程,所面對(duì)的學(xué)生程序設(shè)計(jì)基礎(chǔ)基本為零,而C 語(yǔ)言的學(xué)習(xí)內(nèi)容包括兩方面,一是熟悉、掌握并能靈活運(yùn)用C 語(yǔ)言的概念和語(yǔ)法(包括運(yùn)算符與表達(dá)式、輸入輸出、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、文件等),二是學(xué)習(xí)計(jì)算機(jī)解決問(wèn)題的方法,實(shí)現(xiàn)問(wèn)題求解思維方式的轉(zhuǎn)換,培養(yǎng)計(jì)算思維能力。這恰恰是本課程的難點(diǎn),要引導(dǎo)初學(xué)者實(shí)現(xiàn)問(wèn)題求解思維方式的轉(zhuǎn)換,具有很高的難度。在傳統(tǒng)的教學(xué)中,課堂教學(xué)主要由教師講解C 語(yǔ)言基礎(chǔ)知識(shí),上機(jī)課由學(xué)生動(dòng)手操作練習(xí)。而該門課程實(shí)踐性極強(qiáng),學(xué)生需要花費(fèi)大量的時(shí)間進(jìn)行編程訓(xùn)練以掌握程序設(shè)計(jì)的思想和方法,提升編程能力。但由于課內(nèi)上機(jī)編程時(shí)間有限,學(xué)生在課外進(jìn)行編程練習(xí)時(shí),又無(wú)法獲得教師及時(shí)的指導(dǎo),無(wú)法與教師面對(duì)面進(jìn)行充分的交流和更深入的探討,學(xué)生難以突破課程難點(diǎn)。學(xué)生體會(huì)不到學(xué)習(xí)程序設(shè)計(jì)的樂(lè)趣,部分學(xué)生感覺(jué)學(xué)習(xí)越來(lái)越吃力,逐漸喪失信心甚至放棄學(xué)習(xí)。因此,我校對(duì)該門課程教學(xué)進(jìn)行了新的探索和嘗試。
如今,信息化技術(shù)已經(jīng)滲透到社會(huì)的各個(gè)方面。教育領(lǐng)域中,一場(chǎng)信息化的顛覆性變革正在發(fā)生。在“互聯(lián)網(wǎng)+教育”的新形勢(shì)下,我們需要采取新的有效措施對(duì)傳統(tǒng)教學(xué)進(jìn)行改革?;旌辖虒W(xué)是將傳統(tǒng)的課堂面對(duì)面教學(xué)和網(wǎng)絡(luò)教學(xué)進(jìn)行有機(jī)結(jié)合的教學(xué)方式,是學(xué)習(xí)資源、不同學(xué)習(xí)環(huán)境和虛擬網(wǎng)絡(luò)環(huán)境的混合。自2012 年MOOC 大潮被掀起至今,已有很多名校名師提供了各類課程的優(yōu)質(zhì)MOOC 教學(xué)資源供人們學(xué)習(xí)使用,僅C 語(yǔ)言程序設(shè)計(jì)課程,中國(guó)大學(xué)MOOC 上就有多個(gè)學(xué)校提供的教學(xué)視頻、配套課件等資源。既然網(wǎng)絡(luò)上已有教學(xué)資源可以利用,而教師在課堂中講授的理論課內(nèi)容與網(wǎng)絡(luò)上現(xiàn)有的視頻課內(nèi)容大同小異,并且如果給學(xué)生提供視頻學(xué)習(xí),學(xué)生可以反復(fù)觀看。
為了在有限的課程學(xué)時(shí)下,提高教學(xué)效率和教學(xué)質(zhì)量,學(xué)校將MOOC 和教師、場(chǎng)地資源有效融合,采用線上線下混合式教學(xué)的方式對(duì)課程教學(xué)改革進(jìn)行了探索和嘗試。
取消理論課,將原有理論講授時(shí)間改為上機(jī)課,教師不再花費(fèi)大量時(shí)間進(jìn)行理論講授,節(jié)約出的時(shí)間改為上機(jī)編程訓(xùn)練。理論課教學(xué)由學(xué)生在課外自主觀看與教材配套的MOOC 視頻完成(理論課的學(xué)習(xí)在線上完成)。線下上課(即上機(jī))以學(xué)生編程練習(xí)為主,教師適當(dāng)點(diǎn)評(píng),讓學(xué)生作為學(xué)習(xí)主體參與整個(gè)學(xué)習(xí)過(guò)程,讓學(xué)生在做中學(xué)。上機(jī)課中,教師作為學(xué)生學(xué)習(xí)的教練,為學(xué)生制訂學(xué)習(xí)與訓(xùn)練計(jì)劃并進(jìn)行指導(dǎo),幫助學(xué)生解決困難,增加學(xué)生的興趣與信心。學(xué)生課前學(xué)習(xí)MOOC 視頻與教材并完成預(yù)習(xí)作業(yè),上課時(shí)在機(jī)房實(shí)踐、討論并接受教師的答疑指導(dǎo)。
為了保證教學(xué)效果,學(xué)生的平時(shí)學(xué)習(xí)實(shí)行嚴(yán)格的過(guò)程化考核,課前會(huì)有預(yù)習(xí)作業(yè),每次上機(jī)都會(huì)有明確的上機(jī)任務(wù);課后會(huì)有課后作業(yè),鞏固所學(xué)內(nèi)容;平時(shí)還會(huì)有階段測(cè)試。每次作業(yè)和測(cè)試成績(jī)均會(huì)詳細(xì)記錄,定期對(duì)學(xué)生公布,平時(shí)學(xué)習(xí)成績(jī)差的,取消期末考試資格。
學(xué)生自主能力訓(xùn)練與過(guò)程化考核貫穿課程教學(xué)全過(guò)程,具體包括以下環(huán)節(jié)。
課前預(yù)習(xí)。要求觀看指定的MOOC 視頻、閱讀教材,完成配套的預(yù)習(xí)作業(yè)(以選擇題為主)以提升觀看效果,加深對(duì)知識(shí)的理解。
上機(jī)教學(xué)訓(xùn)練。以編程為主,深化學(xué)生對(duì)知識(shí)的理解運(yùn)用,教師現(xiàn)場(chǎng)答疑指導(dǎo),學(xué)生可相互討論。上機(jī)環(huán)境為系統(tǒng)禁用“U 盤和無(wú)關(guān)網(wǎng)絡(luò)訪問(wèn)”,以避免復(fù)制抄襲。上機(jī)作業(yè)限時(shí)完成并計(jì)算成績(jī),以正反饋預(yù)習(xí)并促進(jìn)上機(jī)效果。未能在上機(jī)期間完成的部分,延時(shí)到晚上在指定的防復(fù)制機(jī)房完成,成績(jī)進(jìn)行折算,以促進(jìn)每次上機(jī)的教學(xué)目標(biāo)能夠較好地完成,避免學(xué)習(xí)拖欠。
課后作業(yè)。以編程為主,每周10 個(gè)左右編程作業(yè),進(jìn)一步鞏固相關(guān)的知識(shí)點(diǎn)。
質(zhì)量控制。上機(jī)教學(xué)時(shí)不定期進(jìn)行20 分鐘左右的課堂測(cè)試,檢查課后作業(yè)效果并確定課后作業(yè)的可信度、作業(yè)成績(jī)打折系數(shù),3 次單元測(cè)試分階段檢查教學(xué)效果。課后作業(yè)可信度較差或單元測(cè)試成績(jī)較差的,課后作業(yè)限定在防復(fù)制機(jī)房完成。
課前預(yù)習(xí)、課堂測(cè)驗(yàn)、上機(jī)作業(yè)、課后作業(yè)、階段測(cè)驗(yàn)等成績(jī)構(gòu)成平時(shí)成績(jī),平時(shí)成績(jī)低于60 分將取消期末考試資格,以此督促學(xué)生的學(xué)習(xí),提升學(xué)習(xí)效果。
在課程教學(xué)中,采取以下措施對(duì)學(xué)生進(jìn)行上機(jī)教學(xué)的指導(dǎo)和能力的訓(xùn)練。
首先,程序的編寫(xiě)是給別人看的,而不是只給程序員自己看。因此,學(xué)校參考了業(yè)界比較推崇的一些編程規(guī)范,制定了適合C 語(yǔ)言初學(xué)者使用的編程規(guī)范,目的在于培養(yǎng)學(xué)生良好的編程規(guī)范意識(shí)和素質(zhì),促進(jìn)所設(shè)計(jì)程序的安全、健壯、可靠、可讀與可維護(hù)。在編程中,要求學(xué)生注重程序編碼規(guī)范,以良好的編碼規(guī)范增強(qiáng)程序的可讀性、降低程序難度、減少錯(cuò)誤,程序編碼有2 處以上不規(guī)范的,程序直接計(jì)0 分。
其次,設(shè)計(jì)相應(yīng)的試題。通過(guò)讓學(xué)生填寫(xiě)程序運(yùn)行表(變量預(yù)期值與實(shí)際值、屏幕預(yù)期輸出與實(shí)際輸出、程序預(yù)期流程與實(shí)際流程、是否實(shí)現(xiàn)設(shè)計(jì)目標(biāo)等)、設(shè)置斷點(diǎn)查找運(yùn)行錯(cuò)誤行號(hào)等手段,增強(qiáng)學(xué)生對(duì)程序運(yùn)行過(guò)程的理解,強(qiáng)化學(xué)生的程序跟蹤調(diào)試能力。對(duì)于較復(fù)雜的運(yùn)行表,教師可設(shè)置系統(tǒng)自動(dòng)標(biāo)記學(xué)生錯(cuò)填的單元格以提示學(xué)生。盡力將以前要通過(guò)教師教授的重難點(diǎn)轉(zhuǎn)化為選擇試題,讓學(xué)生根據(jù)上機(jī)結(jié)果輔以簡(jiǎn)略的思考后自行得出結(jié)論,既節(jié)約了講解時(shí)間,又能起到較好的效果。
最后,利用網(wǎng)絡(luò)社交平臺(tái)為學(xué)生提供及時(shí)的課后答疑。教師指導(dǎo)學(xué)生時(shí),要注重對(duì)學(xué)生思維的啟發(fā)和學(xué)生能力的提升,以及高效的教學(xué)效率。第一,精講多練、做中學(xué),以學(xué)生練習(xí)為主,教師巡視答疑,了解學(xué)生情況;普遍性問(wèn)題和重難點(diǎn)、技巧精講點(diǎn)評(píng)。第二,分級(jí)啟發(fā),教師不一步提示到位,鼓勵(lì)學(xué)生自我創(chuàng)造、敢于猜想和實(shí)驗(yàn)、分析研究、發(fā)現(xiàn)和創(chuàng)造知識(shí),體驗(yàn)收獲,保護(hù)和建立自信。為少占用學(xué)生的編程時(shí)間,特別是照顧不同進(jìn)度的學(xué)生,教師提前準(zhǔn)備好作業(yè)的自頂向下、逐步求精的分級(jí)提示課件供學(xué)生自主使用,鼓勵(lì)學(xué)生先看宏觀提示完成作業(yè),再看進(jìn)一步的詳細(xì)提示。第三,鼓勵(lì)學(xué)生相互討論,在討論過(guò)程中注重對(duì)同學(xué)的啟發(fā)。
貫徹編程實(shí)際講究“簡(jiǎn)單、明確、易讀、安全、可靠”的要求,線下的期末考試著重考查學(xué)生的編程能力和規(guī)范,不考語(yǔ)法、函數(shù)原型等翻看教材就可以解決的問(wèn)題??荚嚥蛔非筮^(guò)于復(fù)雜、精練的表達(dá)式和語(yǔ)句,不追求掌握各種語(yǔ)法的靈活組合,考試中為學(xué)生提供MSDN 幫助及較多的電子資源。同時(shí)進(jìn)行嚴(yán)格的考試管理,一方面嚴(yán)格監(jiān)考,另一方面從技術(shù)上采取措施防止學(xué)生作弊。第一,學(xué)生考試的座位號(hào)由計(jì)算機(jī)隨機(jī)生成,臨近考試時(shí)間進(jìn)入考場(chǎng)時(shí),學(xué)生才知曉考試座位號(hào),不同班級(jí)、不同專業(yè)的學(xué)生穿插安排;第二,每位學(xué)生的試題內(nèi)容由計(jì)算機(jī)按一定的難度比例從題庫(kù)中隨機(jī)抽取,做到每位學(xué)生的試題內(nèi)容不一樣;第三,禁止使用U 盤等外部存儲(chǔ)器。
在學(xué)期末進(jìn)行的學(xué)生問(wèn)卷調(diào)查中,學(xué)生對(duì)混合式教學(xué)的反饋較好,認(rèn)為課程注重思維訓(xùn)練和自主獨(dú)立學(xué)習(xí)能力的鍛煉。MOOC 課程講解十分詳細(xì),課后復(fù)習(xí)方便,學(xué)生喜愛(ài)這種線上課程講解、線下教師指導(dǎo)訓(xùn)練的混合式教學(xué)方式,保證了教學(xué)效果。
程序設(shè)計(jì)課程的核心教學(xué)目標(biāo)是培養(yǎng)學(xué)生利用計(jì)算機(jī)分析和解決問(wèn)題的能力,學(xué)習(xí)怎樣用計(jì)算機(jī)思維去思考和解決問(wèn)題。程序設(shè)計(jì)不是聽(tīng)會(huì)的,也不是看會(huì)的,而是練會(huì)的。學(xué)生只有在編寫(xiě)大量程序之后,才能獲得扎實(shí)的知識(shí),找到程序設(shè)計(jì)的感覺(jué),最后運(yùn)用自如。
學(xué)校對(duì)傳統(tǒng)的以教師為主體、以“教”為中心的教學(xué)模式進(jìn)行改革,采用線上線下混合的教學(xué)模式,在教學(xué)過(guò)程中做到了以學(xué)生為主體、以“學(xué)”為中心,切實(shí)加強(qiáng)了學(xué)生實(shí)際動(dòng)手編程能力的訓(xùn)練。課程的教學(xué)改革對(duì)提高學(xué)生的編程能力以及培養(yǎng)計(jì)算思維能力具有積極的意義。教學(xué)改革是一個(gè)長(zhǎng)期的過(guò)程,需要教師不斷探索研究、教學(xué)實(shí)踐、總結(jié)經(jīng)驗(yàn),才能有效提高教學(xué)質(zhì)量,取得理想的教學(xué)效果。