您的当前位置:首页在程序设计实验教学中培养学生的计算思维

在程序设计实验教学中培养学生的计算思维

2022-08-05 来源:乌哈旅游
第31卷第1期 重庆与世界・学术版 2014年1月 【教育研究】 在程序设计实验教学中培养学生的计算思维 苑丽红 (长春理工大学计算机科学技术学院,长春130022) 摘要:在理清了程序设计和计算思维的关系的基础上,以c程序设计实验课为例,对如何在程序设计的实验课程 中培养学生的计算思维,使课程从简单的“知识和技术的教学”上升到“思想的教学”做了探讨。从实验设计、考 核方式、指导技巧等方面提出了可操作性的方法。所谈及方法已经应用于实验课教学实践中,结果表明,学生的 学习兴趣得以提升,思维能力获得提高。 关键词:程序设计;计算思维;创新能力 本文引用格式:苑丽红.在程序设计实验教学中培养学生的计算思维[J].重庆与世界:学术版,2014(1):75—77. 中图分类号:G642 文献标识码:A 文章编号:1007—7111(2014)01—0075—03 Training of Students’Computational Thinking in Experimental Teaching of Programming YUAN Li—hong (School of Computer Science and Technology, Changchun University of Science and Technology,Changchun 130022,China) Abstract:This paper clarifies the relationship of programming and Computational Thinking.Taking ex- perimental teaching of C programming as an example,it discussed that how to train students’computa- tional thinking and change the programming course from a simple“knowledge and technology teaching” up to“teaching thinking”.Effective methods were discussed in detail on experimental design.assess— ment way,and teaching skills.The author’S practice during experimental class shows that the students’learning interest and thinking ability can be improved by using these ways. Key words:programming;computational thinking;innovation capacity Citation format:YUAN Li—hong.Training of Students’Computational Thinking in Experimental Teaching of Programming[J].The World and Chongqing:The academic version,20 14(1):75—77. 美国卡内基・梅隆大学周以真(Jeannette M.Wing)… 目前对计算思维能力的培养,还没有固定的模式。笔 者从c程序设计教学实践出发,对如何利用上机实践环节 培养学生的计算思维做了一定思考和探索。 教授在美国计算机权威期刊《Communications of the ACM)) 杂志上对计算思维进行了定义:计算思维是运用计算机科 学的基础概念进行问题求解、系统设计、以及人类行为理 解等涵盖计算机科学之广度的一系列思维活动。 一、理清程序设计和计算思维的关系 2010年《九校联盟(C9)计算机基础教学发展战略联 合声明》的核心要点强调“需要把培养学生的‘计算思维’ 能力作为计算机基础教学的核心任务”。 计算思维和理论思维、实验思维并列,又称构造思维, 以设计和构造为特征,以计算机学科为代表。 作者简介:苑丽红(1974一),女,硕士,副教授,研究方向:智能算法、模式识别。 76 重庆与世界・学术版 训练过程: 程序设计是进行计算机编程的必要条件。但计算机 科学体系庞杂,本身远非编程那么简单,计算思维恰恰对 (1)Turbo C下验证以下程序结果,思考原因。 main() 应的是整个计算机科学体系的一种抽象思维能力。但程 序设计和计算思维又紧密相关。程序设计课程的开设,除 {int a,b;a=300;b=200;printf(“%d”,a b);} 了要使学习者了解计算机基础知识外,更重要的是让其掌 握科学的思维方法。 笔者认为,程序设计的实践有三个层次:知识、技能、 (2)在此基础上,重新设计程序实现求两数的和、差、 积、商。 (3)设计一个能实现四则运算的简单计算器程序。 而下面的用例体现了学习循环、数组和函数后的递进 思维。对应的,也可以理解为语法、技能和方法、本质思 想。程序设计从书本的知识到亲自上机调试,是将知识转 化成一种技能的过程,但这种技能是计算思维方法的具体 体现形式。我们应讲解知识,训练技能,但不能“重语法、 轻方法、不谈思维”,要善于提炼技能背后所包含的具有普 适性的本质思想——计算思维,从“知识和技能”的教学上 升到“思想”的教学。正确的计算思维思想会指导和促进 长远的实践过程。 这种递进的一体化实践教学目标模式如图1。 长远实践卜__ 编程技能H计算思维卜__’{语法知识 图1 实验教学目标模式 这种传授知识、技能和计算思维的一体化教学模式, 旨在让学生学“知识”、会“技能”,重“思维”,使教学目标 从“知识和技能”的教学上升到“思维”的教学。即:不仅授 人以鱼,更要授人以渔。引导学生利用理论课程学过的编 程知识,进行问题求解和分析,编制程序形成编程技能,并 最终启发其形成计算思维。显然,这种计算思维反过来又 会促进其实践能力。 二、精心设计实验项目,潜移默化地实施 递进式思维训练 实验项目的设计上,首先要注意形式上“验证”、“设 计”、“综合”“创新”类型并重。用完全的验证性题目实践 重点算法和易混淆知识点;用设计性实验或综合性实验来 实现更高的思维训练要求;而如何利用本门实验课内容解 决本课程中前沿性研究问题,则需少量的创新性实验来 补充。 其次,应在各个章节随时实施以任务驱动为主的递进 式计算思维训练。既要考虑项目内的递进,又要考虑项目 间的递进。具体操作上,可采用“难度递增法”、“一题多解 法”等技巧,令题目在趣味性、实用性基础上,具有连贯性、 启发性,从而引领学生循序渐进地思考问题、解决问题,训 练其思维过程和思维深度,同时提供其多角度多侧面的思 维机会,训练其思维广度。 下面的教学用例体现了在初学章节中的递进式思维 式思维训练过程: (1)用循环结构实现输出斐波那契数列。 (2)用数组实现输出斐波那契数列。 (3)用递归实现输出斐波那契数列。 值得说明的是,学生实现题目后,教师一定要把代码 背后对应的思维加以总结、对比,这种类似引申和求异的 过程能有效提升学生的思维水平。 此外,考虑学生学习基础不同,思维水平参差不齐,可 利用必做项目和选作项目实施分层次教学,这样能更有的 放矢地进行思维启发。 三、构建和不同专业相结合的实验教学 模块 计算机教学的目的是让学生体会到以思维指导实践 的乐趣。兴趣是最好的老师。因此,为各专业构建和专业 相结合的实验教学模块,结合教育心理学进行教学,提升 学习主动性、扩展学生思维的可选方法。 对全校的程序设计教学实验课,尤其适合根据教师优 势分配实验教学任务。让任课老师在教学过程中灵活设 计和专业相结合的实验教学项目,让学生明白学以致用的 道理。 以下是针对电信专业学生设计的一个综合性实验 例子。 题目:模拟信号变成数字信号后才能存入内存,并进 一步编程处理。实际应用中,信号通过采集电路采集并送 到模数(AD)转换卡中,AD转换卡将其转变成数字信号, 后续可对采集到的数据编程实现对信号的分析与研究。 请设计一程序模拟对AD转换器接收到的500个数据进行 数据采集与波形显示的过程(可假设采集到的数据符合正 弦波规律)。实验结果示例如图2。 虽然,实际数据的采集和转换需设计适当的硬件电路 并通过相应接口进行数据输入输出,学生学习C程序设计 基础课的时候尚未学习单片机,但这里可以对实际问题做 模拟、简化。只要求设计一函数,其返回值代表每次采集 到的数据即可。 苑丽红:在程序设计实验教学中培养学生的计算思维 77 生讲清楚,则学生就会知其然更知其所以然,思维将大大 扩展。这样不但可以培养学生科学的计算思维素养,还可 以提升学生的学习兴趣。 五、重视实验课的考核形式,从根本上促 图2程序结果示例 四、上机出错的时机,是梳理计算思维的 最佳时机 程序设计是典型的实践课。错误的后面经常预示着 思维的混乱。 请看初学程序设计时,很多同学编写的如下错误 程序: main()/ 程序功能,求两数之积 / { float a,b,c; c a b: scanf(“% f”,&a,&b); pfinff(“c=%f”,c); } 表面看,仅仅是c=a b语句位置不对的小错误。但 实质却是初学者熟悉数学思维,不具备计算思维的体现。 这时候,教学者要为学习者提供足够的思维空间,设法激 励和引导学习者自主学习,发现问题所在继而解决 问题 。 我们采取的具体做法是:教师此时及时拨乱反正,并 据此错误指出数学思维和计算思维的差别,指出问题背后 的计算思维焦点:冯・诺依曼式计算系统中程序如何被硬 件执行的基本思维。事实上,由于程序是自上而下逐条语 句执行的,先读入后使用变量才是符合程序设计中“计算 思维”的,教师有意识地利用这种错例,发掘其背后蕴含的 思维方式问题,才能引导初学者顺利从数学思维过渡到计 算思维,从而增强其利用计算机解决问题的能力。 再如:Turbo C下计算程序: main(){int a;a=32767; pfinff(“%d”,a+1);} 将会发生整型数溢出以致答案错误。表面看,记住不要越 界的细节就可以,但如只是提醒学生注意整型数据的表数 范围,对学生思维的提升意义并不是很大。我们应该以此 为契机,启发学生关注问题后面隐藏着的计算系统中0与 1的思维,包括语义符号化、符号0、1化、0(与)1计算化、 乘法加法化、加法自动化等计算系统思维 J,教师如给学 进学生观念的转变 课程的考核形式对学生的观念有着不可置疑的引导 作用,因此应重视实验课的考核形式,考核方案应体现思 维过程的重要性,以免形成不利于培养学生思维能力的 局面。 对每一个实验项目,如果我们对学生的考核仅着眼于 最终代码的正确性,学生就会急功近利,不重视思路合理 与否,大部分精力投入到细节代码的编写和修改,这种精 力分配对某些设计性实验来说,本末倒置。我们从计算思 维的培养角度出发,避免实验课“以结果论英雄”的一锤定 音形式,提出了灵活的考核方式,如对稍有难度的设计性 或综合性实验项目,按100分计算,考核方式如下: 过程设计(流程图)40分+代码编写30分+系统调试 30分 具体操作上,对各环节的分数权重可以适当变通,但 总的原则是应注意引导学生重视思维过程,而不拘泥于编 写代码。合理的考核设置将有助于考察学生的思维过程 和思维能力,有利于培养以思维促实践的学习模式,在潜 移默化中,让学生对思维形式对程序设计的影响有所体 验,可改变学生重代码不重思维的观念。 六、结束语 我们近年来以上述方案进行C语言程序设计实验教 学尝试,通过对教学过程和教学结果的考察和分析,发现 学生的编程习惯、学习兴趣、学习方式、学习效果等产生了 可喜的变化,学生思维能力明显提高。但教学无止境,对 计算思维的探索和深入研究尚方兴未艾,期待每一位教育 者从深远的目的出发,共同探索计算机实验课程中知识技 能和计算思维的关联和贯通,更好地培养出具有真正计算 思维和科学素养的优秀工作者。 参考文献: [1]Wing J M.Computational Thinking[J].Communication of the ACM,2006,49(3):33—35. [2] 斯滕伯格.思维教学——培养聪明的学习者[M].北 京:中国轻工业出版社,2001:127. [3] 战德臣,聂兰顺,徐晓飞.“大学计算机”——所有大学 生都应学习的一门课[J].中国大学教学,2011 (4):17. (责任编辑张佑法) 

因篇幅问题不能全部显示,请点此查看更多更全内容