基于计算思维的程序设计类课程教学实践研究

张玉宁
摘 要: 传统C语言课程教学方法在课程教学后的下学期进行课程设计,实践同理论联系程度差,过分看重语法教学,对程序设计思想的教学力度弱,学习效果差。因此,研究了基于计算思维的程序设计类课程教学实践过程,将计算思维同C语言教学相融合,分析C语言教学过程中信息操作的思维过程。设计基于计算思维的C语言搁置式课程教学实例,将C语言教学划分成课程引入、新课程学习以及效果评价三个阶段,分析三个过程的教学内容以及结构组成。并设计三个C语言课堂教学阶段过程中基于计算思维的抛锚式教学实践内容。实验结果说明,所研究教学方法提升了学生的C语言计算思维能力,增强了学生的感兴趣度和自主学习能力,学习效果强。
关键词: 计算思维; 程序设计; 课程教学; C语言; 搁置式实践
中图分类号: TN99?34; G64 文献标识码: A 文章编号: 1004?373X(2017)23?0162?04
Abstract: It has low relation degree between practice and theory for the traditional C language curriculum teaching method used for curriculum design of the next semester after course teaching, weak teaching ability of program design thought and poor learning effect, and pays attention to grammar teaching excessively. Therefore, the computational thinking based teaching practice process of program design courses is studied. The computational thinking is integrated with C language teaching. The thinking process of information operation in C language teaching process is analyzed. A computational thinking based instance of C language shelving course teaching is designed, in which the C language teaching is divided into the stages of course introduction, new course learning and effect evaluation. The teaching contents and structure component of the three stages are analyzed. The anchored instruction practice content based on computational thinking in the process of the three C language classroom teaching stages was designed. The experimental results show that the teaching method can improve the C language computational thinking ability of students, enhance the interest and self?learning ability of students, and has perfect learning effect.
Keywords: computational thinking; program design; curriculum teaching; C language; shelving practice
0 引 言
当前随着信息技术的快速发展,其在课堂教学中的应用价值也不断提升。信息技术课程对思维教学的关注度较高,计算思维是程序设计模块的思维品质,我国程序设计类课程教学的计算思维教学还处于初级阶段,程序设计过程中计算思维教学不够成熟。传统C语言课程教学方法在课程教学后的下学期进行课程的设计,学习理论知识后没有同实践实施迁移应用,实践同理论联系程度差,过分看重语法教学,对程序设计思想的教学力度差,学习效果差。本文对基于计算思维的程序设计类课程教学实践进行了深入研究,提出基于计算思维的C语言搁置式教学方法,提高学生C语言程序设计的学习能力。
1 计算思维的程序设计类课程教学实践研究
1.1 基于计算思维开展的C语言程序设计教学
本文研究的程序设计类课程教学是C语言课程教学,C语言是一种基础的计算机语言,其从语法到总体结构包含较多的计算思维[1]。基于计算思维开展的C语言程序教学在传授相关知识点时也要传授其中描述的计算思维,对计算思维实施强化和培养,可提高学生C语言学习能力和计算思维能力[2]。人们采用计算机操作信息数据,不同种类信息数据的表达手段也存在一定的差异,对其实施操作的措施也不同,则计算机实现这些信息数据的描述、存储以及操作的计算思维是:按照冯·诺依曼计算机体系结构,通过软件对不同种类数据实施声明和定义,准确描述不同种类信息;采用硬件的存储元件保存信息数据。通过计算机语言编写的数据操作程序控制CPU对数据实施操作,通过人、机协同进行的问题求解过程是计算思维的实现过程,用图1描述。该信息操作的计算思维需要计算机语言提供运算服务,通过C语言实现数据描述(数据种类)、输出存储(变量、常量)以及数据操作(表达式以及控制结构)。
1.2 基于计算思维的C语言搁置式教学案例设计
基于计算思维的C语言搁置式教学,也称做实例教学和基于问题教学,这种教学思维要求学生切身的感受和理解问题,不是靠单纯的教师传授,这种教学能营造一种真实、完整的氛围,让学生产生较高的学习兴趣,同学之间进行高效的交流和互动协作,使得学生能从主观上爱上学习,确保学生亲身感受C语言呈现设计过程中从了解目标到完成目标的过程[3]。搁置式教学的设计就是培养学生自主学习、互动协作和提高学习兴趣,主动发现问题并解决问题的能力。
基于计算思维的C语言搁置式教学设计,需要将搭建框架、自主学习、镶嵌式教学和互动协作考虑到C语言课程教学设计中。该种教学方法总体将教学过程分成不同的模块,不同教学模块涉及的教学内容也不相同,将教学过程分为[A1,A2,…,An]。本文将基于计算思维的搁置式C语言课程教学分为课程引入(i),新课程学习(n)和效果评价(e),具体的形式如表1所示,其对每个阶段遇到的教学难题和解决方法进行简要描述。
在课程的引入阶段,主要存在学生对学习兴致缺失和对已掌握知识结构与新知识存在差距[4]。解决方法是增加学生对学习的兴趣,构建已学知识与新知识的桥梁。教师在授课过程中向学生介绍与其认知相关的个性化案例,辅助学生进行理解。学生应该具备对目前掌握材料和未来知识的规划能力。课程引入阶段的结构示意图如图2所示,A,T和S分别代表教学过程、教师活动和学生活动。
在新课程学习阶段,主要存在C语言知识点相关联的信息联系与课堂教学间的矛盾;让学生主动学习知识而不是死记硬背。采用镶嵌法和归纳演绎让学习变得有趣。新课程学习阶段教师应该是学生的引领者,指导学生看待问题的方向,运用类型检查法带领学生思考[5]。学生在教师的引领下思考问题并进行理论归纳,小组讨论各自的观点看法,多维分析和推理。图3为新课程学习阶段结构示意图。
在效果评价阶段,主要存在如何对任务进行执行和评价的问题。将任务呈现出来,帮助学生分析,寻求最方便、便捷的解决方式,采用多维分析方法进行结果评价。该阶段学生需采用各种方法,包括建模、抽样调查等完成分布的任务,并对结果进行展示评价[6]。图4为效果评价阶段结构示意图。
由上文得出,基于计算思维的C语言抛锚式教学共分为三部分,学生和教师活动有六个步骤,式(1)和式(2)分别表示待解决问题和对应的解决方法:
1.3 基于计算思维的搁置式教学实践设计
教师在上课前的课堂设计阶段,从1.2节划分的基于计算思维的C语言搁置式教学三个阶段当中任选两个作为基本知识。第一次教学中以简单的加减法为例,从教学案例中提取知识点。学生自主探究课堂以外的知识,学生间相互协同解决问题[7]。在课堂引入阶段,教师向学生提出问题“20+10”,学生此时脑中产生疑问,在这种困惑下向同学解释人脑计算方式与计算机计算的不同。人的大脑进行的是逻辑运算,计算机是工程运算,C语言是进行数学计算的,假设a箱子里有10个白球,b箱子里有20个白球,将a和b两个箱子里的白球倒入箱子c中,此时c箱子中白球的个数就是总数。将计算过程形象化,使学生对C语言如何进行运算产生很好的兴趣,这个阶段产生效果用式(3)表示,其中AI为课程引入阶段的教学成果,[m]是待学习的白球数,[f]为学习动机函数:
在新课程学习阶段,完成形象到抽象的转换,将箱子看成三个变量,这个转变就是C语言的赋值过程,C语言计算结果需要使用C语言中的输出函数。在此阶段的协作环节中学生的思维完成了从形象化到抽象化的转变[8],思维方法的转变充分发挥了思维。这一阶段成果体现在思维方式(th)、学习能力(se)和协作能力(coo)的变化。這个阶段教学效果用式(4)表示,其中AI为新课程学习阶段的教学成果,[f]为th,se和coo的函数:
在效果评价阶段对任务分析、方案分析和演示结果进行考核,教师和小组评分计入考核成绩,学生采用建模和抽样分析对任务进行方案设计和解决,教学方式的改变促进了学生对知识的学习[9]。该阶段教学成果用式(5)表示,其中AI为效果评价阶段的教学成果,[f]为与知识学习[(u)]和教学评价[(a)]的函数:
2 实验结果与分析
2.1 学生成绩检测
实验通过单组前后测对某高校软件专业学生成绩和学生态度实施调查,获取三组实验数据。实验前后检测成绩能近似当成服从正态分布,该数据集内教学实验前测值以及后测值的数据相对应,实验对象以及人数是相同的,通过配对样本T检验方法[10]对采用本文方法教学后软件专业学生计算思维能力是否提升实施检测。
实验统计软件专业学生学习C语言时的循环语句、条件语句以及赋值语句成绩,通过Excel表格统计数据,结果用表2描述。通过SPSS软件实现数据配对样本的T检验,结果用表3描述。
分析表2能够得出,对参加实验的50名学生的C语言程序设计的学习成绩进行检测过程中,三次实验学生成绩平均值分别是79.49,83.44以及86.65,能够看出该软件专业学生的C语言程序设计的计算思维能力逐渐增强。
分析表3中的数据,能够看出实验前后配对样本的相关性。三项测试项目中不同语句的相关系数分别是0.373,0.265以及0.158,相伴概率sig分别是0.07,0.068以及0.279,都比0.05高(显著性水平),说明三种实验的成绩相关性显著。
分析表4中的数据能够得出,赋值语句同循环语句配对样本的配对均值是-7.986,双侧相关概率[P]值是0,比0.05(显著性水平)低,[T]值是负值,[C=]-3.688,能够看出计算思维教学前后软件专业学生成绩存在显著的差异。赋值语句同条件语句的[P=]0.001,比0.05(显著性水平)低,说明存在显著性差异。而条件语句同循环语句的[P]值是0.217,比0.05(显著性水平)高,说明不存在显著性差异。全面分析这些数据能够得出,采用本文方法进行教学后,总体软件专业学生的计算思维能力出现了显著的提升,说明本文方法在C语言程序设计教学过程中,基于计算思维的教学模式增强了学生程序设计思维的发展。
2.2 学生态度检测
实验从学生对课堂的感兴趣程度检测实验前后学生态度方面的状态。实验统计采用本文教学方法以及传统C语言教学方法下,学生对C语言教学课堂的感兴趣程度,结果用图5和图6描述。分析图5能够得出,对于三种C语言语句,本文方法下存在10人、15人、23人对课堂内容非常感兴趣,31人、27人、20人对课堂内容感兴趣,5人、5人、4人对课堂内容感觉一般,4人、3人、3人对课堂内容不感兴趣。而从图6中能够看出,对于三种C语言语句,传统教学方法存在5人、15人、8人对课堂内容非常感兴趣,22人、18人、20人对课堂内容感兴趣,19人、14人、19人对课堂内容感觉一般,4人、3人、3人对课堂内容不感兴趣。说明学生对本文C语言教学方法的感兴趣程度更高。
2.3 实践(上机)题目完成情况检测
软件专业对所学程序类设计课程的实践练习过程中,各次实践(上机)的练习题量以及综合难度要求较高。实验统计某高校两届软件、通信以及电子专业的学生,分别采用本文教学方法和传统教学方法下实践(上机)题目的完成情况,结果分别用图7,图8描述。能够看出,采用本文方法下难度较低的一致性实践题和必做题的完成度同传统教学方法差别较小,而难度较高的升级题以及挑战题的完成度远远高于传统教学方法。说明本文方法下的学生总体自主学习能力以及竞争意识有了极大的提升,能够活跃C语言教学的课堂气氛。
3 结 论
本文对基于计算思维的C语言程序设计课程教学实践过程进行了详细研究,采用基于计算思维的C语言搁置式教学方法,极大提高了学生对C语言课程学习水平。
参考文献
[1] 张阳,李雄伟,卢宏锋,等.基于计算思维的计算机基础教学改革与实践[J].北京邮电大学学报(社会科学版),2015,17(2):113?118.
[2] 马骏,张琦,张俭鸽.基于任务驱动的C语言课程教学设计[J].计算机工程与科学,2016,38(z1):117?119.
[3] 吴旭,牛少彰,颉夏青.计算思维与理科专业“大学计算机基础”实践教学研究[J].北京邮电大学学报(社会科学版),2015,17(1):88?93.
[4] 何明,陈卫卫,陈希亮,等.基于计算思维的大学计算机基础课程改革方法探析[J].计算机工程与科学,2014,36(z1):96?99.
[5] 程钢,杨杰,吴志强,等.SAKAI平台下程序设计与开发课程混合式学习的研究与应用:以测绘工程“C语言程序设计”为例[J].测绘通报,2016(9):133?136.
[6] 谢鹏,张红梅.以培养计算思维为导向的大学计算机基础课程教学改革与实践[J].中国大学教学,2016,38(z1):245?247.
[7] 郑丽坤,关绍云,郭丹.计算思维引导的高校计算机基础教学实践研究[J].黑龙江高教研究,2016(2):174?176.
[8] 刘必雄.“Visual Basic程序设计”课程建设的研究与实践[J].河北农业大学学报(农林教育版),2016,18(1):46?50.
[9] LIU Y Z, WANG Y M, LIU Z W. College program designing course based on computational thinking [J]. Applied mechanics & materials, 2014, 556: 6527?6530.
[10] 楊晨霞,涂风涛.基于CDIO的高职程序设计类课程的教学改革与实践探讨[J].职教论坛,2016(6):81?83.