李梅 岳 峻


摘 要:針對C#程序設計課程存在的問題,以培養能力為核心,探索教學內容和方法,提出一些改革措施:以學生為中心,培養其自主學習和團隊協作能力;從理論教學、實踐教學和考核制度上轉變觀念,促進學生實踐能力和創新能力的提高。
關鍵詞:C#程序設計;能力培養;實踐能力;任務驅動
0 引言
C#程序設計是一種全新的簡單、安全、完全面向對象的程序設計語言,它是微軟公司為.NET框架量身打造的語言,使用C#語言可以開發在.NET框架上運行的多種應用程序,包括Windows窗體應用程序、Web應用程序以及Web服務等。目前,越來越多的高校選擇C#語言作為軟件工程、計算機應用技術等專業的基礎課程。
1 c#課程教學現狀及存在的問題
1)教學內容重復。
在計算機應用技術、軟件工程等專業的培養方案中,C#程序設計課程安排在C語言之后,這意味著學生已經具有基本數據類型、運算符、表達式、基本流程控制語句等程序設計語言的基礎,若是在C#課程中重復介紹,會降低學習的熱情,影響教學效果。
2)學生能力培養不足。
多數的C#教學單純地從本課程出發介紹語法等理論知識,與實際生產應用聯系較少,學生掌握的只是一些零散的知識,應用能力和創新能力得不到提高;學生逐漸習慣了在課堂上被動接受知識,在實驗課上照本宣科,缺少主動學習的意識,自學能力弱。
3)考核方式不完善。
考試是教師了解學生學習效果的重要途徑之一,也是學生自我評價的重要依據。目前,常用的考試形式有筆試和機試兩種。筆試町以有效、細致地考查學生對所學理論知識點的掌握程度,但是無法合理地評價學生的程序設計能力;機試能夠考察學生的編程、調試、糾錯、優化等能力,但是考查的知識點不夠全面。兩種方式都需要在規定時間內完成,無法評價學生的自學和團隊協作能力。
綜上所述,教師在教學過程中要以能力培養為核心,不斷改革和調整教學內容、教學方法和考核方式,加大實踐教學力度,提高教學質量,逐步滿足應用型人才培養的需求。
2 更新教學內容
1)優化課程內容。
課程的教學建立在可視化窗體界面的基礎上,主要側重以下章節的講授:Windows窗體應用程序、C#語言基礎、面向對象程序設計、多線程、IO流、數據庫編程、網絡編程、GDI+圖形圖像處理等。其中,C#語言基礎章節通過Windows窗體應用程序,引導學生以一種類似復習的形式,利用較少的學時鞏固C#數據類型、運算符、流程控制等共性內容,既復習了舊知識,又學習了窗體和基本控件的使用;面向對象程序設計部分,結合GDI+圖形圖像處理的知識進行講授,利用直觀的圖形界面使學生學習并掌握面向對象知識。
2)拓展知識結構。
若要開發一個高效率、高質量的軟件,必須要有一套優秀的算法和設計模式。教師應在適當的案例中引導學生學習相關的設計模式。例如,在介紹委托和事件處理機制的時候引入觀察者模式;在講解面向對象程序設計時介紹簡單工廠模式、策略模式、單例模式等,這樣可讓學生更深入理解面向對象的精髓,進而激發學習的興趣。
3)充實教學內容。
社會在發展,技術也在不斷地更新。一味的拘泥于教材和大綱知識,最終只能紙上談兵。教師應鼓勵學生及時關注C#的新動態和新應用領域,通過開展課堂講座或討論,不斷用新的知識充實教學內容,最終將其應用到實際的項目開發中。
3 以培養能力為核心的教學過程
在C#教學過程中,我們要堅持“以學生為中心,以教師為主導”的教學理念.結合學生的知識水平,針對不同的教學階段和教學內容采用不同的教學方法。從課堂教學、實踐教學到考核方式,教師應以貫穿C#整個教學過程的重要階段為切人點,從細節人手,落實好每一個關鍵環節,切實保證學生各項能力的培養。
3.1 提升教師自身的能力
教師是學生的領路人,只有具備較高的知識水平和應用能力才能傳道授業解惑。若只注重知識傳授,則無法提高學生的技能。為此,筆者定期到軟件公司參加培訓,參與實際項目的開發,努力提高自身實踐技能。在不斷學習中,教師可以積累豐富的項目開發經驗;在具體的教學中,能夠較全面地講解透徹C#知識體系,并將其應用到實際的項目開發中,不但提高教師自身的業務能力,而且為學生實踐能力的培養創造條件。
3.2 開展豐富的課堂教學
1)言傳身教養成良好的編程習慣。
C#課程實踐性強,必須采取多種措施提高學生的動手能力。對于一些典型案例,教師直接在課堂上編寫程序,讓學生知道從哪里人手;在容易出錯的地方故意寫錯,通過問題吸引學生的注意力,并通過查錯和調試,和學生一起分析其中的原因并修正。這種學生與教師同步編程的模式,不但讓學生養成良好的編程習慣,而且培養了學生發現問題、分析問題和解決問題的能力。
2)啟發式教學調動學習積極性。
興趣是最好的老師,能否激發學生的學習興趣直接關系到教學效果的好壞。第一次授課,通過演示學生管理系統等典型的項目、貪吃蛇等好玩的游戲,吸引學生的好奇心,激發其學習欲望。在介紹多線程章節的知識時,可通過龜兔賽跑的例子啟發學生理解多線程、Sleep0方法、Join0方法、多線程數據同步機制等知識點。通過“循循善誘,巧設問題”的啟發式教學,讓學生在已有知識的基礎上帶著問題去思考、學習,有效調動學生學習的積極性和主動性,進一步提高學習效率和獲取知識的能力。
3)小組協作學習培養團隊協作能力。
良好的團隊協作能力是提高工作效率的重要途徑。協作學習是一種由不同的學生組成一個小組,為了相同的學習目標,通過交流、討論、分工合作等形式,共同完成任務的學習活動。對于小組的成員來說,不僅要有個人能力,更要在不同的位置上各盡所能,與其他成員協調合作。本課程在學期初將學生分成若干小組,每組成員4-5名,目的是利用學生的興趣、能力、個性等方面的差異性和互補性,形成“以強帶弱、以弱促強”的團隊協作和自主學習氛圍。
4)任務驅動提高學生應用能力。
任務驅動法是一種以學生為中心,以完成工作任務為目標的教學方法,屬于探究式教學模式的一種。教師按照教學大綱的要求,將孤立的知識點設計在一個或幾個任務中,學生在教師的幫助下,以完成任務為目的,積極主動地獲取學習資源,自主探索和互動學習,在完成任務的同時,不僅掌握技能而且獲得解決實際問題的能力。在教學過程中,按照準備任務、展示任務、分析并設計任務和評價任務4個階段來組織。
(1)準備任務:任務的選取首先要具有綜合性,其次要有實踐性,最后,任務要能激起學生的興趣。
(2)展示任務:由教師示范任務完成后的效果,并依據不同的任務指定不同的評價標準。
(3)分析和設計任務:引導學生分析該任務中用到哪些基本控件的知識來完成界面的設計;然后,讓學生獨立思考,通過小組協作學習、討論和交流等方式,完成設計;最后,針對學生的解決方法進行改進或補充說明。
(4)評價任務:包括學習結果的評價和學生學習的評價,兩者相互結合,互相側重。
3.3 強化學生的實踐和創新能力
C#是一門集理論知識和應用技能于一體的課程,實踐對本課程的學習起著至關重要的作用,它不僅是檢驗學生能否理解和應用所學知識的主要方式,更是提高動手能力和創新能力的重要途徑。
1)實驗。
采用三步實驗教學法,即驗證型實驗、設汁型實驗、綜合型實驗。驗證型實驗主要以閱讀程序、分析程序、查錯并修改程序、補充程序為主,目的是讓學生掌握扎實的知識,并逐步培養閱讀和分析程序的能力;設計型實驗,教師給出題日要求,學生設計完成題目要求的效果,目的是提高學生的編程能力;綜合型實驗,由學生自選題日,從提出問題、分析問題、解決問題到最后編碼實現,在這過程中教師只積極引導,目的是培養學生的應用能力和創新能力。
2)課程設計。
課程設計是實踐教學必不可少的環節,它小僅可以培養學生分析問題、解決問題的能力,也有助于提高學生的軟件開發能力。
(l)選題。課程設計的題目要具有以下特點:①知識性和實踐性,既要涵蓋課程絕大部分知識點,又要聯系工程實際;②趣味性和挑戰性,有趣而又富有挑戰的題目會促進學生不斷探索和學習;③規模要適當,工作量太小沒法衡量學生對知識的掌握程度,太難容易打擊學生的自信心。教師在選題時要嚴格把關,確保學生所選題目的創新性。
(2)設計。以學生為主體,以協作小組為單位,在教師的指導下完成課程設計。每組由組長負責分配任務和權重,協調組員共同完成需求分析、系統設計、詳細設計、編碼及測試。教師每隔一個階段就要及時了解學生的進度,幫助學生解決難題、拓展思路。
(3)結題。當設計基本完成時,各組需要提交課程設計及說明文檔。教師組織全體學生答辯,每組選一名學生陳述選題目的、演示課程設計效果、講解設計思路和使用的技術,教師和其他學生可以現場提問或給出改進的建議。對于優秀的作品要給予表揚,沒有達到課程設計要求的作品限時修改。
3.4 翻轉課堂培養自學能力
由于C#知識點多、應用性強,但課時有限,因此課堂教學內容要有所取舍。為了培養學生的自學能力,建議教師將翻轉課堂的理念引入教學。在翻轉課堂教學模式下,學生在課下完成知識的學習,而課堂變成了教師和學生之間、學生與學生之間互動的場所,從而達到更好的教學效果,具體實施過程如下。
(1)制作自學資料。教師根據教學目的選擇、制作教學資料、向學生提出問題或沒置練習題,教學資料一般以視頻為主(時間以15分鐘左右為宜),也包括文本和音頻等形式。
(2)自主學習。學生下載自學資料,觀看教學視頻,做針對性的練習,并進行小組討論,把學習心得與問題以學習單的形式反饋給教師。
(3)課堂應用。指導協作小組討論,先學生之間交流,教師及時給予解答;然后隨機選取一位學生演示其自學成果。
(4)總結評價。教師根據課堂應用環節和學生的學習單對教學效果進行評價,學生對自己的學習效果和小組的學習成效進行評價。
3.5 課程的授課內容和實施方法
表l為該課程的授課內容及實施方法。
4 建立科學的考核方式
為了全面考查學生的理論基礎和各項能力,教師實行理論和實踐相結合的考核形式,具體見表2。
理論成績由課堂成績、翻轉課堂成績和筆試成績組成。課堂成績包括學生的出勤率、課堂提問的表現;翻轉課堂成績根據學生提交的學習單、參與協作小組討論和完成課堂活動的表現來評價;實踐成績由實驗、課程設計和答辯構成。實驗成績包括基礎實驗考核(多為驗證型和設計型實驗,根據學生當堂提交的程序計分)、提高考核(多為綜合型實驗,根據實驗報告的完成情況和創新能力給分);課程設計成績主要根據課程設計的完成效果、創新性以及設計過程中團隊的協作能力評分。這樣,通過理論考核可以考查學生對理論知識的掌握情況和自學能力;通過實踐考核檢驗學生的實踐能力、創新能力和團隊協作能力。
5 結語
在4個學期的教學活動中,我們根據C#技術的發展和學生的接受能力,不斷優化課程內容,通過理論、實踐和考核方式等多種渠道全面提升學生的能力和綜合素質。實踐表明,學生的自主學習熱情明顯高漲,應用能力和創新能力得到了顯著提高,教學效果較好,已經畢業的學生在C#就業方向上表現優秀。今后,我們還要以能力培養為核心,不斷探索更好的教學方法,以滿足社會對應用型人才培養的需求。