張玉州
(安慶師范大學計算機與信息學院,安徽安慶246133)
程序設計作為計算機專業(yè)學生的基本素質,一直備受老師和學生的重視,對核心課程的學習以及將來從事軟件開發(fā)有著重要意義。然而,調查發(fā)現(xiàn),通過基礎語言的學習,學生的實際編程能力不足,甚至在修完“數(shù)據(jù)結構”等課程后,這種狀況依然沒有得到改善[1]。鑒于此,“程序設計實踐”課程在各大高校陸續(xù)開設,并取得了較明顯的效果[2]。1由于“程序設計實踐”興起時間不久,傳統(tǒng)的教學模式占據(jù)主導地位,主要方式為“傳遞-接受”,以“三中心”為理論核心,即“教師中心,教材中心,課堂中心”,以系統(tǒng)知識的傳授和基本技能的培養(yǎng)為目標[3],在很大程度上制約了該課程優(yōu)勢的展現(xiàn)。同時,在該模式下的教學,師生間缺乏交流、互動,課堂上90%的時間是老師對課程知識的講解[4]。轉變“程序設計實踐”課程的傳統(tǒng)教學模式,切實提高學生的實際編程能力,已經是程序設計教學工作者面臨的重要問題。項目驅動教學模式以操作問題為對象,引領學生參與到具體項目的分析、設計、實施等全過程,以完成教學任務[5]?!俺绦蛟O計實踐”是一門實踐性很強的課程,引入項目驅動教學模式,能夠更好地實現(xiàn)教學目標,并且在南京郵電大學等高校已有采用,并取得了良好的效果。本文主要介紹傳統(tǒng)教學模式主導下的“程序設計實踐”課程教學缺陷,并闡述了項目驅動教學模式在我校的實施情況。
我校計算機專業(yè)編程基礎教學語言為C語言,然而,由于學時和內容的限制,學生的編程能力十分有限,目前在老師們的共同努力下,“程序設計實踐”課程得以開設。該課程雖然提高了學生的編程能力,但由于現(xiàn)行教學模式(傳統(tǒng)的教學方式)的限制,并沒有達到我們預期的教學效果。我校2014版人才培養(yǎng)方案中“程序設計實踐”課程教學內容和實驗內容只是“C語言程序設計”課程的一個簡單延續(xù),沒有對程序設計課程進行實質性地突破,主要內容包括C語言的基本語法、基本結構以及一些典型問題,如數(shù)制轉換問題、字符串處理、高精度計算、遞歸等,所以,難以實現(xiàn)學生編程能力的改善。
項目驅動模式以學生為中心,強調學生自身的主觀能動性。因此,這種思想應貫穿程序設計的各個環(huán)節(jié),項目設計過程包括:實際應用問題的選擇、問題需求的調研和分析、任務的分配、算法設計和代碼實現(xiàn)以及后期的系統(tǒng)測試等等。由于問題動機的強烈驅動,學生會對已學理論知識進行整理,并應用到具體問題的求解過程中。在2018級計算機科學與技術工科一班“程序設計實踐”課程中,完成的項目設計有:(1)工資管理系統(tǒng),(2)高速公路收費站系統(tǒng),(3)學生信息管理系統(tǒng),(4)銀行管理系統(tǒng),(5)通訊錄管理系統(tǒng),(6)火車票務系統(tǒng),(7)點餐系統(tǒng),(8)圖書館管理系統(tǒng);(9)運動會分數(shù)管理系統(tǒng),(10)停車場車位管理系統(tǒng),(11)酒店管理系統(tǒng)等。這些項目均有明確的功能要求,如點餐系統(tǒng),其功能要求包括①顯示菜單,②點菜操作,③修改已點菜品,④折扣計算,⑤菜單信息修改,⑥費用結算,⑦系統(tǒng)退出。通過項目建設,學生接受了較為完整的綜合訓練,包括由問題的需求分析出發(fā),經歷總體框架設計、模塊分割、代碼設計和實現(xiàn)以及軟件測試等過程[6]。如此的自主探索,既鞏固了理論知識,又提高了學生自身的實際操作能力。
項目是項目驅動教學中的重要組成部分,其設置和選取應遵循趣味性和可行性的原則,也就是項目既能夠開展、完成,又能激發(fā)學生對程序設計的興趣,并能提高學生的程序設計能力??尚行砸髥栴}的規(guī)模需要控制,不能過大或過于復雜;趣味性則可結合實際生活或游戲開發(fā)設置相關的問題。
目前,我們給學生提供了一些項目,供學生選擇完成,如醫(yī)院的掛號系統(tǒng)、學生成績管理系統(tǒng)、商品管理系統(tǒng)、航班訂票系統(tǒng)等等,這些問題難度均高于課本知識范圍,但規(guī)模較適度且有一定的趣味性。同時,為了豐富項目庫,使得課題的難度能夠適應學生的動手能力,鼓勵學生根據(jù)興趣和程序設計能力,自擬課程設計問題。對于學生提供的項目課題,嚴格把關,主要從規(guī)模和難度等方面,避免問題過于簡單化,或者過于復雜而導致學生無法駕馭、完成。
項目實施的大致過程包括項目問題選擇、學生分組、問題模塊分解和任務分配、需求分析調研和問題總體設計、代碼編寫和測試以及最后的成果驗收(展示、答辯和材料收集)[6]。以下就我校項目驅動教學法在“程序設計實踐”課程中的實施過程展開敘述。
(1)項目庫的建立。項目庫是供學生進行問題選取的資源,項目庫的建設是項目教學法的開端,亦是重要的一步。可按照1.3節(jié)中設置的原則,進行項目庫的建設。
(2)選題和分組。為了提高項目完成的效果,我們一般在“程序設計實踐”課程期中的時候,將問題在班級進行公布。此時,學生有了C語言學習的基礎以及“程序設計實踐”前期的學習,已具備一定的程序設計能力,為項目開發(fā)作了準備。學生可結合自身的能力和興趣,進行問題選擇。在此過程中,涉及一個重要的問題,即分組問題。每組人數(shù)的多少可取決于問題的規(guī)模和難度,通常為3~5人,每組產生一名小組長,負責小組的事務管理[5]。如我校2016級和2017級計算機工科班的項目分組中,通常是5人左右為一組,其中2016級,共分成了12組,而2017級,分成了10組。2018級計算機專業(yè)的分組有所改變,每組人數(shù)不得多于4人。另外,由于轉專業(yè)的同學,沒有C語言基礎,所以他們會分散到各小組中,通過項目開發(fā)的參與,提高他們的編程能力。
(3)開發(fā)過程。選題和分組結束后,就正式進入項目開發(fā)階段,通常分配的時間為4周。過程包括問題需求分析、問題分解成模塊、算法設計、算法實現(xiàn)、代碼調試、組織數(shù)據(jù)測試等環(huán)節(jié)。在這些環(huán)節(jié)中,對于學生出現(xiàn)和提出的問題,給予及時的指導,并督促他們按時完成任務。
(4)材料提交。為了規(guī)范項目開發(fā)過程,提高項目驅動教學模式的效果,對于每個項目開發(fā),均需有文檔說明,包括項目功能、需求說明、流程圖、算法設計等等,嚴格按照項目開發(fā)流程進行。文檔說明以及代碼作為材料,需要提交、回收。
為了檢驗項目的完成情況,對各小組進行較細致地考核。該過程可放置在材料提交之前,每組選派一名組員對項目完成情況進行匯報,包括項目的功能、實用價值、開發(fā)過程以及存在的問題。隨后,依據(jù)小組中的任務分配,對于每個成員均提出相應的問題,這樣可以避免少數(shù)同學沒有實質性的工作。根據(jù)答辯情況,每位學生成員都給定一個成績,整個小組的項目開發(fā)也會進行評分;結合個人和小組成績,小組成員會得到自己的綜合成績。每組匯報和答辯時間一般控制在15~20分鐘。另外,為了提高考核效果,增強討論的氣氛,在答辯過程中,其他組的同學也可以參與問題提問。在課程設計答辯過程中,進行了一系列的導向設置,如2018—2019學年第二學期,在2018級計算機科學與技術(工科)班的答辯過程中,對學生所完成的設計進行系統(tǒng)功能延伸,主要向網絡化、智能化、實用化方向牽引。如在訂餐系統(tǒng)的問題中,建議設計成類似于APP形式的小軟件,這樣使得用戶可以通過手機即可了解餐飲情況、訂餐并完成點菜。如商品銷售管理系統(tǒng)中,建議增加商品銷售數(shù)量和趨勢分析模塊,因為商品的需求量和眾多因素有關,如季節(jié)、消費者的購買習慣等,這樣增加商品銷售系統(tǒng)的商品銷售量的分析,并給出趨勢圖,提升系統(tǒng)的智能化,就可以幫助管理人員進行有效決策,在不同階段,進行適當商品的儲備。
為了方便課程項目的管理,建立了安慶師范大學程序設計實踐課程設計網站,該網站是結合網站管理系統(tǒng)和課程設計系統(tǒng)為一體的綜合類網站,其可將課堂課件、教學大綱、實驗報告等資料上傳,為學生提供學習的資料。針對課程設計線下繁瑣的師生交互,開發(fā)了課程設計系統(tǒng),師生均可在線對課程設計進行管理,更加方便快捷。網站管理系統(tǒng)可管理與程序設計實踐課程設計相關的課程設計、通知公告、課堂資料、參考書目等教學資料,其中,課堂資料類別清晰明了,方便老師資料的整理,也方便學生分類查找。為了讓學生熟悉并更好地使用網站中的相關功能模塊,對2018級計算機科學與技術(工科)專業(yè)的學生進行了該網站使用的介紹和培訓。從而,關于課程設計的組員信息、相關文檔以及代碼即可通過網絡上傳至系統(tǒng),亦可通過系統(tǒng)了解課程設計的情況,并回收材料。
本文介紹“程序設計實踐”課程開設的意義,以及目前該課程教學模式的弊端。項目驅動教學模式對于我們只是初步嘗試,真正的實施還有很長的路要走,大量工作有待進一步探索和研究,我們的目的就是爭取優(yōu)良的教學效果,以學生為本,努力提升他們的編程實踐能力。