摘要:在對C語言這樣一門高職學生較難學習的計算機類專業基礎課實施教學改革的過程中,通過整合Moodle和OnlineJudge系統等構筑了C語言教學網站,給學生提供了全面交互的教學環境。這對改變傳統的教學方式,充分利用信息技術輔助教學的整個環節,提高學生學習能力和使用C語言解決實際問題的能力具有積極的作用。
關鍵詞:C語言;教學系統;Moodle;OnlineJudge
0 引言
《C語言程序設計》是包括高職院校在內的高等院校廣泛開展的信息電子類專業的編程基礎課。在國家、省級的計算機二級考試中,大多數考生也選擇C語言類考題。經過十余年的發展,高校C語言的教材體系結構和教學內容的組織都已經較為成熟。面對高職學生基礎知識薄弱,學習自主性較差的現狀,如何激發學生積極性和主動性,增強學生的動手能力和學習信心,以適應高職院校高技能應用人才的培養目標,是擺在每個C語言教學改革探索者面前的問題。C語言課程只靠“教本位”的模式而忽視學生的主體性是很難取到較好的教學效果的,因此筆者在對C語言進行教學改革的過程中,除針對高職學生培養目標和學生現狀進行教學設計之外,還注重搭建網絡教育平臺,利用各種資源營造C語言的學習環境來發揮學生的主觀能動性,切實提高他們自學的能力和C語言程序設計、分析、調試的能力。下面筆者將對教學改革過程中的教學系統設計和各類C語言教學資源的整合應用情況進行總結和探討。
1 目前存在的問題
首先,傳統的授課方式需要改進。C語言目前的授課方式還是“教本位”的方式,課程以教師為中心,教師在講臺上講授,學生被動地在臺下聽,要達到“學本位”的效果還有相當的距離。
其次,學生的學習自主性還有待提高。高職學生的現狀決定了他們的學習能力和積極性都較薄弱,面臨C語言這樣的本身就有一定難度又需要大量練習的課程,學生離開課堂上45分鐘填鴨式的教學后,如果課下不進行練習,很難學好C語言。
2 教學系統設計
1962年,格拉澤明確地提出“教學系統”概念并要求對教學系統進行設計。教學設計已經經歷了近半個世紀的發展,其理論和實踐發展到今天,已經和現代教育技術、學習理論的最新進展緊密地聯系在了一起。教學設計的發展體現在教學改革的各個方面。
“C語言程序設計”課程改革也體現了當代教學設計發展的三大趨勢。
第一,注重信息技術與教育理念的整合。筆者通過利用多媒體、交互性的站點系統豐富了任務環境,強化了學生采用多種方法來解決問題的技能,把學生解決難題的行動過程可視化,使他們直接參與建模和模擬任務等過程。通過借助Moodle系統的支撐,這些過程的實施變得輕松而有條理。
第二,注重各種因素整合下的學習環境的建構。戴維·喬納森在其建構主義的學習理論中指出學習不是傳輸的過程,也不是接受的過程。學習需要意志的、有意圖的、積極的、自覺的、建構的實踐,該實踐包括互動的意圖一行動一反思活動。知識和技能通常是在個體運用知識和技能的“情境(context)”中獲得的。在課堂授課方面,教師一方面注重營造輕松、和諧的課堂氣氛,使得學生樂于接受知識;另一方面,借助精心設計的多媒體課件,形象、動態地展示各個知識點。而在課后,如何構造良好的學習環境,使學生自覺地、建構地學習是各種學習組織所面臨的問題。針對高職學生基礎較薄弱,學習自主能力較差的現狀,我們借助Moodle和OnlineJudge系統搭建了一個輕松愉快的7*24小時的學習環境,通過經常性的聯系來維持一定程度上的互相關心和理解,從而形成學習C語言課程這一群體的歸屬感和社會情感紐帶,及時地拉近教師與學生的距離,使得學生在自學過程中遇到的問題能及時得到解決,一定程度上刺激了學生的學習積極性,達到了較好的教學效果。
第三,注重新的評估理念和方法。評估需要超越對局部技能和離散的知識點的關注,而要把推動學生進步的更復雜的方面包含進來。筆者正在嘗試把課程、教學、實施和評估進行總體規劃,而Moodle和OnlineJudge系統成為評估的重要工具。根據教學大綱的規定,學生成績由理論考試和平時成績兩部分組成。理論考試的測試評估中,無論從題型還是難度,都是向二級考試的要求靠攏。目前二級考試的考核趨勢,已經漸漸地向如何用C語言解決實際問題的方向轉變。而平時成績部分,借助Moodle和OnlineJudge系統,可以較精確地表征每個同學的實踐學習情況,特別是學生的學習能力以及利用C語言解決實際問題的能力。
3 課程網站建設
C語言程序設計課程網站,主要面向教師和學生用戶,涵蓋了教學的各個環節,教師可以通過網站系統發布教學大綱、講義和教案、多媒體視頻課件、經典案例、相關資料下載等,可以布置作業、進行答疑、自助考試練習、開展專題討論、建立專屬聊天室、書寫博客等,還可以結合“任務驅動”的方式讓學生完成實驗等。圖1為站點功能圖。
在該系統中,有三個核心功能部分,分別是站點系統,Moodle系統和OnlineJudge系統。三個系統使用統一的身份認證,達到了多系統整合統一的目的。圖2為邏輯層次圖。
3.1 站點系統
這是用戶主要接觸的界面系統,在站點系統中,除實現了一些基本的站點功能,如站點新聞、課程資料、在線學堂、下載等外,更重要地,站點系統實現了Moodle和OnlineJudge的界面整合,使得用戶在訪問課程站點時,感覺不到是在異構的站點中進行切換,例如系統提供了統一的功能導航和統一的登錄界面等。
3.2 Moodle系統
Moodle是Modular Object-Oriented Dynamic LearningEnvironment(模塊化面向對象的動態學習環境)的縮寫。它是一個設計與開發遵從“社會建構主義教育學(social ConstructionistPedagogy)”的課程管理系統(CMS),一套免費、開放源代碼的軟件包。它協助教育者創建有效的在線學習社區。它的適應性很強,可以提供一名教師多至5萬名學生的大學教育。Moodle在全球已經有了20萬的注冊用戶,提供了175個國家75種語言包,是全球廣泛采用的教育系統。
Moodle系統是以課程教學為中心的。在課程開展過程中,Moodle可以配合靈活的課程活動配置,如博客、論壇、測驗、資源、投票、問卷調查、作業、聊天、專題討論、程序教學等,并且提供了全面的用戶日志和跟蹤,如統計每個學生的活動,顯示圖形報告,包括每個模塊的細節(最后訪問時間、閱讀次數),還有參與的討論等,匯編為每個學生的詳細的“故事”,為評估學生的學習能力提供了廣泛而切實的依據。
3.3 OnlineJudge系統
OnlineJudge系統是從ACM/ICPC競賽的評判系統移植而來的。近年來隨著全國各高校ACM競賽活動的展開,出現了大量在線題庫,ACM網站層出不窮。國外的有UVA,Ural,SGU,USACO等著名網站,國內浙江大學、北京大學都有自己的OnlineJudge。
OnlineJudge系統可以發布問題集,讓學生通過在線提交C語言程序源代碼解決問題,還可以安排競賽,并且可以提供成績排名。
對于高職學生來說,過多時間花在ACM競賽上,既不符合高職學生的培養目標,也不適合當前學生的現狀。但是,借助這樣的系統,將題目難度降低到高職學生能解決的程度,正迎合了“任務驅動式”教學的趨勢,通過精心設計的案例設置,讓學生通過C語言程序解決具體的實際任務,提高了C語言程序設計、分析、調試的能力。
3.4 異類站點整合
(1)Tomcat和Apache整合
在整個C語言課程網站中,站點系統是筆者使用Tom-cat+JSP+Access實現的網站系統,OnlineJudge系統是筆者移植更改自北京大學OnlineJudge(PKU)的系統,采用Tom-cat+Servlet+MySQL為主要實現技術,Moodle系統使用的是Apache+PHP+MySQL的系統。要讓以上三個站點系統達到統一服務器訪問,必須將Tomcat和Apache整合在一起。作為一脈相承的Apache和Tomcat,使用Mod_jk模塊對webserver進行通信,而通信的協議是AJPl2,AJPl3或者JNI協議中的一種。整合過程就是讓apache的httpd.conf文件調用mod_jk.conf文件,mod_jk.conf文件又調用了workers.properties文件,進而配置好各自的虛擬主機。
(2)OnlineJudge和Moodle系統整合
筆者在移植的過程中,刪除了OnlineJudge的登錄系統,使用Moodle系統的登錄系統進行身份驗證,使得OnlineJudge系統中的排名(RankList)呈現的是Moodle用戶,提供了教師評估學生解決問題能力的依據。
4 結束語
目前OnlineJudge系統已經引入數十個實際問題和500余個案例源碼,Moodle系統已經輔助進行了兩個學期的c語言課程教學,已應用于多個專業的C語言教學中,并針對不同專業的學生特性和培養目標調整課程活動的配置。
就兩個學期6個班級的使用情況來看,學生在使用系統初期可能會有適應過程,但經過兩個星期的熟悉之后,就能較順暢地使用各種功能,通過如博客、論壇、測驗、資源、投票、問卷調查、作業、聊天、專題討論、程序教學等多種方式,較大程度地提高了學習的能力和使用c語言程序設計、分析實際問題的能力,二級考試的通過率也有了一定提高,教學效果明顯。