【摘 要】針對目前非計(jì)算機(jī)專業(yè)C語言教學(xué)中存在的問題,提出注重計(jì)算思維培養(yǎng)、引入混合教學(xué)模式、精選教學(xué)內(nèi)容和加強(qiáng)實(shí)驗(yàn)實(shí)踐教學(xué)四項(xiàng)優(yōu)化措施。
【關(guān)鍵詞】C語言教學(xué);計(jì)算思維
【中圖分類號】G642 ? ? ? 【文獻(xiàn)標(biāo)識碼】A
【文章編號】2095-3089(2019)17-0017-01
一、引言
為了尊重學(xué)生個性與專業(yè)發(fā)展,培養(yǎng)符合新時代需求的有創(chuàng)新思維和創(chuàng)新能力的新型人材,早在2009年,教育部非計(jì)算機(jī)專業(yè)計(jì)算機(jī)基礎(chǔ)教學(xué)指導(dǎo)委員就提出了“1+X”模式教學(xué)改革的建議。所謂“1+X”課程體系,就是指大學(xué)計(jì)算機(jī)基礎(chǔ)課程+若干必修/選修課程。許多高校在必修/選修課程里,對于理工類專業(yè)都基本開設(shè)了有利于訓(xùn)練學(xué)生思維能力的程序設(shè)計(jì)類課程。由于C語言具有易于理解、語法簡潔、既可以面向高層開發(fā)也可面向底層開發(fā)等優(yōu)點(diǎn),一直是各高校程序設(shè)計(jì)類課程的首選。但在目前互聯(lián)網(wǎng)+時代,如果還是按傳統(tǒng)方法教授:重語法,輕實(shí)踐;教學(xué)內(nèi)容照本宣科,不進(jìn)行精選調(diào)整;教學(xué)模式還是老師講授學(xué)生實(shí)踐驗(yàn)證……那么隨著課程的推進(jìn),有的學(xué)生會逐漸感到枯燥無味,晦澀難懂,最后產(chǎn)生畏懼心理失去學(xué)習(xí)興趣,無法達(dá)到教學(xué)目標(biāo)和教學(xué)效果。因此,有必要從教學(xué)目標(biāo)、教學(xué)模式、教學(xué)內(nèi)容和實(shí)驗(yàn)實(shí)踐教學(xué)等方面進(jìn)行改良和優(yōu)化,以期讓學(xué)生能積極地投入到C語言的學(xué)習(xí)、思考和探究中來,達(dá)到思維能力和創(chuàng)新能力的培養(yǎng)。
二、C語言教學(xué)優(yōu)化途徑
1.注重計(jì)算思維能力的培養(yǎng)。
2010年7月,教育部高等學(xué)校計(jì)算機(jī)基礎(chǔ)課程教學(xué)指導(dǎo)委員會發(fā)布《九校聯(lián)盟(C9)計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》,標(biāo)志著我國高等學(xué)校計(jì)算機(jī)基礎(chǔ)教育進(jìn)入一個新的以計(jì)算思維為核心的計(jì)算機(jī)基礎(chǔ)教育階段。計(jì)算思維是指運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念求解問題、設(shè)計(jì)系統(tǒng)和理解人類行為的科學(xué)方法。在以往C語言的教學(xué)中,老師往往花費(fèi)大量的時間講授語法知識,忽視了對學(xué)生計(jì)算思維能力的訓(xùn)練,沒有實(shí)現(xiàn)知識技能傳授向思維能力培養(yǎng)的轉(zhuǎn)變。在C語言教學(xué)中,如果把握得當(dāng),其實(shí)是非常有利于培養(yǎng)學(xué)生的計(jì)算思維能力。具體體現(xiàn)在以下3個方面:
(1)解決問題的一般化思維訓(xùn)練。
在每一章節(jié)簡明扼要地講解語法知識后,應(yīng)花費(fèi)更多的時間應(yīng)用語法知識進(jìn)行程序?qū)嵗O(shè)計(jì)。一般采用案例教學(xué)法和任務(wù)驅(qū)動教學(xué)法。老師提出要解決的問題,引導(dǎo)學(xué)生全面分析問題,寫出解決問題的解答步驟,也即算法。算法出來后,程序也就呼之欲出,只要用C語言規(guī)范實(shí)現(xiàn)即可。程序是否正確,接下來進(jìn)行調(diào)試和修正,直至得到正確結(jié)果。最后,啟發(fā)學(xué)生思考是否還有其它解決方案并進(jìn)行對比,總結(jié)這一類問題的解題思路。發(fā)現(xiàn)問題,分析問題,明確解決問題步驟,解決問題,總結(jié)思路。通過大量的實(shí)例訓(xùn)練,特別是一些經(jīng)典核心算法的學(xué)習(xí)和使用,有助于學(xué)生形成解決問題的一般化思維。相信學(xué)生在以后求解工作或生活中的問題時,會做到積極思考、全面分析、條理清晰、多方權(quán)衡并找到最優(yōu)解決方案。
(2)模塊化思維訓(xùn)練。
C語言中對于復(fù)雜程序的處理采用了模塊化程序設(shè)計(jì)的概念。當(dāng)一個程序功能復(fù)雜時,我們將分而治之,把復(fù)雜功能分解成許多小功能,逐層向下,直至能分別實(shí)現(xiàn)和解決它們。這些小功能,也就是模塊。模塊最終通過函數(shù)來實(shí)現(xiàn)。例如實(shí)現(xiàn)對一個數(shù)組的排序,并實(shí)現(xiàn)數(shù)據(jù)的插入和刪除,要求插入和刪除后數(shù)組還是有序的。如果將整個功能用一個main()函數(shù)實(shí)現(xiàn),解題思路龐雜,容易混亂,且代碼實(shí)現(xiàn)也繁冗拖沓,難度較大。我們用模塊化思維可以輕而易舉地將它分解為主程序、排序、插入和刪除幾個模塊,并分別用函數(shù)實(shí)現(xiàn),增加了程序結(jié)構(gòu)的清晰度,降低了程序?qū)崿F(xiàn)的難度。這種模塊化思維訓(xùn)練,對于學(xué)生以后解決復(fù)雜問題時,將會是很好的指導(dǎo)和方法。
(3)抽象思維訓(xùn)練。
抽象思維是一項(xiàng)重要的思維能力,它有助于人們通過現(xiàn)象發(fā)現(xiàn)事物的共性和本質(zhì)。在運(yùn)用計(jì)算機(jī)編程時,程序是解決某一類問題的通用解法。因此,在問題分析階段,往往要通過大量的實(shí)例來進(jìn)行抽象建模,實(shí)現(xiàn)個別到一般的思維提升。比如在講用數(shù)組實(shí)現(xiàn)菲波拉契數(shù)列時,菲波拉契數(shù)列前兩項(xiàng)是1,后面的數(shù)據(jù)項(xiàng)為它前兩項(xiàng)之和。你讓學(xué)生逐一寫出前20項(xiàng),沒有任何問題。但讓他們用數(shù)組實(shí)現(xiàn)時,感到有難度。先申請數(shù)組int f[20],賦初值f[0]=1;f[1]=1,其余項(xiàng)通過抽象通式即可寫出:for(i=0;i<=20;i++) ?{f[i]=f[i-1]+f[i-2];}。此外,數(shù)位分離類、尋找區(qū)間有特點(diǎn)的數(shù)、漢諾塔、冒泡排序、二分法查找等等,都可讓學(xué)生的抽象思維能力得到有效訓(xùn)練。
2.引入混合式教學(xué)模式。
傳統(tǒng)C語言教學(xué)往往是老師課堂授課,實(shí)驗(yàn)課學(xué)生做實(shí)驗(yàn)實(shí)踐。
Mooc(Massive Open Online Course),又稱慕課的快速發(fā)展,對這一傳統(tǒng)的教學(xué)模式帶來了不小沖擊。Mooc教學(xué)資源豐富、不受時間空間限制、學(xué)生自主性較強(qiáng)、入學(xué)門檻低,受到了許多人的追捧。國內(nèi)比較知名的Mooc平臺有中國大學(xué)Mooc—愛課程網(wǎng)、清華大學(xué)的學(xué)堂在線和上海交通大學(xué)的好大學(xué)網(wǎng)絡(luò)教學(xué)平臺。我校也正在積極建設(shè)和使用自己的Mooc平臺—湖南師范大學(xué)在線課程中心。這些Mooc平臺上都有制作精良的C語言教學(xué)課程。但Mooc教學(xué)存在很多弊?。簬熒?、生生缺乏互動和情感交流,老師無法根據(jù)學(xué)生學(xué)習(xí)情況調(diào)整上課節(jié)奏和內(nèi)容,對學(xué)生的約束力小,對學(xué)生的自覺性自律性要求高等。所以,教學(xué)實(shí)踐證明:Mooc教學(xué)無法取代傳統(tǒng)授課課堂,但可作為一種非常有效的補(bǔ)益。在C語言教學(xué)中,我們將兩種教學(xué)模式有機(jī)結(jié)合,充分發(fā)揮各自優(yōu)勢。在學(xué)校在線課程中心,我們積極完善C語言課程資源,以各章節(jié)知識點(diǎn)為單位錄制微課視頻、上傳PPT課件、創(chuàng)建習(xí)題庫。課前,布置學(xué)生通過在線課程中心進(jìn)行要講授知識的預(yù)習(xí)和自學(xué);理論課堂中,根據(jù)平臺反饋和教學(xué)大綱要求對重點(diǎn)難點(diǎn)進(jìn)行統(tǒng)一講解;實(shí)驗(yàn)課堂中,布置相關(guān)習(xí)題指導(dǎo)學(xué)生進(jìn)行針對性實(shí)踐;課后,對于沒弄清的知識點(diǎn),鼓勵學(xué)生有選擇性地再觀看教學(xué)視頻和練習(xí)相關(guān)習(xí)題。這種混合教學(xué)模式,既可以讓老師有更多精力優(yōu)化課堂教學(xué),也便于學(xué)生課堂外進(jìn)行自主學(xué)習(xí)。
3.精選授課內(nèi)容。
目前,C語言課程教材編寫大多按C語言簡介、數(shù)據(jù)類型與表達(dá)式、三種基本程序結(jié)構(gòu)、函數(shù)、數(shù)組與字符串、結(jié)構(gòu)體與共用體、文件進(jìn)行章節(jié)劃分,各章各節(jié)選取的程序?qū)嵗嗷オ?dú)立,幾乎沒有任何關(guān)聯(lián)。這導(dǎo)致學(xué)生在學(xué)習(xí)和理解各知識點(diǎn)時是脫節(jié)、片面、孤立的,無助于各章節(jié)知識的比較、關(guān)聯(lián)、融合。
所以老師在備課時,應(yīng)該對教學(xué)內(nèi)容進(jìn)行精選和調(diào)整,做到各知識點(diǎn)在橫向和縱向上相互關(guān)聯(lián),層層推進(jìn)。比如在講循環(huán)結(jié)構(gòu)、遞歸函數(shù)和數(shù)組時,我們都可以求解同一個問題:求菲波拉契數(shù)列。在講解循環(huán)結(jié)構(gòu)時,我們采用三個變量空間迭代變換的方法實(shí)現(xiàn);在講解遞歸函數(shù)時,我們采用函數(shù)自己調(diào)用自己的方法實(shí)現(xiàn);在講解數(shù)組時,我們定義數(shù)組,用數(shù)組中各成員單獨(dú)存放菲波拉契數(shù)列各數(shù)據(jù)項(xiàng)的方法實(shí)現(xiàn)。同一個問題用前后所學(xué)的不同知識求解,讓學(xué)生更能清晰認(rèn)識到各知識點(diǎn)的特點(diǎn)并建立起它們之間的對比和關(guān)聯(lián),全面構(gòu)建知識體系。就算是一個小節(jié)教學(xué)內(nèi)容的編排,也要注意這個問題。例如在講函數(shù)時,學(xué)生感到漢諾塔問題很不好理解。我們先講簡單的,用兩個獨(dú)立簡單函數(shù)分別實(shí)現(xiàn)最大公約數(shù)和最小公倍數(shù)。弄清基本函數(shù)概念后,接著,引申到函數(shù)嵌套調(diào)用,在求最小公倍數(shù)函數(shù)定義中直接調(diào)用事先已經(jīng)定義好的求最大公約數(shù)函數(shù),也就是在函數(shù)定義時調(diào)用別的函數(shù)。再此基礎(chǔ)上,順利引出另一概念:遞歸調(diào)用,在函數(shù)定義時調(diào)用自己。通過講解幾個簡單的遞歸調(diào)用程序?qū)嵗珉A乘、累加求和、菲波拉契數(shù)列后,順勢講解漢諾塔遞歸求解,一切就水到渠成,迎刃而解。
此外,由于我們進(jìn)行的是非計(jì)算機(jī)專業(yè)學(xué)生C語言教學(xué),在教學(xué)內(nèi)容難度上也要把握得當(dāng)。不能盲目向?qū)I(yè)學(xué)生看齊,內(nèi)容求全求難,學(xué)生難于理解,產(chǎn)生畏懼心理,厭學(xué)棄學(xué)。應(yīng)注重基礎(chǔ)核心內(nèi)容,并注重程序?qū)嵗慕?jīng)典和趣味性,讓學(xué)生能學(xué)懂、感興趣,愿意思考和探究。
4.加強(qiáng)實(shí)驗(yàn)實(shí)踐教學(xué)。
C語言課程是一門實(shí)踐性很強(qiáng)的課程。在C語言教學(xué)中既要重視語法知識傳授,更要重視學(xué)生的實(shí)驗(yàn)實(shí)踐教學(xué)。只有通過大量規(guī)范的上機(jī)實(shí)踐,學(xué)生才能將繁雜的語法知識、常規(guī)算法和編程技巧做到領(lǐng)悟、理解和熟練運(yùn)用,實(shí)踐能力和思維能力才能得到有效提升。
我校歷來重視計(jì)算機(jī)基礎(chǔ)課程的實(shí)驗(yàn)實(shí)踐教學(xué),除了在實(shí)驗(yàn)課時上予以保證外,還開發(fā)了專門的在線實(shí)驗(yàn)教學(xué)平臺。經(jīng)過十幾年來的不斷完善與改進(jìn),目前該平臺達(dá)到了集教、學(xué)、練、測、評、分析等多功能于一體。在平臺上提供了所有計(jì)算機(jī)基礎(chǔ)必修課程的實(shí)驗(yàn)教學(xué),包括C語言。C語言課程根據(jù)各章節(jié)知識點(diǎn)分布設(shè)計(jì)了21個實(shí)驗(yàn)任務(wù),每個實(shí)驗(yàn)都錄制了微課視頻供學(xué)生觀摩學(xué)習(xí)。任課老師也還可根據(jù)學(xué)生學(xué)習(xí)情況自主添加實(shí)驗(yàn)任務(wù),以加強(qiáng)某些知識點(diǎn)的訓(xùn)練。在學(xué)生根據(jù)實(shí)驗(yàn)要求做實(shí)驗(yàn)時,老師在實(shí)驗(yàn)室來回巡視,及時了解學(xué)生實(shí)驗(yàn)完成狀況,對遇到問題的學(xué)生及時給予指導(dǎo)。學(xué)生提交實(shí)驗(yàn)作業(yè)后,系統(tǒng)進(jìn)行自動評分。如有錯誤,對錯誤原因逐一予以說明。學(xué)生根據(jù)錯誤提示可進(jìn)行相應(yīng)修改后再次提交,也可及時請教老師厘清相關(guān)知識。系統(tǒng)保留學(xué)生所有的提交作業(yè)數(shù)據(jù)和登錄信息,方便老師了解所有學(xué)生的實(shí)驗(yàn)學(xué)習(xí)情況。對于完成情況欠佳的學(xué)生可個別進(jìn)行提醒和督促。此外,系統(tǒng)還提供各章節(jié)的練習(xí)題和測試題,便于各章節(jié)知識的鞏固和加強(qiáng)。系統(tǒng)中還具有學(xué)生管理、考試及考試數(shù)據(jù)分析等功能,能全面規(guī)范地進(jìn)行實(shí)驗(yàn)教學(xué)。
三、結(jié)束語
通過注重計(jì)算思維能力培養(yǎng)、引入混合教學(xué)模式、精選教學(xué)內(nèi)容和加強(qiáng)實(shí)驗(yàn)實(shí)踐教學(xué)這些優(yōu)化措施,相信會有更多的學(xué)生喜歡這門課,學(xué)好這門課。
參考文獻(xiàn)
[1]楊俊生.基于計(jì)算思維的“C程序設(shè)計(jì)”案例設(shè)計(jì)初探.工業(yè)與信息化教育,2013-6.
[2]張玉寧.基于計(jì)算思維的程序設(shè)計(jì)類課程教學(xué)實(shí)踐研究.現(xiàn)代電子技術(shù),2017.12.
[3]戰(zhàn)德臣.“大學(xué)計(jì)算機(jī)”“Mooc+Spocs+翻轉(zhuǎn)課堂”混合教學(xué)改革實(shí)施計(jì)劃.計(jì)算機(jī)教育,2016-1.
作者簡介:鄧冬梅(1974-),湖南師范大學(xué)副教授,研究方向:計(jì)算機(jī)軟件。
項(xiàng)目支持:湖南師范大學(xué)校級教改項(xiàng)目《計(jì)算機(jī)基礎(chǔ)二》。