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