数据结构课程的CDIO实训研究(2)
1)突出模块化的思想。
我们要按照模块化思路编写CDIO理论指导下的实训指导书,并将项目贯穿整个实训过程。每个实训就是一个项目,每个项目都给出完整的程序框架并由一到多个任务构成,每个任务都有一定的代表性和难度。教师根据培养目标的需要,要求学生补充完成实验任务中“挖掉”的部分或者根据实验中已有内容“添加”和实现指定功能。
这样做有以下几个目的。①给出完整的程序框架,让学生建立程序设计的系统观,对软件项目构成有直观的了解,体验程序设计模块化的思想。②降低程序的复杂性和难度,减少学生的挫败感。指导书给出的每个项目实际上是“项目框架”,学生在添加任何代码之前,程序就可以直接通过编译、链接和运行。这就降低了学生完成一个任务的复杂度,使得学生可以逐步按照实验指导书的要求在“框架里”添加程序代码,从而掌握所写代码在一个完整实验项目中的应用。③培养学生阅读程序的习惯。虽然实验项目的大部分源代码都已给出,但是学生要完成实验还需要认真通读程序代码、理解程序的结构、掌握每个功能模块的作用和调用关系等,这样才能正确补充程序。
2)突出工程化的理念。
每个实训都突出工程理念,每个实训就是一个真正的工程。在早期的实训中,很多学生仅为完成课程任务而实验,每个任务的所有代码都放在一个源程序文件中,结果导致学生在毕业后仍不知道一个真正的程序结构是什么样的,也编不出一个实际的应用程序。因此,实训完全采用工程化的方法建立程序设计框架和使用多文件编程,让学生充分理解和掌握模块化、封装等思想(如迷宫老鼠问题)。新编实训指导书加强了对项目的测试,要求学生输入一系列“测试用例”并观察和分析运行结果,旨在让学生了解并学会如何对所写的程序模块进行测试,掌握调试编译程序的技巧与方法。指导书中的一些项目还要求学生模仿编写“自动化测试程序”,以检测程序的正确性。
3)突出实用性和趣味性。
每个实训都力求突出实用性和趣味性,加强学生的学习兴趣。精选实用性题目作为实验项目,如在线性表实验中选择“多项式数据类型”的构造和多项式加法、减法和乘法运算的实现等作为项目;在栈和队列的实验中选择括号匹配、进制转换、表达式转换和求值、迷宫老鼠、N后问题,要求学生应用前面构造的线性表、栈或队列辅助求解问题。这些虽然在课本中有描述,但大部分并没有体现在实训中。另外,还可以在综合实训或课程中选择马尔可夫链、逗号分隔值(CSV)作为实训项目。应用性和趣味性实训项目可以帮助学生明确学习动机,让学生取得良好的学习效果。
4)体现程序设计的思维过程。
心理学研究表明:中等或适度的压力有利于学生获得更好成绩,过高或过低的压力不利于提高学生的学业成绩,因此大部分项目基本上都具有中等难度。指导书在内容编排上以“循序渐进、由易到难”为原则,强调由部分到整体、由模仿到自行设计、由小程序到大程序,再到综合应用的程序设计“境界提升”。
具体而言,指导书的编写引入分层进阶的思想,即第l层次为验证性实训,根据学生的接受能力让学生完成验证性的函数程序代码填空等较为简单的初级实验,这样能够增加学生的成就感;第2层次为模仿实训,要求学生根据程序的上下文在头文件中添加函数说明、在源程序文件中添加对应函数实现、在程序中适当添加程序段、模仿编写自动化测试程序等;第3层次为设计性实验,要求学生实现完整的简单程序的分析、构思、设计、调试和运行,如多项式类型及相关运算等;第4层次为综合性实验,指导书最后2个模块为2个综合实训项目,只给出问题描述、部分分析和设计,要求学生能完成2个项目大部分程序的编写工作。
3、实施课程实训的方法
课程实训将学生按每组3~4人进行分组,小组成员应该经常讨论实训项目中的问题和难点,以获得对实训项目内容的全面理解,教师应将讨论情况列人实训评分指标之一。课程实训结束后,教师会给每名学生发一张“数据结构课程CDIO自我评价卡”,由学生如实填写并附在实验报告背面。教师可以利用该表了解学生的学习状况,以控制教学进度或解决学生遇到的问题。学生自我评价卡的内容包括构思(20分)、设计(20分)、实现(20分)、运作(20分)、文字表达及文档制作水平(10分)和报告质量及口头表达能力(10分)等6个评价点,每个评价点再细分为1~2个二级评价点。针对一级和二级评价点,我们设置A、B、c、D共4个评分等级,权重依次为1、0.8、0.6、0,4及以下。另外,自我评价卡还增加“自我评价”文字描述项,可以让学生把学习过程中的想法充分表达出来。
在数据结构课程实训时,学生根据要求在源代码空白处插入适当代码,只有代码正确,程序才能显示正确的结果,但是这样的“程序填空”并不是显而易见和可以直接实现的。要正确完成填空,学生必须理解程序的上下文:①理解程序中给出的数据结构;②读懂程序中其他已经实现的函数;③清楚要填充的程序在整个程序中的调用与被调用关系;④理解程序中的指针参数传递方法、动态内存分配技巧等,如在顺序表的实现中给出部分代码,但留出3个空白函数部分让学生填写。
教师在对学生进行实训之前,应该加强学生对结构体、指针、动态内存分配、函数参数、文件内容、编译预处理等方面内容的复习,这对于学生阅读和编写程序,完成相关实训是至关重要的。教师在第一个实训开始时给学生讲解一个c语言项目或工程的框架,让学生理解如何进行实训和如何完成实验报告等,帮助学生顺利完成实训。实训结束后,教师收集学生上交的“数据结构课程CDIO自我评价卡”并进行汇总统计,分析学生的学习状况,这对教师提高教学质量是一件有意义的事,同时也可以在某种程度上提高教师的成就感。
4、结语
我们在通信工程专业2007~2011级的学生中进行了几年的实践,取得了较满意的效果。例如,在贵州大学计算机科学与信息学院计算机应用、软件工程等6个专业的2008级所有推免研究生中,4名通信工程专业的学生被国内某一流高校软件学院录取,占比40%;贵州大学计算机科学与信息学院通信工程专业的学生,在研究生程序设计上机复试中名列前茅;实施CDIO项目后,2010级被试组学生的平均分明显比比较组学生的平均分高10分以上,比全部学生的平均分高15分以上。
项目的实施过程中,虽然被试组学生完成了实验,但是实验内容相对于学生来说过于丰富,占用了学生相当多的时间,因此少部分学生产生消极情绪。这就要求我们以后在实施CDIO项目时,根据学生状况或培养需要确定项目数量。另外,实验室的开放程度不够、没有电脑的学生难于找到合适的上机实验环境,这些都会对CDIO项目的实施效果有一定影响;由于经费限制,我们未能为课外实验配备教师,使学生遇到的问题得不到即时解决,可能挫伤部分学生的学习积极性。我们需要在今后的工作中进一步努力,找到解决这些问题的方法。
期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。
【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。
投稿辅导服务咨询与期刊合作加盟
陆老师联系QQ:
蒋老师联系QQ:
刘老师联系QQ:
联系电话:18015016272
17327192284
投稿辅导投稿邮箱:zgqkk365@126.com
期刊推荐
- 《校园英语》旬刊 省级 教育类学术期刊
- 《吉林教育》旬刊 省级 教育类学术期刊
- 《文教资料》 旬刊 省级
- 《科技风》半月刊 省级 科技类优秀期刊
- 《价值工程》旬刊 国家级 科技统计源期刊
- 《中国实验方剂学杂志》 半月刊 北大核心
- 《电影评介》半月刊 14版北大核心
- 《社科纵横》季刊 社科类优秀期刊
- 《求索》月刊 14版北大核心期刊
- 《中华建设》月刊 国家级 建设类优秀期刊
- 《继续教育研究》月刊 北大核心期刊
- 《网络空间安全》(信息安全与技术)月刊 国
- 《新闻传播》月刊 省级 新闻类优秀期刊
- 《财会月刊》旬刊 14版北大核心
- 《体育文化导刊》月刊 体育类双核心期刊
- 《机械研究与应用》双月刊 省级 机械应用类
- 《公路交通科技》 月刊 北大核心
- 《教学与管理》旬刊 北大核心
- 《新课程研究》旬刊 省级 教育类优秀学术期
- 《中国医药指南》 旬刊 国家级
- 《高教论坛》 月刊 省级
- 《课程教育研究》 旬刊 国家级
- 《语文建设》 旬刊 14版北大核心
- 《教育发展研究》 半月刊 双核心
- 《学术界》 月刊 双核心


