任培花,康振峻,王麗珍
(1.山西大同大學數學與機算機科學學院,山西 大同 037009;2.中國人民解放軍93601部隊,山西 大同 037006;3.山西大同大學教育技術科學學院,山西 大同 037009)
隨著各行各業對計算機技術的應用越來越普及,社會對計算機專業開發人才的需求也越來越多。為適應這種需求,目前我國許多高校計算機系開設了各種程序設計語言課程如 C、C++、Java、JavaScript、C#等。但學校的教學現狀是我們的學生對基礎語法知識掌握較好,但嚴重缺乏項目實踐和創新能力,無法適應社會的需求。當然這樣的現象背后有些是客觀原因,但很大問題在于我們的傳統課堂已經與市場需求脫節了。筆者作為一名一線的授課教師,經過對山西大同大學計算機系2009級計算機專業4個班學生進行的問卷調查結果分析:70%的學生迫切希望接受公司式的項目實踐教學,只有30%的學生認可傳統課堂的重要性,但這部分學生都是曾有過項目實踐經驗,才有了對語法進行進一步加強學習的要求。從這個調查結果不難看出我們必須尋求一種新的課堂對傳統課堂進行補充,進行取長補短,要盡快改變這種只見樹木不見森林的學習方法。
學校真正讓每一位學生深入公司進行項目實踐培訓,從人力、財力、安全的角度來說,是不現實的。好在計算機專業學生因為專業的需要一般都配有電腦,甚至許多都是便攜式的筆記本,而且在校上網比較方便,這樣為我們第二課堂的開展提供了一個很好的物資保障。網絡學習屬于一種非正式學習[1]模式,計算機專業學生利用網絡進行非正式學習有助于開展第二課堂。本文將借助Web2.0技術,建設基于項目實踐學習的網絡課堂即構建Web2.0環境下程序設計課程自主學習平臺。
傳統課堂的授課方式是按照教材教學大綱要求,教師將課本的程序語言知識點和典型程序設計例題講解給學生,然后學生在實驗課上對所學知識進行驗證式的學習,這樣的學習方式,學生可以很好地對語法知識進行學習。 然而從另一角度,傳統課堂容易把學生的學習重點集中在語法上,容易把程序設計課上成程序語言課,不能進行真正的程序設計的學習。因傳統課堂不能引導學生形成合理的學習方法,所以學生對程序設計課程的態度比較消極,直接的后果是學生對課程本身缺乏足夠的學習興趣、學習中缺乏自主性、探究性、不能用系統觀進行程序設計的學習,進而間接地影響到學習效果。
Web2.0 是以 Blog(博客)、RSS(內容聚合)、Wiki(維基)、Tag(分類分眾標簽)、SNS(社會性網絡軟件或社交網絡服務)、Social Bookmark(網摘或社會化書簽)等社會軟件的應用為核心,依據六度分隔、XML、AJAX等新理論和技術實現了互聯網新一代模式[2]。Web2.0技術極大地滿足了網絡用戶的個性化需求,用戶在Web2.0環境下進行學習,用戶既是信息的創造者和信息渠道,同時也是信息的受益者,極大地體現了用戶的自主性。把Web2.0技術這些變革性創新用于程序設計課程自主學習平臺的設計中,給學生帶來一個全新的網絡課堂,該課堂學習內容以項目為單位、注重學生自主學習的培養、團隊的合作等。優勢就在于學生在項目任務的驅動下容易完成知識的遷移、可以提高學生應用知識解決實際問題的能力、可以整體把握項目流程等。
Web2.0的技術表現形式有很多種如 Blog、RSS、Wiki、Tag、SNS 等。對 Web2.0 進行技術分類可以分為兩類:創作型和連接型。創作型技術的代表包括Blog、Wiki等,是用來供給用戶創造信息的;連接型技術可以幫助用戶尋找信息,代表性技術包括 RSS、SNS以及Tag等。 利用Web2.0技術的優勢,將參與、互動、共享的理念帶到程序設計教學中來,給師生構建一個自由共享、開放互動的平臺。進入平臺的師生之間、學生之間可以共同編織一張知識的大網,在這里知識的創作、傳播和共享變得更加便捷。用Web2.0技術搭建學習平臺的技術搭配方案有很多種,代表性的有網上作業批改模型設計(Blog+RSS)、建立學習圈的設計(Blog+Tag+RSS)[3]等。系統針對Web2.0中各項技術的特點,提出一種新的平臺技術搭配方案:Blog(博客)+Wiki(維基)+RSS(內容聚合)+Tag(標簽),如圖 1。

圖1 Web2.0環境下程序設計課程自主學習平臺的技術搭配方案圖
在Web2.0環境下程序設計課程自主學習平臺中,有教師、學生兩種角色,各自擔負著不同的使命和任務。
1)教師功能分布情況。
(1)上傳程序設計課程學習資料:需要提供不同階段的學習資料,基礎篇、中級篇、高級篇。資料可以是各種形式:視頻、課件、PDF文檔、word文檔等。
(2)課程消息發布。
(3)項目任務發布:要根據不同學生的學習狀況,定時發布簡單項目、中等難度項目、專業系統項目任務,無論屬于哪類型的項目都要給出適當的技術支持,如Java語言編寫Web項目,可以明顯提示學生按照MVC模型開發系統,分為視圖層、業務層、數據層。甚至必要的話,可以給予學生完整案例使學生可以即時參照。
(4)教師答疑:可以通過博客留言或者QQ即時交流功能回答學生疑問。
2)學生擁有的權限功能。
(1)學生在平臺中可以自主學習:學生進入教師博客或者利用RSS訂閱教師的博客,及時了解教師最新的課程要求和項目任務發布情況,然后學生根據自己的知識基礎,選擇是否學習課程內容。
(2)協作學習:學生之間可以組成團隊合作完成項目如1號學生可以做前臺頁面 (視圖層)、2號學生做數據層(建立數據庫)、3號學生編寫控制層。一個團隊的學生可以通過RSS互相訂閱各自博客,以了解團隊的整體進度。
(3)項目任務發布:學生發現好的項目,可以放在自己的博客上,供其他學生學習,但是要標明該項目的難易程度,屬于簡單項目、中等難度項目還是專業系統項目。
(4)學生答疑:學生有時為了方便,可以在學生內部尋求項目疑問幫助,辦法同教師答疑。
網絡學習平臺采用的是B/S模式,即瀏覽器/服務器結構。在這種結構下,由瀏覽器向Web服務器發出HTTP請求,Web服務器調用數據庫中的數據,生成HTML代碼,并向瀏覽器發出。這樣就大大簡化了客戶端的負荷,減輕了系統維護與升級的成本和工作量。B/S模式的工作原理如圖2。

圖2 B/S工作原理
根據B/S結構的特點以及基于Web開發的一般原則,Web2.0環境下程序設計課程自主學習平臺體系結構的實現分為三層:模型層、視圖層、控制層,即MVC模式。其中,視圖層位于客戶端,它是與用戶直接交互的瀏覽器界面,模型層和控制層位于服務器端。
Web2.0環境下程序設計課程自主學習平臺是基于SSH(Struts+Spring+Hibernate)框架開發的,使用的軟件開發工具為MyEclipse5.5,開發語言則是Java語言。開發的方法是原型法,即先開發一個簡單的可以運行的原型,根據學生的反饋不斷的進行修改和完善。服務器端操作系統:Windows NT/2000;數據庫是:SQL SERVER 2000/2005。
前臺頁面開發可以用DreamWear網頁設計工具設計,其中登錄界面和新用戶注冊頁面等可以采用一種交互性更強的網頁開發技術Ajax。
該平臺面向的用戶群分為教師和學生兩類。沒有注冊就訪問平臺的師生只能以游客的身份進入登錄頁面如圖3所示,但無法對網站內容進行學習和更新。申請注冊的新用戶點擊登錄頁面的“注冊為新用戶”就可以進入新用戶注冊頁面如圖4。登錄頁面和新用戶注冊頁面屬于前臺視圖層可以用DreamWear網頁設計工具設計。至于登陸頁面或新用戶注冊頁面與后臺數據庫的驗證可以采用Ajax技術實現,Ajax在瀏覽器與Web服務器之間使用異步數據傳輸 (HTTP請求),實現局部刷新,可以提升頁面的性能。

圖3 登陸頁面

圖4 新用戶注冊頁面
以下是對新用戶注冊頁面用Ajax進行注冊名長度驗證的代碼,把以下代碼嵌入到<head></head>之間,只要用戶注冊的名字長度小于2個字符或大于10個字符,無需點擊注冊頁面的確認鍵,不離開當前注冊頁面,頁面會馬上做出“注冊新用戶名必須在2個到10個字符之間!”的提示。用同樣的方法可以在當前頁面驗證用戶名已經存在、郵箱輸入格式錯誤等。

針對當前計算機專業程序設計課程的教學現狀,利用WEB2.0“以人為本”的理念,以及博客、維基、網摘和內容聚合的技術應用,設計開發了一個Web2.0環境下程序設計課程自主學習平臺。平臺集成了 Blog(博客)、Wiki(維基)、Tag(標簽)三大模塊,并且任意一個模塊都可以使用內容聚合(RSS)進行訂閱,通過個性化首頁聚合了用戶所感興趣的內容,在SSH架構的協助下,平臺功能基本實現。不過,更重要的是,在今后的平臺教學實施過程中,教師應該起到極大的推動作用。最初,教師應要求學生注冊用戶名、完成培訓任務、集體網上討論等。認為只有讓學生養成Web2.0環境下的參與和分享意識,這個平臺才發揮了最大的效應,變成真正自由共享、開方互動的平臺。
[1]柴陽麗.Web2.0環境下大學生非正式學習現狀調查與對策研究[J].電化教育研究,2011(12):63-68.
[2]劉向斌,楊珉.基于Web2.0的企業知識管理系統設計與實現 [J].計算機工程,2009(8):104-106.
[3]張林.Web2.0的校園門戶系統的設計與實現 [D].成都:成都電子科技大學,2010.
[4]嚴冰,吳國祥.Web2.0與遠程教育人才培養模式改革 [J].中國遠程教育,2010(3):12-19.
[5]單舉芝,劉述.基于Web2.0的教師遠程研修平臺設計初探 [J].中國電化教育,2009(3):105-108.