周晏,朱宗勝
(安陽工學院,河南安陽455000)
?
程序設計類課程能力培養的教學模式研究
周晏,朱宗勝
(安陽工學院,河南安陽455000)
摘要:程序設計類課程是計算機專業的核心基礎課程,這類課程的特點是強調通過教學培養學生的創新能力和實踐能力。傳統的“老師講,學生聽”教學方式已經不能達到較為良好的教學效果。本文針對程序設計類課程的特點,提出了基于敏捷開發的項目驅動教學理念,改革了課程考核方法,注重培養學生的實戰能力和團隊合作精神,對程序設計類課程的教學方法進行了初步改革探索。
關鍵詞:程序設計;教學改革;敏捷開發;項目驅動
隨著高等教育大眾化的推進,如何立足就業,把握市場動向,為社會培養大批專業技術知識較扎實、實踐動手能力過硬的應用型人才,既是高等學校亟待解決的問題,同時也是高校教師教學工作的重要職責。
“應用型人才培養”作為一種人才培養模式,在計算機專業人才培養中,我們始終強調以實踐應用為特征,以綜合能力培養為核心要素,這種綜合能力的培養既包括運用自身所學專業知識解決實際問題的能力,又包括自我學習的能力及創新能力。我們只有緊緊圍繞這個特征與核心,不斷深入研究程序設計類課程的教學方法,不斷改進教學手段、不斷轉變教學理念,不斷提高教學質量,才能更好地完成應用型人才的培養。因此,當前我們開展針對程序設計類課程能力培養的教學模式研究是十分必要的。
程序設計類課程是計算機專業的非常重要的專業基礎課程,其中主要包括高級語言程序設計、C++面向對象程序設計、JAVA程序設計、軟件工程等。這些課程的傳統教學模式一般均采用以教師課堂面授教學為主、學生實驗實踐教學為輔的教學模式,該種教學方式目前存在以下問題:
1.1教學模式陳舊
1)課堂教學缺乏互動。課堂教學受到教室硬件條件的制約,只能是老師在講臺上講,學生在座位上聽,“教”與“學”相互獨立。無法將“教”與“學”良好的結合,整個教學過程中缺乏教師與學生的互動,學生無法在教師講的過程中直接參與實踐,通過同步實踐提高學習效率,課堂教學效果不佳。
2)教學重基礎輕項目。課程在講授時,一般以講授書本上的例題程序為主,而書本上的例題和習題往往較簡單且代碼量很少。如果學生從來沒有接觸或編寫過上千行代碼的項目,那么一旦遇到較復雜的程序或功能較多(需要編寫較多代碼時)的項目時,就會無從下手。
3)教學重理論輕實驗。課程在講授時,理論學時數較多,占總學時數的2/3,而實驗學時數較少,只占到總學時數的1/3,甚至更少。這樣,學生根本沒有充足的學時做實驗,課程結束后學生只是掌握了一些程序設計的基本概念,而沒有掌握應有的編寫程序和調試程序的能力。
1.2實踐教學方法、理念陳舊
1)實踐教學理念落后,實踐教學停留在對課堂知識點、例題的驗證上。大部分院校的實踐教學還依賴于主教材配套的實驗指導書,部分實驗的內容已經多年未更換。學生上課做實驗僅僅將這些程序輸入完成進行驗證就可以了,根本不需要做任何思考,又多以驗證性實驗為主,缺乏設計性和綜合性實驗。
2)實踐內容枯燥無味,通常是解決一些簡單的數學問題,缺乏新意,既和實際生活結合不緊密,也沒有實際的應用價值。在學習了這些程序后,學生不知道有何用處,而一旦真的碰到實際的問題又不知道要如何入手解決,致使學生缺乏學習興趣。
3)實踐考核方式落后,傳統的實踐考核方式是學生做完實驗后提交實驗報告,老師對實驗報告進行批改,給出實踐成績。在這種考核模式下,學生撰寫的實驗報告更是“實驗目的—實驗內容(步驟)—實驗思考”千篇一律的“八股文”。這樣
的實驗報告不僅沒有起到提高學生實踐能力的作用,反而成為學生在學習過程中的累贅,花費了大量的時間,卻沒有任何正面效果,導致學生產生厭學情緒,學習積極性下降[2]。
1.3課程考核組織形式單一
目前大部分院校的課程考核方式還是以期末筆試成績為主,平時考勤成績為輔的考核形式。這種試卷形式的筆試考核,僅僅考察了學生對理論知識的掌握情況,試卷中的程序編寫題目很少或根本沒有,不能夠全面的評估學生的學習情況。雖然也會在總成績中加入平時成績,但平時成績所占權重較低,不能夠客觀地反映出學生的真實水平和能力。在這種沒有結合程序設計類課程的特點的考核方式下,學生們自然就以背書為主,以考前“臨時抱佛腳”為主,成為應試型“人才”[3]。
2.1引入項目驅動教學方法
項目驅動教學法是由凱茲博士推創的,它是一種由師生共同完成一個完整的產品項目工作而進行的教學活動,吸取了支架式和拋錨式眾多教學法的優點,調動學生的主體作用[4]。
“項目驅動教學法”最顯著的特點是“以項目案例為主線、教師為引導、學生為主體”,具體表現在:目標指向的多重性;培訓周期短,見效快;可控性好;注重理論與實踐相結合[5]。
項目教學法主張邊練邊講,邊學邊教,強調學生的自主學習,主動參與,從嘗試入手,從練習開始,調動學生學習的主動性、創造性、積極性等,學生唱“主角”,而老師轉為“配角”,實現了教學角色的換位,有利于加強對學生自學能力、創新能力的培養。項目驅動教學方法流程,如圖1所示。
2.2引入敏捷開發的項目訓練方法
敏捷開發(Agile Development)是近些年興起的一種軟件開發與項目管理的思想,以其靈活性,易操作性得到軟件行業的廣泛關注。敏捷開發方法不是一種獨立的技術,而是一組開發方式的總稱,主要包括極限編程(XP)、Scrum、精益開發和動態系統開發方法(DS-DM)、特征驅動開發(FDD)等。它的基本原則有迭代式開發、增量交付、互動式開發、持續集成等。這種開發模式以人為核心、以迭代、循序漸進為開發方式。在開發過程中,產品項目被切分成多個迭代,每次迭代的成果都經過測試,具備集成和可運行的特征。換而言之,就是把一個大項目分為多個相互聯系,但也可獨立運行的小迭代,并分別完成。
在基于敏捷開發的項目驅動教學過程中,教師將從傳統課堂上“老師”的角色轉換為產品項目的“客戶”或軟件公司的“CTO”,保證學生明確項目需求、跟蹤學生團隊項目開發進度,幫助學生解決開發中遇到的問題,推動項目順利進行。在教學過程中,可將學生按4-5個人一組,分為若干個項目開發團隊。每一個團隊中包含一個項目經理、兩個或三個程序員和一個測試員。在開發團隊中,每個成員彼此平等、遇到技術難題互相幫助、取長補短,培養團隊成員的合作精神,團隊成員不拘泥于單一的角色職責,也可根據個人能力一人承擔多個角色。具體流程如下:
1)團隊成員在老師的輔導下,明確了解整個項目的需求,根據整個需求將項目分解為一個個小的需求列表,并根據需求列表撰寫項目計劃書。
2)召開項目計劃會議,根據需求列表明確開發任務,預估每個迭代所需的時間。
3)繪制任務墻。把每個迭代的任務,寫在紙條上貼在任務墻,讓大家認領分配。每當一個任務完成,由項目經理把任務從進行中貼到完成區域。再從未分配區域認領新任務貼到進行中的區域。
4)舉行站立會議。每次上課前,讓大家在會議上總結自己所做的工作、開發中遇到什么困難,后續開展什么任務,時間控制在10分鐘內,把已完成、正在做、未完成的工作狀態貼到一個墻上,這樣大家都可以看得到任務的狀態,團隊中無論誰出現了什么狀況,大家都會幫他想辦法,保證整個項目能夠成功。
5)繪制燃盡圖,保證任務的概況能夠清晰地看到。燃盡圖把當前的任務總數和日期一起繪制,每天記錄一下,可以看到每天還剩多少個任務,直到任務數為0。
6)代碼評審。為培養學生良好的編碼習慣,教師應該帶領各個團隊的程序員和測試員組成一個代碼審查小組,通過閱讀、討論和爭議,對程序進行靜態分析。應指出常見的一些編碼不良習慣:如使用“魔數”,不規范的命名規則,濫用全局變量,代碼可讀性不佳,沒有注釋等等。
7)評審總結會議。在項目完成時,由老師充
當客戶,學生團隊演示自己完成的軟件產品以輪流發言方式進行,每個人都要發言,總結項目中遇到的問題、改進和大家分享討論。
本文針對程序設計類課程的特點,對傳統的考核方式進行了改革。基于敏捷開發的項目教學法考核分為3部分組成:
1)平時課堂表現與考勤占20%;
2)項目實戰50%;
3)期末試卷30%。
其中項目實戰的得分要根據學生在項目開發過程中作出的貢獻來評定,又分為個人貢獻得分和團隊整體得分。這樣既考核了學生個人的能力,又培養了學生的團隊合作精神。
通過將基于敏捷開發的項目驅動教學法引入到程序設計類課程教學后,以具體項目為教學線索,精心組織相關教學內容,讓學生在項目開發過程中自己發現問題,思考問題,解決問題,大大激發了學生的學習積極性和主動性,學生的動手實踐編程能力明顯提升。在未來的教學工作中,我們將繼續以培養應用型人才為目標,以學生為主體,針對不同課程的特點,將新的計算機技術與傳統教學相銜接,取長補短,通過新的教學理念、新的教學方法、新的考核方式,進一步提升程序設計類課程的教學質量和教研水平。
參考文獻:
[1]陸國棟,孫健,朱慧.教師教學發展的融合理念與現實探索[J].中國高等教育,2014(6): 32-34.
[2]沈濟南,梁芳.程序設計類課程實踐教學方式改革研究[J].教育教學論壇,2014(52).
[3]焦澤昌,李艷.項目教學法在高職教學中的實施研究[J].中國林業教育,2003( 4) : 44-46.
[4]朱曉旭,楊季文,趙雷,等.程序設計類課程過程性考核研究與實踐[J].計算機教育,2014(22).
(責任編輯:劉懷山)
[5]鄭金洲.教學方法應用指導[M].上海:華東師范大學出版社,2006.
Programming Courses Teaching Model of Cultivating the Ability of Research
ZHOU Yan,ZHU ZongSheng
(Anyang Institute of Technology,Anyang 455000, China)
Abstract:Programming courses is the core of computer professional foundation course, the characteristics of this course is emphasized by teaching to cultivate students' innovation ability and practice ability. The traditional teaching methods of "teacher speak, students listen" can not achieve good teaching effect. In this paper, accord?ing to the characteristics of programming courses, is proposed based on agile development project driven teach?ing ideas, reform the courses examination method, pay attention to cultivate the students' practical ability and the team cooperation spirit, the program design class teaching method reform has carried on the preliminary explora?tion.
Key words:Program design;Teaching reform;Agile development;Project driven
作者簡介:周晏(1979-),女,河南安陽人,碩士,安陽工學院副教授,主要從事信息系統開發與人工智能研究。
收稿日期:2015-04-20
中圖分類號:G642
文獻標志碼:A
文章編號:1673-2928(2015)04-0117-03