摘要:“C#程序設計基礎”課程是高等院校計算機及相關專業的一門專業必修課程,其實踐教學環節不僅幫助學生理解和鞏固課程内容,而且鍛煉學生程序設計的技能、培養軟件開發的習慣規範,使學生掌握程序設計的思想和技能。本文針對“C#程序設計基礎”課程實踐教學環節中存在的問題,設計和實現了由驗證性實驗、訓練性實驗到設計性實驗、創造性實驗的分層次的實踐教學模式。這一教學模式由簡單到複雜、由單一到綜合,逐步培養學生的編程能力和技巧,在教學過程中也取得了良好的效果。
關鍵詞:C#程序設計;實踐教學;分層次
引言
“C#程序設計基礎”是高等院校計算機及相關專業的一門專業必修課程,是軟件開發課程體系中一門重要的基礎課。通過該課程的學習,學生能夠使用C#語言和.NET開發平台進行應用程序開發,了解.NET開發平台和C#語言的基本架構;掌握C#語法、數據類型、流程控制語句;掌握面向對象的編程方法;熟練應用C#進行控制台應用程序開發和Windows應用程序開發;掌握C#對XML文檔、文件和文件夾進行操作的常用方法;掌握C#應用程序的打包部署。
“C#程序設計基礎”的課程實踐不僅僅幫助學生理解和鞏固課程内容,更重要的是需要進一步鍛煉學生程序設計的技能和培養軟件開發的習慣規範,最終使學生掌握程序設計的思想和技能、具備開發簡單應用程序的能力。
1“C#程序設計基礎”實踐教學中存在的問題
在大多數院校,“C#程序設計基礎”實踐教學都包含兩個環節。一個是實驗教學,一個是課程設計。按照其教學大綱和實驗大綱安排,“C#程序設計基礎”課程一般在大學期間的第二學期或者第三學期開設,教學學時72學時,理論教學48學時,實驗教學24學時,學期末學生自由分配時間完成課程設計。
目前,在實踐教學的整個過程中存在以下幾個問題。
(1)各個實驗項目之間缺乏關聯性。每一個實驗項目對應一定的理論知識,實驗項目之間不相關,學生做完做不完都不會影響下次實驗,導緻很多學生對一些實驗不夠重視,主動性不高。有一些學生在個别實驗項目沒有做完的情況下,沒有主動的在課下完成,在下次實驗課上也沒有主動積極的補做,時間久了,越積越多,到後期綜合性實驗或者課程設計時無從下手,什麼都不會。最終導緻這門課程學得不好,也必然影響後續課程的學習。“C#程序設計基礎”課程是編程基礎,是許多課程的前導課程,也是計算機等相關專業培養目标中的重要基礎課程,我們應該引導學生重視,也有責任教好,讓學生學好。
(2)實驗項目的難易程度沒有明顯的層次性。每次實驗項目的難易程度隻與理論知識的難易程度有關,學生可能在學期末做的一些實驗比學期中間做的實驗還要簡單。實驗項目的設置一定要有一定适應性和創新性,實驗内容太難會消弱學生的學習積極性和興趣,太簡單也會削弱學生學習的動力,不同的學生學習能力不同、适應程度不同。教師在設置實驗項目時,首先要顧全大局,也要照顧到個别人的差異性,設置的實驗内容一方面要保證多數學生的能力,也要有一些附加項目或者擴展内容,用以滿足個别程度好的學生的需求。随着學生對程序設計語言的認識和開發環境的熟悉,實驗内容的設置也應該逐步增大難度。
(3)實驗項目内容設置不夠合理。實驗不僅僅是理論知識鞏固,更是知識總結和能力的提高。實驗内容的設置不能僅僅考慮理論知識體現,更應考慮如何讓學生在理解理論的同時和實際應用相結合,培養學生把理論應用于實際的主動性。目前,大多數學生學習态度是被動的,不願意去多想,不願意去擴展。教師在設計實驗項目時要引導他們去聯系實際,去擴展内容。這樣持續下去,學生才會在掌握理論知識的同時,和實際應用相結合,掌握“C#程序設計基礎”編程的精髓。
針對以上存在的問題,在“C#程序設計基礎”實踐教學中我們探索出了一種分層次的實踐教學模式。我們将整個實踐教學環節分成四個層次:驗證性實驗、訓練性實驗、設計性實驗、創造性實驗。我們将“C#程序設計基礎”的實驗項目劃分層次,每個層次階段完成一定的知識目标和理論目标。
2、分層次的“C#程序設計基礎”實踐教學模式
“C#程序設計基礎”實踐教學共計24學時,我們分為12個實驗項目,分别為:認識C#、運算符與表達式的使用、選擇語句的使用、循環語句的使用、數組的使用、面向對象的程序設計1、面向對象的程序設計2、繼承和接口技術的使用、數據操作、Windows基本控件的使用、Windows窗體應用程序設計、異常處理及程序部署。不同實驗項目劃分到不同的層次,具體實施如下。
2.1驗證性實驗
驗證性實驗是“C#程序設計基礎”實踐教學的初級階段,是對教材的理論知識點的簡單實現。在學生剛接觸這門課程時,對課程的基本知識和軟件開發環境的基本使用方法需要學生有個入門的過程。這個過程就需要驗證性實驗來完成。驗證性實驗是老師指定問題、給出一定的解決思路和步驟,學生在實驗課上逐步實現問題的解決,重點是驗證解題思路和步驟的正确性,從而幫助學生理解理論知識、熟悉開發環境。學生剛接觸編程課程,對語法、編程軟件不了解,如果剛開始學難度太大,學生的積極性會有所削弱。這時候應該讓學生從簡單的驗證性實驗項目入手,讓他們在簡單的操作中掌握語法知識和編程工具的使用,同時也激發他們的興趣。當然也存在個别學生在開課之前已經自學了部分内容或者對開發環境有較多了解和使用,我們在設置實驗項目時一定要有附加内容或者自選内容。保證大多數學生能夠完成基本實驗的基礎上,對于進度快的學生可以通過自選内容或者附加内容來學習更多的内容。實驗項目中認識C#、運算符與表達式的使用、選擇語句的使用、循環語句的使用、數組的使用屬于驗證性實驗環節,這一環節理論内容多,學生必須熟練掌握。
2.2訓練性實驗
訓練性實驗是在學生有了一定的理論知識和基本的操作技能後,指導老師在每次實驗中給定一定量的一定難度的問題,由學生自行設計步驟和思路解決問題。這一環節側重訓練,一定讓學生在做實驗過程中形成一些定式,比如正确、合理、規範的命名,正确、合理、規範的書寫,正确、合理、規範的調試,什麼情況下用選擇語句,用哪種選擇語句,什麼情況下用循環語句,用哪種循環語句等。這些是學生必須掌握的編程基礎,學生應該在後期遇到類似問題時不假思索的寫出來。當然,這些問題要有一定的代表性,也要有數量上的限制,确保多數學生能基本完成。這一環節重在訓練學生的解題思路和熟練程度,讓學生在腦海裡存儲一定量的解決辦法,為後期的設計、創造打基礎。面向對象的程序設計1、面向對象的程序設計2、繼承和接口技術的使用、數據操作等這幾個實驗項目中要以訓練性實驗為主。
2.3設計性實驗
設計性實驗是在課程學習後期,學生已經有了一定的知識積累和編程能力,指導老師在每次試驗中要給出一個實際應用的問題,由學生自行設計解決方案和步驟。在這一環節已經在考查學生前期理論和實驗掌握情況,前期實驗做得好的,在這一環節就會有多種解決問題的想法,并願意主動地去解決問題,并能夠思考出新的問題,來完善自己的答案。這一實驗環節的中可以增加讨論和展示内容,來提高學生的積極性。在實驗過程中允許學生讨論,實驗項目完成後抽取個别好的學生展示,也可以讓學生自願報名展示。通過讨論和展示,一方面能夠激發學生興趣和積極性,另一方面學生也能夠看到與衆不同的解決方法和思路,達到擴展自己的知識能力的目的。實驗項目中Windows基本控件的使用、Windows窗體應用程序設計、異常處理及程序部署等就需要側重設計性,允許不同的學生給出不同的解決方案和結果,鼓勵學生去改進。
2.4創造性實驗
創造性實驗是“C#程序設計基礎”實踐教學的最終環節,也是最終能力的拔高和凝練。這一環節可以貫穿整個實踐教學過程,主要通過課程設計實現。課程設計是學生對課程所學知識綜合運用和提高。這一環節老師給定一定數量的題目,學生可以從這些題目中選擇也可以自拟題目,在學期末完成。要求學生自己設計要完成的問題,給出詳細的功能描述和解決方法,然後将其實現并展示出來、提交課程設計報告,允許團隊合作。這一環節一方面是加深學生對“C#程序設計基礎”理論知識的理解,另一方面也是對學生創造能力的培養、團隊合作能力的培養、理論聯系實際應用于實際能力的培養。任課教師一定要提前設計好課程設計的題目和要求,後期一定通過全體學生的答辯彙報和課程設計報告冊來完成對課程設計的考核。這一考核也要作為“C#程序設計基礎”課程考核的重要組成部分,增加學生的重視程度。老師要嚴格把關,并給出必要的指導。
驗證性實驗、訓練性實驗、設計性實驗、創造性實驗四個層次環節,由易到難,相輔相承,逐步培養學生的編程能力。當然,每個實驗項目屬于哪個層次環節不是絕對的,隻是側重點不同。比如在繼承和接口技術的使用、數據操作等實驗項目中,主要以訓練性内容為主,但類的創建、界面的創建等内容需要學生自己設計。
3、實踐效果
我們在2013級學生的“C#程序設計基礎”課程教學中開始探索分層次的“C#程序設計基礎”實踐教學模式,在2014級學生的“C#程序設計基礎”課程教學中進一步完善,效果很好。學生學習的積極性明顯提高,特别是女生。前幾屆學生在學習程序設計課程中,女生明顯處于消極狀态,不願意動手,總怕出錯了。采用分層次的實踐教學模式後,學生一開始沒有覺得太難,消除了女生的膽怯心理,後期學生也敢于大膽設計、大膽創造。從課程設計等考核來看,效果明顯比前幾屆學生的學習效果好。
4、總結
經過一系列的實踐教學,我們針對“C#程序設計基礎”課程,探索出了從驗證性實驗、訓練性實驗到設計性實驗、創造性實驗的分層次的實踐教學模式。這一教學模式由簡單到複雜、由單一到綜合、由模仿到創造,逐步培養學生的編程能力和技巧。今後,我們将繼續結合教學實際進一步完善實踐教學文件、豐富“C#程序設計基礎”課程實驗内容和課程設計的内容。我們也将進一步探索、研究“C#程序設計基礎”課程設計的改革,使“C#程序設計基礎”的實踐教學質量達到一個新的水平。
參考文獻:
[1]黃賢英.計算機專業實踐教學體系建設思考[J].實驗技術與管理,2009,26(10):94-100.
[2]郎振紅.C#程序設計課程實踐教學改革[J].計算機教育,2015,17:94-97.
[3]劉在英.程序設計課程實踐教學模式的探讨[J].實驗室研究與探索,2013,32(10):156-159.
[4]馬彬.三維一體化的計算機實踐教學建設體系[J].實驗室研究與探索,2013,32(10):163-165.
[5]孫愛東,楊秋妹,肖媚燕.多層次的“數據結構”實踐教學模式探讨[J].教學改革與研究,2009:166-167
[6]王小科,徐薇.C#從入門到精通[M].清華大學出版社,2010.
[7]朱曉輝,王傑華,丁浩,陳森博.C#程序設計基礎[M].清華大學出版社,2013.
作者單位:河南中醫藥大學