童端 呂捷 劉凌波
摘 ? 要:在CDIO教育理念的指導(dǎo)下,通過分析傳統(tǒng)的程序設(shè)計基礎(chǔ)課程教學(xué)中的不足,針對學(xué)生的被動學(xué)習(xí)、實驗操作能力弱、課程實驗與企業(yè)實際所需人才要求相脫節(jié)的情況,提出和實施了以真實項目設(shè)計為核心、創(chuàng)新和個性化教育為主的教學(xué)改革方案和多元化的考核方式,培養(yǎng)了學(xué)生的團隊能力和團隊精神,大幅提升了學(xué)生的學(xué)習(xí)興趣和自主學(xué)習(xí)能力。
關(guān)鍵詞:程序設(shè)計基礎(chǔ) ?基于項目的教育和學(xué)習(xí) ?蔡勒公式 ?創(chuàng)新和個性化教育
中圖分類號:G712 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A ? ? ? ? ? ? ? ? ? ? ? ?文章編號:1674-098X(2019)08(a)-0214-03
1 ?現(xiàn)狀與背景分析
現(xiàn)有的《程序設(shè)計基礎(chǔ)》課程的教學(xué)內(nèi)容包括理論教學(xué)和是實驗教學(xué)。一般采用“理論學(xué)習(xí)+課程實驗”的教學(xué)模式,學(xué)生根據(jù)“課后習(xí)題+實驗指導(dǎo)書”的安排進行實驗。這種傳統(tǒng)的教學(xué)模式中學(xué)生大都比較被動[1],存在如下不足:
(1)理論教學(xué)時學(xué)生覺得教師的講解枯燥無味,因而學(xué)習(xí)興趣不夠濃厚,導(dǎo)致學(xué)生進行實驗操作時的手足無措和無從下手,進而導(dǎo)致學(xué)生解決實際問題的能力太弱[2]。
(2)教學(xué)內(nèi)容大多來源于教材中的實例,而沒有來源于實際市場,因此,存在著課堂教學(xué)內(nèi)容與企業(yè)實際所需人才要求相脫節(jié)的情況。這種情況導(dǎo)致學(xué)生學(xué)習(xí)目的性不強,學(xué)后不能達到學(xué)以致用的效果,而且實驗的形式也比較單一。
(3)以個體為中心,學(xué)生獨自完成程序設(shè)計,忽視了軟件行業(yè)所需的團隊精神的培養(yǎng)。
本文旨在通過以真實項目設(shè)計為核心、創(chuàng)新和個性化教育為主的課程教學(xué)方法的改革來解決這些問題,從而取得更好的教學(xué)效果。
2 ?教學(xué)改革方式和策略
2.1 以真實項目設(shè)計為核心的課程教學(xué)內(nèi)容的改革
CDIO是“做中學(xué)”原則和“基于項目的教育和學(xué)習(xí)”的集中體現(xiàn)[3]。真實項目來自企業(yè),或是學(xué)生感興趣的游戲等,比如:簡易計算器、電子萬年歷、畫圖游戲、貪吃蛇游戲等。考慮到學(xué)生的個性化培養(yǎng),學(xué)生在訓(xùn)練的時候,可以分組選擇不同的項目?;A(chǔ)性實驗、設(shè)計性實驗、綜合性實驗、真實項目設(shè)計這四個層次的實踐環(huán)節(jié)貫穿于整個課程教學(xué)過程,較好地實現(xiàn)了CDIO教育理念中的培養(yǎng)學(xué)生構(gòu)思、設(shè)計、實施和運行這四方面能力的要求。
案例分析:用C語言做一個基本的電子萬年歷程序,要求能根據(jù)鍵盤所輸入的年份和月份信息,輸出顯示某年某月的日歷和星期之間的對應(yīng)關(guān)系,基本要求如圖1所示。
總體來說,該項目可以依次拆分成以下四個子問題:(1)閏年的算法,涉及到分支程序設(shè)計;(2)如何計算某年某月的第一天是星期幾,主要涉及到循環(huán)和分支程序設(shè)計的綜合運用;(3)如何循環(huán)輸出指定年月的全部日期和星期之間的對應(yīng)關(guān)系,涉及到多重循環(huán)和break、continue等特殊分支程序設(shè)計的綜合運用;(4)如何設(shè)計程序使其能根據(jù)所輸入的內(nèi)容y/n來繼續(xù)正確的輸出萬年歷或是結(jié)束運行,這一步看似簡單的大循環(huán),實際是基礎(chǔ)知識和循環(huán)程序設(shè)計的綜合運用,如果基礎(chǔ)沒掌握好,相應(yīng)變量的初值沒清零或重置,后續(xù)日歷的輸出都將會錯位。這4個子問題中,第1個子問題屬于基礎(chǔ)性實驗內(nèi)容,其他3個子問題都屬于綜合性實驗內(nèi)容。整個項目開發(fā)實現(xiàn)過程中,根據(jù)不同小組的做法,還會涉及到本課程中的其他知識點,比如用多函數(shù)多文件實現(xiàn)模塊化的程序設(shè)計思想和多文件系統(tǒng)的聯(lián)調(diào);使用指針做形參、數(shù)組名或數(shù)組元素做實參等數(shù)組和指針的綜合運用等。因此,學(xué)生在完成這一個項目的同時,就掌握了C語言中絕大部分基本知識要點如常量變量的使用、C語言中的5類常用語句和3種基本的程序設(shè)計方法等,同時也熟練運用并掌握了重難點知識,比如數(shù)組、函數(shù)、指針這三者的結(jié)合。
各小組在做這個項目時,在第1,3,4這3個子問題上沒有太大差別,在第2個子問題的求解上,用到的方法比較多,其中有代表性的是以下兩種。
方法一:首先找一個參考日期及其所對應(yīng)的星期,然后計算要給定日期和參考日期之間的閏年個數(shù),算出某年某月的第一天是星期幾,從而顯示該月的日歷。該方法的重難點在于輸出日歷時如何正確處理某月1號與星期之間的對應(yīng)關(guān)系以及如何正確使用特殊符號進行對齊設(shè)置,比如制表符或空格符的運用。部分學(xué)生在處理對齊時用到switch…case語句,也有學(xué)生使用的是多重循環(huán)。
方法二:蔡勒公式,使用公式計算某年某月的第一天是星期幾的做法如下:首先用一個變量記錄星期與年份和世紀之間的對應(yīng)關(guān)系,比如下面這種寫法:iweek=(y+y/4+c/4-2*c+26*(m+1)/10)%7;然后判斷這個表達式的值為正數(shù)還是負數(shù),如果是正數(shù),后面的程序中直接使用,如果是負數(shù),要通過加7循環(huán)變成正數(shù)。這種方法看似簡單,只要簡單的套用公式,但是關(guān)于世紀和年份之間的關(guān)系要特別注意,尤其對于類似于2000年和某些年份的3月這樣的特殊日期,學(xué)生如果考慮不周,就很容易導(dǎo)致輸出的日歷出現(xiàn)錯位的情況。
2.2 創(chuàng)新和個性化教育為主的教學(xué)方法的改革
大力探索并改革不適應(yīng)新時期形勢的教學(xué)模式,提出依據(jù)科學(xué)理念設(shè)計課程教學(xué)程序、優(yōu)化教學(xué)過程、指導(dǎo)實驗方法、培養(yǎng)創(chuàng)新能力的“引導(dǎo)-探索-實驗-創(chuàng)新”的教學(xué)模式。突出學(xué)生的主體地位,使學(xué)生主動參與教學(xué)和實驗。讓學(xué)生獨立自主的設(shè)計實驗,利用實驗過程,發(fā)揮學(xué)生的主觀能動作用,由學(xué)生互相講解學(xué)習(xí)方法和設(shè)計思路,讓學(xué)生互相學(xué)習(xí)和監(jiān)督,最大限度地調(diào)動學(xué)生自主學(xué)習(xí)的積極性和主動性。變單向信息傳遞為雙向式、多向式信息傳遞與交流,在教學(xué)和實驗中,加強對學(xué)生實驗方法和創(chuàng)新能力的培養(yǎng)。
采用分類匯總和數(shù)據(jù)透視表的方法,綜合分析了學(xué)生的上機實驗、期中測試、項目答辯、期末考試的成績和表現(xiàn),結(jié)合近5年來的教學(xué)情況,統(tǒng)計分析了教改實施前后,學(xué)生對課程知識點的掌握情況和學(xué)生的編程能力以及綜合運用能力,對比表如表1所示。
表中數(shù)據(jù)的百分比根據(jù)統(tǒng)計人數(shù)計算得到,教改實施前大約500人,教改實施后大約400人。
3 ?主要目標和特色分析
3.1 ?團隊能力和團隊精神
團隊能力是CDIO教育理念要求工程畢業(yè)生必備的一種能力,也是考核學(xué)生的一個重要方式[4]。在實際教學(xué)過程中,根據(jù)項目的難易程度,學(xué)生按2~3人分為一組。每個學(xué)生在項目設(shè)計中完成自己的學(xué)習(xí)和實踐任務(wù),做好自己的模塊分工。同一個項目組的學(xué)生還可以就共同的學(xué)習(xí)任務(wù)和計劃進行溝通并協(xié)商解決,這既符合CDIO理念中的團隊精神,又能讓學(xué)生提前適應(yīng)團隊協(xié)作,為以后的工程學(xué)習(xí)和工作提供良好而扎實的基礎(chǔ)。
比如上述的萬年歷問題,有的團隊是3人一組共同完成的,項目負責(zé)人把項目分成3個模塊,互相商量好模塊之間的接口,然后由3個成員分別按照要求完成自己的部分,最后進行聯(lián)調(diào)。在整個過程中,學(xué)生不僅學(xué)會了如何把復(fù)雜問題或大項目分解成若干個簡單的子問題進行求解,還學(xué)會了團隊合作和多文件的聯(lián)調(diào)。學(xué)生們普遍反映在項目設(shè)計實現(xiàn)過程中,不斷的聯(lián)調(diào)和細分就把以前不太懂的問題全都弄清楚了,有的甚至能舉一反三,學(xué)習(xí)的勁頭大大增強。甚至在整個項目設(shè)計過程中,還碰撞出新的火花,深刻理解了指針在程序設(shè)計中的妙用。
3.2 對團隊集中驗收和對學(xué)生個體進行評估驗收的雙重驗收模式
對學(xué)生個體進行評估驗收是CDIO教學(xué)模式的標準之一。考核的形式可以是多樣的,比如采用“分組答辯+個體提問”的方式,由學(xué)生演示程序的運行結(jié)果,然后針對自己在小組中的分工情況,詳細介紹具體代碼和遇到的問題,最后提交項目總結(jié)報告。為了讓學(xué)生充分參與到項目中,最終的成果驗收采取小組長總結(jié)式匯報和小組成員依次匯報的方式,目的就是要讓參與到項目中的每個人都能在動手能力和編程能力上有很大程度的提高。項目組的每個成員必須清楚的意識到本人所做的模塊對整個項目的作用,從而在一定程度上提高學(xué)生學(xué)習(xí)的積極性和團隊精神。
3.3 考核方式的多元化
本次教學(xué)改革中的考核方式采取以“平時上機實驗+期中無紙化編程測試+期末閉卷考試”為主,“項目設(shè)計及答辯+期末閉卷考試”為輔的方式,讓教師在考核過程中起到主導(dǎo)作用,站在IT企業(yè)或用人單位的角度來設(shè)立問題,將學(xué)生置于一個大的企業(yè)環(huán)境中,引導(dǎo)學(xué)生自主學(xué)習(xí)和設(shè)計,使其具備業(yè)界所需的素質(zhì)和能力[5]??己朔绞降亩嘣材茏屢恍﹦邮帜芰^強的學(xué)生能更主動深入的學(xué)習(xí),提高他們的學(xué)習(xí)主動性和積極性,進而讓他們參與到大學(xué)生創(chuàng)新性實踐活動中去,把課堂所學(xué)知識真正用于實踐中,服務(wù)于社會。同時也讓一些理論知識比較扎實的學(xué)生能發(fā)揮他們的長處,不至于在自己不擅長的領(lǐng)域花費較多時間,真正的體現(xiàn)創(chuàng)新和個性化教學(xué)的課程改革宗旨。
4 ?結(jié)語
本文針對現(xiàn)有的《程序設(shè)計基礎(chǔ)》課程的問題和課程特點,在基于項目的教育和學(xué)習(xí)的CDIO教育理念的指導(dǎo)下,提出了創(chuàng)新和個性化的教學(xué)方式和考核方式,并給出了可行性教改方案。課程改革已經(jīng)應(yīng)用在兩屆共400人的學(xué)生身上,學(xué)生的自主學(xué)習(xí)能力和團隊協(xié)作能力得到了大幅度提升,學(xué)生愿意參與到大學(xué)生創(chuàng)新實踐項目中去的意愿也在不斷增強。有理由相信,隨著CDIO工程教育理念的不斷深入和基于此理念的改革和探索,學(xué)生的學(xué)習(xí)效果和動手能力都會得到更大程度的提高。
參考文獻
[1] 王軍英,馬紅梅.C語言程序設(shè)計教學(xué)存在的問題與對策[J].教育理論與實踐,2015(3):63-64.
[2] 王星魁,相潔,孟東霞,等.程序設(shè)計技術(shù)基礎(chǔ)課程考試改革的研究與實踐[J].教育理論與實踐,2019(12):47-49.
[3] 曾曉輝,文展,付琳.CDIO教學(xué)模式在編程類課程中的改革與評價探索[J].當(dāng)代教育理論與實踐,2016(8):123-125.
[4] 葉冬芬,范偉,楊明霞,等.計算機程序設(shè)計類課程實驗教學(xué)改革的研究[J].福建電腦,2010(11):32-33.
[5] 劉丹.基于CDIO的教學(xué)模式在“數(shù)據(jù)結(jié)構(gòu)”課程中的研究與應(yīng)用[J].工業(yè)和信息化教育,2013(5):29-32.