河南科技學院信息工程學院 李曉輝
新鄉(xiāng)醫(yī)學院醫(yī)學工程學院 李明彩
針對Java程序設(shè)計課程在教學中存在的問題,將對分課堂模式引入課程教學中?;趯Ψ终n堂教學模式,采用隔堂對分的方式對講授、內(nèi)化吸收、交流環(huán)節(jié)進行改進,同時,構(gòu)建了知識鞏固與再吸收環(huán)節(jié)。實踐表明,采用該方法學生的自主學習和解決實際問題的能力有了較大的提高,學習效果較好。
Java語言作為當今最流行的程序設(shè)計語言之一,倍受廣大程序設(shè)計人員的關(guān)注,根據(jù)TIOBE開發(fā)語言排行榜,近年來,Java語言處于前列。因此,大部分高校計算機科學與技術(shù)相關(guān)專業(yè)都開設(shè)了Java程序設(shè)計課程,一方面通過Java語言的學習,培養(yǎng)學生面向?qū)ο蟪绦蛟O(shè)計的基本思想,為后續(xù)課程的學習打下良好的基礎(chǔ);另一方面提高實踐技能,以期適應就業(yè)或者職業(yè)發(fā)展的需要。然而,Java程序設(shè)計在教學中仍存在一些問題,教師進行了教法學法改革,但學習效果卻不夠理想。
Java教學過程中存在多種問題,影響了課堂教學效果。(1)采用傳統(tǒng)的課堂教學方式,傳統(tǒng)的教學方式注重老師的教,教師是課堂的主體,側(cè)重于知識的傳授,雖然存在與學生的互動,卻不能夠充分調(diào)動學生學習的積極性,更有甚者,學生在課堂上放棄學習。(2)學生的自主學習能力有待提高,在中學學習過程中,學生養(yǎng)成了教師指導、家長督促的習慣,進入大學階段后,仍然依賴于教師或者家長,Java程序設(shè)計課程的學習局限于課上時間,卻忽略了課下的鞏固和練習。(3)師資實踐技能不足,Java程序設(shè)計教師大多沒有工業(yè)軟件開發(fā)經(jīng)歷或經(jīng)驗,理論知識較強,工程實踐能力較弱,不能進行系統(tǒng)開發(fā),課程任務或者案例局限于驗證某些知識點,而缺乏對學生的吸引力。(4)學生對課程的重視程度不高,該課程屬于專業(yè)基礎(chǔ)課,學生大多更重視專業(yè)核心課程,缺乏對本門課程的正確認識。
對分課堂是復旦大學李學新教授提出的教學模式,核心理念是將課堂教學時間分為兩部分,一部分用于教師講授,另一部分用于學生討論。教學過程分為緊密聯(lián)系、相互支撐的三個環(huán)節(jié),分別為講授(Presentation)、內(nèi)化吸收(Assimilation)和討論(Discussion),也被稱為PAD課堂,因此將對分課堂理念引入《Java程序設(shè)計》課程,有助于吸取教授式和討論式課堂的精華。
Java程序設(shè)計實踐性較強,注重操作能力培養(yǎng),需要知識鞏固和再吸收,本文采用隔堂對分的方式,將教學過程分為4個階段,如圖1所示。
圖1 Java程序設(shè)計教學過程
(1)課堂講授,在第一次課的第二節(jié)進行,教師完成對章節(jié)體系和框架的梳理,知識點的劃分,以及重點難點內(nèi)容的分布,針對章節(jié)知識,針對性的布置課后的作業(yè)或者程序設(shè)計任務。本階段使學生對學習內(nèi)容有一個整體的認識,明確需要學習的內(nèi)容,同時Java程序設(shè)計實踐性比較強,需要通過程序設(shè)計任務,提高編寫程序和調(diào)試程序的能力。
(2)內(nèi)化吸收,該環(huán)節(jié)在第一次課結(jié)束后課余時間進行,學生根據(jù)課堂講授的知識體系,進行學習。學習的形式主要采用3種形式:一是通過教材學習,學習教材上的知識點或者案例,知識體系比較全面嚴謹,但程序設(shè)計的效果不夠直觀;二是通過微課或者慕課,采用觀看視頻的形式進行學習,可以使用碎片化時間針對知識點學習,但知識不夠系統(tǒng);三是采用程序設(shè)計培訓機構(gòu)的視頻進行學習,視頻大多實戰(zhàn)型比較強,但講解內(nèi)容過細,學習效率不高。根據(jù)教學經(jīng)驗,采用教材和視頻相結(jié)合的方式,以教材為主,重點、難點以及不理解的知識通過視頻進行學習。然后,通過完成程序設(shè)計任務,進一步促進對知識點的理解,通過調(diào)試程序,提高解決實際問題的能力,達到內(nèi)化吸收的效果。
(3)課堂討論,該環(huán)節(jié)在第二次課的第一節(jié)進行,為了提高討論的效果,將討論分為三個步驟。首先是分組,分組在課前完成,根據(jù)學生的知識基礎(chǔ)、性別、積極程度等條件,將學生分為若干小組,各組之間的情況要平均,為了避免無效討論,每組選組長1名,組長負責本組的討論進度的安排。其次是討論,每組針對課后學習和完成程序設(shè)計任務中遇到的問題進行討論,并在組內(nèi)進行解決,每位成員均需要發(fā)言。教師可重點了解各成員遇到的主要問題或理解不太清楚的問題。然后是講解,講解分為小組講解和教師講解,在教師的安排下,每組提出各自的問題,再由其他小組進行講解;對于比較重要的問題或者共性問題,教師進行著重講解,同時教師結(jié)合課程的重點、難點,對一些小組進行提問,小組選取組員進行回答。
(4)知識鞏固與再吸收。本環(huán)節(jié)側(cè)重于利用學習的知識解決實際問題,主要包含實驗課和課外小組兩種形式。在實驗課中,教師通過對學習章節(jié)知識點的歸納總結(jié),結(jié)合實際問題,給出實驗內(nèi)容和要求,學生在實驗課上完成程序的編寫。在課下,期望更加深入進行Java項目開發(fā)的學生,可加入程序設(shè)計課外小組,進行企業(yè)級的項目開發(fā),提高綜合應用能力。
(1)課程情況分析
Java程序設(shè)計課程開設(shè)于大一年級第二學期,從課程情況來看,在已修C語言程序設(shè)計課程的基礎(chǔ)上,重點學習JavaSE的核心語法和面向?qū)ο蟪绦蛟O(shè)計技巧,實踐性強,培養(yǎng)程序設(shè)計的實戰(zhàn)技能。從學生情況來看,學生已逐漸習慣于大學的教學和學習,有一定的積極性,但自主學習的習慣尚未養(yǎng)成,仍需要教師在教學過程中進行學習任務安排,甚至了解任務完成情況,實踐技能較弱,適合采用對分課堂模式進行教學。
(2)教學實踐過程
以課程內(nèi)容第5部分繼承與接口之繼承性為例,進行實踐。繼承性包括繼承的概念、繼承的原則、子類的聲明、子類的構(gòu)造方法等內(nèi)容。在課堂講授階段,對繼承的概念、繼承的原則進行詳細講解,引出繼承性的關(guān)鍵就是子類的創(chuàng)建以及子類構(gòu)造方法的定義,列出繼承性知識思維導圖,如圖2所示。并將其具體的操作留作作業(yè),同時,將知識點、課下作業(yè)和參考資料發(fā)布在對分易平臺中供學生查看。內(nèi)化吸收階段,通過查看教材,學生基本上能夠掌握繼承的概念、繼承的原則和子類的聲明,但子類的構(gòu)造方法和子類對象的使用,需要結(jié)合學習視頻進行學習,對于不太理解的內(nèi)容做好筆記;課堂討論階段,兩個教學班共60人,按照每組6人將學生劃分為10個小組,組內(nèi)針對繼承性知識導圖相關(guān)疑問進行討論,時間20min,討論結(jié)束后,大多對子類訪問父類成員和子類構(gòu)造方法中使用super不夠理解,可進行集中講解,同時,教師針對繼承的原則和子類創(chuàng)建等知識進行提問。知識鞏固與再吸收階段,在實驗教學中,給定已定義的父類Person,讓學生結(jié)合課程學習的原理和要求,根據(jù)實際情況定義子類,并調(diào)試程序,進一步檢驗學生對知識的掌握程度。
圖2 繼承性知識導圖
(3)實踐效果
Java程序設(shè)計課程的考核,采用平時成績和期末考試成績綜合考核方式,平時成績占比50%,主要考核課后任務完成情況和課上討論的情況;末考成績占比50%,采用上機編程方式,主要考核對課程知識的掌握程度和實踐能力。
教學方法通過在我校本科2019級兩個教學班(60名學生)的教學實踐,學生能夠積極的參與課堂的各個環(huán)節(jié),知識掌握相對扎實,綜合考核成績優(yōu)良率達到了78.3%,平均成績84.25分,動手實踐能力有了較大提高。
針對Java程序設(shè)計課程教學中存在的問題,將對分教學模式引入到了Java程序設(shè)計課程中,從教為中心轉(zhuǎn)變?yōu)閷W為中心。采用隔堂對分的方式,將教學劃分為教師講授、知識內(nèi)化、學生討論和知識鞏固和再吸收四個階段。通過實踐,學生能夠積極融入到教學環(huán)節(jié)中,學生從過去的依賴于老師,轉(zhuǎn)變?yōu)樽灾鲗W習、主動學習,逐漸習慣對分教學方法,自學能力有了較大的提高,教師不再是講不完,而是重實踐,課堂的教學效果有了較大的進步,學生編程解決實際問題的能力有了較大提升,為后續(xù)的課程打下了較好的基礎(chǔ)。