以计算思维为导引的程序设计实验教学模式研究
2024-10-18
来源:威能网
164 福 建 电脑 2012年第5期 以计算思维为导引的程序设计实验教学模式研究 卢玲.刘恒洋 (重庆理工大学计算机科学与工程学院重庆400050) 【摘 要】:计算思维作为问题求解、系统设计和人类行为理解的一种思维方式,受到当前计 算机教育领域的广泛关注。程序设计过程中的阅读、分析、抽象表达、综合创造等技能都需要计算 思维能力的支撑。该文分析了计算思维与程序设计实验的关系,以程序设计基础课程为突破口. 从实验案例的设置、重构问题的解、发展多样化的认知方式等方面提出了一种以计算思维为导引 的、切实可行的实验教学模式 【关键词】:计算思维程序设计基础信息素养认知方式 1、引言 基础概念进行问题求解、系统设计以及人类行为 程序设计基础是计算机专业的第一门专业基 理解的涵盖计算机科学之广度的一系列思维活 础课,它以一种程序设计语言为依托.介绍计算机 动。从计算机科学的角度看。计算思维不只是为人 解题的基本思想,培养程序编写和调试的技能.培 类社会呈现软硬件.更重要的是计算的概念。在人 养计算机专业的信息素养。在程序设计过程中贯 类的各项活动中.计算的思想无处不在.它被人们 穿阅读判断、分析思考、工具利用、抽象表达、综合 用来求解问题、管理日常生活以及进行交流和互 创造等多项技能.对计算机专业人才素质的培养 动等活动。计算思维通过约简、嵌人、转化和仿真 至关重要I11。 等方法.把一个看来困难的问题重新阐释成一个 在《中国高等院校计算机基础教育课程体系 知道怎样解决的问题。计算思维的核心是基于计 2oo8}中.提出对大学生计算机应用能力的三大要 算模型(环境)和约束的问题求解.它注重计算的 求是:操作使用能力、应用开发能力和研究创新能 状态(环境、约束)及其状态的演化过程。计算机思 力。尤其是对于“程序设计基础”课程而言,将学习 维的本质是抽象与自动化14].它反映了计算机学科 目标确定成:f1)学习问题求解的思路和方法,即算 最本质的特征和最核心的方法[51 法。f2)理解计算机是如何具体实现算法的,即如何 才能有效的利用计算机编程 课程学习的重点不 3、计算思维与实验教学的关系 实验教学是以实验为主要内容的教学活动[61. 只是编写程序,而是算法思想与问题求解的思路。 主要包括两方面的任务: 总之,就是要培养学生使用计算机编程,并最终形 (1)直观地让学生感知自然现象及其内在规 成计算思维阁 律.使学生对某一领域的认知从感性上升至理性, 目前.程序设计基础课程面临的主要问题之 验证或再发现某些已知的理论知识.从而巩固已 一是入门慢,究其原因,主要因为课程一般面向一 学的理论知识.进一步培养创造性思维方式及能 年级新生,学生的专业知识还不成体系,对计算机 力:(2)使学生了解在认识和研究自然科学领域中 的“思维方式”与传统解题方式的差异理解不够. 所遇到问题的一般性或特殊性实验方法.熟练掌 其“计算思维”能力还有待提升。因此,如何塑造和 握这些实验中常规及特殊的实验技能.提高实践 发展计算思维能力,实现程序设计的快速入门.是 能力。一个在教学中值得探讨的问题 我校将“计算思 计算思维与实验教学的关系在于:计算思维 维”的理念融人程序设计基础的实验教学中.取得 是运用计算机科学的基础概念进行问题求解、系 了理想的效果 统设计以及人类行为理解等涵盖计算机科学的一 2、计算思维的定义 系列思维活动.它不仅意味着能对计算机编程.还 美国卡内基.梅隆大学周以真(Jeannette M. 要求能够在抽象的多个层次上分析和思考问题 Wing)教授认为【3]:计算思维是运用计算机科学的 计算思维强调利用启发式推理寻求解答.注重“启 2012年第5期 福 建 电脑 165 发性”和“计算的思想”。可以说.计算思维驱动了 的练习之后.学生一般都能主动地感知链表和数 实验活动的展开.而实验活动又促进了人类计算 组的差异,自觉地总结其共性和个性,从而在不同 思维能力的发展 的问题中加以选择和运用。 主题:数组的基础撩作(比较练习) 主题:单链表的基础操作(比较练习) 4、以计算思维为导引的实验教学模式 我校以带有启发式的“计算思维”方式驱动程 序设计基础实验教学,对培养用计算机解题时应 有的思维方法、表达形式和行为习惯起到了良好 的促进作用 这一模式主要包括如下几方面的内 ①如伺把指定 围内的数据元累加起来 ②如伺把数组中偶数位置的元景加起来 ③如伺把数组中奇数位置的元秉加起燕 ①如伺把指定范围内的数据元票加起来 @如何把链衰中偶数位置的元景加起来 ③如1可把链裹中奇数位置的元囊加起来 ④如何把数组中的偶数元素加起来; ④如何把链衰中的偶数元素加起来 @如伺把数组牛的奇数元素加起来 @如何把链衰串的奇数元景加起南 @如何把一个元景加副数组的每一个元桑上 @如何把一个元累加到链衰的每一个元最上 ⑦如伺从数组的每一个元囊上减去某个元甍 ⑦如何从链衰的每一个元景上减击某个元燕 ③如何将一个元素乘以数组的每一个元熹 @如何将一个元景乘以链衰的每一个元最 ⑧如伺让数组的每一个元囊陈以莱个元素 @如何让链衰的每一个元最除以某个元景: 容。 4.1设置带启发式的实验案例 程序设计基础的实验一般都是有针对性的专 项练习,例如对数组、指针、字符串等的基础操作, 习题注重基础性、验证性,内容较为单一、枯燥。因 此,设置富有趣味性、综合性的练习,以及改变提 问的方式是非常有必要的。例如.在学习二维数组 时,要提到矩阵的概念。可以提出:“使用黑色墨水 在白纸上签名并不是什么特别的东西.就是一些 黑点(像素)所构成的矩阵,而且是稀疏矩阵” ,如 图1-a所示 对这样的“稀疏矩阵”进行转置比对 普通矩阵的操作更能激发学习兴趣.也能促进对 “稀疏矩阵”的理解 另外.在一维数组的练习中.引入如图1-b的 一系列问题.启发学生用计算的思维看待和解决 日常问题。同时,改变提问的方式.改“提要求”为 “提问题”.将“要求采用某种方法”改为“询问该采 用何种方法” 如图1-b中将“求一维数组中各价 格相关指数的平均值”提为“如何得到价格相关指 数的简单平均值?” ①如何得到价格相关指数的简单平均值 ②如何得到拉斯贝尔(I.aspeyre)指数 ③如何得到派许(Paasche)指数; ④如何得到鲍莱(Bowley)指数; ⑤如何得到费雪(Fi sher)指数: ⑥如何得到Marshal卜Edward指数; a稀疏矩阵的案例 b一维数组的应 【}=j案例 图l带启发式的实验案例 4.2注重思维的自发塑造过程 计算思维的形成是一个长期的“感知~思 考一认知”的过程。这一过程需要外因的驱动.例 如教师的引导、讲解,更应通过适当的方法,使学 生主动地发现问题、分析问题,促进思维的主动发 展。例如在设置实验内容时.将相关度高的知识点 组织成主题练习模块.如图2所示 图2是一维数 组与单链表的比较练习模块 模块内部的知识点 具有很强的相关性.模块之间具有明显的差异性 这种练习模块既便于深入、广泛地练习,也有助于 练习后分析、比较和总结。实践中.在完成了图2 ⑩如何删除数组的第一个元囊: ⑩如何删除链衰的第一个元素: @如何删除数组的最后一个元煮; 0如何删除链表的最后一个元累 @如何在数组的头部舔加一个元累; @如何在链表的头部添加一个元景: 0如何在数组的犀部添加一个元囊 @如何在链表的尾部漆加一个元秉 图2单链表与一维数组的比较练习 4.3重构求解过程.倡导问题解的多样性 计算思维是面向典型计算环境的问题求解的 能力,需要不断地面对问题、思考问题、反复持续 地进行才能形成.然而在实验中往往存在“重结 果、轻过程”,“重编码,轻算法”的现象,以看到程 序的运行结果为目标.不注重总结问题解的构建 过程.忽视思维方式的训练和塑造 实践中应提倡 对同一任务反复多次进行求解.对求解的各个环 节进行重构,包括问题分析、算法设计、编码以及 调试等各个环节 重构求解过程能促使学生总结 同一类问题的共性和个性.启发学生寻找自身对 问题理解的薄弱环节 反复重构求解过程.能够使 学生逐步适应计算机解题的思维方式.使计算思 维的方式形成惯性 重构求解过程时还提倡问题解的多样性.鼓 励学生运用多种解题思想、多种技术手段对同一 任务寻求多种方式的解答。要求阅读、改写别人的 程序.发展多样性的计算思维方式 对带有创新型 的思想和方法.应组织学生展开分析和讨论。 4.4以任务驱动展开学习 以任务驱动教学是以解决问题、完成任务为 主的多维互动式的教学理念:它将再现式教学转 变为探究式学习.使学生处于积极的学习状态.每 一位学生都能根据自己对当前问题的理解.运用 共有的知识和自己特有的经验提出方案、解决问 题[8] 采取以任务驱动的实验教学模式.教学者需 进行设计任务、呈现任务、实施任务、总结评价 ; 学习者在明确任务、完成任务、共享交流的过程中 运用基于计算思维的方法进行学习 如图3所示 案例.教师首先以演示实例原型的方式提出要求. 学习活动围绕着任务展开 在完成任务的过程中. 鼓励学生组成小的学习团队,在问题的需求分析、 设计、编码、测试等各阶段.教师只对学生提出的 解决方案进行指导性的干预 166 福 建 电脑 2012年第5期 r_一一…————————————————— l 学生信息管理系统 1学生信息洲览 2学生信息奁 咖 3诱加学生信息 ■学生信息删除 s学生信息存盘 6磁盘信息读取 e迮出系统 请选辑:l 一 的计算思维方式不可能的.一定的知识与素养是 理解并建立起“思维”的必要条件Uo]。也就是说.计 算思维要求学习者有足够的理论知识储备作为支 撑,否则计算思维能力就不能得到有效的发展。因 此.计算思维贯穿于学习者的整个学习体系.是一 个长期的发展过程 上述以计算思维为导引的实验教学模式.是 结合程序设计基础的实验教学过程提出的.在我 校程序设计基础课程中逐步运用.为解决程序设 计入门慢的问题提供了一种行之有效的解决方 学号 姓名 性别 出生年月日 薹语 敢学 ∞∞e1令狐冲ee。ee2任盈盈0e∞e3任我行男 女 男 1983’2 2 1983。5。6 1S82’9 18 89 75 72 ee 83 T5 图3以任务驱动的实验案例 案.为后续课程打下了坚实的程序设计理论和编 以任务驱动的教学模式突出了学生的主体地 程基础 位。能够有效地引导学生从埋头编码.转为抬头思 考问题 这一过程使学生的理论知识体系实现了 参考文献: 1】耿国华.程序设计能力培养模式的探索与实践U】.中国 从树木到森林的转化.专业素养从程序员向系统 [大学教学,2009(3):30—32。 分析员的提升 『21陈杰华,程序设计课程中强化计算思维训练的实践探 4.5尊重多样化的认知过程 索【J】。计算机教育,2009年20期:84—85。 从发展综合素质的角度看,应鼓励学生间、师 生间的交流,促进学生的表达能力、沟通能力的发 munications ofACM,2006,49(3):33—35。 展。但人在不同场合、不同环境中所表现出的认知 【3]Jeannette M.Wing.Computational Thinking U】。Com- 能力和认知方式必然会有差异 这种差异也是导 学,2009(1):2-5。 致算法多样化的原因之一 有的学生善于表达和 『51何钦铭,计算机基础教学的核心任务是计算思维能力 [4】董荣胜,古天龙。计算思维与计算机方.;t-i ̄-lj]。计算机科 提问,通过讨论寻求解决方案;有的不善于表达, 的培养【I1。中国大学教学,2010年第9期:5-9。 6】杨卫光,孙健,陆斐璋。改革实验教学,适应创新人才的 喜欢通过独立思考寻求答案.例如在以项目组为 【 单位进行实验时,有些学生喜欢个人一组;也有些 培养需要U1。实验技术与管理。1999年第16卷,第4期:学生解题的思路或思维的角度可能与教学目标相 10-12。 7]Sudipta Mukherjee。数据结构(c语言版)1000个问题 偏离。对这些差异.教师应保持足够的耐心和信 【心,尊重这种差异.并担负起应有的引导作用。可 年:184。 以展开多样化的实验形式,包括课外练习、课内练 与解答[M].张长富等,译。北京:清华大学出版社,2010 『81王新宇,基于计算思维培养的计算方法教学方案研究 习、基础练习、进阶练习,还可以进行组为单位的 Ⅱ]。科教文汇,2011.10(下旬刊):4卜43。 编程比赛,展开对抗性练习。尊重不同的认知方 [91 琴,基于计算思维的任务驱动式教学模式的研究Uj。 式,可以较好地鼓励学习的信心.对学生思维的活 现代教育技术,2011年第6期第21卷:44—49。 . 跃度起到保护和发展的作用 『lo]&g,g臣,聂兰顺,徐晓飞。“大学计算机”——所有大学 生都应学习的一门计算思维基础教育课程…。中国大学 5、结束语 2011年第4期:15—20 计算思维的形成是一个长期的过程.不可能 教学.一蹴而就。仅通过一门课程的学习就构建起成熟 f41费仁元,王民,徐洪安.产品生产服务过程中的网络监 f上接第140页1 业务拓展带来的服务更新和网络升级。 参考文献: 控技术『A1.依靠科学进步,促进制造业发展,高级论坛论 文 5]徐洪安,费仁元,王民.利用ADO对象构建Labview中 …唐海娜,李俊.网络性能监测技术综述U】.计算机应用研 『的数据库访问接口U1.北京工业大学学报.2003 2. 究,2004,(o8). 6]Tcl(Tool Command Language) ̄-一种开源的动态脚本 [21陈涛.网络服务性能监测系统设计与实现U】_现代电子 【语言,通用语言。易配置、易扩展、具有柔性化。常用于单 技术,2010,(101:133—135 【3J高晓红.基于网络的智能监控系统的分析与设计【D】. 元测试.集成测试和自动化.web程序和桌面GUI应用 程序、数据库、嵌入式开发、网络、管理等领域。 吉林大学,2004,(04).