張鑫
(哈爾濱華德學(xué)院數(shù)據(jù)科學(xué)與人工智能學(xué)院,黑龍江 哈爾濱 150025)
Java自誕生之日起,就因具有平臺無關(guān)性、面向?qū)ο蟆⒍嗑€程、安全性高等特性,成為網(wǎng)站開發(fā)、移動應(yīng)用開發(fā)以及管理工具的首選開發(fā)語言。目前,全國各高校的計算機專業(yè),基本都是以Java語言程序設(shè)計作為編程的入門工具,尤其是在一些新的技術(shù)領(lǐng)域都涉及Java語言。因此,在很多高校的計算機科學(xué)與技術(shù)專業(yè)中,學(xué)習(xí)和掌握J(rèn)ava已成為共識。
成果導(dǎo)向教育OBE(Outcome Based Education)教育理念,也稱為能力導(dǎo)向教育、目標(biāo)導(dǎo)向教育或需求導(dǎo)向教育。它是于1981 年由Spady 等人提出的一種先進的教育理念。其核心思想就是“以學(xué)生為主體,以成果為驅(qū)動”的成效為本教育理念[1]?;诖四康?,我校計算機科學(xué)與技術(shù)專業(yè)Java語言程序設(shè)計課程中引入OBE教學(xué)理念,旨在幫助教師改進教育教學(xué)、管理,幫助教師指導(dǎo)學(xué)生工作。
Java語言程序設(shè)計作為入門級的編程課程,學(xué)生在學(xué)習(xí)時,因為學(xué)生個體之間存在的認(rèn)知差異,對編程的抽象方法理解不一致,不同學(xué)生的掌握程度也就不一樣。這就造成有些學(xué)生認(rèn)為學(xué)習(xí)編程很容易,有些學(xué)生認(rèn)為學(xué)習(xí)編程難度較大,讓教師在授課時的教學(xué)方法把握不好分寸。
以往Java 語言程序設(shè)計教學(xué)方式采用按照教材的章節(jié)分布,以知識導(dǎo)向為主,講授知識的基本概念和語法,在課堂上基本都是采用PPT教學(xué)方式,并且局限于教學(xué)課時和教學(xué)進度的安排,降低了教師與學(xué)生之間的交流,學(xué)生對教學(xué)活動的參與不多。而且教師也未能很好地針對學(xué)生個體差異因材施教,從某種程度上限制了學(xué)生的編程潛能和創(chuàng)新能力。
Java 語言程序設(shè)計的實踐部分的實驗內(nèi)容往往是針對教材中特有的知識點而設(shè)計,實驗內(nèi)容比較單一、枯燥,并且對后續(xù)的知識學(xué)習(xí)并沒有很好的關(guān)聯(lián)性。學(xué)生在完成實驗內(nèi)容時,更注重語法規(guī)則,并沒有深刻理解題目的通俗含義,沒有理解面向?qū)ο蟮谋玖x,學(xué)生多是按照教材中的答案敲到計算機里,這樣造成學(xué)生對問題分析、編程思想理解不深入。教材上的實踐案例并不能貼近行業(yè)發(fā)展的實際情況,不能把前期學(xué)習(xí)的內(nèi)容和后續(xù)學(xué)習(xí)的知識貫穿在一起,設(shè)計出貼近行業(yè)真實的綜合項目實訓(xùn),這也造成多數(shù)學(xué)生對編程思維沒有清晰的認(rèn)識,對知識還不能融會貫通。
Java語言程序設(shè)計考核方式往往采用平時成績+期末筆試的方式進行,平時成績基本都是由學(xué)生出勤和課堂表現(xiàn)組成,而期末筆試考核內(nèi)容多是概念性和記憶性的知識點,編程題目較少,這就造成一部分學(xué)生往往忽視編程能力的學(xué)習(xí),更多去記憶一些理論知識,考核成績既不能反映學(xué)生對編程能力和創(chuàng)新能力的掌握程度,也不能反映教學(xué)情況和考核的意義[2]。因此,需要根據(jù)Java 語言程序設(shè)計的課程目的和學(xué)生的學(xué)習(xí)特點,設(shè)計出科學(xué)的課程考核方式。
教育的根本任務(wù)是立德樹人,在課程教學(xué)的過程要把思想政治貫穿教育教學(xué)的全過程。在教學(xué)中要制定德育工作目標(biāo),實現(xiàn)全員育人、全過程育人、全方位育人的體系。專任教師也是思想政治教師,強化示范引領(lǐng)效應(yīng),使社會主義核心價值觀內(nèi)化于心、外化于行。著力增加愛國主義教育,引導(dǎo)學(xué)生樹立正確的價值觀,增強民族的榮譽感和社會責(zé)任感。
在過往的Java 語言程序設(shè)計的課程講授過程中,教師并沒有向?qū)W生講授這門課程的教學(xué)目的,這就使學(xué)生不能理解Java 語言程序設(shè)計課程對后續(xù)的課程起到什么樣的作用。為了讓學(xué)生更好地理解Java 語言程序設(shè)計課程教學(xué)目的,教師在講授課程的過程中,要著重培養(yǎng)學(xué)生的計算思維的能力,理解面向?qū)ο蟮纳顚雍x,并且通過學(xué)校與行業(yè)、企業(yè)積極合作,充分發(fā)揮校企合作的作用,設(shè)置一些適合行業(yè)需求的簡單應(yīng)用程序案例。但前提是在教學(xué)過程中,更好地講授課程的基本概念和語法,讓學(xué)生能夠靈活運用所學(xué)的基礎(chǔ)知識。
結(jié)合計算機科學(xué)與技術(shù)專業(yè)的需求,對Java語言程序設(shè)計的教學(xué)課時進行了調(diào)整。從原來的40學(xué)時調(diào)整為現(xiàn)在的64 學(xué)時,理論課程占32 學(xué)時,實踐課程占32 學(xué)時,加大了實踐課程的比重。并且在教學(xué)過程中重點對Java 語言的基本語法、面向?qū)ο蟮娜筇匦?、集合、輸入流、異常處理、JDBC訪問數(shù)據(jù)庫、多線程和網(wǎng)絡(luò)編程等內(nèi)容作了側(cè)重學(xué)時分配。并結(jié)合Java語言程序設(shè)計課程的性質(zhì),將課程安排在學(xué)院的實驗室機房內(nèi)授課,實驗室授課能夠提供真實的實踐環(huán)境和模擬企業(yè)氛圍,從而使學(xué)生直觀、全方位地了解各種設(shè)備和應(yīng)用環(huán)境,真正加深對理論、操作的體會。這樣保證了學(xué)生可以隨時運行計算機來調(diào)試程序,增強學(xué)生的對編程的理解能力。教師也提高了授課的靈活性,能夠及時發(fā)現(xiàn)學(xué)生的反饋問題,側(cè)重知識講授的重點[3]。
在Java語言程序設(shè)計的教學(xué)設(shè)計和實施過程中,教師特別重視想讓學(xué)生取得的學(xué)習(xí)成果是什么,這也是OBE教育理念中強調(diào)的4 個問題中的第1 個問題。這也就要求,教師在講授課程前,需要確定學(xué)生預(yù)期學(xué)習(xí)成果。對于計算機科學(xué)與技術(shù)專業(yè)的學(xué)生來說,Java語言程序設(shè)計需要學(xué)生能夠掌握基本理論知識,并且能夠熟練掌握實際操作,從而能夠進行更深層次的學(xué)習(xí)。那么教師在授課時,會著重這些方面的傳授。尤其是培養(yǎng)學(xué)生應(yīng)用Java 解決和處理實際問題的思維方法與基本能力,使學(xué)生養(yǎng)成良好的編程習(xí)慣、風(fēng)格?;诖四康?,計算機科學(xué)與技術(shù)專業(yè)將Java語言程序設(shè)計這門課程設(shè)定為以學(xué)生學(xué)習(xí)成果為導(dǎo)向,建立課前—課后的分布式課堂環(huán)境。課前,教師通過在線平臺將課程需要預(yù)習(xí)的課件、視頻以及課程的各個重要知識點的導(dǎo)圖等內(nèi)容推送到學(xué)生的手機端,讓學(xué)生能夠?qū)σv授的課程有足夠的預(yù)習(xí)時間。課后,教師收集在課堂上學(xué)生不清楚的知識點,再次將知識點細(xì)化,重難點分析解釋,以及將相關(guān)復(fù)習(xí)資料發(fā)送到學(xué)生手機端[4]。通過課前—課后的教學(xué)方法,消除了課上和課下的界限,讓學(xué)生在一個自發(fā)性的環(huán)境中進行學(xué)習(xí),從封閉課堂轉(zhuǎn)向開放課堂,提高了學(xué)生自主學(xué)習(xí)能力和計算思維。這樣也能讓教師準(zhǔn)確把握每名學(xué)生的學(xué)習(xí)軌跡,及時把握每名學(xué)生的學(xué)習(xí)進程。
OBE教育理念中強調(diào)的第2個問題,就是為什么要讓學(xué)生取得這樣的學(xué)習(xí)成果。Java 語言程序設(shè)計是計算機科學(xué)與技術(shù)專業(yè)的必修課,也是基礎(chǔ)課,通過此課程的學(xué)習(xí),重點培養(yǎng)學(xué)生對后續(xù)課程的理解,并且培養(yǎng)學(xué)生自主學(xué)習(xí)的積極性和動手能力;同時,也為后續(xù)課程Java Web應(yīng)用開發(fā)和Java開發(fā)綜合實戰(zhàn)打下基礎(chǔ)。在課程的講授過程中,教師需要讓學(xué)生學(xué)會發(fā)現(xiàn)問題、分析問題、解決問題和創(chuàng)新能力的提升,才能真正培養(yǎng)滿足行業(yè)企業(yè)需求的高素質(zhì)人才。
Java 語言程序設(shè)計課程是一門實踐性和動手能力要求較高的課程,實踐教學(xué)的目的就是為了培養(yǎng)學(xué)生綜合知識的運用和自主動手解決問題的能力。在制定課程實踐部分時,要把Java語言的基本知識和語法、面向?qū)ο缶幊痰乃枷虢Y(jié)合起來,鍛煉學(xué)生的計算思維能力,并且培養(yǎng)學(xué)生的團隊交流、溝通協(xié)作能力。如何有效地幫助學(xué)生取得這些成果,這也是OBE教學(xué)模式強調(diào)的第3個問題。
傳統(tǒng)的Java 語言程序設(shè)計的實踐部分的實驗題目過于陳舊、與實際應(yīng)用相脫節(jié),導(dǎo)致學(xué)生在實際開發(fā)中不知如何運用所學(xué)的知識去解決設(shè)計問題。教師在講授課程中需要加入真實的案例進行循序漸進式的操作,讓學(xué)生理解為什么應(yīng)用課程里的這些知識點,這些知識點如何去運用到真實案例中,也可以讓學(xué)生進一步分析如何解決問題,促使學(xué)生增強編程興趣[5]。這樣能夠把學(xué)生學(xué)習(xí)的積極性充分調(diào)動起來,思維也能夠更加開闊,想象的空間也更加靈活,讓學(xué)生自主地思考、挖掘、摸索和體會。教師需要認(rèn)真觀察和記錄學(xué)生們遇到的問題,并及時幫助學(xué)生解決問題,使學(xué)生盡可能少走彎路。教師還可以對學(xué)生們遇到的共性問題,做示范性講解,用真實案例去說明,讓學(xué)生能夠在課堂上將學(xué)到的知識進行消化。學(xué)生一旦對編程產(chǎn)生濃厚的興趣,那么就會自然產(chǎn)生對知識的求知欲望,體會開發(fā)成功的成就感,從而激發(fā)學(xué)生們的編程積極性和熱情。
教師在實踐教學(xué)過程中,還可以將學(xué)生進行分組實驗。學(xué)生采用分工合作的方式完成項目的某一模塊,模擬真實行業(yè)的協(xié)作分工,每組還需要根據(jù)實驗的整體過程設(shè)置項目經(jīng)理、程序員和測試人員,通過學(xué)生積極動手參與,不僅鍛煉了學(xué)生的編程能力,也培養(yǎng)了學(xué)生的團結(jié)合作能、協(xié)調(diào)溝通能力、工程實踐能力和團隊創(chuàng)新能力[6]。同時,教師也要更加關(guān)注每個學(xué)生對實際項目的了解程度,把握學(xué)生的學(xué)習(xí)方向、進度、質(zhì)量,起到引導(dǎo)、規(guī)范的作用,讓學(xué)生在團隊協(xié)作中更加主動。
教師應(yīng)積極鼓勵學(xué)生參加各類技能設(shè)計比賽,比如“全國大學(xué)生編程大賽”“藍(lán)橋杯”“互聯(lián)網(wǎng)+”等各類大學(xué)生技能設(shè)計比賽。通過引導(dǎo)學(xué)生參加比賽,讓學(xué)生將知識運用到實際項目中,以提高學(xué)生的動手實踐能力和創(chuàng)新意識,而且通過這些技能競賽為學(xué)生就業(yè)提供更多機會。
學(xué)院應(yīng)積極尋求與國內(nèi)外的知名企業(yè)開展深層次、緊密的合作,聘請企業(yè)的工程師給學(xué)生們授課,發(fā)揮企業(yè)在人才培養(yǎng)中的作用,企業(yè)技術(shù)人員與教師共同組織和帶領(lǐng)學(xué)生們完成真實項目的設(shè)計、施工、調(diào)試和維護,使學(xué)生真正進入企業(yè)項目實戰(zhàn),提高項目的實際運作能力,形成校企共建、共管的格局。通過學(xué)習(xí)不同類型的項目,可以彌補校內(nèi)案例經(jīng)驗不足和實際運作能力匱乏的缺陷,最大限度達(dá)到理論和實際相結(jié)合[7],使學(xué)生能夠真正領(lǐng)悟團隊合作精神,同時培養(yǎng)解決問題的能力。
課程的考核成績應(yīng)該是客觀反映學(xué)生的學(xué)習(xí)情況,衡量學(xué)生的課程知識點掌握情況,以及利用所學(xué)知識解決實際問題的能力。如何考核學(xué)生已經(jīng)取得的學(xué)習(xí)成果,是OBE教育理念中強調(diào)的第4 個問題。傳統(tǒng)的Java 語言課程設(shè)計的考試方式采用平時成績+期末考試的組合方式合計學(xué)生的最終成績。這往往不足以體現(xiàn)學(xué)生的學(xué)習(xí)情況,通過對課程考核方式的改革,讓學(xué)生能夠理解和掌握課程的知識點,能夠?qū)⒅R點應(yīng)用于實際的能力,注重其實用性[8]。
Java 語言課程設(shè)計課程新的考核方式是將傳統(tǒng)的考核組合方式更加細(xì)化,將平時成績設(shè)置成為不單單是學(xué)生出席情況、課堂表現(xiàn)等基礎(chǔ)考核,更增加了平時作業(yè)和實踐項目考核,考核主要檢查學(xué)生在平時作業(yè)和實踐項目活動中動手能力提高和發(fā)展的過程,其中包含學(xué)生參與教學(xué)活動各環(huán)節(jié)的表現(xiàn)及完成項目的質(zhì)量;將期末考試成績劃分為筆試試卷成績和課程設(shè)計成績。筆試試卷以基本知識為主,輔助常用算法實例來填補代碼的形式來完成算法的設(shè)計。而對于課程設(shè)計,更應(yīng)該注重項目設(shè)計、需求分析、代碼完整性和課程報告的撰寫。除此之外,學(xué)生也可以通過整體考核方式來進行考核,對于真實項目的實施過程,學(xué)生需要回答完成的進程和遇到的困難,并且進行項目演示答辯,這樣不僅鞏固了學(xué)生的編程能力,也鍛煉了學(xué)生的表達(dá)能力。該課程考核方式在本學(xué)院計算機科學(xué)與技術(shù)專業(yè)2020級學(xué)生中實施,達(dá)到了預(yù)期的效果,有利于對學(xué)生學(xué)習(xí)能力、分析能力、解決問題能力和創(chuàng)新能力的綜合評價。
隨著我國以新技術(shù)、新業(yè)態(tài)、新模式為代表的新經(jīng)濟蓬勃發(fā)展,對計算機科學(xué)與技術(shù)專業(yè)人才的要求也進一步提升,這對于我校的應(yīng)用型人才培養(yǎng)工作也提出了挑戰(zhàn)?;贠BE的Java語言程序設(shè)計的教學(xué)改革,是對傳統(tǒng)Java課程教學(xué)模式的創(chuàng)新,而且也是一項非常深遠(yuǎn)、意義重大的工作?;贠BE的教育理念對Java語言程序設(shè)計課程中的課程培養(yǎng)目標(biāo)、理論教學(xué)內(nèi)容的側(cè)重點、實踐教學(xué)的方向性、課程考核的多樣性等都提出了系統(tǒng)化的要求,這些要求雖然加大了教師的知識儲備和教學(xué)工作強度,但該課程改革是以學(xué)生學(xué)到了什么為導(dǎo)向,使得學(xué)生真正學(xué)得明白,用得明白,成為課程改革的最大受益者。