壽周翔 胡則輝

摘? 要: 為加強學生Java應用能力的培養,分析了Java程序設計課程的教學現狀,結合課程的特點,提出以校企共建課程為依托的“項目引領、任務驅動、工學結合”分步迭代教學法,并從教學設計、課堂教學組織實施、教學效果評價三方面進行了論述。教學實踐表明,分步迭代教學法的引入有效地促進了學生項目開發能力的培養,提高了該課程的教學水平與教學質量。
關鍵詞: 分步迭代; Java程序設計; 校企共建; 教學設計
Abstract: In order to strengthen the cultivation of students' Java application ability, this paper analyzes the current teaching situation of Java programming course, and combining the characteristics of the course, puts forward the step-by-step iterative teaching method of "project leading, task driving, combination of work and learning" based on the course jointly built by school and enterprise. And the teaching design, classroom teaching organization and implementation, and teaching effect evaluation are discussed as well. Teaching practice shows that the introduction of step-by-step iterative teaching method effectively promotes the cultivation of students' project development ability, and improves the teaching level and teaching quality of the course.
Key words: step by step iteration; Java programming; school enterprise co construction; teaching design
0 引言
目前Java程序設計課程的教學,一般是基于課程知識結構體系,教師遵循其內蘊的邏輯,依次講授該課程知識點,雖然大多數知識點輔以相應的例子講解,但從學生的角度來看,由于這些例子與具體的工程應用脫鉤,缺乏整體性和實戰性。這種教學方式主要存在的問題[1]有以下幾方面。
⑴ 教師單方面的知識輸出,學生只是被動地接受。教師與學生之間缺少一種媒介來推動雙向交流,難以激發學生的學習興趣,導致學生積極性、主動性不足,一旦學生在學習過程中受挫,就容易產生畏難情緒,造成厭學,甚至棄學。
⑵ 學生在學習過程中,看不到當前所學知識的用處,在學習中分不清重點,往往“胡子眉毛一把抓”,過分拘泥于一些語法細節,甚至“撿了芝麻,丟了西瓜”。學生學得很累,但最后整個課程教學效果很不理想。
⑶ 學生學完該課程后,由于缺少實際項目訓練這一過程,對整體知識結構難以把握,所學知識是零碎的、孤立的,缺乏對一門課程的整體把握能力,難以在實際項目開發中靈活應用。
⑷ 采用知識結構驅動的教學法,嚴格按照教科書的編排順序組織教學,雖然注重了教學的系統性和完整性,但培養出來的學生在理論深度上會顯不足,同時在實踐動手能力上無法達到企業的崗位要求,造成應屆畢業生就業困難。
基于上述情況分析,為了實現Java程序設計課程教學目標,培養學生軟件工程師職業崗位的能力,我們提出基于校企共建課程,“項目引領、任務驅動、工學結合”的分步迭代教學法,目的是要尋求解決上述問題的方法和途徑,以期根本性地提升Java程序設計課程的教學質量,增強學生運用Java編程語言進行實際工程項目的開發能力。
1 分步迭代教學法的基本思想
迭代法是用計算機解決問題的一種基本方法,其基本思想是用前一次的結果作為下一次迭代的初始值,遞推出新的結果,不斷重復這一過程,從而逼近正確的結果。迭代法所內蘊的反饋性、修正性、進步性正好符合教學過程的特點。我們提出的分步迭代教學法是指基于校企共建課程,通過“項目引領、任務驅動、工學結合”的方式來開展課程教學。每一個階段都是對學生編程開發能力的不斷迭代,最終實現培養學生具有較強工程項目開發能力的目標。其中項目引領是指教師以一個完整的項目為載體,對遴選的教學內容進行整合、序化,通過示范來引導學生掌握基礎知識,構筑起課程知識的支架,然后運用知識遷移、協作討論等方式完成對知識在感覺層上的意義構建。任務驅動是以項目任務為導向,以知識點為紐帶,將教學內容設計成一個或多個具體的、可操作性強的任務,并將任務劃分成多個子模塊,構建模塊化課程結構。學生緊密圍繞任務活動,在教師的指導下,通過自主學習、合作探究,實現知識在感知層上的構建。工學結合是以IT職業崗位活動為導向,學生參與到實際工程項目開發中去,教、學、做有機結合,從而實現知識在感悟層上的構建[2]。
在分步迭代教學法中,項目、任務的設計在整個教學實施中起到非常關鍵的作用。所選擇的項目案例作為課程知識的載體應具有一定的典型示范作用,既要覆蓋Java程序設計課程主要的教學內容,又要讓學生對項目的需求容易理解和接受,并具備良好的擴展性,方便學生以此項目為支架,為后續工程項目開發作為參照。所以需要通過校企共建課程,邀請IT企業資深工程師、項目經理和高校教師合作,對企業的實際項目進行精心提練、適度分割、與教學知識點有機結合,真正起到讓學生通過項目開發對課程知識“感覺、感知、感悟”。
2 教學設計
按照軟件工程的思想以企業軟件開發項目為載體貫穿整個課程教學,以企業項目的實現為目標,以項目的開發過程為脈絡安排教學步驟,通過項目引領→任務驅動→工學結合的分步迭代訓練方式來組織教學過程。設置可遷移、可替代、可操作的學習情境,訓練學生的項目開發能力,提高學生溝通能力和團隊協作精神。
2.1 校企共建課程
通過與本專業有長期合作關系的IT企業資深項目經理、軟件工程師合作,首先確定計算機科學與技術專業面向的職業崗位群,梳理出各崗位對應要求完成的工作任務以及應具備的專項能力。在此基礎上,通過分解專項能力確定教學目標,組織教學內容,結合分步迭代教學法,提高教學內容的應用性、以及與職業崗位能力培養的匹配性。
⑴ 分解專項能力
根據對IT職業崗位群進行分析,分解出軟件開發的專項能力以及應達到的標準,描述出每一專項能力所要求知識結構和素質結構,以及相應的支撐課程。
⑵ 確定教學內容
課程團隊成員通過集體備課形式,討論將專項職業能力標準轉化為教學目標,并根據專項能力所要求的知識結構劃分教學模塊。依照專項能力目標要求,將課程知識進行重構、組合、序化,并結合工程項目來設計課程子模塊,確定各個子模塊的階段性目標、教案設計、教學組織等。通過IT企業資深工程師、項目經理和高校教師合作,對企業的實際項目進行精心提練、適度分割,每個模塊對應的知識點再分解成若干個教學單元,將書本上孤立知識點通過項目進行串聯,使教學目標和內容融入到實際項目的開發和實踐中,與教學知識點有機結合,真正起到讓學生對項目開發“感覺、感知、感悟”。我們選用了“教師業績管理系統”項目作為課內教學案例,設計了“8個教學模塊和1個綜合模塊”,每一個教學模塊圍繞一個主題,將項目分解成若干模塊作為教學內容的案例,覆蓋了教學大綱所有的內容,見表1。
2.2 課堂教學組織實施
在“項目引領、任務驅動、工學結合”三位一體教學模式中,學生是主體,教師是學習過程的指導者和組織者,教師根據IT崗位工作任務提供相應的學習資源,編制模塊化課程的學習指南;按照“教、學、做”一體化原則,強化學生能力訓練,采取項目引領→任務驅動→工學結合分步迭代訓練方式來組織教學過程。
⑴ 在項目引領階段,教師通過項目案例進行教學示范與演示,講解相應的知識點,幫助學生建立起知識支架以及基本的項目開發能力,通過這個階段的學習,教師幫學生“扶上馬”,使學生初步對課程知識和項目開發過程有了一定的感覺;
⑵ 在任務驅動階段,教師通過為學生分析項目案例功能需求及關鍵問題,指出所需要用到的知識點。在項目任務開發實踐教學環節,考慮到學生個體之間存在的差異性,將不同層次的學生組成到同一個項目小組,采用協作學習的方式來進行組織教學實施。每組設一名組長,各組在項目組長的協調下共同去完成案例任務,針對任務開展研究討論、分工協作,提高團隊合作能力。在學生開發實踐過程中,教師要特別注意發揮協助和引導作用,為學生再“送一程”。通過這個階段的迭代,學生對課程知識進一步理解和鞏固,解決實際問題的能力進一步提升,對課程知識及項目開發達到了感知的程度。
⑶ 在工學結合階段,學生參與到合作企業的實際工程項目開發中去,與企業員工一同完成系統總體結構和邏輯設計、代碼編寫、系統測試以及文檔整理等工作。對于開發過程中需要用到的知識,學生通過自主學習和知識遷移,實現對課程知識理解的升華與靈活運用[3]。教師在這一環節,主要起到監督指導作用,給學生“壓擔子”,并會同企業對學生進行學習效果的評價。通過這個階段的迭代,學生對知識與工程項目開發的理解真正達到了感悟意義上的構建。
3 教學效果評價
本課程在考核過程中采用基于過程、以成效為導向的教學質量評價方法[4],即將傳統的考試機制與成效評價有機結合,綜合評定教學效果。學生成績由理論筆試成績和成效評價成績二部分組成,理論筆試檢測學生對課程基礎概念、理論知識的掌握情況,成績占整個評價結果的45%;而成效評價則貫穿整個學習過程,重點考核的是學生的學習態度、團隊協作精神、項目開發能力以及創新能力,其成績占整個評價結果的55%。由于成效評價需要結合項目任務開發的實踐過程,所以把成效評價分為過程評價和成果評價兩個方面[5]。
過程評價是根據學生在項目開發過程中的表現情況,包括到課率、回答問題、參與討論發言等,評定結果反映的是該學生平時的學習態度,可占總成績的15%。
成果評價則是在項目完成后根據學生完成項目的作品、報告等多個方面來評價學生在項目實踐過程中的開發能力、學習能力、創新能力、組織協作能力等綜合能力。由于成果評價相對主觀性比較強,為了更加客觀公正地進行成果評價,應引入第三方合作企業參與到這一環節。這部分評價的是學生應用知識的能力,重點考察的是學生的綜合素質,可占總成績的30%。這兩部分成績的合計基本反映出了學生對這門課程的綜合運用情況。
4 結束語
我們在Java程序設計課程教學中引入分步迭代教學法,經過三輪的教學實踐,學生的學習目標更明確,學習主動性增強,對于課程知識的系統性應用能力以及項目開發能力均有了大幅度的提升,教師的主導作用和學生主體地位都得以體現。實踐證明,在程序設計類課程中應用分步迭代教學法是可行的。但在分步迭代教學法組織和實施過程中,對教師的教學技能也是一個大的挑戰,需要運用新的教學策略幫助學生完成知識構建,教師需要投入更多的精力和時間來準備課前課中的教學設計。另外,分步迭代教學法實施過程中也要求學生有較高的自我約束能力及溝通表達能力,這些問題需要在今后的教學中不斷反思與改進[6]。
參考文獻(References):
[1] 周運.Java EE框架課程教學方法改革與實踐[J].高師理科學刊,2012.2(32)99-102
[2] 鐘原,劉忠慧.基于CDIO以面向對象程序設計思維為導向的教學研究與實踐[J].軟件工程,2019.22(11):45-47
[3] 謝凱,李靚,馮文祥.項目驅動模式下的面向對象程序設計教學改革研究[J].電腦知識與技術,2019.15(15):208-209
[4] 黃鈺,王建勇.JAVA語言程序設計的新三段式教學[J].計算機教育,2011.7(14)55-58
[5] 譚火彬,林廣艷.培養軟件工程思想的面向對象程序設計課程改革與實踐[J].計算機教育,2018.8:53-58
[6] 壽周翔,王李冬,李文娟,胡克用.翻轉課堂教學模式在Java程序設計課中的應用研究[J].計算機時代,2016.10(292):83-86