郭克華,奎曉燕,雷 皓
(中南大學 信息科學與工程學院,湖南 長沙 410083)
程序設計課程是計算機相關專業(yè)學生提高動手能力,提升實踐技能的重要內容。近年來,如何提高學生的學習效果,成為教學教改研究的熱點問題;而在實際教學的過程中,如何讓學生掌握復雜知識點,是授課教師面臨的重要問題。對于復雜知識點教學方法的研究,已經(jīng)在高校程序設計課程教學中起到了越來越重要的作用[1]。復雜知識點一般分布在程序設計課程的高級模塊中,這些知識點往往實踐性較強,教師備課較為復雜,需要課外花一定時間才能掌握,而由于課時量的限制,僅憑上課時間,無法很好地完成知識的講解。類似的知識點有Java Web程序設計中的“Ajax”、JavaEE程序設計中的“輕量級框架開發(fā)”“EJB”等。
因此,提升復雜知識點的教學效果顯得非常重要,但是傳統(tǒng)的教學方法,對于復雜知識點的教學存在課時量不夠、學生畏難情緒導致主動學習動機減弱、備課工作量較大、作業(yè)難以評估的問題。如果還采用傳統(tǒng)課堂講授、課后作業(yè)的教學模式,可能導致部分學生無法清楚地掌握知識的實質,了解原理卻無法開發(fā),造成了教學資源的浪費[2]。
任務驅動式教學法是翻轉課堂的一種有效組織方式,該教學方法的思想基礎是以“任務”為中心,通過讓學生完成“任務”來讓學生學會理論,而不是直接讓學生來學習理論并進行講解,對學生任務的完成設計完善的量化評估體系,激發(fā)學生興趣,培養(yǎng)其自學能力和創(chuàng)新精神。
在程序設計課程中,復雜知識點不僅對于學生是學習難點,而且對于教師也是講授難點。一是課時量的問題,復雜知識點的講解,需要較多的背景知識,利用有限的課時,將其講透較難;二是學生主動性不夠的問題,學生在對復雜知識點的理解上,如果難度較大,則會導致部分學生上課失去主動學習的興趣;三是備課工作量的限制,有些復雜知識點,需要進行預先開發(fā)原型系統(tǒng),教師工作量較大;四是作業(yè)難批改,復雜知識點布置的作業(yè),一般都有一些規(guī)模,教師難以針對具體情況進行評分。
如果采用傳統(tǒng)課堂講授、課后作業(yè)的教學模式,會出現(xiàn)較大問題:首先從教師方來說,在課時量的限制下,無法深入講解,只能從教案的美觀、課堂的生動、視頻課程、開發(fā)師生交互平臺等方面下工夫;但從學生角度,如果上課無法接收有效的信息,就會完全變成被動學習,出現(xiàn)大量學生不聽課、玩手機、睡覺的情況,頂多關注一下教師講的一些故事。雖然理解了皮毛,課后還是無法進行開發(fā)。
理想的課堂應具有如下特征:學生的價值得到體現(xiàn);學生的激情得到激發(fā);學生不僅學知識,還鍛煉集體感、口才、合作度等綜合素質;學生能學會老師沒教到或者不會的知識。因此,我們將傳統(tǒng)的“課堂學習—課后復習”,轉換為“課前預習—課上講解—完成任務—最終答辯”的模式。在這種情況下,教師和學生的功能轉換見圖1。
圖1 任務驅動教學法中教師和學生的功能
值得一提的是,任務驅動式教學不同于傳統(tǒng)項目式教學[3],項目教學一般以整個項目為背景,可能到了課程末尾才能完成項目,而任務驅動式教學,任務嵌入在課程之中;任務驅動式教學也不同于傳統(tǒng)分組討論和教學[4],任務驅動式教學中,學生只參與項目開發(fā)和自己項目展示,不講解理論知識,理論知識點仍由教師講解;任務式教學也不是課程設計,而是貫穿于理論課教學中的小型任務。
表1是一個任務驅動式教學法的一般組織過程。
每個任務,學生課后學習投入的時間約8~10小時,一般分為3~4人1組。任務驅動教學的精髓為:解決實際問題、燃起學生興趣、培養(yǎng)學生自學能力、給學生展示機會。由于任務比理論更加容易被學生了解,并且任務可以復制,支持不斷迭代更新,一次設計,后期減少勞動量,可以降低教師備課的負擔,也提高學生的參與度。
表1 任務驅動式教學法的組織過程
在對教師的要求上,若對內容足夠熟悉,完成任務驅動式教學不難,關鍵在于任務的設計和學生的參與;特別是針對程序設計課程,完全采用案例教學也不難,因為程序設計課程本身就是要解決實際問題。
在課程的組織上,教師需要考慮如下問題:①任務的設計:需設計相對簡單的任務,1~2周的周期之內能夠完成;②基礎理論的講解:能夠較清楚地講解基礎知識,推薦純編程教學模式,知識講解應緊貼任務;③課時量:任務驅動式教學方法理論上延長傳統(tǒng)教學方法課時1.5倍左右,課時可能不夠,因此,可將演示改為在實驗課上進行,實驗室需安排投影儀等設備;④成績評定:可以給組打分,與組內評分相結合,保證公平性,在助教充足的情況下,可以考慮每個學生進行演示。
筆者以JavaWeb程序設計課程為例來闡述這個問題。JavaWeb程序設計是高校程序設計專業(yè)的一門專業(yè)選修課,對于從事基于Java的Web應用開發(fā)并從事Web智能研究的學生,是一門基礎性課程。該課程學習之前,學生已經(jīng)學習了JavaSE的基本知識和基本的HTML、JavaScript語法以及常見的系統(tǒng)配置方法。以筆者2016年出版的《JavaWeb程序設計》[5]為例,該課程中較為復雜的知識點列于表2中。
表2 JavaWeb程序設計中的復雜知識點
針對以上5個復雜知識點,可以設計出整個課程周期中的5個重要任務,見表3。
每個任務在相應學習之后可以安排。表4以任務2為例,描述了該任務的安排。
為較好地激發(fā)學生的學習興趣,一般3~4人分為1組。必須與學生明確:任務完成情況與成績掛鉤、建立團隊榮譽感、必須較好地完成自學內容、在較短時間完成項目展示、時間不夠的,可采用視頻等方式展示。
每組評分標準如下:①功能性,主要考察所有功能是否實現(xiàn);②界面友好性,主要考察界面是否具有較好的用戶體驗;③展示的組織,主要考察PPT是否清晰,語言是否流暢得體。具體可根據(jù)任務的難易程度進行分值比例權重的調整。
如果遇到任務需要持續(xù)1周以上的情況,可以在任務布置后接下來的1周繼續(xù)講課,答辯向后延續(xù)。成績的評定上,每組答辯10分鐘,可由其他組組長進行打分最后平均。遇到大班的情況,可以每組答辯10分鐘,分好幾個群同時答辯,此時需要較多的助教參與。為避免大班情況下各群標準不一的問題,可建立適當?shù)臉藴蕦⑷航M分數(shù)歸一化到同一個值。在組員的賦分上,可將組內的分數(shù)由組員自行分配,平均分保持不變即可。
針對任務驅動式教學方法,我們也設計了實驗,隨機抽取2個班的本科學生,一個班(A班)采用“任務驅動式教學方法”,一個班(B班)采用普通方法,表5顯示了問卷調查和期末考試的結果。
表3 針對5個復雜知識點的任務設計
表4 任務2的安排
表5 實施效果
從以上表格中可以看出,在采用任務驅動式教學后,學生評教,表示壓力大,但滿意度廣泛提高;學生滿意度中,案例教學滿意點凸顯度最高;不過,期末考試班級平均分并未提高,高分(近滿分)學生反而減少;但是,不及格的學生數(shù)量減少了,極低分學生也減少;學生參加創(chuàng)新活動、競賽的比例顯著提高。雖然并未起到提高班級考試卷面平均分的作用,但提高了滿意度,降低了差生率,提高了學生的創(chuàng)新創(chuàng)業(yè)能力。
任務驅動式教學法取得了較好的效果,但是也存在以下幾個問題。
(1)不能設置太多的任務,也不能設置太難的任務;32學時的課程,3~5個案例即可;每個案例在1~2周必須能完成。
(2)必須重視學生價值觀的引導,具有展示積極性的學生在大多數(shù),不積極的學生也會受到正面影響。
(3)任務驅動式教學方法不適合大班上課,30人左右最好,60人左右就比較困難;如果對課程不熟悉或者不耐心組織,可能會導致無續(xù)情況的出現(xiàn)。
任務驅動式教學法以“任務”為中心,通過讓學生完成“任務”來讓學生學會理論,借助完善的量化評估體系,可激發(fā)學生興趣,培養(yǎng)其自學能力和創(chuàng)新精神。實踐證明,該教學方法能夠加強學生對知識的理解,培養(yǎng)其綜合素質,取得了較好的教學效果。