潘雨青,毛啟容
(江蘇大學(xué) 計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江 212013)
工程教育認(rèn)證倡導(dǎo)以學(xué)生為中心、產(chǎn)出導(dǎo)向 (Outcome Based Education, OBE)、持續(xù)改進(jìn)(Continue Quality Improvement, CQI)三大教育理念。具有解決復(fù)雜工程問題的能力是四年制本科生必須具備的能力[1]。蔣宗禮在《本科工程教育:聚焦學(xué)生解決復(fù)雜工程問題能力的培養(yǎng)》[2]和林健在《如何理解和解決復(fù)雜工程問題——基于<華盛頓協(xié)議>的界定和要求》[3]中都對復(fù)雜工程問題進(jìn)行了詳細(xì)的解讀,并針對在教學(xué)過程中培養(yǎng)學(xué)生解決復(fù)雜工程問題提出了有益的建議。
程序設(shè)計(jì)是計(jì)算機(jī)類專業(yè)的核心課程之一,盡管學(xué)校和教師使用各種教學(xué)手段提高學(xué)生的程序設(shè)計(jì)水平,但學(xué)生在掌握基本編程語法后,表現(xiàn)出的編程能力卻仍然難以令人滿意,大部分學(xué)生依然缺乏《華盛頓協(xié)議》中提出的解決復(fù)雜工程問題的能力。
程序設(shè)計(jì)類課程的第一門課一般開設(shè)在大學(xué)一年級,在學(xué)生掌握的數(shù)學(xué)、自然科學(xué)以及專業(yè)知識還有限的情況下,培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力似乎存在一定的難度。但復(fù)雜工程問題與復(fù)雜技術(shù)問題不同[4],可以通過仔細(xì)分析復(fù)雜工程問題的要求、不同大學(xué)一年級學(xué)生的特點(diǎn)以及程序設(shè)計(jì)課程的知識領(lǐng)域,循序漸進(jìn)地培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力。
根據(jù)OBE教育理念,首先確定專業(yè)的培養(yǎng)目標(biāo),然后確定專業(yè)的畢業(yè)要求以及細(xì)化的畢業(yè)要求指標(biāo)點(diǎn),接下來制定專業(yè)的培養(yǎng)計(jì)劃,再進(jìn)行教學(xué)活動,進(jìn)而在教學(xué)過程中進(jìn)行不斷的評價(jià)和改進(jìn)。例如某大學(xué)程序設(shè)計(jì)基礎(chǔ)承擔(dān)了如下指標(biāo)點(diǎn):
指標(biāo)點(diǎn)1.5:具備將工程基礎(chǔ)知識、計(jì)算機(jī)基礎(chǔ)知識用于計(jì)算機(jī)領(lǐng)域復(fù)雜工程模型驗(yàn)證求解的能力。
指標(biāo)點(diǎn)4.3:能夠針對計(jì)算機(jī)科學(xué)與技術(shù)領(lǐng)域復(fù)雜工程問題,開發(fā)、選用恰當(dāng)?shù)募夹g(shù)和資源,并能夠了解其局限性。
根據(jù)指標(biāo)點(diǎn),確定了程序設(shè)計(jì)課程的目標(biāo),課程目標(biāo)包括知識方面和能力方面,其中①~⑥能夠很好地支持指標(biāo)點(diǎn)1.5,⑦~⑩支持指標(biāo)點(diǎn)4.3。
知識方面包括:①理解程序設(shè)計(jì)的基本類型、掌握程序設(shè)計(jì)中的運(yùn)算符和表達(dá)式;②掌握面向過程的3種基本結(jié)構(gòu)(順序、分支和循環(huán));③掌握數(shù)組、指針、結(jié)構(gòu)體等構(gòu)造類型;④掌握函數(shù)的定義和使用;⑤掌握程序設(shè)計(jì)中的基本算法和算法的描述方法。
能力方面包括: ⑥能夠利用程序?qū)?shù)學(xué)和物理模型進(jìn)行驗(yàn)證;⑦能夠熟練使用一種程序開發(fā)工具;⑧在程序設(shè)計(jì)中養(yǎng)成良好的程序書寫習(xí)慣;⑨掌握并應(yīng)用自頂向下、逐步細(xì)化的模塊化的程序設(shè)計(jì)方法;⑩設(shè)計(jì)程序解決數(shù)學(xué)、物理及實(shí)際問題,并判定結(jié)果的有效性。
普通高校大學(xué)一年級的學(xué)生大部分沒有接觸過計(jì)算機(jī)編程,程序設(shè)計(jì)課程對大一新生還很陌生,教師需要在課程過程中培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力,培養(yǎng)學(xué)生的計(jì)算思維,這要求教師必須在教學(xué)的過程中激發(fā)學(xué)生的興趣,注重教學(xué)方法,循序漸進(jìn)。
(1)掌握程序設(shè)計(jì)的基本原理,能夠利用程序驗(yàn)證基本數(shù)學(xué)物理模型。程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)內(nèi)容基本包括數(shù)據(jù)類型、控制結(jié)構(gòu)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體和文件。各學(xué)校一般也是按照上述順序進(jìn)行教學(xué)的。在整個(gè)教學(xué)過程中,利用應(yīng)用習(xí)題提高學(xué)生程序設(shè)計(jì)的能力,有意識地結(jié)合數(shù)學(xué)、物理知識,練習(xí)設(shè)計(jì)程序完成數(shù)學(xué)物理模型的求解,具體安排見表1。
表1 數(shù)學(xué)模型驗(yàn)證層次案例
(2)深入分析,構(gòu)建模型,解決復(fù)雜工程問題。程序設(shè)計(jì)學(xué)習(xí)的第一層次通過數(shù)學(xué)物理模型任務(wù)案例解決了計(jì)算機(jī)基礎(chǔ)應(yīng)用的問題,在第二層次,培養(yǎng)學(xué)生通過對一些實(shí)際問題的分析,綜合考慮各種要素,進(jìn)行建模,然后用計(jì)算機(jī)程序解決復(fù)雜問題,見表2。受到學(xué)生層次的限制,在設(shè)計(jì)題目的時(shí)候需要進(jìn)行必要的抽象和簡化,但在抽象和簡化的過程中,仍然需要考慮滿足復(fù)雜工程問題的條件。
表2 復(fù)雜工程問題訓(xùn)練案例
表2列出了針對不同知識點(diǎn)設(shè)計(jì)的復(fù)雜工程問題,有些問題對于高年級的學(xué)生來說可能不夠“復(fù)雜”,但是針對大一的學(xué)生來說,是具有一定復(fù)雜程度的,這些問題都需要進(jìn)行工程原理分析,問題涉及不同的領(lǐng)域問題,同時(shí)貼近實(shí)際,通過這些問題不僅能提高編程水平而且能夠拓寬知識面,提高分析問題的能力。另外這些問題在設(shè)計(jì)的時(shí)候兼顧到了所學(xué)知識的前后順序,能夠保證大一學(xué)生經(jīng)過分析探索是可以解決的。
購物打折是第一個(gè)實(shí)施復(fù)雜工程問題,主要是利用分支結(jié)構(gòu)來解決問題的,它來源于實(shí)際。商場購物有打折和返券兩種,如A商家滿120返60禮券;B商家滿258返120禮券;C商家,滿300返200禮券;D商家滿300減100禮券;F商家打4折,請問在哪家購買劃算。再如物理實(shí)驗(yàn)數(shù)據(jù)擬合作業(yè)主要是運(yùn)用數(shù)組進(jìn)行計(jì)算,但卻首先應(yīng)建立數(shù)學(xué)模型(如最小二乘法),如果實(shí)驗(yàn)數(shù)據(jù)量較大的話,使用文件更加合理。再者在使用分形方法繪制雪花圖案例中更需要運(yùn)用數(shù)學(xué)、幾何知識、遞歸算法、繪圖知識等。
歸納起來復(fù)雜問題的題目設(shè)計(jì)思路如下:
(1)選題類型原則。復(fù)雜問題來源于實(shí)際,而不是簡單的抽象模型,這樣學(xué)生解決起來才有興趣。例如利用循環(huán)解決問題,一般練習(xí)的時(shí)候可能是1+2+3+4+…或者這種形式的變形的遞增或者遞減序列,這樣的問題必定會有學(xué)生提出為什么不用遞減序列的求和公式來解決?類似的購房問題綜合考慮工資的增長、消費(fèi)指數(shù)的上漲,以及房價(jià)上漲等多種因素,就會體現(xiàn)出利用計(jì)算機(jī)求解的優(yōu)越性,同時(shí)對一些經(jīng)濟(jì)術(shù)語有所了解。
(2)選題場景。問題選題最好選自不同的領(lǐng)域,如財(cái)務(wù)、管理、物理應(yīng)用等,這樣,既能和生活實(shí)際緊密相連,又能讓學(xué)生會體會到多學(xué)科背景的重要性。
(3)選題的難度問題。復(fù)雜工程問題不等于復(fù)雜性問題[4],針對大一新生的題目難度不能太高,涉及的知識點(diǎn)要考慮到循序漸進(jìn)。如商品打折問題可以考慮判定都買一定價(jià)錢的物品,也可以要求給出不同價(jià)格的最佳選擇。
傳統(tǒng)的課堂教學(xué)和現(xiàn)代的MOOC、微課等教學(xué)手段相結(jié)合可以提高學(xué)習(xí)的效果[5-7],考核方式多樣化不僅可以檢測知識的掌握程度,而且能夠促進(jìn)各種能力的不斷提高??己藢W(xué)生是否具備解決復(fù)雜工程問題的能力,考核內(nèi)容包括:理論知識考核(學(xué)生練習(xí)、課后作業(yè)、學(xué)生自測、期末考試)、實(shí)踐能力考核、創(chuàng)新能力考核、團(tuán)隊(duì)協(xié)作能力考核等幾方面。通過各個(gè)環(huán)節(jié)的全面考核,綜合評價(jià)學(xué)生成績。結(jié)合教學(xué)管理平臺完成理論知識的考核比較適合,考核評價(jià)要注意到題目類型的多樣性、試題的內(nèi)容是否與課程目標(biāo)以及畢業(yè)要求指標(biāo)點(diǎn)相一致。創(chuàng)新能力和團(tuán)隊(duì)能力考核與課程設(shè)計(jì)中考核評價(jià)相結(jié)合比較適合。不同的考核內(nèi)容采用不同的現(xiàn)代技術(shù)平臺能夠減輕教師和學(xué)生的負(fù)擔(dān),特別是在線判題系統(tǒng)的應(yīng)用,能夠大大提高考查的效率[8-9]。
對于程序設(shè)計(jì)課程來說,注重的是培養(yǎng)學(xué)生的編程水平和動手能力,并逐步培養(yǎng)學(xué)生解決復(fù)雜問題的能力。因此對于實(shí)踐環(huán)節(jié)的考核就非常重要。學(xué)生一般認(rèn)為程序設(shè)計(jì)實(shí)踐環(huán)節(jié)的考核具有彈性,或者程序的結(jié)果正確就達(dá)到了目標(biāo)。針對程序課程的目標(biāo)和畢業(yè)要求的指標(biāo)點(diǎn),從問題分析、方案設(shè)計(jì)、編程實(shí)現(xiàn)、代碼書寫規(guī)范[10-11]、報(bào)告質(zhì)量5方面進(jìn)行規(guī)范,見表3。評分標(biāo)準(zhǔn)在開學(xué)初就公布在網(wǎng)站上,指導(dǎo)教師對典型的設(shè)計(jì)性報(bào)告根據(jù)規(guī)范進(jìn)行評價(jià),最終的評分作為總體評價(jià)的一部分。表3列出的考核評價(jià)標(biāo)準(zhǔn)規(guī)范了評價(jià)過程,同時(shí)能夠促進(jìn)學(xué)生專業(yè)技能和業(yè)務(wù)素養(yǎng)的提高。
采用多種教學(xué)方式和考核方式后,學(xué)生程序設(shè)計(jì)課程學(xué)習(xí)的效果明顯改善,不及格率由26%降低到7%,基礎(chǔ)知識錯(cuò)誤率明顯降低。學(xué)生編寫程序的能力顯著提高,代碼注釋率增加,程序中標(biāo)識符定義更加規(guī)范,并且后續(xù)課程教師普遍反映學(xué)生編程能力增強(qiáng)。
表3 程序設(shè)計(jì)實(shí)驗(yàn)評價(jià)標(biāo)準(zhǔn)
高等院校在工程教育認(rèn)證的過程中,首先要領(lǐng)會OBE的教學(xué)理念,真正理解“復(fù)雜工程問題”的內(nèi)涵,明確專業(yè)畢業(yè)要求和指標(biāo)點(diǎn),確定課程目標(biāo)。在教學(xué)內(nèi)容、教學(xué)方法、考核內(nèi)容、評價(jià)標(biāo)準(zhǔn)上從課程的特點(diǎn)、學(xué)生的特征出發(fā),因勢利導(dǎo),遵循教育規(guī)律,循序漸進(jìn)。即使是在程序設(shè)計(jì)基礎(chǔ)這些公共課程中也完全可以逐步培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力。