



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