邢遠(yuǎn)秀
武漢科技大學(xué)理學(xué)院,湖北 武漢 430081
本科數(shù)學(xué)類(lèi)專(zhuān)業(yè)都需要具有較強(qiáng)的算法設(shè)計(jì)、分析與編程能力,能熟練使用計(jì)算機(jī)(包括掌握常用語(yǔ)言、工具及一些數(shù)學(xué)軟件),具有編寫(xiě)簡(jiǎn)單應(yīng)用程序的能力,因此,程序設(shè)計(jì)基礎(chǔ)成為數(shù)學(xué)類(lèi)專(zhuān)業(yè)重要的專(zhuān)業(yè)基礎(chǔ)課程之一。通過(guò)對(duì)武漢科技大學(xué)(簡(jiǎn)稱(chēng)“我?!保┬畔⑴c計(jì)算科學(xué)專(zhuān)業(yè)16 級(jí)到19 級(jí)學(xué)生共247 份調(diào)查問(wèn)卷進(jìn)行分析后發(fā)現(xiàn),45.7%的學(xué)生在大學(xué)一年級(jí)學(xué)習(xí)該課程時(shí)認(rèn)為該課程對(duì)本專(zhuān)業(yè)用處不大,17.4%的學(xué)生表示不清楚其專(zhuān)業(yè)用處,這說(shuō)明學(xué)生在學(xué)習(xí)時(shí)對(duì)該課程在專(zhuān)業(yè)中的地位不夠明確。這是因?yàn)樵谝酝膶?shí)際教學(xué)中,大多數(shù)任課教師仍沿用計(jì)算機(jī)專(zhuān)業(yè)課程的教學(xué)內(nèi)容與方法,并未體現(xiàn)出數(shù)學(xué)類(lèi)專(zhuān)業(yè)的特點(diǎn),造成該課程的教學(xué)內(nèi)容與數(shù)學(xué)專(zhuān)業(yè)教學(xué)體系脫節(jié)、實(shí)踐教學(xué)效果不佳、學(xué)生對(duì)該課程不了解不重視等問(wèn)題??梢?jiàn),數(shù)學(xué)類(lèi)專(zhuān)業(yè)針對(duì)程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)進(jìn)行改革十分必要。
現(xiàn)在國(guó)內(nèi)大多數(shù)本科院校都開(kāi)設(shè)有數(shù)學(xué)類(lèi)專(zhuān)業(yè),這些專(zhuān)業(yè)都開(kāi)設(shè)有程序設(shè)計(jì)基礎(chǔ)這門(mén)課程。C 語(yǔ)言近20年在TIOBE編程語(yǔ)言排行榜中一直位居前三,并在2019年再次成為年度編程語(yǔ)言,主要是因?yàn)槠浔磉_(dá)能力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好,其他一些計(jì)算機(jī)類(lèi)課程比如數(shù)據(jù)結(jié)構(gòu)、C++所選用的教材基本上都是以C 語(yǔ)言為基礎(chǔ)來(lái)進(jìn)行描述的。選用C 語(yǔ)言作為程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)內(nèi)容可以有效銜接后續(xù)專(zhuān)業(yè)課程,有些學(xué)校直接將這門(mén)課程開(kāi)設(shè)為C 語(yǔ)言程序設(shè)計(jì)。對(duì)于數(shù)學(xué)類(lèi)專(zhuān)業(yè)的學(xué)生來(lái)說(shuō),該課程既是本專(zhuān)業(yè)后續(xù)數(shù)學(xué)建模、數(shù)值分析等課程的實(shí)踐基礎(chǔ),也是Python、Matlab等其他和數(shù)據(jù)分析關(guān)系較為密切的編程語(yǔ)言的基礎(chǔ)。
目前針對(duì)數(shù)學(xué)類(lèi)專(zhuān)業(yè)程序設(shè)計(jì)基礎(chǔ)課程教學(xué)的改革與實(shí)踐,都是只針對(duì)課程本身的知識(shí)點(diǎn),集中在教學(xué)方法的改進(jìn)上,有研究采用綜合訓(xùn)練(大型作業(yè))的方式進(jìn)行教學(xué),或者是改革上機(jī)操作的實(shí)踐環(huán)節(jié),或者是進(jìn)行課件制作,實(shí)施多媒體教學(xué),也有提出項(xiàng)目式教學(xué)法的,但是站在專(zhuān)業(yè)的高度將該課程納入整個(gè)人才培養(yǎng)體系中進(jìn)行教學(xué)改革的不多。
計(jì)算機(jī)最早被研制出來(lái)的目的就是要解決數(shù)學(xué)運(yùn)算等問(wèn)題,數(shù)學(xué)與程序設(shè)計(jì)語(yǔ)言的聯(lián)系非常緊密,因此應(yīng)該將程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)內(nèi)容與數(shù)學(xué)專(zhuān)業(yè)的其他專(zhuān)業(yè)課程結(jié)合起來(lái),形成橫向交叉、縱向貫通的課程教學(xué)體系,使學(xué)生充分了解程序設(shè)計(jì)類(lèi)課程在專(zhuān)業(yè)中的作用,再通過(guò)對(duì)實(shí)踐教學(xué)項(xiàng)目的設(shè)計(jì),使教學(xué)內(nèi)容不再孤立,讓學(xué)生學(xué)得明白,提高教學(xué)質(zhì)量。從武漢科技大學(xué)信息與計(jì)算科學(xué)專(zhuān)業(yè)課程體系(見(jiàn)下圖)可以看出,其專(zhuān)業(yè)課程主要分為三大類(lèi):一類(lèi)是數(shù)學(xué)專(zhuān)業(yè)的專(zhuān)業(yè)類(lèi)課程,一類(lèi)是計(jì)算機(jī)類(lèi)相關(guān)課程,還有一類(lèi)是實(shí)踐類(lèi)課程。程序設(shè)計(jì)基礎(chǔ)課程屬于計(jì)算機(jī)類(lèi)專(zhuān)業(yè)的基礎(chǔ)課程,后續(xù)課程包括C++程序設(shè)計(jì)、離散數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫(kù)系統(tǒng)概論、算法分析與設(shè)計(jì)、計(jì)算機(jī)網(wǎng)絡(luò)等課程,平行課程包括數(shù)學(xué)分析、高等代數(shù)與解析幾何等課程,相應(yīng)的實(shí)踐類(lèi)課程為C 程序課程設(shè)計(jì)。這些課程的內(nèi)容存在貫通性和交叉性,教師在做程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)設(shè)計(jì)時(shí),要考慮本課程與這些課程之間的聯(lián)系,這樣有利于學(xué)生了解本課程在專(zhuān)業(yè)中的定位,認(rèn)清學(xué)習(xí)本課程的目的,有助于學(xué)生進(jìn)行更有針對(duì)性的學(xué)習(xí)。例如在講授指針的應(yīng)用這個(gè)知識(shí)點(diǎn)的時(shí)候,可以結(jié)合數(shù)據(jù)結(jié)構(gòu)中的鏈表一起來(lái)講解,這樣學(xué)生就能夠知道指針可以用來(lái)做什么,也了解了本課程與其他課程的關(guān)系,學(xué)習(xí)起來(lái)會(huì)更有興趣。
程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)內(nèi)容應(yīng)加大案例教學(xué)的比例,突出程序設(shè)計(jì)語(yǔ)言的工具屬性。程序設(shè)計(jì)語(yǔ)言是實(shí)現(xiàn)算法、解決問(wèn)題的工具,因此要盡量選用真實(shí)案例。例如在講授分支結(jié)構(gòu)switch語(yǔ)句的時(shí)候使用將百分制的成績(jī)轉(zhuǎn)換為等級(jí)制的例子,學(xué)生更容易理解和掌握。
應(yīng)自上而下建立有機(jī)結(jié)合的專(zhuān)業(yè)教學(xué)資源庫(kù),而不是簡(jiǎn)單地將每個(gè)課程的教學(xué)資源整合到一起形成專(zhuān)業(yè)教學(xué)資源庫(kù)。在建設(shè)專(zhuān)業(yè)教學(xué)資源庫(kù)前要做好整體規(guī)劃,從專(zhuān)業(yè)的角度設(shè)計(jì)每門(mén)課程的教學(xué)資源。利用教學(xué)資源庫(kù)開(kāi)展教學(xué)模式改革,采用主課與輔課有機(jī)結(jié)合的教學(xué)模式。講授程序設(shè)計(jì)基礎(chǔ)課程時(shí),這門(mén)課程即為主課,與之相關(guān)聯(lián)的專(zhuān)業(yè)課如下圖所示的數(shù)學(xué)分析、高等代數(shù)與解析幾何等課程即為輔課。由于程序設(shè)計(jì)基礎(chǔ)課程學(xué)時(shí)有限,教師難以系統(tǒng)講授輔課內(nèi)容,因此要豐富輔課教學(xué)資源。輔課學(xué)習(xí)以自學(xué)教學(xué)資源為主,這樣可以彌補(bǔ)主課教學(xué)時(shí)間與教學(xué)廣度不足的缺點(diǎn)。我校目前尚未建成數(shù)學(xué)專(zhuān)業(yè)教學(xué)資源庫(kù),筆者在教學(xué)的時(shí)候?qū)⒕W(wǎng)上教學(xué)資源作為補(bǔ)充內(nèi)容,取得了很好的效果。比如筆者講到指針時(shí)結(jié)合數(shù)據(jù)結(jié)構(gòu)中的鏈表來(lái)講解,因課時(shí)有限而無(wú)法在課堂中詳細(xì)講解鏈表有關(guān)知識(shí),便借用學(xué)堂在線上華南理工大學(xué)數(shù)據(jù)結(jié)構(gòu)的課程視頻,讓學(xué)生提前學(xué)習(xí)鏈表的有關(guān)知識(shí),再到課堂中結(jié)合鏈表講解指針的知識(shí),取得很好的教學(xué)效果。
大學(xué)數(shù)學(xué)課程具有內(nèi)容的高度抽象性、思維的邏輯嚴(yán)密性、方法的靈活多樣性等特點(diǎn),不僅需要教師花費(fèi)較多的課時(shí)進(jìn)行講解,同時(shí)也需要學(xué)生課下花費(fèi)足夠的時(shí)間進(jìn)行鞏固,因此可以進(jìn)行翻轉(zhuǎn)課堂等教學(xué)方法的探索。2020 年上半年受疫情的影響,停課不停學(xué),教師們普遍采用網(wǎng)上教學(xué)的模式,這樣必然對(duì)傳統(tǒng)教學(xué)模式產(chǎn)生深遠(yuǎn)的影響。不管是學(xué)生還是教師,都對(duì)在線學(xué)習(xí)有了深刻的認(rèn)識(shí)?;謴?fù)正常的教學(xué)活動(dòng)后,教師會(huì)主動(dòng)將線下教學(xué)與線上教學(xué)結(jié)合起來(lái)。筆者該學(xué)期的線上教學(xué)效果明顯,經(jīng)統(tǒng)計(jì),學(xué)生在線上教學(xué)的到課率為98.8%,作業(yè)完成率為95.1%,這說(shuō)明線上教學(xué)完全可以成為線下教學(xué)的重要補(bǔ)充。不僅課堂教學(xué)可搬到線上,實(shí)踐教學(xué)也可搬到線上,筆者采用線上教學(xué)平臺(tái)講解、指導(dǎo)實(shí)踐,利用遠(yuǎn)程控制系統(tǒng)幫助學(xué)生解決難題、檢查實(shí)踐教學(xué)結(jié)果,都取得了很好的教學(xué)效果。
學(xué)科競(jìng)賽具有探索性、創(chuàng)造性和科學(xué)性,能夠培養(yǎng)大學(xué)生理論聯(lián)系實(shí)際和獨(dú)立工作的能力,讓大學(xué)生學(xué)習(xí)在實(shí)踐中發(fā)現(xiàn)、分析和解決問(wèn)題,對(duì)增強(qiáng)大學(xué)生的意志力、進(jìn)取心、創(chuàng)新思維和創(chuàng)新能力都有很大的幫助。目前本科學(xué)生可以參加的全國(guó)性比賽有全國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽、挑戰(zhàn)杯大學(xué)生創(chuàng)業(yè)大賽等,這些比賽在培養(yǎng)學(xué)生實(shí)踐能力和創(chuàng)新創(chuàng)業(yè)能力上起到了重要的推動(dòng)作用,對(duì)人才培養(yǎng)模式改革的引領(lǐng)作用非常明顯。所以,教師在日常教學(xué)中,應(yīng)注意將課程教學(xué)與數(shù)學(xué)建模等大賽相結(jié)合,一方面為大賽挖掘、培養(yǎng)種子選手,另一方面將大賽與課程教學(xué)、創(chuàng)新創(chuàng)業(yè)教育相融合,提高學(xué)生的專(zhuān)業(yè)水平,培養(yǎng)學(xué)生的創(chuàng)新精神和創(chuàng)業(yè)能力。
在將課程教學(xué)與學(xué)科競(jìng)賽結(jié)合起來(lái)方面,我們采取的做法主要有以下三點(diǎn)。
一是將學(xué)科競(jìng)賽內(nèi)容與課堂教學(xué)結(jié)合起來(lái)。比如全國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽的舉辦目的在于調(diào)動(dòng)學(xué)生學(xué)習(xí)數(shù)學(xué)的積極性,提高學(xué)生建立數(shù)學(xué)模型和運(yùn)用計(jì)算機(jī)技術(shù)解決實(shí)際問(wèn)題的綜合能力,這就要求學(xué)生不僅能夠設(shè)計(jì)算法,還必須掌握程序設(shè)計(jì)語(yǔ)言來(lái)完成數(shù)學(xué)建模。因?yàn)閹?kù)中封裝了棧、隊(duì)列等數(shù)據(jù)結(jié)構(gòu)以及查找、排序等算法,所以學(xué)生平時(shí)在掌握建模中的一些常用算法的同時(shí),還要學(xué)會(huì)運(yùn)用C 的標(biāo)準(zhǔn)模板庫(kù),這就要求學(xué)生熟練掌握使用C語(yǔ)言進(jìn)行程序設(shè)計(jì)。教師在講授C語(yǔ)言時(shí)結(jié)合數(shù)學(xué)建模競(jìng)賽的相關(guān)內(nèi)容,可以提高學(xué)生興趣,讓學(xué)生將數(shù)學(xué)和C 語(yǔ)言程序設(shè)計(jì)結(jié)合起來(lái),有助于以賽促學(xué)。
二是將學(xué)科競(jìng)賽與實(shí)踐教學(xué)體系結(jié)合起來(lái),主要圍繞學(xué)科競(jìng)賽內(nèi)容來(lái)設(shè)計(jì)實(shí)踐教學(xué)內(nèi)容,增加創(chuàng)新性、設(shè)計(jì)性的實(shí)踐內(nèi)容,減少驗(yàn)證性、結(jié)論性的實(shí)踐內(nèi)容,重點(diǎn)設(shè)計(jì)課程設(shè)計(jì)實(shí)踐項(xiàng)目,突出鍛煉學(xué)生的創(chuàng)新實(shí)踐能力。比如2019 年“高教社杯”全國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽的A 題為“高壓油管的壓力控制”,為了保持壓力和噴油量的穩(wěn)定,必須建立數(shù)學(xué)模型和設(shè)計(jì)算法來(lái)確定從高壓油泵進(jìn)入高壓油管和從高壓油管?chē)姵龅娜加土?,從而確定單向閥的開(kāi)啟時(shí)長(zhǎng)、凸輪的轉(zhuǎn)速、減壓閥的控制策略。由于學(xué)生此時(shí)對(duì)如何建模和算法并不熟悉,因此我們?cè)诔绦虻牧鞒炭刂茖?shí)踐教學(xué)環(huán)節(jié)中,將該題目改為根據(jù)輸入的壓力值判斷壓力值所在區(qū)間:根據(jù)輸入的壓力值x,判斷當(dāng)x 等于100MPa 時(shí),輸出“壓力穩(wěn)定在100MPa”;當(dāng)x 大于100 MPa 并小于等于150 MPa 時(shí),輸出壓力的具體值,即x 的值;當(dāng)x 大于150MPa 時(shí),輸出x的值,并提示“壓力已大于150MPa”。學(xué)生可以通過(guò)if…else 語(yǔ)句或者case 語(yǔ)句來(lái)實(shí)現(xiàn),這樣一方面可以使學(xué)生熟悉數(shù)學(xué)建模的實(shí)例,另一方面也可以鍛煉學(xué)生對(duì)選擇結(jié)構(gòu)的理解和應(yīng)用能力。
三是將學(xué)科競(jìng)賽與第二課堂結(jié)合起來(lái)。課堂教學(xué)在育人過(guò)程中具有不可替代的作用,但僅靠課堂教學(xué)還遠(yuǎn)遠(yuǎn)達(dá)不到教書(shū)育人的目的。傳統(tǒng)的課堂教學(xué)更多的是開(kāi)展知識(shí)傳授和專(zhuān)業(yè)技能訓(xùn)練。所以有必要充分利用第二課堂活動(dòng),將其作為課堂教學(xué)活動(dòng)的輔助手段,以彌補(bǔ)課堂教學(xué)活動(dòng)在知識(shí)拓展、實(shí)踐能力鍛煉、創(chuàng)新能力培養(yǎng)等方面的不足。從大一新生入學(xué)開(kāi)始,我們就組織學(xué)生成立學(xué)習(xí)興趣小組,課后堅(jiān)持給學(xué)生開(kāi)放實(shí)訓(xùn)室,組織學(xué)生參加各類(lèi)課外學(xué)習(xí)活動(dòng),并針對(duì)學(xué)科競(jìng)賽進(jìn)行定期的集中培訓(xùn)和不定期的個(gè)別輔導(dǎo),將學(xué)科競(jìng)賽與第二課堂活動(dòng)結(jié)合起來(lái),有效地提高學(xué)生的創(chuàng)新實(shí)踐能力。
師資是教學(xué)質(zhì)量的決定性因素,要想程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)與數(shù)學(xué)專(zhuān)業(yè)得到更好結(jié)合,就必須注重提高其任課教師的數(shù)學(xué)素質(zhì)。我校目前講授該課程的教師主要是計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)的教師,或者是來(lái)自本校計(jì)算機(jī)學(xué)院的專(zhuān)業(yè)教師,這些教師的計(jì)算機(jī)水平較高,但數(shù)學(xué)基礎(chǔ)略顯薄弱,所以要提高他們的數(shù)學(xué)素質(zhì)??梢酝ㄟ^(guò)以下幾個(gè)途徑來(lái)實(shí)現(xiàn):(1)安排新進(jìn)教師當(dāng)數(shù)學(xué)專(zhuān)業(yè)教師的助手。不論新進(jìn)教師的專(zhuān)業(yè)是數(shù)學(xué)專(zhuān)業(yè)還是計(jì)算機(jī)專(zhuān)業(yè),在他們講授程序設(shè)計(jì)基礎(chǔ)課程前,都為其指定一位數(shù)學(xué)專(zhuān)業(yè)的老教師,讓其在熟悉教學(xué)活動(dòng)的同時(shí),了解程序設(shè)計(jì)和數(shù)學(xué)的關(guān)系,了解怎樣用程序設(shè)計(jì)語(yǔ)言解決本專(zhuān)業(yè)的數(shù)學(xué)問(wèn)題。(2)定期舉辦學(xué)習(xí)研討班。研討班由專(zhuān)業(yè)或教研室組織,目前很多高校每周都有教研室活動(dòng),利用教研室活動(dòng)舉辦定期或不定期的學(xué)習(xí)研討班,數(shù)學(xué)教師和計(jì)算機(jī)教師在一起就教學(xué)問(wèn)題進(jìn)行探討,彼此增進(jìn)對(duì)相關(guān)專(zhuān)業(yè)知識(shí)的了解融通,可有效提高計(jì)算機(jī)專(zhuān)業(yè)出身的教師的數(shù)學(xué)素質(zhì)。(3)以賽促教。充分發(fā)揮大賽“以賽促教”的作用,由計(jì)算機(jī)專(zhuān)業(yè)的青年教師擔(dān)任指導(dǎo)教師,讓其在指導(dǎo)學(xué)生參加學(xué)科競(jìng)賽的過(guò)程中,不斷提高自身的知識(shí)水平和業(yè)務(wù)能力,教學(xué)相長(zhǎng),促進(jìn)青年教師的快速成長(zhǎng)。
程序設(shè)計(jì)基礎(chǔ)課程的實(shí)踐性強(qiáng),因此其考核方式不能只采用期末筆試,應(yīng)注重學(xué)生平時(shí)學(xué)習(xí)的過(guò)程性考核,而且過(guò)程性考核方式應(yīng)該多樣化,突出考核學(xué)生的實(shí)踐動(dòng)手能力。
采取“過(guò)程性考核+終結(jié)性考核”的方式評(píng)定課程學(xué)習(xí)成績(jī)。其中C 語(yǔ)言中的理論知識(shí)部分,仍需采用筆試的方式進(jìn)行,但需要減小其權(quán)重,同時(shí)需要加大對(duì)平時(shí)實(shí)踐能力的評(píng)價(jià)權(quán)重。平時(shí)成績(jī)不能只看上課簽到和課后作業(yè)完成情況,還要看平時(shí)上機(jī)的成績(jī),這樣才能全面考查學(xué)生的綜合能力。
程序設(shè)計(jì)的發(fā)展越來(lái)越趨向于體現(xiàn)其工具性,并滲透到各行各業(yè)的應(yīng)用中,在不同行業(yè)的應(yīng)用也各有側(cè)重。程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)應(yīng)能體現(xiàn)程序設(shè)計(jì)在數(shù)學(xué)專(zhuān)業(yè)中的具體應(yīng)用,用程序設(shè)計(jì)語(yǔ)言解決數(shù)學(xué)中常見(jiàn)的問(wèn)題,使課程教學(xué)能夠更有效地將理論與實(shí)踐聯(lián)系起來(lái),將本門(mén)課程與其他相關(guān)專(zhuān)業(yè)課程聯(lián)系起來(lái),有效激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生的專(zhuān)業(yè)知識(shí)水平和創(chuàng)新實(shí)踐能力。