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