王賢明 谷瓊
摘要:在全面分析C#相關教材書籍現狀的基礎上,闡述在C#程序設計教材建設實踐中的內容設置、案例設計、講解方式等若干典型問題,總結教材的主要內容和特點,同時針對不同高校的需求給出教材的幾種典型使用方式。
關鍵詞:C#;程序設計;教材建設;應用型院校
0 引言
自從微軟公司于2000年宣布實施.Net戰略,即號稱“為未來十年做好了準備”,目前Microsoft.NET平臺已逐漸成為開發人員創建各種應用、服務的首選平臺之一。C#作為.NetFramework框架下的首選語言,是一種簡潔優雅、多用途、面向對象的現代化語言,它兼具c語言的語法特征、VB的快速開發特征、Java的虛擬機運行特征,可謂集百家之長。目前就業市場對C#相關崗位的需求很多,故開設C#或者基于C#相關課程的高校越來越多,典型的相關課程如C#面向對象程序設計、Windows Form應用開發、ASRNet Web應用開發、WPF程序設計等,相關的教材書籍也如雨后春筍般涌現,使教師和學生有了充分的選擇余地,有力促進了相關課程在高校的普及和發展。
1 C#相關教材書籍現狀
雖然目前市面與C#相關的教材品種和數量很多,但質量參差不齊。在我們近幾年的教學過程中,發現這些教材或多或少存在一些缺陷和不足,甚至有錯誤之處。這其中典型的問題可以大概總結為以下幾個方面:內容設置問題、講解方式問題、知識性錯誤問題等。
1.1 內容設置問題
內容設置問題主要體現在以下4個方面。
(1)教材內容過于陳舊。有些優秀的教材,由于各種已知或未知的原因,只有針對C#1.x或C#2.0的版本,而沒有隨著C#的升級而出版相應版本的書籍,這種情況尤其多見于有些國外優秀書籍的中譯本,主要是由于中譯本的滯后性或者英文原版停止更新導致;也有部分較好的中文教材,由于被眾多的教材書籍淹沒,導致沒有再版的機會。
(2)內容安排過于繁雜或太過簡單。雖然有部分經典的英文書籍更新頻度高,內容覆蓋全面,但是由于內容太過繁雜,導致這種書籍不適合做教材用,且諸多經典英文書籍中譯本質量備受詬病,也影響了這些書籍在高校使用的普遍程度。另有部分中文教材書籍,設置的內容太過簡單,僅適合作初學者自學入門或者作為課外輔助讀物,無法滿足不同學校不同專業的個性化需求,使用面較窄。
(3)教材內容太過抽象或充斥長篇累牘的代碼。部分書籍整篇充斥著長篇累牘的代碼,卻幾乎沒有對代碼進行分析,講解太過抽象,不能滿足應用型院校的實際教學需要和培養定位需求。這類書籍僅對已經具備一定基礎,擬朝中、高級發展的學生有用,對初學一門新課程的學生基本上毫無用處。對于部分提供電子版源代碼的教材,學生更多地停留在把項目工程代碼直接打開運行并查看結果了事;對于沒有提供電子版源代碼的教材,學生則基本停留在將紙質書上的代碼敲入Visual Studio中,沒有深入分析和消化吸收的過程。沒有堅實的基礎作為根基和保障,是無法架起高樓大廈的。與之相反,也有部分教材書籍整篇是大量的文字敘述,而缺少實例代碼,這對學習一門新課程和新技術的學生是極其不受歡迎的,看過之后如水澆鴨背,時間稍長,在頭腦之中沒留下任何印象。
(4)僅安排控制臺(Console)相關內容,而不設置相關Windows Forms的內容。雖然一般都認為控制臺程序更易于學習C#基礎,但是卻很難激起學生的學習興趣,感覺就如學習另外一門C語言,而C語言正是一門在應用型本科院校中讓很多學生對程序設計失去興趣的一門課程。
1.2 講解方式問題
講解方式的不合理主要體現在以下幾個方面。
(1)部分教材語言太過專業化,這樣的好處是準確無誤,但缺點就是晦澀難懂。比如有些書籍為了準確,會經常引用MSDN上的一些描述,而MSDN上的很多描述都不符合常規表達習慣,這種情況在MSDN中文文檔中更是如此。
(2)知識講解過程中的案例規模不當或案例設計缺乏趣味性。部分教材動輒數頁甚至數十頁的代碼,缺乏分析和解釋說明。這種方式甚至會讓很多中級開發者望而卻步,感到索然無味,更不用說對初學者了。
(3)案例設計缺乏趣味性。部分教材書籍案例規模選擇得當,但是缺乏趣味性,很多例子都是照搬C語言相關教材書籍的常規例子,導致c群像C語言一樣難住了一屆又一屆的計算機專業學生。
(4)難度把握不好。部分教材在講解C#語言基礎知識時,喜歡使用數據結構的知識來講解。眾所周知,目前有一部分學生(包括很多IT從業人員),數據結構方面的知識理解得不透徹,在這種情況下,使用數據結構的例子來講解C#新的基礎知識,對學生無疑是雪上加霜。這樣講解容易導致學生學習重點轉移,甚至有可能打擊學生的學習興趣。
(5)講解方式的不合理還表現在其他方面,例如,示例多、講解少,整個書籍具有大量的實例,但缺少基礎知識的講解,僅僅只是大量示例的羅列而已,缺少對本質內容的講解,學生也因此而理解不到位,最終只會些花招而內功不足。這種類型的書籍可以作為教材的有益補充,用作課后練習之用。再比如案例設計脫離學生生活實際等,這里不再一一贅述。
1.3 知識性錯誤問題
少數教材在基本概念性知識方面存在錯誤,如DateTime、TimeSpan是典型的結構,但部分教材稱之為類,這些基本性的錯誤容易誤導學生對這兩種數據類型的理解。
2 教材建設實踐
2.1 教材建設的基本思路
鑒于當前C#相關教材書籍所存在的問題和原因,根據教學過程中積累的經驗和學生反饋,我們認為《C#程序設計》教材的建設應圍繞幾個方面進行:①教材內容應兼顧應用型院校的教學需求、學生特點的共性和不同高校因為不同課程體系設置而導致的不同需求;②教材案例設計兼顧案例規模的合理性、知識性、趣味性和實用性,并可適時考慮即時案例;③教材講解方式應力求通俗易懂而又不失準確性;④教學過程應力求學生全程參與,發動學生的思考積極性,并且針對學生的練習設計遵從由淺入深、由簡單到綜合,形成梯度;⑤教材應開啟適當的窗口,為學有余力的學生提供學習或了解更多知識的窗口,同時對學習稍感吃力的學生,也應該讓他們有進一步加深對重難點知識理解的機會。endprint
2.2 教材內容
教材在設計安排時,既要充分考慮到應用型本科院校的教學需要和學生特點的共性,同時也要考慮各院校由于課程安排而導致的需求個性化,內容安排應兼顧廣度、深度,緊跟C#發展動向,知識新穎、內容豐富,安排上從簡單到復雜、從基礎到綜合。
2.3 教材特點
根據教材建設需遵循的基本思路,我們認為教材應具有如下特點。
(1)內容新穎全面、通用性強。不僅要包含C#2.0的知識,還包含C#3.0、C#4.0的很多新增特性內容。各章節的知識涵蓋了近幾年講授所積累的知識,少數幾個章節根據兄弟院校的反饋而增設,基本能保證該教材在各應用型高校的普遣性。
(2)語言表達通俗易懂。寫作本書的目的,盡量在保證準確的前提下,把知識講解得讓學生樂于接受、易于接受。
(3)示例規??刂七m當。長期的教學實踐告訴我們,學習新知識時,不是缺少長篇累牘的代碼,而是缺少針對性強的精煉小示例,全書配有大量精選示例,幫助讀者理解所學知識;而學生技能的提高,還需依賴綜合性案例的加強和練習。
(4)示例融知識性、實用性、趣味性于一體。教材中的很多示例、思考與練習、實戰任務等都來自于我們長期的教學積累,不少示例生動有趣而又有實用價值,使學生在學習的過程中不會感到編程枯燥無趣,而是能保持學習興趣的同時又知道自己學有所用。
(5)思考練習層層遞進,注重梯度。從課堂練習一課堂思考一課后思考練習一實戰任務,逐層深入,綜合性和難度逐步提升,符合一般的學習規律,逐步加強學習效果,提升學生實戰技能。
(6)問答環節設計。在每章都安排了問與答環節,講解了一些容易混淆的問題或者擴展一些課堂內的知識,為學有余力的讀者打開學習更多知識的窗口。
2.4 教材使用
基于上述內容安排,該教材可以用作下述課程的教材:C#面向對象程序設計、NETFramework程序設計、Windows Form應用開發、NET下的數據庫開發等,同時也可以作為如下課程的入門教材或輔助性教材:WPF程序設計入門、ADO.NET入門、SQL入門、LINQ入門、多線程入門、GDI+入門等。
該教材的典型使用舉例見表1,其中課程的課時安排均已包含實驗課時,可按理論與實驗之比為2:1或1:1開設。
3 結語
我們在充分吸收歷屆學生的反饋,并結合兄弟院校專家教師的建議的基礎上,總結了近幾年的教學實踐經驗,基于案例驅動的教學理念,編著了《C#程序設計》及配套教材。教材內容兼顧應用型院校的教學需求、學生特點,內容講解力求通俗易懂,在確保案例規模合理的情況下,案例設計力求兼顧知識性、趣味性和實用性,思考練習層層遞進,注重梯度。該教材在實踐應用中取得了學生的認可,可廣泛應用于應用型高等院校。
(見習編輯:劉麗麗;編輯:宋文婷)endprint