林剛+傅曉陽+文全剛+尹賀
摘要:本文立足于應用型本科院校,概述和分析C#課程教學過程中遇到的四類常見問題,并結合教學實踐給出了相應對策,舉實例說明了具體方案。
關鍵詞:C#;.NET框架;教學;面向對象;程序設計
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2017)30-0218-02
一、引言
C#(C Sharp)是微軟公司發布的一種簡單、功能強大、類型安全、面向對象的運行在.NET框架上的高級程序設計語言[1]。自從2002年C# 1.0問世以來,C#一直在不斷發展和升級,目前最新版是C# 7.0。新版本在C# 6.0的基礎上,添加了許多新特性,例如元組、解構函數、模式匹配、二進制文本、異步返回類型、本地函數等[2],新特性無疑給開發提供了極大便利。與此同時,C#和.NET框架的升級給教學帶來一系列新問題,進而增加了教學難度[3]。例如:如何選定教材、如何在規定課時內完成教學任務、怎樣梳理新舊理論知識點、如何促進學生有效學習等。本文結合應用型人才培養特點,系統分析了上述常見問題,并通過實例剖析,給出了相應的解決方案。
二、常見問題
1.教材的選擇。應用型本科院校著重培養應用型專業人才,要求學生掌握前沿的專業知識的同時,對新技術也擁有較強的學習和應用能力。眾所周知,C#一直在升級中快速變化,教材出版滯后,所以僅僅期待一本涵蓋最新內容的教材是不現實的。
2.教學任務和課時的沖突。讓學生掌握C#程序設計技能,必要的課時是最基本的保證。在實際教學中,C#執行的課時往往小于推薦課時,甚至實際理論和上機課時總和還少于推薦的理論課時。在緊張的課時內,如何去完成既定的教學任務呢?
3.知識點多。與C++、Java等其他高級程序設計語言相比較,C#屬于具備后發優勢的“新生代”[1],知識點、新概念多。對于初學者而言,新知識不容易弄懂和理解,然而往往是這些概念對理解C#編程又特別重要。以C#基礎知識為例,要點包括支持跨平臺的.NET框架及組成,通用類型系統(Common Type System,CTS),公共語言運行庫(Common Language Runtime,CLR);C#代碼的編譯,編譯成通用中間語言(Common Intermediate Language, CIL)代碼和元數據(Meta Data)一起存儲在程序集(Assembly)中;集成開發環境(Visual Studio 2012,VS 2012或以上)、解決方案、項目以及和命名空間之間的組織關系。
4.實驗課。實驗課上,需要驗證和練習的上機任務多,對多數學生來說,根本就無法在有限的上機課時上獨立完成所有的上機任務。另一方面,有些練習又必須獨立完成,加深對所學知識的理解。
三、教學對策
1.教材為主,新特性為輔。在教材的選擇上,優先考慮那種技術知識點涵蓋面廣、側重應用能力培養的“十二五”、“十三五”普通高等教育本科國家級規劃教材。我們選用了最新的《C#程序設計及應用教材》第3版,該教材介紹的是C# 5.0的內容。為了讓學生更多地了解C#前沿技術的發展,方便他們進一步深入學習和應用,課堂上,教師及時補充涉及C# 6.0和7.0的一些新特性。
2.靈活多樣的授課方案和考核機制。課程學習章節漸進式安排,一環扣一環;突出重點章節,劃定自學內容范圍;理論聯系實際,以上機實踐為主線。實驗課上,演示、例題驗證和練習題操練相互結合;理論課上,以集體講授法為主,個別指導為輔。期末考核時,成績總評由平時、理論考試和課程設計報告三部分組成。
3.由表及里、由淺入深的教學設計。如果一上來就講一堆理論,可能既達不到讓學生掌握知識要點的效果,也無法培養他們的學習興趣。如果換個角度,由已經學習過的高級程序設計語言開始,慢慢過渡到C#的特點,從實際現象出發,思考之后再到理論學習,最后再落實到上機實踐,進一步加深對理論知識的掌握和應用。實踐證明,從形象思維入手,經過一段過渡再到抽象思維和實踐,會起到事半功倍的效果[4],更能激發學生的學習自主能動性,促進有效學習。
回顧前文提及的C#基礎知識,C#程序的運行基礎.NET框架;C#代碼的編譯過程和通用中間語言CIL;C#代碼的開發環境VS。預先準備兩個環境,一個安裝.NET框架,另一個不安裝(或只裝低版本)。在這兩個環境下,運行同一C#應用程序,觀察不同現象,啟發學生思考.NET框架的作用,繼而過渡到.NET框架組成的學習。將C#編譯過程,與熟悉的C++和Java做類比,突出CIL的作用。集成開發環境VS,以演示為主,分層次、不同角度、逐漸細化、多次示范。
4.個人作業和合作任務兩結合。設計兩種不同的上機任務,一種必須獨立完成,一種組內協作完成,并交替進行。讓學生通過實踐既牢固掌握所學知識,又提高了團隊合作的實戰技能。
5.編碼規范基本要求。為了培養基本的編程習慣,比如良好的注釋習慣、規范化命名、適當的縮進等,制定統一的代碼規則,貫穿整個上機實踐課程。例如,解決方案和文件夾的名稱中包含組名、學號等,命名空間根據中文姓名的拼音命名、項目和控件的名稱約定等。
6.強調實踐過程。上機實踐是整個教學的重要一環,課上必須嚴格要求。一旦發現將教學演示程序作為作業提交的,必須嚴厲制止,并要求重做。
7.充分利用集成開發環境。VS提供的智能提示功能,能有效幫助開發人員提高開發效率和編碼準確度,鼓勵學生實驗課上多使用智能提示、快捷方式操作等。
8.重視組內溝通。針對學生的問題,以多鼓勵、多引導為主。同時,提倡組內成員多溝通、勤討論,既解決自己的問題,也促進整組的學習。
四、結語
本文結合多個班級的教學實踐,針對C#教學中的一些常用問題,提供了基本的解決方法。實際C#教學中遇到的問題可能更多樣、更復雜,因此在借鑒現有方法的基礎上,還需要我們在實踐中不斷創新、總結、積累經驗,提高C#課程的教學水平。
致謝:本論文工作是在珠海市優勢學科、廣東省優勢重點學科建設項目資助下完成,特此感謝。
參考文獻:
[1]Christian Nagel. Professional C# 6 and .NET Core 1.0[M]. Indianapolis:John Wiley & Son,Inc.,2016:4-9.
[2]Mark Michaelis. What's New in C# 7.0.MSDN Magazine,2016,31(12):18-25.
[3]謝霞冰,陳曉峰,袁紅春,賀琪,龔劍敏.NET版本演進引起的C#課程教學問題與對策[J].計算機教育,2012,(1):92-93.
[4]徐冬梅.程序設計課程的教學理念與實踐[J].計算機教育,2011,(2):46-49.