張剛,闞洪敏,牛連強(qiáng)
(1.沈陽工業(yè)大學(xué)軟件學(xué)院,沈陽110023;2.沈陽大學(xué)機(jī)械學(xué)院,沈陽110044)
歷經(jīng)多次變革,Java 程序設(shè)計(jì)的理論講授和實(shí)踐方式逐漸走向成熟,早期,在理論講授方面主要是課堂教學(xué),側(cè)重教學(xué)大綱、教學(xué)日歷、備課筆記、授課教案等的準(zhǔn)備[1],而今天理論講授的外延已經(jīng)擴(kuò)展到課堂教學(xué)和課后在線學(xué)習(xí)的結(jié)合,在實(shí)踐方式方面早期主要安排內(nèi)容,由學(xué)生自己去做且老師進(jìn)行輔導(dǎo),而今天實(shí)踐方式的外延已經(jīng)擴(kuò)展到安排內(nèi)容、談?wù)搯栴}、疑難解答等多方面,從而培養(yǎng)面向?qū)ο笏季S能力,增強(qiáng)工程化意識[2,3]。本文將從理論講授和實(shí)踐方式兩個(gè)方面闡述我們的探索過程和結(jié)果。
Java 語言中的理論是以技術(shù)形式存在的,通常學(xué)生會(huì)把這些技術(shù)看做文字上的描述,而實(shí)際上這些文字告訴我們的是如果構(gòu)造應(yīng)用程序、如何調(diào)試應(yīng)用程序等內(nèi)容,例如:Java 語言中有一句話是“類是應(yīng)用程序等基本單元”,這是一個(gè)文字的描述,而這句話想告訴我們的是變量、方法等不能脫離類而存在,包括main方法。這樣,就需要對Java 中的內(nèi)容進(jìn)行規(guī)劃,我們把Java 中的內(nèi)容歸納為四部分:Java 概述、Java 基礎(chǔ)、面向?qū)ο蟛糠帧?yīng)用部分,并且把每部分做了進(jìn)一步的細(xì)化,可以在我們的網(wǎng)絡(luò)平臺(tái)上看到這些,當(dāng)然,需要得到授權(quán),有興趣的話可以聯(lián)系筆者開放部分授權(quán)。
Java 語言中的技術(shù)分為三個(gè)層次:初級、中級和高級,每個(gè)層次的側(cè)重不同,初級強(qiáng)調(diào)對核心技術(shù)的理解,中級強(qiáng)調(diào)對核心技術(shù)的初步應(yīng)用,而高級強(qiáng)調(diào)使用核心技術(shù)時(shí)應(yīng)注意的環(huán)節(jié)。這種劃分對于學(xué)生是有價(jià)值的,初級的內(nèi)容是學(xué)生必須掌握的,例如:類的基本結(jié)構(gòu),而中級內(nèi)容是需要學(xué)生在實(shí)踐后掌握的,高級內(nèi)容或許僅能是部分學(xué)生掌握的,這要求學(xué)生有好的預(yù)備知識和編程經(jīng)歷。
對于Java 中技術(shù)的講授采用了兩種方式:課上教學(xué)和在線復(fù)習(xí)。目前,課上教學(xué)采用理論講解、程序演示和問題分析結(jié)合,使學(xué)生掌握技術(shù)中的核心要素,例如:講解繼承時(shí)可以從應(yīng)用程序的構(gòu)造、繼承的實(shí)現(xiàn)、需要注意的地方等方面進(jìn)行,利用雇員和經(jīng)理這個(gè)經(jīng)典的實(shí)例來說明這些核心要素的技術(shù)細(xì)節(jié),以及使用時(shí)需要注意的問題以及問題的解決方式。講解技術(shù)時(shí)可以從介紹技術(shù)的原理、實(shí)現(xiàn)細(xì)節(jié)如何,通過程序的演示加深學(xué)生的理解,之后使用經(jīng)典范例使學(xué)生具有應(yīng)用這些技術(shù)的能力,然后圍繞這些技術(shù)可以應(yīng)用的方面提高學(xué)生的認(rèn)知。
課上教學(xué)是主要的方式和手段,但是不能避免學(xué)生沒有即時(shí)的理解和掌握,特別是運(yùn)用所學(xué)技術(shù)方面,這時(shí)我們采用了在線視頻的方式,已經(jīng)花費(fèi)了大量的時(shí)間圍繞核心技術(shù)錄制了實(shí)踐視頻,并且把每次課的核心內(nèi)容寫在網(wǎng)頁上,這樣,便于學(xué)生回顧課上內(nèi)容,有針對性的去解決自己未知的地方。例如:圍繞JDK 的配置和應(yīng)用程序的結(jié)構(gòu),把JDK 的下載、安裝和配置以及測試過程添加到頁面上,也包含一個(gè)基礎(chǔ)的Java 應(yīng)用程序,除了這些以外,把這些內(nèi)容分為兩個(gè)視頻,已添加到頁面上。以我們的觀點(diǎn),課上教學(xué)和在線學(xué)習(xí)結(jié)合方式將成為今后Java 程序設(shè)計(jì)理論講授的主要方式,但是不應(yīng)盲目地下載其他人的視頻,應(yīng)結(jié)合自己的認(rèn)知和所教學(xué)生的特點(diǎn)有針對性的制作教學(xué)視頻,這樣,可以保護(hù)知識產(chǎn)權(quán)同時(shí)使理論講授方式更具針對性。
Java 程序設(shè)計(jì)有獨(dú)立的實(shí)踐課程,著眼于工程化應(yīng)用,然而,這部分說的是課程體系的實(shí)踐方式部分。這里將從兩個(gè)方面進(jìn)行闡述,一是在線作業(yè)部分;二是實(shí)踐報(bào)告部分。我們設(shè)置作業(yè)次數(shù)為3 次,每次5 分,要求在線提交,采用學(xué)校提供了網(wǎng)絡(luò)教學(xué)平臺(tái),這得益于學(xué)校所提供的軟硬件條件。或許大家會(huì)把作業(yè)考慮成理論的范疇,正如之前所說,Java 中有的是技術(shù),以我們的觀點(diǎn)應(yīng)列入實(shí)踐部分,更重要的是怎樣去做這件事,目前,作業(yè)的提交是采用在線提交且可以多次提交方式,讓學(xué)生知道關(guān)鍵技術(shù)是什么。
在實(shí)踐報(bào)告部分的工作更細(xì)致一些,我們安排了4次上機(jī),第一次是學(xué)習(xí)搭建環(huán)境,后三次是訓(xùn)練特定技術(shù)運(yùn)用能力且要求提交報(bào)告,需要注意的是僅后三次要求提交報(bào)告,每次5 分,報(bào)告中的研究內(nèi)容、研究目的、研究方法等是由我們給定的,而學(xué)生的工作是加入核心代碼、關(guān)鍵過程描述、效果顯示和問題分析等,這樣的好處在于使學(xué)生熟悉自己采用的技術(shù)且能夠應(yīng)用這些技術(shù),同時(shí)知道可能遇到的問題及尋找有效的解決方案。為了保持實(shí)踐報(bào)告保留的長期性,采用紙質(zhì)提交和在線提交結(jié)合方式。
實(shí)踐部分考慮的是建立面向?qū)ο蟮乃季S能力且形成工程化的編程思想,但是單純依靠作業(yè)和報(bào)告是不夠的,畢竟,有些問題的解決需要過程化,我們嘗試在網(wǎng)絡(luò)平臺(tái)上做這件事,首先,開設(shè)了討論區(qū),在討論區(qū)教師和學(xué)生均可以針對特定問題發(fā)起討論,這不僅僅是單純的教師講授的場所,也是學(xué)生匯報(bào)自己認(rèn)知的場所,獲益是雙方的。例如:在GUI 部分,學(xué)生粘貼了一段代碼,這優(yōu)于一段文字的描述,畢竟,我們是做程序的,對于程序的認(rèn)知優(yōu)于對文字的認(rèn)知,在教師和其他學(xué)生看到這個(gè)討論后分別發(fā)表自己的建議。當(dāng)然,這種方式不是實(shí)時(shí)的,但是我們基本保證了討論的及時(shí)性,畢竟,老師需要完成的事情很多。
另外,也嘗試在固定時(shí)間段開啟實(shí)時(shí)研討,主要是解決學(xué)生在實(shí)踐中遇到的問題,這種方式的特色在于所有學(xué)生參與且能夠保證實(shí)時(shí)性。目前,該工作仍然在嘗試階段,擬探索出更好的方式。
本文從理論講授和實(shí)踐方式兩個(gè)方面給出了探討的成果,理論講授方面強(qiáng)調(diào)課上講授、在線內(nèi)容學(xué)習(xí),以及在線視頻講解結(jié)合,實(shí)踐方面強(qiáng)調(diào)通過作業(yè)的知識點(diǎn)認(rèn)知和實(shí)踐報(bào)告的撰寫,以及在線討論、實(shí)時(shí)研討等方式結(jié)合培養(yǎng)學(xué)生對象化思維,建立工程化編程思想。