“面向对象程序设计C#”精品课程教学改革研究
2020-03-02陈丹琪李寒莉
李 攀,陈丹琪,李寒莉
(防灾科技学院信息工程学院,河北三河065201)
0 引言
在互联网+背景下,IT 技术的高速发展[1-2],对计算机专业学生提出更高的要求,大学生的创新创业项目的发展、各类学科竞赛、企业招聘,都表明学生实践能力、综合分析问题解决问题的能力要落到实处[3-5],需要基础更扎实、自主学习能力更强。学生在工程实践方面,应该具有更扎实的基础,能够更加灵活处理各种复杂问题,因此,作为“面向对象程序设计(C#)”这种专业基础课程,要进行深入研究探讨构建合理的课程教育体系,便于学生更好掌握编程这项基本功。
1 课程发展及问题
本课程开设将近10 年,开设专业涉及计算机科学与技术、信息管理与信息系统等专业,一般作为面向对象语言的入门课程。开设时间为大二,学生具备C 语言的基础,通过多年教学,存在的问题主要有:(1)本校是二本院校,学生的数学和英语基础较弱,个体差异大,个别学生自学能力很欠缺;(2)有部分学生更重视考研和考公务员的课程,对实践性强的课程有畏难情绪,不愿多花精力;(3)教学手段内容单一,教师对新技术在课程中的融合还是研究不够。
2 课程建设目标
课程体系的改革,要适应新工科人才的需求,教学方法和手段要多样,线上线下教学模式要充分有效地融合,实践教学模式要有针对性,多引入最前沿的内容,实例要更加丰富,更加贴近IT 行业的要求,强化面向对象思想、理解数据的处理,培养前台界面的设计理念,训练后台数据库操作的能力,进一步加强学生软件项目开发的综合能力。各项教学环节,有详细规范的指标,环环相扣,逻辑上逐步递进。注重学生、督导专家、同行教师对课程的评价和建议。改革课程考核方式,加强学生实践编程能力的考核,使该课程建设在同类课程建设中起示范作用。同时,通过教师对自身科研引入教学,丰富教学内容,提高学生对课程的感性认知,增强学生的学习兴趣。
3 课程实施措施
3.1 课程体系优化
结合本课程的教学目标和面向对象的软件工程思想,逐步形成以项目教学法为导向的模块式课程体系,教学中讲练结合,边讲边练,实现课程教学与实践教学一体化。研究课程和课程的衔接关系,C#属于软件工具类课程,它是在学生学习完C 语言,再开始面向对象思想培养的一门优秀的入门课程。有了C语言作为基础,C#的基础语法,比如:变量和常量、基本数据类型和流程结构等内容,就可以简略去讲。这样节约的课时尽量去详细讲授面向对象概念、封装思想、继承和多态的原理,这些内容非常抽象,尤其是对于抽象思维比较弱的同学,要反复深入地讲解。通过一个时间段,让学生慢慢消化,慢慢理解,一下就能掌握是很难的。而对于委托、抽象类等最难的难点,不用一刀切,要求学生必须掌握,只要一个班级中有大部分人理解即可,小部分同学不理解,可放在实践课程中通过实践再去强化。C#作为工具类课程,如何让学生真正用起来,真正去解决实际问题,学生才能很好地领悟这些原理和概念,只是纸上谈兵,对于软件教学来说,都很难起到好的作用。所以将C#语言的体系结构不断优化,精炼简单重要的部分,细化强化难点和重点,最后通过综合实例,进行知识的升华。
3.2 教学内容优化
面向对象设计语言有很多,可以进行一些不同语言间对比,针对有些学生可能有Python 语言基础,可在授课过程中通过两种不同语言语法的对比,来加深对C#语言的理解。C#语言的图形化界面工具是非常强大的,对初学者非常友好,这部分要多花费课时,让学生熟练,在进行编程训练的过程中可将一些交互技术进行引入,使学生在刚学编程时,有一定的交互思维训练,掌握一定交互方法,对学生软件设计能力是很有好处的。
该课程的文件操作部分也很重要,不光是文本文件还有二进制文件读写,直接关系到以后工程项目数据处理工作,所以要让学生不断理解二进制文件的结构、文件读和写的不同语句的用法。同时,进一步理解缓冲区的概念,学习大数据文件的读写,结合硬件,合理利用计算机资源,充分应用数据结构课程中时间复杂度和空间复杂度的概念,去解决实际问题。对学生不光面向对象编程理解重要性,还要理解数据结构这门课程在软件开发中的作用。
该课程最终目标是完成一个具体综合项目,一般是对数据库操作,这部分内容由于学时问题,很难进行完整,所以要合理计划学时,为该部分内容做好规划。综合实例部分可按照软件开发环节,首先进行需求分析讲解,给出系统设计,然后进行数据库分析,尤其详细介绍C#与数据库接口,让学生理解接口的概念。然后设计界面,充分合理使用C#软件中各种控件,熟悉它们的属性,包括界面布局、色彩搭配,重点是用户对界面的操作控制、交互设计、按钮等事件的控制,难点是学生对于监听和响应事件的理解。后续内容网络编程和线程的内容,要根据课时安排,可让学生多操作,多练习,通过这些关键内容学习,学生对于计算机科学可以有一个更深刻的理解,对他们下一步学习有很好的促进作用,也为后续的网络开发奠定坚实的基础。
3.3 教学方法改进
教师在课程的讲授中具有总体把控的角色,注重学生引导启发,调动学生自主学习的兴趣,在教学模式上改变以教师讲课为中心的传统教学模式,把以往枯燥的理论教学变为围绕一个具体典型的软件项目案例而展开,围绕该案例提出的目标组织各教学环节,学习完成案例所需要的知识和技能,进行各相关知识点和技能点的讲解,突出知识的应用性,引导学生自主思考,遵循以学生为中心和主体、教师为主导的原则来设计教学过程,通过案例分析、理论铺垫、动手实战、完成案例需求的学习过程,使学生对所学知识融会贯通,提高教学效果,为学生的就业打下坚实的基础。
在学生上机操作过程中,注重引领学生循序渐进地编写程序。这个过程中,学生的进度是不一样的,有可能有大的差别,要在机房中多单独辅导,根据普遍问题,进行及时解释和说明。从一开始就让学生养成良好的编程习惯,尤其代码的格式规范、命名规范,这些简单的基本功要反复强调,不断渗透到学生的编程习惯中。高度重视程序调试功能,每一堂课都让学生有意识地使用程序调试功能,让他们深刻理解程序运行过程。
教学方法要多样,核心是对课程内容的灵活驾驭,在课堂教学中多去启发学生,调动学生的学习兴趣,将生动有趣的IT业的技术实例介绍给学生,让他们对软件开发更关注,更愿意去了解。课堂提问要兼顾每个同学,每个学期结束,最好每个学生都能回答几次问题,根据学生的回答情况,可以实时了解学生的学习情况和掌握程度。每堂课结束,自己讲授的感觉、经验及学生的反馈都进行仔细分析,反复不断,各种教学经验就得到增长。
3.4 网络教学为辅
目前课程教学学时有限,网络各种慕课资源比较丰富,教师可以利用优质网络教学资源,进行良好教学互动,进一步规范完善网络课程平台资料,实时更新相关的教学资料,教师和学生充分利用网络教学平台进行答疑讨论、提交批改作业,完成课堂教学录像,并上传至网络课程平台。搭建FTP服务器存储视频、电子书籍等占用空间比较大的学习资料,供学生课后自主学习。在网络教学平台上定时提交课程学习总结和心得体会的任务,通过学生的课程学习总结和心得体会,实现课后教师和学生的交流。
通过使用这些资源,教师在进行分析总结后,可以进一步改革优化完善教学资源,同时,通过相应的教研项目,制作符合本校学生特点、教师自身优势的优良视频教学资料和课件等。合理运用网络教学资源,不断提升教师教学水平,对教师自身教学能力有很大促进作用。
3.5 加强师资队伍建设
课程组要坚持每周的教研组教研活动,及时在教学进度、教学安排方面进行沟通,在教学设计、教学方法、教学手段、教学技巧、课堂互动等方面进行广泛、深入的研究和探讨。进一步提高师资队伍的整体水平。建设期内课程组成员至少3 人次参加相关学术交流会议,到国内外高校或者企业中进行培训与进修,安排课程组骨干教师与企业工程师或培训机构教师互帮互学,参加相关实践项目,增加实际项目经验,通过产学研的方式培养师资队伍,提高教师业务能力,力求跟上现代网络发展的步伐,建设一支职称、年龄结构合理,有较强的软件项目开发经验,教学经验丰富、充满活力且相对稳定的教师队伍。
3.6 多媒体课件建设
在课件中,对于难以理解的面向对象相关知识,可制作动画进行演示,同时加入知识回顾、知识扩展、探索、辅导和习题等内容,并不断地对课件进行测试,收集学生对课件演示效果的反馈意见,不断完善,最终制作一套高层次的多媒体课件。课件知识内容范围完整,知识体系结构合理。能充分发挥教师主导、学生主体的作用,注重培养学生解决问题、创新能力。重点难点突出,启发引导性强,促进学生主动学习,并向学生推广应用。
课件的制作是比较复杂的过程,每个章节内容的编排需要仔细推敲,课程知识点的罗列需要循序渐进,有一定的逻辑性,承前启后,环环相扣。针对PPT 翻页习惯,每个版面字符不可偏多,字号控制在24号较好,尽量选用短语、词组,让人过目不忘,便于学生记忆。课件中切换过程尽量少采用过多的动作方式,简洁明了,吸引学生在内容,而不是形式上,色彩尽量采用浅色背景,这样在白天突出文字,不会太暗。
3.7 项目库建设
本课程项目库在教学中有着非常重要的作用,因此在课程内容的基础上,进行项目库的建设是十分必要的。项目库内容的体系结构以课程教学大纲的知识点为主体,以教材章节内容为主线,进行分类汇总。项目的采集和编写围绕课程教学目标,以学生的接受水平为标准,最后按照统一格式处理后建立项目库,将项目库贯穿于教学内容中,可以使学生拓展知识范围,开阔视野,理解所学的知识点,增强学生的软件开发综合应用能力,帮助学生逐步培养学习编程的兴趣。项目库内容主要结合教师科研内容,应用于具体学科领域,本项目库主要涉及GIS 二次开发,通过C#语言工具,可以进行地图的浏览、编辑等操作,可以进行地图交互,不光深化了界面中各种控件的综合使用、色彩搭配、软件与软件接口的交互学习,还对地理方面,促进学生的了解,开拓学生的思路。
4 结语
围绕理论教学,展开实践教学环节,强化学生的实际编程能力,以学生为中心和主体、教师为主导的原则来设计教学过程,围绕具体典型的软件项目案例展开教学内容,跟踪软件开发的前沿,以真实工程项目为基础,优化课程体系,加强教学内容改革,不断深化课程教学方法与手段改革,通过软件项目进行推进的理论教学,探索以考查学生实践编程水平为准则的考核方式,提升教师的综合业务水平,不断提高教学质量。