林刚+傅晓阳+文全刚+尹贺
摘要:本文立足于应用型本科院校,概述和分析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.