許麗娟 黃冬梅 王愛繼
摘要:針對非計算機專業(yè)程序設計課程的教學現(xiàn)狀,以學生為主體,提出建立融入計算思維理念的以專業(yè)應用為向導、以程序設計思想為重心的“精講導學一小組學習多元互動一專業(yè)應用綜合實戰(zhàn)”三維立體教學模式,探索一套以培養(yǎng)計算思維和實踐應用能力為目標的非計算機專業(yè)程序設計課程教學改革方案。
關鍵詞:程序設計;計算思維;教學模式
0 引言
非計算機專業(yè)程序設計課程不僅要為不同專業(yè)提供解決專業(yè)問題的有效方法和手段,而且要培養(yǎng)學生一種獨特的處理問題的思維方式‘”?!俺绦蛟O計”的關鍵在于運用計算機求解問題的思維方式,即計算思維。教師要培養(yǎng)學生的計算思維能力,令學生掌握解決專業(yè)領域實際問題的基本方法和思維方式。
1 非計算機專業(yè)程序設計課程的教學現(xiàn)狀
目前,非計算機專業(yè)程序設計課程的教學內容仍然是主要圍繞某一種編程語言展開,只要求掌握語言的基本使用。這不僅與培養(yǎng)學生計算思維能力的目標相差甚遠,而且存在諸多制約教學質量提升的矛盾和問題。
非計算機專業(yè)的學生初學編程語言因不適應計算機思維模式,常常會產(chǎn)生畏難情緒,學習興趣不濃。目前的程序設計課程課時較少,課堂教學大多圍繞基礎理論知識進行,與本專業(yè)實踐應用完全脫節(jié);另一方面,課程內容的設置“一刀切”,沒有針對不同專業(yè)的需求作出適當?shù)恼{整。學牛在學習的過程中始終持懷疑態(tài)度,認為自己專業(yè)學習程序設計語言沒有用,只求拿到學分。計算機專業(yè)的授課教師面向多個非計算機專業(yè)學生授課,對于課程與專業(yè)領域的關系了解不多,一定程度上影響了教學的整體效果。
綜上所述,目前非計算機專業(yè)程序設計課程的教學在很大程度上仍然停留在狹義的語言工具的學習和掌握上,教學目標不明確,計算思維的融入滲透甚少,導致學生對程序沒計課程的認識不深,無法真正掌握程序設計的核心思想與方法,
2 基于計算思維的“三維立體”教學模式
教師應積極推行啟發(fā)式的教學方法,強化和落實“以學生為主體、以應用能力培養(yǎng)為目的”的教學理念,改變以往“理論+實驗”的二維教學模式,建立以專業(yè)應用為向導、以程序設計思想為重心的“精講導學一小組學習多元瓦動一專業(yè)應用綜合實戰(zhàn)”的三維立體教學模式,如圖1所示。
2.1 精講導學
傳統(tǒng)的程序設計課程教學方式是“課堂教學+實驗”。教師在課堂上花大量的時間講解語法結構和基礎理論知識,課后學生再按照實驗指導書上寫好的程序錄入,調試通過就算完成任務。這種模式是知識輸入、學生被動接受的過程。枯燥的理論知識會讓學生覺得記憶量大,又找不到規(guī)律,失去學習興趣。為了解決這一問題,教師應該轉移教學重心,采用課堂導學+課外題庫練習+自測的方式完成理論知識的學習,把教學重點放在通過程序設計解決實際問題上。
教師要以實際問題的求解過程為引導,講解程序設計的基本思想和方法;以結構化與模塊化程序設計為核心,沿著數(shù)據(jù)結構從簡單到復雜的主線逐步展開,側重對程序設計思想和方法、程序調試方法相關內容的講解;鼓勵學生通過先畫流程圖和寫偽代碼描述算法更好地理解和學習程序設計,同時滲透軟件工程的思想和方法,提高學生編制程序的規(guī)范性。
教師可依據(jù)問題分析、算法設計、編程到運行調試的完整程序開發(fā)流程,引導學生討論和分析問題,提出解決問題的方法和途徑;將程序設計語言的語法知識有機地結合到程序設計的實踐中,加強程序設計的思維訓練。另外,適時引導學生進行程序錯誤分析、測試與調試,將一些容易被忽略但又對高水平程序設計很重要的“點”逐一展現(xiàn)并加以解析,進一步落實程序設計教學的要求;在閱讀和調試程序的訓練中,引導學生認識用計算機程序解決問題的模式與之前接觸的問題解決方式之間的差異,使學生在循環(huán)結構和選擇結構的使用中養(yǎng)成運用動態(tài)思維理解程序的習慣。
2.2 小組學習多元互動
教師要以“學習小組”為教學單元,利用多媒體教學資源和習題庫自學自測,利用網(wǎng)絡環(huán)境交互學習;將課堂集中輔導與網(wǎng)絡平臺針對性輔導相結合,采用小組考核評價方式;構建完整的“小組學習”模式框架,讓學生養(yǎng)成“要學習、用網(wǎng)絡、查資料、看平臺”的學習習慣。教師可根據(jù)教學內容的邏輯聯(lián)系,將課程內容分成程序設計語言語法精講導學、程序設計思維訓練、專業(yè)應用綜合實踐3個教學進程,針對每一進程引導學生了解學習內容,明確學習目標,確定學習策略,搜集網(wǎng)上學習資源。明確學習任務后,小組成員有組織、有步驟地通過“感知一內化一升華”開展自主學習,同時定期進行互動交流并接受課程輔導教師的監(jiān)督。此階段的主要目的是發(fā)揮學生主體作用,為集中面授輔導奠定基礎。
利用網(wǎng)絡環(huán)境分工合作、交互學習是小組學習的核心。在自主學習基礎上,小組成員通過面對面或網(wǎng)絡環(huán)境下的交流討論,加強知識理論構建,增進組員間的協(xié)作溝通。此階段主要是通過協(xié)作學習強化知識,提高協(xié)作學習能力。教師在學生完成課程基本學習任務的基礎上,有目的地精選案例,引導學生進行分析,提出自己的解決思路;小組間相互評價,各自重新整理和修正思路,編寫代碼并調試。各小組長負責組內分工與合作,教師負責對各組在具體實踐中遇到的問題采用BBS、電子郵件、QQ等方式給予必要的指導。學生通過查閱書籍和網(wǎng)絡資料,在網(wǎng)絡平臺上開展組內討論,咨詢請教,利用一切可利用的時間和機會獲取知識解決問題。
教師針對學生自主學習和小組交互學習中的共性問題進行集中輔導和答疑,進行知識重難點解析和作業(yè)輔導;同時開展經(jīng)典案例分析、設計、實現(xiàn)、調試的小組教學活動,通過學生動手、動腦、動口,培養(yǎng)學生的思維習慣和積極探索精神,突出教師的導學功能,提高學習成效。
考核采用小組考評與個人考試相結合的模式,保留原有卷面考試成績作為個人考核成績。小組提交學習成果,輔導教師考核,計為小組考核成績,并組織師生評比表彰,以達到運用評價和激勵手段促進小組學習活動的目的。
2.3 專業(yè)應用綜合實戰(zhàn)
提高軟件開發(fā)能力是程序設計課程教學的終極目標,項目實戰(zhàn)是培養(yǎng)學生實踐能力的一個關鍵支撐點。教師可在理論學習結束后設置綜合性專業(yè)實踐教學環(huán)節(jié),將程序設計與專業(yè)應用結合:將教學班分組,進行兩周的集中實踐,按照課題的要求,與專業(yè)領域需求結合,完成一個小規(guī)模應用系統(tǒng)的設計與實現(xiàn)。學生通過實踐能更深入地理解程序設計的基本概念和基本理論,熟悉軟件開發(fā)的全過程,鍛煉和提高抽象思維能力、邏輯思維能力、創(chuàng)造思維能力和實踐能力,從而進一步提升用程序設計語言解決實際問題的能力。
面向非計算機專業(yè)學生的程序設計語言課程的授課教師應力求融人面向專業(yè)的師資隊伍進行專業(yè)合作和研討,建立計算機技術與各專業(yè)相結合的項目實踐團隊,從專業(yè)實際應用的角度出發(fā)進行探索和創(chuàng)新?,F(xiàn)有的專業(yè)應用實踐案例能直觀地告訴學生學習程序設計語言課程的重要意義和實踐應用,揭開程序設計語言課程的神秘面紗,使后期學習更有目的性和針對性。教師必須讓學生在有限的課時內掌握應用程序開發(fā)的思想,為后續(xù)進一步學習和使用程序設計語言開發(fā)實用程序以及學習其他Windows應用程序開發(fā)工具打下基礎。
項目組可自由組合,每組3-5人。項目實踐過程包括項目調研、項目規(guī)劃、項目設計與實現(xiàn)、項目考核4個環(huán)節(jié),可以從教師的科研中拆分子項目或者由學生自己調研確定實踐課題。教師要根據(jù)課題難度和需求以及學生前期學習效果,給予針對性的指導。項目組應由能力強的學生帶動能力弱的學生,每組設組長一名,負責帶領組員制訂項目規(guī)劃、撰寫需求分析文檔和設計文檔,監(jiān)督項目的實施過程;在代碼編寫和整合的后期,還需要進行軟件測試及撰寫報告等。為了保證對項目實施過程的有效監(jiān)控,教師可從項目團隊中抽取部分高年級的學生當助教,協(xié)助教師進行過程控制。項目考核是最后一個環(huán)節(jié),包括項目的完整演示和答辯講解,說明項目實施過程中的難點、關鍵技術和心得體會。之后,對某問題可展開討論和項目評價,鼓勵積極討論、相互碰撞思想、相互啟發(fā)以開拓思路,這個過程充分培養(yǎng)學生的團隊合作能力、溝通能力、分析和解決問題的能力。實踐引發(fā)的興趣和對問題的探究會成為深入理論學習的原動力,理論與實踐相互作用可以令學生對程序設計語言與專業(yè)應用的交叉有初步的了解。任課教師必須在搞好實踐教學引導工作的同時,加強自身知識和技能的擴展和更新,達到知識豐富、技術熟練和教學方法科學而實用的要求。
2.4 完善網(wǎng)絡教學資源庫,提供互動交流學習平臺
網(wǎng)絡化教學平臺已經(jīng)成為課后教學很好的補充。所有教學過程不再局限于課堂和紙質教材,學生可利用網(wǎng)絡教學平臺自主學習,實現(xiàn)課內課外相結合、紙質教材與網(wǎng)絡教學資源相互補充。教師還可拓展課堂的教學組織方式進行多環(huán)節(jié)創(chuàng)新教學。網(wǎng)絡教學平臺主要包括語法自習自測、單元案例實訓、專業(yè)應用項目、網(wǎng)絡交流平臺、作業(yè)發(fā)布和遞交、精品課程及公開課、學生優(yōu)秀作品展示七大模塊。語法學習模塊主要包括課件和習題庫,習題以選擇、填空和改錯的形式為主,是學習輔助性資料,增加了課程的信息量,并且可以讓學生自主安排時間和地點進行復習、預習和總結,對疑難問題還可反復學習。單元案例實訓模塊包括經(jīng)典案例的分析、設汁、實現(xiàn)以及實訓的要求。網(wǎng)絡交流平臺劃為基礎學習、單元實訓和項目實戰(zhàn)3個子模塊,方便教師對學生進行針對性的答疑、組織學生進行協(xié)作式學習等,增強師生間的互動,調動學生的學習積極性,提高學習效率。通過作業(yè)發(fā)布和遞交平臺,學生可隨時上網(wǎng)完成老師布置的作業(yè),及時得到批閱結果,及時了解和修正作業(yè)中的錯誤。精品課程和公開課模塊為學生提供本門課程的開放式學習資源。學生優(yōu)秀作品展示模塊能夠增加學生的成就感,同時讓初學程序設計課程的學生對課程設計的形式和要求有一個感性的認識。
3 教學效果分析
新的教學模式在食品學院食品安全專業(yè)的3個大班進行了實踐,參照以往集中考試的成績作了對比分析。新模式的考試通過率達到90%以上,相比傳統(tǒng)模式提高了30%;程序設計試題的平均成績由15.3分上升到30.6分。課程設計以優(yōu)、良、中、差4個等級進行評定,對2012年與2013年的課程設計成績進行比較,結果見表1,優(yōu)良率明顯提高。原因主要包括:①與專業(yè)相結合的項目實踐使學生的學習更有方向,以學生為主體、課內外相結合的自主學習模式提高了學習的積極性和主動性;②與專業(yè)應用相結合的項目團隊為課程設計提供了項目背景和選題的導引,新的實踐輔導機制為課程設計的過程控制提供了強有力的保障。
4 結語
程序設計是大學計算機基礎教育的第2個層次,不僅要讓學生掌握程序設計語言的知識,更重要的是在實踐中逐步掌握程序設計的思想和方法,培養(yǎng)解決問題的思維習慣和能力。以學生為教學主體,將程序設計課程的教學與專業(yè)實踐應用相結合,在提高程序設計課程的教學質量和提高學生程序設計的實踐能力方面取得了較好的效果。以后我們還要在課外教學過程控制和組織方面進一步探索和實踐,以期教學的各個環(huán)節(jié)都得到有效的控制和評價。