摘要:Web應(yīng)用類課程由于其固有特性,尚未形成穩(wěn)定成熟的建設(shè)方案。文章調(diào)研國(guó)外若干知名大學(xué)計(jì)算機(jī)專業(yè)開(kāi)設(shè)Web應(yīng)用類課程的情況,從教學(xué)內(nèi)容、課程實(shí)踐、考核方式、教材資料等方面進(jìn)行比較和分析。
關(guān)鍵詞:Web應(yīng)用;課程建設(shè);課程設(shè)置分析
文章編號(hào):1672-5913(2013)18-0052-06
中圖分類號(hào):G642
0 引言
傳統(tǒng)上,Web應(yīng)用類課程不屬于計(jì)算機(jī)專業(yè)的經(jīng)典核心課程,但隨著應(yīng)用和開(kāi)發(fā)環(huán)境逐漸向Web遷移,國(guó)內(nèi)外越來(lái)越多的高校開(kāi)始在計(jì)算機(jī)專業(yè)中開(kāi)設(shè)與該領(lǐng)域內(nèi)容相關(guān)的課程,對(duì)其課程建設(shè)研究也隨之得到相應(yīng)的重視。國(guó)際上,IEEE-CS和ACM聯(lián)合發(fā)布的本科生信息技術(shù)教育計(jì)劃IT2008m中首次將Web系統(tǒng)和技術(shù)(Web Systems and Technologies,WS)作為基本知識(shí)領(lǐng)域,認(rèn)為其是與程序設(shè)計(jì)、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)等并列的基本知識(shí)支柱,并給予了22個(gè)核心學(xué)時(shí);2012年發(fā)布的本科生計(jì)算機(jī)科學(xué)教育計(jì)劃草案CS2013中也首次添加了基于平臺(tái)的開(kāi)發(fā)(Platform-Based Development,PBD)這個(gè)可選基本知識(shí)領(lǐng)域,其中列舉的典型平臺(tái)就是Web和移動(dòng)設(shè)備。
雖然有相關(guān)規(guī)范及建議做原則性的指引,Web應(yīng)用類課程在內(nèi)容設(shè)計(jì)和剪裁上仍然面臨相對(duì)穩(wěn)定的教學(xué)內(nèi)容和飛速發(fā)展的業(yè)界技術(shù),偏重理論講解的課堂教學(xué)傳統(tǒng)和注重動(dòng)手實(shí)踐的課程特性等突出矛盾,也面臨如何與其他傳統(tǒng)課程銜接和交叉的問(wèn)題。近年來(lái)移動(dòng)互聯(lián)網(wǎng)、云計(jì)算、社會(huì)計(jì)算等領(lǐng)域的飛速發(fā)展進(jìn)一步突出了上述矛盾和問(wèn)題,使得形成穩(wěn)定成熟建設(shè)方案的努力顯得更為困難。為更好地借鑒國(guó)外先進(jìn)教學(xué)經(jīng)驗(yàn),筆者對(duì)美國(guó)部分大學(xué)的Web應(yīng)用類課程建設(shè)情況進(jìn)行了調(diào)研、比較和分析。
1 課程開(kāi)設(shè)情況
所調(diào)研的美國(guó)大學(xué)本科階段Web應(yīng)用基礎(chǔ)類課程開(kāi)設(shè)情況見(jiàn)表1。對(duì)比US News關(guān)于大學(xué)計(jì)算機(jī)排名和表1可以看出,美國(guó)大學(xué)Web應(yīng)用類課程的開(kāi)設(shè)反映了學(xué)校鮮明的學(xué)科和院系設(shè)置特點(diǎn)。從調(diào)研情況看,部分大學(xué)有優(yōu)勢(shì)的應(yīng)用學(xué)科,相應(yīng)地開(kāi)設(shè)了Web應(yīng)用類課程,甚至開(kāi)設(shè)了多門;而其他大學(xué)則沒(méi)有開(kāi)設(shè),甚至個(gè)別大學(xué)沒(méi)有開(kāi)設(shè)任何應(yīng)用類課程,包括選修課。
2 課程要素分析
為進(jìn)一步深入分析,本文選取了表l中斯坦福大學(xué)的CS142、華盛頓大學(xué)的CSE 154、北卡羅來(lái)納大學(xué)的COMP 426和馬薩諸塞大學(xué)的CMPSCI 326這4門課程作為典型課程。這4門課程具有以下共同特點(diǎn):連續(xù)開(kāi)設(shè)、面向無(wú)Web應(yīng)用技術(shù)基礎(chǔ)的學(xué)生、課程網(wǎng)站提供了詳盡的公開(kāi)材料。
2.1 課程概況
所選4門課程基本數(shù)據(jù)對(duì)比見(jiàn)表2。從相關(guān)院系的教學(xué)計(jì)劃可以得知,CS142和CSE154相當(dāng)于國(guó)內(nèi)的基礎(chǔ)課,COMP426相當(dāng)于方向課,而CMPSC1326相當(dāng)于專業(yè)選修課。從后繼章節(jié)可以看出,不同的課程地位和學(xué)制(小學(xué)期或是大學(xué)期)直接影響了課程內(nèi)容的安排。另外從前導(dǎo)課程情況看,一般Web應(yīng)用課程都放在程序設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)課程之后,在學(xué)生對(duì)軟件開(kāi)發(fā)有了一定的基本概念后再開(kāi)設(shè)。在調(diào)研過(guò)程中,也發(fā)現(xiàn)有個(gè)別高校將JavaScript作為新生程序設(shè)計(jì)的入門語(yǔ)言。從以往實(shí)踐看,JavaScript語(yǔ)言雖然有開(kāi)發(fā)環(huán)境設(shè)置簡(jiǎn)便的優(yōu)點(diǎn),但語(yǔ)言本身設(shè)計(jì)過(guò)于靈活,并不合適作為新生的入門語(yǔ)言;而把Web課程放在數(shù)據(jù)結(jié)構(gòu)之后開(kāi)設(shè),學(xué)生確實(shí)更易接受。在調(diào)研中也發(fā)現(xiàn),各課程均比較重視Lab或TAdiscuss section,這主要是因?yàn)閃eb應(yīng)用開(kāi)發(fā)涉及的語(yǔ)言、工具和環(huán)境多而復(fù)雜,因此有必要平緩學(xué)生在這方面的學(xué)習(xí)曲線,減輕其學(xué)習(xí)負(fù)擔(dān),使其可以將主要精力放在課程核心內(nèi)容的理解和實(shí)踐上,這也體現(xiàn)了Web應(yīng)用課程的工程性特性。
2.2 課程內(nèi)容
所選4門課程授課內(nèi)容對(duì)比見(jiàn)表3。從調(diào)研情況看,Web應(yīng)用課程內(nèi)容一般均會(huì)覆蓋客戶端和服務(wù)器端,且在服務(wù)器端一般會(huì)選擇PHP或者Ruby等開(kāi)源語(yǔ)言,這點(diǎn)與國(guó)內(nèi)主要選擇C#或Java語(yǔ)言有較大差別。值得一提的是,隨著Node.js的發(fā)布,JavaScript已經(jīng)成為新興的服務(wù)器端開(kāi)發(fā)語(yǔ)言,CMPSCI326就選擇JavaScript及其框架作為唯一的編程語(yǔ)言??紤]到Node,,js這種事件驅(qū)動(dòng)型異步編程模型對(duì)傳統(tǒng)服務(wù)器端開(kāi)發(fā)模型的顛覆,在將來(lái)的課程設(shè)計(jì)中應(yīng)關(guān)注這一趨勢(shì)。根據(jù)調(diào)研,在課程內(nèi)容安排中,在JavaScript語(yǔ)言介紹時(shí)各課程基本都會(huì)結(jié)合jQuery庫(kù)進(jìn)行講解,這體現(xiàn)了jQuery已成為JavaScript客戶端開(kāi)發(fā)事實(shí)上的標(biāo)準(zhǔn)庫(kù)這一現(xiàn)狀;各課程也均為AjaX和安全安排了一定的課時(shí),這既與業(yè)界現(xiàn)狀相吻合,也符合IT2008中對(duì)WS知識(shí)領(lǐng)域的設(shè)定。
此次涉及的4門課程在設(shè)定開(kāi)發(fā)環(huán)境時(shí)不約而同地提到,雖然現(xiàn)在存在Eclipse等功能強(qiáng)大的IDE開(kāi)發(fā)環(huán)境,但由于這些環(huán)境設(shè)定比較復(fù)雜,本身有一定的學(xué)習(xí)難度和成本,所以均建議初學(xué)者使用普通的文本編輯器進(jìn)行開(kāi)發(fā)。
在授課順序方面,調(diào)研中的大部分課程均選擇在簡(jiǎn)單介紹HTML和CSS后,直接轉(zhuǎn)人服務(wù)器端,再轉(zhuǎn)回客戶端進(jìn)行JavaScript和DOM方面的講解。我們認(rèn)為,這有利于學(xué)生盡早對(duì)Web應(yīng)用的B/S架構(gòu)有個(gè)宏觀的認(rèn)識(shí),也便于表單處理、Cookie和Ajax等內(nèi)容的講授和理解;尤其是HTML5規(guī)范的初步定型,在其中定義了很多涉及服務(wù)器端交互的API,在未來(lái)課程教授從傳統(tǒng)的XHTML向HTML5遷移的過(guò)程中,盡早形成這種宏觀認(rèn)識(shí)尤其重要。
在授課內(nèi)容的選擇方面,調(diào)研結(jié)果也顯示了相對(duì)穩(wěn)定的教學(xué)內(nèi)容和飛速發(fā)展的業(yè)界技術(shù)之間的矛盾。一方面,相對(duì)穩(wěn)定的前沿技術(shù)尚未被廣泛采納,如在2012-2013年,HTML5和CSS3已被現(xiàn)代瀏覽器廣泛支持,尤其在移動(dòng)Web應(yīng)用領(lǐng)域應(yīng)用廣泛,但所調(diào)研的大部分課程尚未體現(xiàn)這方面的技術(shù)進(jìn)步,部分課程在最后的未來(lái)展望講座中對(duì)這方面進(jìn)行了簡(jiǎn)要介紹;另一方面,對(duì)于一些有價(jià)值的前沿技術(shù),部分課程又做了相對(duì)激進(jìn)的引入,如作為課程典型的CMPSCI326,就摒棄了傳統(tǒng)的服務(wù)器端腳本語(yǔ)言,全程使用JavaScript進(jìn)行教授,并且在課程中使用大量課時(shí)廣泛介紹了Handlebars.js、Backbone.js、Requirejs、Heroku等前沿框架和平臺(tái)。在將來(lái)的課程設(shè)計(jì)中,對(duì)前沿技術(shù)的引入和剪裁,無(wú)疑是一個(gè)值得進(jìn)一步探討的問(wèn)題。
2.3 課程考核
所選4門課程考核方式和內(nèi)容對(duì)比見(jiàn)表4。從調(diào)研情況看,大部分課程都將動(dòng)手實(shí)踐作為主要的考核方式,在分?jǐn)?shù)配比中給予了首要權(quán)重。在動(dòng)手實(shí)踐的具體表現(xiàn)上,基本上各課程均圍繞一個(gè)具體的網(wǎng)站項(xiàng)目組織,最終提交物都是一個(gè)完整的網(wǎng)站應(yīng)用;同時(shí)各課程基本都將完成應(yīng)用的過(guò)程分割為與課堂講解同步的若干獨(dú)立階段,要求分階段提交,每個(gè)階段時(shí)間不超過(guò)3周。在這點(diǎn)上,國(guó)外課程的組織明顯比國(guó)內(nèi)要更細(xì)致。國(guó)內(nèi)往往是以月為單位,甚至以學(xué)期為單位布置Project,使得對(duì)學(xué)生實(shí)踐學(xué)習(xí)部分的中間過(guò)程監(jiān)控不夠,既難以得到教學(xué)效果的反饋,也容易使學(xué)生產(chǎn)生最后突擊抄襲現(xiàn)象。當(dāng)然,多階段提交必然會(huì)對(duì)授課教師和助教產(chǎn)生較大壓力,因此必須借鑒國(guó)外經(jīng)驗(yàn),設(shè)計(jì)程序?qū)W(xué)生提交物進(jìn)行部分自動(dòng)評(píng)判,這又需要一定的時(shí)間積累和工作量投入,應(yīng)是下階段課程建設(shè)的努力方向。
在Project內(nèi)容、難度和組織方式上,面向低年級(jí)學(xué)生課程和面向高年級(jí)學(xué)生課程明顯不同。面向低年級(jí)學(xué)生的課程Project內(nèi)容更多地圍繞具體的知識(shí)點(diǎn)組織,開(kāi)放性小,難度較低,且多要求個(gè)人獨(dú)立完成;面向高年級(jí)學(xué)生的課程Project內(nèi)容更多地根據(jù)項(xiàng)目進(jìn)度組織,開(kāi)放性較大,難度較高,往往會(huì)要求組隊(duì)完成。從實(shí)踐來(lái)看,組隊(duì)完成后的評(píng)分具有一定的難度,為平衡這點(diǎn),COMP426的組隊(duì)要求采用結(jié)對(duì)編程(Pair Programming)的模式,而CMPSC1326將每次的Project分為若干Task,部分Task要求個(gè)人獨(dú)立完成,部分Task要求團(tuán)隊(duì)完成,針對(duì)團(tuán)隊(duì)給分。
對(duì)期末考試形式和內(nèi)容的選擇充分體現(xiàn)了偏重理論講解的課堂教學(xué)傳統(tǒng)和注重動(dòng)手實(shí)踐的課程特性等突出矛盾。雖然課程也有一定的理論內(nèi)容,但大部分內(nèi)容難以通過(guò)傳統(tǒng)的書面考試進(jìn)行考核。因此所調(diào)研的課程一方面普遍降低了書面考試的占比,另一方面通過(guò)開(kāi)卷考核代碼讀寫的形式進(jìn)行變形的實(shí)踐測(cè)試。我們認(rèn)為,除非如CMPSCI326一樣完全取消書面考試,否則在目前上機(jī)考試難以實(shí)行的條件下,可行的方法應(yīng)是降低書面考試成績(jī)的占比,更多地通過(guò)Project的提交和面試來(lái)對(duì)學(xué)生進(jìn)行考核。
2.4 課程教材和資源
所選4門課程教材和參考資源情況對(duì)比見(jiàn)表5。從調(diào)研情況看,由于Web應(yīng)用類課程所具有的尚未形成成熟穩(wěn)定的建設(shè)方案,沒(méi)有形成經(jīng)典的教科書;課程內(nèi)容龐雜,涉及面廣;在線資源豐富;技術(shù)更新迅速等特點(diǎn),大部分課程均不指定教材,而以眾多的在線資源和閱讀材料代替,所指定的教材一般也注明為參考教材,多是經(jīng)典的指南類書籍。由于近幾年正處于Web技術(shù)的快速發(fā)展期,我們認(rèn)為這樣的狀況還將持續(xù)一段時(shí)間。目前的做法也是一種較好的解決方案,但是需要授課教師為學(xué)生梳理較好的知識(shí)架構(gòu),準(zhǔn)備較好的閱讀指引,并給予持續(xù)更新,避免學(xué)生陷入信息過(guò)載、無(wú)所適從的境地。
3 結(jié)語(yǔ)
從調(diào)研結(jié)果看,Web應(yīng)用基礎(chǔ)類課程初步形成了一些相對(duì)穩(wěn)定的教學(xué)經(jīng)驗(yàn),如由HTML、CSS、JavaScript、DOM、jQuery、Ajax、服務(wù)器端腳本語(yǔ)言如PHP、SQL、Security等組成的教學(xué)內(nèi)容,以分階段實(shí)際Web應(yīng)用Project為主的考核方式,而新興前沿技術(shù)的引入和剪裁、Project的自動(dòng)評(píng)判機(jī)制以及課程教材編寫等將成為下階段課程建設(shè)的重點(diǎn)。
在調(diào)研過(guò)程中我們還發(fā)現(xiàn),隨著移動(dòng)互聯(lián)網(wǎng)的興起,同時(shí)面向PC端和移動(dòng)端的跨平臺(tái)WebApp的開(kāi)發(fā)技術(shù)在教學(xué)中的引入也許將成為下階段的研究熱點(diǎn)。部分高校已在現(xiàn)有Web應(yīng)用課程最后加入這方面介紹,部分高校單獨(dú)開(kāi)設(shè)了選修課,還有部分高校則將該部分內(nèi)容放入面向特定平臺(tái)(如iOS、Android等)本地應(yīng)用(NativeApp)的開(kāi)發(fā)課程中。從工業(yè)界看,web應(yīng)用開(kāi)發(fā)中“移動(dòng)優(yōu)先”的觀念已得到了廣泛認(rèn)同,但如何在課堂教學(xué)中引入這方面內(nèi)容,目前尚處于起步階段,值得我們做進(jìn)一步探討。
(見(jiàn)習(xí)編輯:劉麗麗)