董虎勝 陸 萍 李 冬
(蘇州經貿職業技術學院 江蘇 蘇州215009)
C# 是微軟公司發布的一種面向對象的、運行于.Net Framework 之上的高級程序設計語言, 它吸收了C++、Java、VB 等語言的優點, 體現了當今最新的程序設計技術的功能和精華。 憑借著與Windows 操作系統的緊密聯系,以及微軟產品所共有的操作性強、開發環境簡單易用等特點,C# 語言受到眾多程序開發人員的青睞,成為當前軟件開發的首選語言。 當前,我國高職院校軟件技術專業大都開設了.Net 方向,《C# 程序設計》課程作為.Net 課程群的基礎,在課程體系中占有重要地位。 但該課程知識內容新、更新快,實踐性也相當強,在教學中采用傳統的教學方法,教學效果并不理想,尤其在培養學生的實際編程能力方面,沒有起到明顯的促進作用。 因此,如何在C# 語言的教學中提高學生的學習效果,培養學生的程序開發能力,是該課程任課教師值得深入探討的課題。
在《C# 程序設計》的課程教學中,筆者所在院系選擇了與江蘇微軟技術中心合作辦學的模式。 通過合作辦學、共建課程來培養更符合企業需求的、具有較高職業素養的學生。作為院級立項建設的精品課程,課程組在教學中以培養學生的職業能力為核心,在課程設計與課程內容、課程教學方法與手段、課程考核等方面做了一系列的嘗試與改革,取得了良好的教學效果。
良好的教學效果不僅歸功于優秀的教師,還要歸結于優秀的課程框架設計,而課程框架設計的基礎則是課程的目標與定位。在軟件技術專業.Net 方向中,我們將該課程定位于.Net 課程群的底層基礎位置, 作為一門專業基礎課程。 該課程的目標是培養具有.Net 崗位群所需的基礎開發能力和專項技能,通過該課程的學習將為后續.Net 系列課程打下堅實的基礎。 根據該課程的定位,設計了《C# 程序設計》課程的教學內容及培養模式的框架(如圖1 所示)。

圖1 《C# 程序設計》課程框架圖
在該課程框架圖中,根據課程定位與目標確定教學內容和培養模式。 針對學生在學習程序設計中對抽象與孤立的知識點不夠投入的情況, 我們將C# 開發中涉及的知識點和技能點整合到6 個具體的項目中,并進一步細化分解為30 個工作任務。 這樣就使教學內容“基于工作過程,任務導向”,在教學中學生通過開發項目來學習程序設計,更容易獲得成就感與對學習新知識的渴望。
該課程框架不僅注重對知識的講授,更重視對學生職業能力的培養。 我們在教學中主要采用了項目教學法、分組教學法與角色扮演法等教學方法加強對學生職業能力的培養。 項目教學法有助于培養學生的實踐能力; 分組教學法有助于培養學生的團隊協作能力; 角色扮演法可讓學生體驗真實的軟件開發過程,有助于培養崗位責任感。
本課程框架注重對學生能力的考核,而非對理論知識的再現。 我們在項目考核中采用了成員匯報打分、項目考核、小組互評互測相結合的方法。 通過成員匯報打分,有助于培養學生的溝通與表達能力;采用項目考核,能促使學生認真學習、借鑒資料、協同開發項目,培養自學能力;小組互測互評則可以培養程序員所需要的細致、嚴謹的科學態度。
本課程框架始終以培養學生的職業能力作為出發點,無論在教學內容的組織上還是在教學過程的實施中無不體現出能力培養這一核心,而這正是軟件專業人才培養的重中之重。
高職教育提倡以項目為載體、基于工作過程的教學模式,注重對學生職業能力的培養。 根據這一指導方針,結合C# 程序設計語言的特點,我們對C# 開發涉及的知識點進行了整合。 在教學中,我們選用6 個由易到難的實際項目來組織教學(如圖2 所示),通過開發項目講解C# 知識點, 同時組織實踐項目培養學生的程序設計與開發能力。 對于每一個項目,又進一步細化為多個具體的子任務與知識基礎,這樣在項目的開發中,就實現了教學、開發一體化,且有利于分組教學、項目教學的組織與實施。 學生在學習中參與項目開發,在項目開發中學習知識,達到知識的擴充與能力的提高雙線發展,不僅能學習到程序設計的基本語法結構、流程邏輯、面向對象的思想以及綜合應用等專業知識,還可以全面培養學生的自學能力、分工協作、團隊精神、語言表達等綜合能力素質,進而掌握程序開發所需的各項技能。 課程所選用的6 個學習項目遵循了從事初級程序員、中級程序員、高級程序員到軟件架構設計師的技術進階, 也對應于軟件安裝、軟件調試、編程、系統調試、項目應用等專業核心能力的培養。

圖2 課程教學內容組織示意圖
對于優秀的程序員,程序開發規范十分重要。 在本課程的開展過程中, 通過與江蘇微軟技術中心合作,引入微軟的編程規范,使得學生對開發規范的意識得到了很大程度的提高, 養成了良好的編程習慣。在教學組織與項目開發過程中, 一般以4~5 人為一組,在課程教師與企業教師的共同指導下,制定項目開發計劃、時間進度、工作流程、評估報告等,教師不僅在技術上予以指導,也在質量、進度上給予把握和督促,從而確保項目開發順利、規范地開展。
優秀的教學方法與手段要符合學生的認知規律,能夠提高其學習積極性,實現對學生職業素質的全方位培養。 在《C# 程序設計》教學改革中,拋棄了以知識傳授為主的傳統教學模式, 采用項目化的教學組織,理論與實踐穿插進行。 借助于多媒體教學手段,整個教學活動均在多媒體機房開展,教學注重實用性與趣味性,一切以有利于學生能力培養作為出發點。
我院《C# 程序設計》課程組經過多年的教學實踐,針對高職學生在C# 學習中表現的算法設計能力薄弱、潛質生厭學、學生不重視課程學習、課后不復習、自學能力差等情況,采用多種教學方法相結合的方式解決這些問題,以提高教學質量,促進學生知識與能力的提高。
算法設計五步走 《C# 程序設計》作為程序設計類課程, 需要學生具有抽象思維以及邏輯推理能力。許多學生在學習“算法”時感到力不從心,學習積極性大幅下降,甚至于放棄了后續課程的學習。 針對這個在課程教學中遇到的最大難題,課程組提出了“算法設計五步走”的教學方法,其組織過程如圖3 所示。 具體有以下五個步驟:(1)對算法的功能進行詳細分析;(2)對此類算法的例題進行詳細的代碼解析;(3)應用啟發式教學法和課堂提問,引導學生在教師的關鍵點提醒下,畫出算法執行過程,跟隨教師還原實現算法的代碼(具體方法為教師運用廣播系統根據學生的回答,將代碼逐行輸入);(4)在將代碼還原之后,學生加深了對算法的理解, 也有了自己完成代碼的信心,此時安排學生自己“一展拳腳”,在電腦上動手實踐,促使其進一步加深對該算法的理解;(5)教師布置類似的算法題,讓學生觸類旁通,舉一反三,從而真正掌握對算法的理解。 在算法的講授過程中,教師不能急于求成,只有通過耐心細致地講解、引導遷移構建、舉一反三實踐后,學生才能在這個環節中不掉隊,繼續帶著飽滿的興趣學習課程。

圖3 算法設計“五步走”教學方法示意圖
小組教學法 有一部分學生程序設計基礎較薄弱,也不善于溝通,往往無法分析、解決在學習過程中遇到的各種難題。 他們漸漸不能順利完成課堂任務,產生厭學情緒,并導致惡性循環。 針對這種情況,課程組采用了小組教學法,安排學生組成項目組,學生的平時分和最后的項目考核分評定與小組中每個學生的表現有關。 因此,作為組內較優秀的學生,有責任也有義務去幫助組內完成情況較差的成員,輔導他們共同提高。 通過此方法,保證了所有學生都能始終融入教學過程。
項目教學法 有些學生不了解課程的作用,對課程不重視。 采用項目教學法可以讓學生直觀地看到課程中的知識點、技能點,最終開發出多個功能實用、界面美觀的軟件,體會到編程的快樂與成就感。 學生擁有了成就感才能對新知識充滿渴望,才會有學習的積極性。
借助課程論壇促進學生課后交流 學生的學習效果與付出是成正比的,有部分學生課后不做任何功課,對教師布置的書面作業也抄襲應付。 針對這種情況, 課程組采用了國外大學流行的論壇考核方式,即要求學生在該課程的學習論壇上多發帖,由任課教師評定發帖質量。 帖子的質量直接與平時成績掛鉤,帖子的內容可以分為以下幾種類型:(1) 對本課程學習過程中遇到的問題進行咨詢, 其他學生可以回復解答;(2)對本課程近期學習的總結;(3)發布、展示自己應用本課程知識設計的一個小軟件。 任課教師需經常關注論壇,閱讀帖子,了解學生的學習狀態,對每個學生的帖子質量進行評估并作記錄。 采用這種方法,能夠有效促進學生的課后學習交流,保證學生在課后能夠整理自己所學的知識,多做復習。
項目考核 高職學生自學能力相對較差,而企業環境則要求其員工必須具備良好的自學能力。 針對學生這一缺點,課程組采用了項目考核的辦法。 整個項目在開放性環境中完成, 對于在開發中遇到的困難,鼓勵學生利用各種資源,如上網搜索、查閱參考書籍、向師生請教等途徑解決,從而迫使學生自覺采用各種辦法解決問題,使學生的自學能力得到提升。
教學方法的實施依賴于教學手段,本課程注重教學手段的多樣化。 課程主要在多媒體機房開展,利用多媒體課堂管理軟件等現代教育技術手段來組織教學。 任課教師鼓勵學生利用互聯網信息資源解決在實踐過程中遇到的難題, 鼓勵學生在C# 技術論壇中提問、搜索技術主題尋求幫助與解決問題。 在工作中必須養成良好的自學能力,掌握解決問題的方法,才能更好地適應企業的真實環境。 課程組通過提供C# 課程論壇, 讓學生隨時總結自己學習過程中的心得體會,以有助于學習經驗的積累,通過發帖提問促進學生交流或尋求幫助。 課程組還提供了授課教師的QQ與E-mail, 讓學生在網絡搜索不能解決問題的情況下,及時向教師求助。
學生非常重視課程的考試成績,因此設計一個有利于提高學生學習積極性的考核方案,對提高教學效果、促進學生能力的提高相當重要。 圍繞能力的培養和素質的提升,在《C# 程序設計》教學中,課程組采用了多種考核相結合的方式評定學生成績,體現了課程評價的多元性和過程性。 學生的最終成績由3 部分組成:平時成績(占總成績的30%);基礎理論成績(占總成績的30%);項目成績(占總成績的40%)。
平時成績由出勤、課堂問答和作業及論壇表現組成,基礎理論成績采用閉卷考試的形式,這既是對學生理論知識的考核,也有助于學生參加人力資源和社會保障部C# 開發程序員考證。
在項目成績考核中,項目是在開放性環境中完成的,主要是對學生利用網絡環境和小組其他成員共同協作開發項目能力的考核。 通過這個項目的開發,提高學生的實踐能力、自學能力和協作開發能力。 在項目成績評定時采用小組匯報形式,首先由項目組成員介紹各自所完成的工作, 再由項目組長為各組員評分, 其他項目組長作為評委一起為匯報項目組打分。最后,教師將對項目整體情況進行點評和提問,對項目打分。
針對高職院校對學生的培養要求,筆者所在院系的《C# 程序設計》課程組提出了以職業能力培養為中心來組織教學,并依此設計了課程框架和課程內容組織,對教學方法、手段、考核方法作了一系列的改革探索與實踐。 以項目為中心展開教學、以學生為主體實施教學、 以多種方式相結合進行考核的教學方法,替代了傳統程序設計教學中不利于發揮學生學習積極性的教學方式方法。 實踐證明,這些教學改革措施有效地提高了學生的學習積極性,取得了良好的教學效果。 學生在學習中既掌握了理論知識,又提高了職業能力和職業素養,體現了高職課程的職業性、實踐性。
[1]喬梁,陳欣,宋文強.C# 程序設計在非計算機專業計算機基礎教學中的實踐與探析[J].計算機教育,2010(10):111-113.
[2]李凌.基于工作過程的《C# 程序設計》課程教學改革[J].滁州學院學報,2011(5):112-115.
[3]陳曉舟.高職院校C# 面向對象程序設計教學方法創新探討[J].無錫職業技術學院學報,2011(5):67-69.
[4]陸萍.淺談軟件技術專業學生的職業能力培養[J].福建電腦,2008(5).
[5]陸萍.淺議Java 程序設計教學改革[J].電腦知識與技術(學術交流),2007(15).
[6]翁幼珍.CDIO 戰略下高職學生職業能力的培養[J].教育與職業,2013(5).
[7]劉雪梅.高職學生職業能力培養體系構建研究[J].職教論壇,2012(27).