温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
连贯
案例
程序设计
实验教学
中的
应用
周家骎
第 31 卷 第 4 期 2023 年 8 月Vol.31 No.4Aug.2023电脑与信息技术Computer and Information Technology文章编号:1005-1228(2023)04-0122-04“连贯案例法”在程序设计实验教学中的应用周家骎,凌兴宏,龚兰兰,薛亮(苏州城市学院 计算机工程系,江苏 苏州,215104)摘要:以程序设计实验教学中常用的案例教学法为基础,研究并实践了一种创新型教学方法“连贯案例法”。该方法将传统案例法中多个案例各自为战的模式转换为一个主题案例逐步更新的新模式,构建一条通过应用已学知识点优化案例项目功能,再通过分析案例不足和新需求引入新知识点的一条“螺旋上升”通道。将日期作为连贯案例主题,从一个输出生日信息的简单案例出发,引导学生最终实现一个功能完备的多功能日历程序项目。以培养应用型人才为目的,提升学生的项目开发和工程实践能力。关键词:连贯案例法;程序设计;实验教学中图分类号:G642文献标识码:AApplication of“Coherent Case Method”in Experimental Teaching of Program-DesignZHOU Jia-qin,LING Xing-hong,GONG Lan-lan,XUE liang(Department of Computer Engineering,Suzhou City University,Suzhou 215104,China)Abstract:Based on the case-teaching method that commonly used in program-design experiment teaching,an innovative teaching method-coherent case method is studied and practiced.This method transforms the mode of multiple cases fighting on their own in the traditional case method into a new mode of gradual updating of subject cases,and constructs a spiral rising channel to optimize the case project function by applying the learned knowledge points,and then introduce new knowledge points by analyzing the case deficiencies and new requirements.Take the date as a coherent case theme,starting from a simple case of outputting birthday information,and finally guide students to realize a multifunctional calendar program project with complete functions.In order to cultivate applied talents,improve students project development and engineering practice ability.Key words:coherent case method;programming;experimental teaching收稿日期:2022-07-12作者简介:周家骎(1992-),男,江苏苏州人,讲师,研究生学历,主要研究方向:深度学习。案例教学法是一种以案例为基础,将理论与实践相连的教学方法1,在程序设计实验教学中体现为理论与上机结合,通过编程实现具体案例的形式2。本文在案例法的基础上创新研究并实践了“连贯案例法”,即教学者通过巧妙设置一个主题案例项目并在不同的知识点教学中不断对其进行迭代更新,将传统案例法在若干个离散案例中学习不同知识点的模式转变为在一个案例的演变过程中逐步引入各层级知识点的连贯模式,如同在一门课程的学习过程设置了主线任务,从而帮助学生明确学习目标,提升学习效率,并建立项目工程开发的全局观念。本文以 C 语言程序设计实验教学过程中精心设计的一个以日期为主题的连贯案例为例,通过同一主题案例在不同的章节知识点中的连贯运用,阐述“连贯案例法”在程序设计实验教学中的具体应用3。1程序设计实验教学现状目前国内高校的程序设计实验教学内容一般由课本案例、上机实验、课程大作业组成,形式上多为教师讲授知识点及经典案例,学生在实践课完成编程题目,并在课程最后完成一个较大规模的项目作为大作业4。近年来实验教学越来越受到重视,实验教学的课时占比、上机实践的题量、课程大作业的难度均呈现上升趋势。一个知识点从引入到巩固,往往伴随着多个不同的案例,以求让学生在反复练习的过程中获得提升5。但从实际效果来看,学生在数量庞大且DOI:10.19414/ki.1005-1228.2023.04.002第 31 卷 第 4 期123周家骎等,“连贯案例法”在程序设计实验教学中的应用互不相关的案例面前往往疲于应对,不同的案例要求学生不断在各类背景信息间进行切换,无法在不同的案例和知识点之间建立起直观的联系。以传统的计算机大类专业入门程序设计课程-C语言程序设计为例,案例教学法在 C 语言教学中运用普遍6,如“判断素数”,”冒泡排序”,”约瑟夫环”等都是 C 语言实验教学中常用的实验案例。7然而多数经典的案例需要处理复杂的背景信息却只能覆盖一个知识点,且案例数量增多很容易造成学新忘旧的现象发生。尤其是在课程后期知识点难度上升,案例复杂度和难度也随之上升时,学生每次要完成一个较大规模的案例都需要从头进行搭建,不仅会产生较多枯燥的重复工作增加负担,也极易因难度较大编写出错而产生挫败感,继而丧失学习热情。而大作业作为课程最后的验收项目,规模大难度高且往往缺乏先期铺垫,导致结果差分化明显,对于编程较强的学生固然能锻炼其能力,但对能力相对较弱的学生而言往往会束手无措,最终放弃。因此,如何在案例法的基础上扬长避短,开创更具适应性的教学手段便显得尤为重要8。2“连贯案例法”教学设计2.1教学目的案例法本身对于程序设计实验教学是必不可少的,枯燥的程序框架和语法只有在学生自己动手编程的过程中才能做到融会贯通9。采用“连贯案例法”的目的则在于优化案例法的效果,将各个案例间离散的关系改造为一个一脉相承的连贯案例,为实践教学大纲赋以主轴,在案例迭代过程中循序渐进地将知识点引入实践中,并最终构建成一个完整的程序项目10。2.2确定案例主题由于连贯案例法围绕一个主题进行展开,主题案例的选取是否恰当直接决定了教学的整体效果。不同的程序设计语言在上机实践编写具体程序时均可以拆解为“程序=数据结构+算法”的经典形式,选择日期作为连贯案例的主题则可以同时在这两个层面达到高度契合。在数据结构层面上,首先日期几乎涵盖了所有数据类型的表示方法。一个日期可以表示为整型或字符串,多个日期可以形成数组,一个日期拆分为年月日又可以形成结构体。其次日期之间存在多种映射关系,如年龄与生肖、生日与星座、公历与农历等,能够衍生出多个有趣的实用问题。最后还存在着多种特殊的日期,如周末、闰年、节日等,能够生成各类问题中的边界输入,提升案例质量。11在算法层面上,围绕日期进行的相关计算问题众多,且能够覆盖于编程语言实践教学的各个知识点中。如在闰年判断案例中可引入选择分支知识点,在纪念日计算案例中可引入循环分支知识点。由于日期是日常生活中必不可少的组成部分,在解决各类日期相关的具体案例时,学生都能够快速理解案例要求,避免受到不同类型案例带来的复杂背景信息的干扰12。最后,选择日期作为主题可将课程大作业设定为一个多功能日历程序的设计。在先期的连贯案例能够实现一定量针对日期的算法后,将其功能进行扩充及优化并实现用户界面交互,学生能够轻松上手进行开发。针对能力强的学生,由于日历程序需求多样,可以开发一些如公农历转换、事项提醒等复杂功能,而能力一般的同学亦能够完整地设计并实现一个功能完备的日历程序,极大地增强其成就感及学习热情13。2.3具体案例设计各个案例如仅以日期作为同一主题而没有内在联系是不够的,还应当在编排中巧妙串联形成体系。连贯案例的设计主旨即在案例迭代推进的过程中循序渐进地将各个知识点进行引入,以 C 语言的实践教学为例,C 语言课程中重点章节和知识点分布如图 1所示14。下面以第一第三章节为例,阐述具体的案例设计方法。图 1C 语言课程重点章节和知识点第一章:首先引入程序设计类课程的经典入门程序 Hello World!的输出案例,随后指导学生仿写并将输出的信息改为自己的生日,从而拉开连贯案例的序幕。引导学生以不同的形式输出父母的生日(如1970/3/21 对应整型,一九七二年五月六日对应字符串),比较两种形式日期的不同从而引入数据类型及变量的概念。随后将生日拆分为年月日三个整型数据,设计案例分别对年月日进行变量的定义、初始化及输入操作,实现定义、输入并输出若干个不同类型的日期信息,完成第一章节知识点的巩固。第二章:在第一章节的案例完成后提出新的需求通过输入的出生日期计算年龄,从而引入运算与表达式的新知识点。在已有案例基础上设计计算年龄功能的算法,利用当前日期所在年份减去输入的出生日期所在年份得到年龄(如当前日期为 2022/3/1,输入的出生日期为 2000/1/1,年份相减得到年龄为电脑与信息技术 2023 年 8 月12422)。随后继续对计算功能进行扩充,引导学生自主完成平均年龄、距离下一个本命年间隔年份等问题的编程求解,加深对表达式的理解和运用能力。第三章:对第二章案例中的年龄计算问题进行优化分析,由于案例中年龄的算法仅通过年份相减而得,未考虑当年具体日期对输出产生的影响(如当前日期为 2022/3/1,输入日期为 2000/4/1 或 2000/1/1 时计算年龄均为 22,实际情况中后者应比前者年龄大 1)。引导学生推导出计算准确年龄需要再将输入出生日期的月/日与当前日期的月/日大小进行比较,如输入日期的月/日更大则需将计算年龄加一,反之则保持不变,由此引入关系运算及选择分支的新知识点。由上例可见,各章节及案例之间构建出了一条通过知识点引导对应案例,再通过案例分析引导新的所需知识点的“螺旋上升”通道。在此过程中案例的规模和功能随之扩充,学生习得的知识点也随之增加。同时由于案例的连贯性,在面对课程后期难度较大的案例时,学生只需在原有案例基础上进行部分功能的迭代或更新,省去了重复枯燥的前置工作,从而有效提升了新知识的学习效率15。3“连贯案例法”在程序设计类课程中的实践3.1连贯案例实践设置结合上文中陈述的重点章节与知识点框架及教学方法设计,以日期为主题的连贯案例设计在 C 语言程序设计课程实践教学中的具体编排设置如图 2 所示。图 2C 语言程序设计”连贯案例”的具体编排设置在将“连贯案例法”运用于 C 语言实践课程的实际教学过程中,新的章节和知识点均能由已完成案例的分析过程中发现的不足或优化需求进行引入,章节间的衔接自然而不生硬。由于在连贯案例实践过程中,学生在接受新内容时始终有已完成的案例作为铺垫,难度梯度明显降低且重点清晰,不易产生畏惧或挫败感。学生在案例的不断翻新改良过程中,也能够通过新知识点对旧有代码进行巩固和升级,编程能力和思维上也得以快速进步,项目迭代的模式也更契合工业化标准和应用型人才的培养。最终通过完整地实现多功能日历程序,既能够大大提升学生的成就感和学习主动性,更能够为后续的课程及实践项目积累经验。3.2连贯案例实践效果采用“连贯案例法”改良的 C 语言程序设计课程取得了显著的成效。对于课程本身而言,由