任靜靜
(信息工程大學(xué)洛陽校區(qū),洛陽 471003)
2010年,《九校聯(lián)盟(C9)計算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》中提出計算機(jī)基礎(chǔ)教學(xué)是培養(yǎng)大學(xué)生綜合素質(zhì)和創(chuàng)新能力不可或缺的重要環(huán)節(jié),是培養(yǎng)復(fù)合型創(chuàng)新人才的重要組成部分[1]。在計算機(jī)基礎(chǔ)課程中,《程序設(shè)計基礎(chǔ)》是一門通識必修課程,在培養(yǎng)學(xué)生邏輯思維、計算思維、信息處理能力方面起著重要作用。本文從分析《程序設(shè)計基礎(chǔ)》課程教學(xué)現(xiàn)狀入手,總結(jié)存在的問題,提出在教學(xué)內(nèi)容、教學(xué)模式及課程考核方面改革的具體措施,構(gòu)建出以程序設(shè)計比賽為導(dǎo)向的多模式程序設(shè)計基礎(chǔ)教學(xué)體系。
(1)教學(xué)內(nèi)容
在教學(xué)內(nèi)容方面存在的問題:①過多強(qiáng)調(diào)所學(xué)程序設(shè)計語言的語法規(guī)則,弱化了算法分析和編程實現(xiàn)能力的培養(yǎng),使學(xué)生誤以為一門開發(fā)語言和開發(fā)環(huán)境就是計算機(jī)編程,對該課程有一種“狹義工具論”的認(rèn)識,不能很好地體會在算法分析和編程實現(xiàn)過程中所體現(xiàn)出來的“計算思維”和解決問題能力的鍛煉;②因為C語言入門簡單,不需要學(xué)習(xí)除了語言本身之外的框架控件等知識,使該課程更多的關(guān)注到算法分析和編程實現(xiàn),所以各大高校在該課程中選擇C語言的居多。我院在前幾年教學(xué)中也選擇C語言,但學(xué)生學(xué)習(xí)效果不是很好,通過深入調(diào)研分析,C語言編寫的沒有圖形交互界面的實驗程序不能提高學(xué)生的興趣點,實驗不能很好地起到加深理解理論知識的作用。
(2)教學(xué)模式
近幾年教研室一直在進(jìn)行該課程教學(xué)模式研究,雖然已經(jīng)從最傳統(tǒng)的單一滿堂灌填鴨式教學(xué)改進(jìn)到“理論+實踐”教學(xué)模式,但教師的理論講授還是直接進(jìn)行純粹的知識傳授,以教材為中心,教師仍然處于主體地位,在實踐環(huán)節(jié)也是簡單給出命題,且命題多為純粹的數(shù)學(xué)類問題,枯燥乏味不能激發(fā)學(xué)生的興趣。
(3)教學(xué)考核
目前課程的教學(xué)考核方法為:總成績=筆試成績+上機(jī)成績+平時成績,由于該課程的授課對象人數(shù)多,平時成績主觀成分比較多,期末實訓(xùn)內(nèi)容的上機(jī)考核不能很好地考核學(xué)生解決問題的能力,而筆試內(nèi)容不能很好地體現(xiàn)出學(xué)生對實際操作的掌握程度,這幾部分成績多為結(jié)果性成績,不能很好地體現(xiàn)學(xué)生的過程性成績,使得最后的總成績不能很好地體現(xiàn)出教學(xué)效果。
(4)學(xué)生現(xiàn)狀
《程序設(shè)計基礎(chǔ)》屬于通識課程,大班教學(xué),學(xué)生人數(shù)較多,計算機(jī)基礎(chǔ)不盡相同,學(xué)習(xí)能力和邏輯思維能力參差不齊。兩極分化較為嚴(yán)重,同一套學(xué)習(xí)模式,部分學(xué)生“吃不飽”,無所事事;部分學(xué)生卻“吃不完”,班級大,又無法得到教師的即時、詳細(xì)指點。課堂效率大打折扣,因為學(xué)不會,課下也就不愿學(xué),連鎖反應(yīng)導(dǎo)致教學(xué)效果變差。
(5)教學(xué)學(xué)時
我院每門計算機(jī)類通識必修課程為32學(xué)時,鑒于程序設(shè)計基礎(chǔ)課程涉及到的內(nèi)容比較多,32學(xué)時不能很好地滿足該課程的學(xué)時需求。
《程序設(shè)計基礎(chǔ)》應(yīng)以培養(yǎng)學(xué)生信息處理、計算思維能力的原則出發(fā),制定一套滿足不同學(xué)生需求的課程教學(xué)體系。選擇合適的教學(xué)內(nèi)容,采用多樣化的教學(xué)模式,增強(qiáng)實踐教學(xué)的效果,依程序設(shè)計比賽為導(dǎo)向,構(gòu)建出一種多模式《程序設(shè)計基礎(chǔ)》教學(xué)體系。
選擇合適的程序設(shè)計語言對教學(xué)效果起到至關(guān)重要的作用,但是也不能讓學(xué)生認(rèn)為學(xué)習(xí)一種程序設(shè)計語言就是計算機(jī)編程。在教學(xué)實施過程中,可以以一種程序設(shè)計語言為主,拓展到多種程序設(shè)計語言,讓學(xué)生體會不同語言之間的優(yōu)缺點。針對本院開展C程序設(shè)計語言教學(xué)的效果來看,學(xué)生對具有圖形交換界面的程序設(shè)計語言更感興趣。通過調(diào)研分析,我院選擇Visual Basic作為該課程教學(xué)中主要的程序設(shè)計語言,該語言容易上手,結(jié)合控件的使用能更好地幫助學(xué)生理解程序的執(zhí)行過程。在教學(xué)實施中,分析設(shè)計算法,以Visual Basic為例進(jìn)行編程,最后拓展到其他一兩種主流編程語言,讓學(xué)生體會不同的開發(fā)語言和工具實現(xiàn)同一算法的異同,從而體現(xiàn)出程序設(shè)計基礎(chǔ)課程的核心是培養(yǎng)編程來解決實際問題和計算思維能力,而不是僅僅拘泥于某種語言,這樣也更好地滿足學(xué)生不同編程基礎(chǔ)的需求。
不管哪一種程序設(shè)計語言都有比較枯澀難懂嚴(yán)格的概念和語法要求,在入門教學(xué)中都不要急于讓學(xué)生掌握這些概念和語法,讓學(xué)生會誤以為學(xué)習(xí)該課程就是掌握語法規(guī)則,而是從認(rèn)知學(xué)理論的規(guī)律出發(fā),給學(xué)生展示一些編好的有趣的實例,如交通紅綠燈、計算器、翻牌游戲等,讓學(xué)生體會編程在實際應(yīng)用中的作用,激發(fā)學(xué)生的興趣點。
(1)案例驅(qū)動教學(xué)模式
在教學(xué)過程中應(yīng)突出實踐能力,案例教學(xué)是當(dāng)前教學(xué)改革環(huán)境下的一種新型的教學(xué)模式,將零散的知識點綜合到案例中,使學(xué)生通過解決案例中的問題從而掌握所學(xué)知識。案例選取應(yīng)貼近實際需求,實施步驟為“分析案例-設(shè)計算法-編程實現(xiàn)”,在編程實現(xiàn)步驟中引出所學(xué)程序設(shè)計語言的相關(guān)知識點,最終達(dá)到訓(xùn)練學(xué)生邏輯思維和編程的能力的目的。
案例驅(qū)動教學(xué)有助于激發(fā)學(xué)生興趣,還可以培養(yǎng)自學(xué)能力。對于Visual Basic語言中的比較抽象枯燥的數(shù)據(jù)類型、變量、常量知識點,不要按部就班以教材為中心照本宣科進(jìn)行講解,可以貫穿在多個案例中,且不一定在一次課中學(xué)習(xí),應(yīng)進(jìn)行分散化學(xué)習(xí),且多種數(shù)據(jù)類型不一定每個都系統(tǒng)學(xué)習(xí),可以以常用的數(shù)據(jù)類型(例如數(shù)據(jù)型和字符型數(shù)據(jù))為例,其他的數(shù)據(jù)類型讓學(xué)生自學(xué)。
案例教學(xué)對教師提出更高的要求,不是將知識點簡單堆疊講授,而是應(yīng)該對該門課程有很好的整體把握,能對知識點進(jìn)行深入的關(guān)聯(lián)、分析和設(shè)計,將多個知識點融合到相應(yīng)的案例中。
(2)基于建構(gòu)主義的問題解決教學(xué)模式
建構(gòu)主義教學(xué)改革的基本思路是:基于問題解決來建構(gòu)知識,通過問題解決來學(xué)習(xí)[2]。該教學(xué)模式應(yīng)用到該課程中的實施步驟為“提出問題或任務(wù)-引導(dǎo)學(xué)生思考探索(小組討論、師生討論)-實踐體驗-解決問題”。
教師提出的問題應(yīng)是一系列的、進(jìn)階式的,具有讓學(xué)生討論的價值,在利用程序設(shè)計語言實現(xiàn)算法時,如果學(xué)生出現(xiàn)運行方面的錯誤,讓學(xué)生自行發(fā)現(xiàn)并解決錯誤,或者指導(dǎo)學(xué)生通過調(diào)試查找錯誤,而不是簡單地給學(xué)生指出錯誤,提高學(xué)生的成就感,加深對出錯語法的認(rèn)識,增強(qiáng)學(xué)生的課堂參與度,通過程序調(diào)試鞏固知識重建過程。
(3)翻轉(zhuǎn)課堂教學(xué)模式
由于學(xué)時有限,引入翻轉(zhuǎn)課堂教學(xué)模式,部分教學(xué)內(nèi)容可以在課外完成,更大程度地利用課堂時間展開討論、互動、探究式教學(xué),充分發(fā)揮學(xué)生的主體性作用,更好的完成知識構(gòu)建。例如教師可以把下次課的內(nèi)容放在網(wǎng)絡(luò)平臺上讓學(xué)生自學(xué),內(nèi)容的形式多樣化,課件、Flash動畫、微視、知識思維導(dǎo)圖等,并設(shè)置相關(guān)的任務(wù)和問題,學(xué)生可以在課下提前查閱資料思考,將難點內(nèi)容及時的反饋給教師,以便更好地在課堂上有側(cè)重點的答疑和討論,學(xué)生課下還可以反復(fù)學(xué)習(xí),如果在課下學(xué)習(xí)過程中仍有問題,可以在網(wǎng)絡(luò)平臺上再展開討論,教師還可以在網(wǎng)絡(luò)平臺上放置課下任務(wù),以鞏固學(xué)習(xí)效果。
在實施過程中需要一個合適的網(wǎng)絡(luò)支撐平臺,可以選擇開源的網(wǎng)絡(luò)課程平臺Moodle[3]。
翻轉(zhuǎn)課堂教學(xué)模式顛覆了傳統(tǒng)課堂“教師講-學(xué)生聽-學(xué)生練”模式,使學(xué)生真正參與到課堂中來,成為課堂教學(xué)活動推動的主導(dǎo)者,使課堂充滿討論、碰撞和探究,很大程度上提高學(xué)生的學(xué)習(xí)積極性。
多種教學(xué)模式之間不是孤立的,相互促進(jìn)、相互融合,在一次教學(xué)活動中涉及到理論教學(xué)和實踐教學(xué),要精心進(jìn)行課程設(shè)計,選取多樣化的教學(xué)模式。
《程序設(shè)計基礎(chǔ)》課程實踐性非常強(qiáng),學(xué)生算法分析和編程實現(xiàn)能力的知識構(gòu)建在實踐中完成,所以要求有一套完備的實驗庫開展實踐教學(xué)。針對學(xué)生學(xué)習(xí)能力和基礎(chǔ)的不同,可將實驗庫分為必修實驗項目和選作實驗項目,滿足不同學(xué)生的需求[4]。
實驗項目應(yīng)按照章節(jié)進(jìn)行設(shè)置,且內(nèi)容和課堂教學(xué)案例內(nèi)容相一致,覆蓋教學(xué)大綱的知識點,設(shè)置相應(yīng)的問題引導(dǎo),幫助學(xué)生分析問題。
根據(jù)本課程使用的案例驅(qū)動及問題解決教學(xué)模式,實驗項目之間應(yīng)具有連續(xù)性,問題是一系列、進(jìn)階式的。例如在表達(dá)式、一維數(shù)組、動態(tài)一維數(shù)組、二維數(shù)組知識點中,將“求三個學(xué)生的一門課程的平均成績”延伸為“求100個學(xué)生的一門課程的平均成績”,再進(jìn)階為“求N個學(xué)生的一門課程的平均成績”,最后拓展到“求N個學(xué)生M門課程的平均成績”。其中后面兩個實驗項目可以設(shè)為選作實驗,還可以在前面四個實驗基礎(chǔ)上加上窗體和控件知識點上升為“班級成績管理系統(tǒng)”。
依托第二課堂的程序設(shè)計比賽,比賽題目由各小組成員搜索材料討論自擬,題目所需知識涵蓋但又不僅局限于課堂知識點,且能解決實際問題。
以Visual Basic程序設(shè)計語言為教學(xué)內(nèi)容后,學(xué)生進(jìn)行課程設(shè)計的題目越來越多樣化,題目難度有所提高,設(shè)計的軟件實用性比較強(qiáng),例如Q我音樂盒、翻牌游戲、中日文化差異交流、俄語聽力練習(xí)、算術(shù)練習(xí)本、計算器等。軟件設(shè)計和實現(xiàn)涵蓋了算法分析和編程實現(xiàn)。在編程實現(xiàn)的過程中不僅深入的掌握了程序設(shè)計語言中最基本內(nèi)容——數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)組、文件等,還自學(xué)了很多Visual Basic中很多控件的應(yīng)用。
因此,程序設(shè)計比賽不僅培養(yǎng)學(xué)生的解決問題的能力,還培養(yǎng)學(xué)生的自學(xué)能力、責(zé)任感、團(tuán)隊意識、思維創(chuàng)新和爭先創(chuàng)優(yōu)的競爭意識。
針對目前考核評價中的缺點,結(jié)合課程考核與教學(xué)模式的關(guān)系,改進(jìn)該課程的考核方式。結(jié)合教學(xué)模式,總成績=筆試成績+課堂實踐成績+程序設(shè)計比賽成績,考核內(nèi)容的命題遵循考核改革思路。
筆試內(nèi)容考核由于各方面的限制,紙筆測驗還一時難為其他的評價手段完全代替。雖然形式一時難以改變,但是考查的目標(biāo)應(yīng)該與前面提到的教學(xué)模式的評價目標(biāo)是一致的,這就需要筆試考題的命題需要從考核學(xué)生的能力的角度出發(fā),而不僅僅是獨立的知識點。
課堂實踐內(nèi)容考核主要體現(xiàn)學(xué)生問題解決的能力,同時包括學(xué)習(xí)能力、團(tuán)隊協(xié)作能力、表達(dá)能力等綜合素質(zhì)。
程序設(shè)計比賽考核根據(jù)課程設(shè)計的難易程度確定等級分?jǐn)?shù),通過學(xué)生在課程設(shè)計過程中的作用和能力考核學(xué)生對知識的運用和解決問題的能力,通過課程設(shè)計的報告或論文來考核學(xué)生歸納和總結(jié)能力。
考核方式的多樣化促使學(xué)習(xí)方式廣泛化,并能建立更完整可靠的評價體系,改革前后的考核方式及標(biāo)準(zhǔn)對如表1所示。

表1 改革前后考核方式對比
筆者所在的《程序設(shè)計基礎(chǔ)》課程團(tuán)隊經(jīng)過多年的教學(xué)改革實踐,形成一套完備的教學(xué)體系,在科研和教學(xué)方面取得一定的成果。出版配套教材《程序設(shè)計基礎(chǔ)教程》(VB版)——21世紀(jì)大學(xué)計算機(jī)基礎(chǔ)課程教材和實驗指導(dǎo)書。本文的研究成果應(yīng)用到教學(xué)中,學(xué)生對該課程的積極性及編程能力有很大提高,普遍認(rèn)同案例驅(qū)動、問題解決、翻轉(zhuǎn)課堂及程序設(shè)計比賽的教學(xué)模式和過程,激發(fā)了學(xué)生的創(chuàng)造性,培養(yǎng)了學(xué)生的創(chuàng)新能力。