郭峰 孫晶 童立靖
摘要:Java程序設計是計算機及相關專業(yè)的一門重要課程,傳統(tǒng)的以教師為主導的教學模式難以激發(fā)學生的學習興趣。本文提出一種結合翻轉課堂、同伴教學和項目驅動的混合教學模式,并在北方工業(yè)大學Java程序設計課程的教學過程中應用,取得了良好的教學效果。
關鍵詞:翻轉課堂;同伴教學;項目驅動;混合教學模式;Java程序設計
[]中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)07-0102-02
Abstract: Java programming is an important course for computer and related majors. The traditional teacher led teaching mode is difficult to stimulate students' interest in learning. In this paper, a mixed teaching mode combining flipped classroom, peer instruction and project driven is proposed and applied in the teaching process of Java programming course in North University of technology, and good teaching effect is achieved.
Key words: Flipped Classroom; Peer Instruction; Project Driven; mixed teaching mode; Java Programming
1 引言
圍繞著Java語言已經(jīng)形成一個完整龐大的應用生態(tài)圈,以JDK為技術核心的大量框架、平臺、工具,無論是在傳統(tǒng)的軟件開發(fā)領域還是在深度學習、云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)、區(qū)塊鏈等近年來的熱點領域,都發(fā)揮著重要的作用。在TIOBE公司發(fā)布的編程語言排行榜上,Java語言在絕大多數(shù)年份排名第一位或第二位[1]。
Java程序設計是計算機類專業(yè)的核心課程,主要講授Java SE的內容,是Java系列課程的起點。由于Java應用的廣泛性,學生有學好Java的潛在動力,但是傳統(tǒng)的教學模式通常以“教師為中心”,采用“Java 知識點講解 + 程序演示”的授課方式,難以激發(fā)和維護學生的學習興趣,編程訓練題目也是圍繞著知識點進行設計,缺乏連貫性和實用性。學生無法感受實際項目中需要面對和解決的問題,不利于編程能力和解決問題能力的提高。針對傳統(tǒng)的 Java 程序設計課程教學模式存在的問題 , 已有較多的教改研究和探索。文獻[2]對計算機類程序設計課程的教學模式進行了探討。文獻[3]提出了融合 CDIO 工程教育理念和翻轉課堂教學模式的 Java 程序設計課程教學改革總體思路。文獻 [4]提出項目驅動和翻轉課堂相融合的課堂教學模型,文獻[5]提出了基于翻轉課堂的項目化教學改革方案,文獻[6] 提出基于慕課的翻轉課堂教學模式,文獻[7] 提出“以項目為主線,教師為主導,學生為主體,CDIO 能力培養(yǎng)”的教育模式。這些研究從不同教育理念、教學模式、教學手段等方面進行了積極的探索,在一定程度上都能提升教學效果。
2 混合教學模式
文獻[8]在教育碩士研究生的培養(yǎng)過程中,采用了翻轉課堂和同伴教學的“混合式教學模式”?!盎旌鲜浇虒W”指把兩種或兩種以上的教學方法融合在一起進行的教學,這種混合是根據(jù)課程教學需要而進行的有目的、有計劃、有針對性的混合,而不是隨意和雜亂無章的混合。把“混合式教學”等同于線上線下相結合的觀點是不恰當?shù)?,線上線下只是傳播渠道的區(qū)別,而非教學方法上的區(qū)別。
在高校的程序設計類課程教學實踐中,近年來項目驅動和翻轉課堂教學方法被大量采用,同伴教學的應用尚不多見。同伴教學(Peer Tutoring或Per Instruction)是指在教師的指導和培訓下,作為教學者的學生對另外一些學生進行教學,幫助與其相同或相似年級水平的同伴及低年級學生進行學習的教學形式。同伴教學是學生之間相互施教、相互促進、共同受益的一種教學組織形式。由于同學之間更為熟悉,思維方式,認知水平,知識體系等各方面的相似性,使得這種方式受歡迎且有效果[9]。與傳統(tǒng)班級教學相比,在倡導素質教育的今天,同伴教學具有不容忽視的優(yōu)越性,對當今教育改革尤其是教育教學實踐具有深遠的現(xiàn)實意義。
項目驅動和翻轉課堂更多的是教學內容和教學流程上的改進,同伴教學法更容易激發(fā)學習的主動性,本文從更多維度和視角探索 Java 程序設計課程的教學改革,在教學過程中綜合運用翻轉課堂、同伴教學、項目驅動的教學方法,形成一種適合java程序設計課程的混合教學模式,為培養(yǎng)應用型、創(chuàng)新型、復合型的新工科 Java 軟件開發(fā)人才起到一定的促進作用。
3 教學實踐及效果
3.1 教學實踐
2020年春季,受新冠疫情影響,教學從線下完全轉為線上的虛擬課堂。虛擬課堂采用中國大學慕課的精品課程與直播平臺騰訊會議結合的方式。其中,中國大學慕課的精品課程是由北京大學唐大仕老師在線講授的Java程序設計課程,該課程是國家國家精品課。在線講授課程相比于現(xiàn)實課程的好處是可以重復觀看,尤其是對于疏于做課堂筆記的學生。但是,在線講授也有缺陷,相比于現(xiàn)實課程,它難于觀察學生的學習進度。這是由于在線講授缺乏與學生的直接溝通,難以得到即時反饋。
本課程在直播平臺中采用了翻轉課堂和同伴教學的模式,以重點和難點講解為主要直播內容,增加學生在線講解環(huán)節(jié)。重點和難點的講解是解答學生學習在線課程時遇到的問題。學生在線講解更容易激發(fā)學習的興趣,也容易發(fā)現(xiàn)學生對所學知識的掌握程度。
基于翻轉課堂教學模式,在教學過程中,根據(jù)不同章節(jié)的難易程度,靈活調整課程的進度。Java課程是C語言的后續(xù)課程,由于Java語言的數(shù)據(jù)類型和基本控制結構與C語言的相似性,這部分內容對于有C語言基礎的同學來說很容易掌握,因此第三章《數(shù)據(jù)運算、流程控制和數(shù)組》安排學生提前觀看視頻,在課堂進行簡單總結,快速通過。而第四、五章是本課程的核心內容,尤其第五章《深入理解Java語言》難度較大,在安排同學預習之后,有些同學反映有些內容不易理解,因此在課堂上詳細講解Java語言的一些重要特性。
在課堂講解中,更加注重理論和實際的結合,更加注重對所講知識點的理解,而不是記憶。比如,在講面向對象基本概念這一部分,通常會介紹抽象、封裝、繼承和多態(tài)四個特性,如果僅僅停留在文字和概念層面,同學們并不能真正理解,在課堂講解中,告訴同學們每個特性通過實際程序中那些關鍵字或者語法結構體現(xiàn)出來,這些特性就不再是抽象的概念,而是有具體的對照物并且和已經(jīng)掌握的知識產(chǎn)生關聯(lián),從而真正理解這些特性為什么非常重要。在講解Java語言標識符時,如果僅僅告訴同學們定義標識符的規(guī)則,很難記住,所以在課堂上進一步引導同學們思考,如果在定義標識符時,違反了這些規(guī)則會有什么后果,并通過編寫一些代碼演示一下,就很容易理解為什么定義這些規(guī)則,因為違反規(guī)則會產(chǎn)生二義性,我們的程序就沒有辦法正常編譯和運行了。
基于同伴教學模式,在教學過程中,有些教學內容安排掌握程度較好的同學來講解,老師再課堂上進行歸納總結。比如第二章《簡單的Java程序》,其中有些內容操作性比較強,安排同學在課堂上介紹開發(fā)工具的使用和演示簡單程序的編寫、編譯和執(zhí)行的過程。在第七章《工具類和常用算法》第十章《圖形用戶界面》部分內容也采用了同伴教學的方式。
在上機環(huán)節(jié),除了往年按章節(jié)安排的上機題目之后,另外設置了接近實際項目的綜合性編程題目,開發(fā)一個簡化的企業(yè)人力資源管理系統(tǒng),綜合運用面向對象基礎、圖形用戶界面、網(wǎng)絡編程、數(shù)據(jù)庫編程等知識,使得同學們對于Java語言的實用性有了更加深刻的認識。
建立微信群加強溝通,在群里教師和學生之間,學生和學生之間都可交流。實際效果很好。而且同學之間的交流對于老師是可見的,對于學生掌握的程度,不同層次學生之間的差異,甚至學生的性格特點都有展示。
學生之間的交流也是很激烈的,例如有的同學提問“為什么不教一些深層的東西?”,有同學回復“數(shù)據(jù)結構,您掌握了嗎”,“編譯原理,懂嗎”。說明有些同學能夠理解Java體系中不同層次知識的區(qū)別,而有些同學則不能很好地理解。作為教師,在群里進一步和學生溝通,了解這位同學對“深層”的理解,該同學認為框架是深層的知識,然后進一步向同學們介紹框架的基本原理,以及框架和課程內容的關系,幫助同學們澄清一些不太正確的認識,對于框架的學習,可以分為用框架和研究框架,如果僅僅是在項目中使用框架,不是知識結構的深度擴展,而是廣度的擴展。
通過微信群,原來的線下答疑改為線上答疑,交流更加便捷,但也增加了工作量,隨時可能會有同學問問題,有時候深夜還有同學問問題,這也反映同學們學習熱情和積極性很高。
3.2 教學效果
學生們對課程教學內容的改變普遍反映較好,對教學效果認可度也比較高。很多同學反映,通過學習Java程序設計課程,對于編程有了更加深入的理解,對于主流的面向對象程序設計方法有了更加深入和準確的理解。也掌握了很多實際軟件項目開發(fā)中需要掌握的知識,比如圖形用戶界面、網(wǎng)絡編程、異常處理、多線程、數(shù)據(jù)庫、文件處理等,在以往C和C++的學習中主要是基本語法和概念以及簡單算法的學習,對于通過編程語言能完成哪些實際的任務并不太了解,通過Java程序設計課程的學習,編程能力有了較大提高。
特別是,期末考試的卷面成績中,在基本沒有改變大部分考核內容的情況下,80分以上的學生達到55人,占全體選課學生(149人)的38%。卷面成績及格人數(shù)的百分比,達到90%,良好率和及格率有較大的提升。說明選課同學中成績出色的學生,對于課程學習的積極性有很大提高,同時也帶動了周圍同學們的學習氛圍。
4 結論
通過教學模式的調整,由教師為主導轉變?yōu)橐詫W生為主導,通過翻轉課堂,可以根據(jù)教學內容的特點靈活地調整課程的進度,通過同伴教學,起到了很好的示范作用,使得同學們更容易發(fā)現(xiàn)不足,激發(fā)進取心。通過項目驅動的上機題目設置,對于Java程序設計的編程實踐有很好的指導作用。鑒于課堂中是全年級所有學生,摻雜著實驗班的優(yōu)秀學生,也包括專起本、軍轉等新加入的學生,在今后教學中也還是要照顧到他們知識體系尚不完整的特點,對于一些最基本的技能、概念,也還是要花時間去解釋和講解,使盡量多的學生學習效果能夠得到提升。
參考文獻:
[1] TIOBE. TIOBE index for September 2020[EB/OL]. [2019-09-17]. htts://www.tiobe.com/tiobe-index/.
[2] 孫晶,方英蘭,張永梅,等.計算機類的程序設計課程教學模式探討[J]. 電腦知識與技術,2015,11(32):101-102.
[3] 李盡忠,黃雪梅,夏潔武. 新工科背景下融合CDIO和翻轉課堂的Java程序設計課程教學改革[J].計算機教育, 2019(11):58-63.
[4] 程珍, 池凱凱, 李燕君, 等. 項目驅動和翻轉課堂相融合的教學模式在Java程序設計教學中的應用[J]. 計算機教育, 2018(2):91-94.
[5] 王海榮. 基于翻轉課堂的項目化教學改革與探索——以《Java程序設計》為例[J]. 電腦知識與技術,2019,15(23):134-135.
[6] 賈克.新工科背景下Java課程教學改革的探索與實踐[J]. 河 北軟件職業(yè)技術學院學報, 2019, 21(1):41-45.
[7] 曹曼曼. 校企合作應用型本科專業(yè)Java課程的CDIO教育模式研究與實踐[J]. 計算機教育, 2017(2):158-162.
[8] 胡樂樂.基于翻轉課堂和同伴教學的混合式教學[J]. 學位與研究生教育,2017(5):54-57.
[9] 蔣海英.淺談同伴教學及其與傳統(tǒng)教學的差異[J]. 青年與社會,2013(11):89-90.
【通聯(lián)編輯:王力】