以计算思维能力培养为核心的案例式程序设计教学探索与实践

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:A467329555
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:计算思维能力是高校大学生尤其是工科类学生的一项不可或缺的素质,该项能力的养成也有赖于教师在授课过程中的刻意引导和强化训练。笔者结合所在独立学院工科类专业开设的程序设计类课程的教学现状,探讨了在该类课程中融入计算思维能力训练的案例式教学法的应用和实践过程。通过创设形象生动的情景案例,使学生更易于理解和分析问题;通过对简单案例改造升级,提升难度,强化学生分析问题、设计求解过程的抽象思维能力;通过设计综合型应用案例,加强学生对软件项目开发的整体性思维锻炼。实践表明:教师通过优化课程教学案例、强调计算思维训练,对学生的计算思维能力提升及运用编程思维求解问题,起到了积极的促进作用。
  关键词:计算思维;能力培养;程序设计;案例式教学
  中图分类号:TP3文献标识码:A
  文章编号:1009-3044(2021)18-0155-03
  开放科学(资源服务)标识码(OSID):
  2006年3月,美国卡内基·梅隆大学周以真(Jeannette M. Wing)教授在《Communications of the ACM》杂志上发表论文,首次提出“计算思维(Computational Thinking)”这一概念进行定义:“计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。”并基于这一定义给出了一系列详细观点。一些学者结合计算机学科对周教授的观点进行简化,提炼为“问题分解、算法、抽象和自动化”,进一步凸显了计算机学科中“计算思维”的特点。
  21世纪初,我国计算机学科的教育专家开始倡导在高等教育阶段的计算机基础课教学中开展计算思维教育。不少教学研究者也将计算思维引入计算机学科的一些课程中,重点研究计算思维在計算机教育领域的应用,如:在教材编写中,《新编计算机导论:基于计算思维》(郑阿奇著,电子科技大学出版社,2013)、《数据库原理与应用(SQL Server2012)——基于计算思维》(刘征海主编,上海交通大学出版社,2018)等教材,充分展示了基于计算思维的课程教材建设的新思路;也有许多教学工作者积极探索并将计算思维融入课程教学和资源建设的实践中,形成了自己的研究成果,如:牟琴老师《基于计算思维的探究教学模式研究》[1]等基于“计算思维”的系列成果;姚天昉老师的《在程序设计课程中引入“计算思维”的实践》[2];叶军老师《以培养计算思维能力为导向的“C语言”教学资源设计》[3]等。可见,在计算机教育教学领域,“计算思维与课程教学”“计算思维与教学改革”等一直是计算思维研究的关注热点[4]。
  1独立学院程序设计课教学现状分析
  目前,在不同层次的高校,计算机程序设计课程是工科类专业普遍开设的一门通识教育课,同时也是最能体现信息素质教育和计算思维能力培养的课程之一。该课程开设的主要目的是通过课程教学,使学生学习、掌握和运用计算思维中的抽象、递归、复用等思维方法,进行问题分析和程序设计,进一步利用计算机来解决实际工作或工程方面的问题。在教学过程中,通过强化计算思维训练,促使学生逐步形成“分析”问题的整体性思维,能够“设计”问题的求解过程,并“运用”计算机语言和软件等相关技术去解决实际问题,应作为该类课程的核心教学目标。
  在程序设计学习中,如果将学生的编程行为分为两个阶段,则“知道与理解”构成编程行为的基础性认知(属于低阶思维层次),“分析与应用”是编程行为的核心(属于高阶思维层次)[5]。笔者结合所在独立学院该类课程的教学现状,观察发现:在编程课中,多数学生能够通过学习,“知道与理解”编程语言本身的语法、语句结构,具备较为简单的算法思维,而在“分析与应用”的高阶思维层次需要花费更多的时间进行思考和求解,对一些较复杂或有些许难度的问题可能表现得无从下手。究其原因:一方面,由于学院对部分通识课程压缩学时,教师难以在有限的课堂教学时间里对学生进行计算思维的充分训练和强化;而另一方面,教师所采用的教学思路教学方法也非常关键。目前,多数学生在编程学习上属零基础,对于编程语言本身的学习和运用有一个适应过程,而教师在授课中若着力于编程语言本身、按照一般教材的系统性知识结构进行教学,则会感觉课时更加不够用,而学生则会感觉细节太多、造成“编程真复杂”的不良印象,从而降低学习课程的兴趣,有些学生则因课程学习后不能解决问题、参加编程竞赛与奖项无缘、连考级也难以过关等种种困难,吐槽“编程课难学”“学了没用”……教学相长无从谈起,教学效果难以评价。
  为此,笔者结合多年编程教学经历及学院的课程教学现状,不断改进教学思路和教学方法,研究以“实用性”和“应用性”为目标,采用案例教学法,强化问题分析、过程设计和编码求解各环节的训练,在案例求解中加强对语言本身运用的同时,重点强化学生的计算思维训练。
  2以计算思维能力培养为核心,优化教学案例设计
  在程序设计课中,我们的教学目标应着眼于让学生在发现问题、分析问题和解决问题的过程中强化计算思维,可采用的教学方法和策略也有多种。笔者以学院开设的“计算机语言C”课程为例,以案例式教学法为基础,突出知识的“实用性”和“应用性”,在案例设计上主要采用了如下策略:
  2.1深入浅出,创设情境化案例,使待解决的问题易于理解、便于分析
  创设情境化案例的目的,是将编程问题和生活中的一些生动场景结合起来,增加学生学习的兴趣,通过对应用场景模拟再现及分析,让学生自行寻找解决问题的思路,并梳理组织为求解步骤,形成案例问题的完整解决方案。然后,再编制程序代码进行验证。在案例求解过程中,若遇到需用的新的知识模块或知识点,则可顺势引入学习并及时运用。
  例如,在学到“选择结构”及“循环结构”这两个模块时,笔者联系到生活中可两人一起玩的小游戏:从一组扑克牌中随机抽取一张牌,让对方猜是哪张牌?假设出牌人是甲,猜牌人是乙,将游戏设置为4种场景,最终目标是用程序来模拟游戏过程:   (1)由甲从一组牌中随机抽一张,乙来猜测,仅给乙一次机会;
  (2)甲抽牌,乙猜牌,可给3次机会,乙猜对或机会用尽为止;
  (3)甲抽牌,乙猜牌,不限猜测次数,乙猜对或不想再猜为止。
  (4)将“甲出牌、乙来猜”升级为多轮游戏。
  首先,第(1)种场景的关键信息:甲出牌、乙猜测、一次机会。在这个游戏中,乙只能猜一次,可能猜对或猜不对,这是需要判断的,则使用分支结构即可解决。学生在分支结构学习基础上能顺利解决。
  第(2)种场景:甲出牌、乙猜测、最多可猜3次,此时乙每猜一次则需判断是否猜对并作相应的处理。此种场景,让学生自行分析选择使用何种结构进行求解?显然,需要处理乙可能多次猜测及判断,循环结构是最佳处理方式,且需要进行有限次循环控制。通过引导学生分析一次猜测过程中的需要进行的操作,将第(1)种场景的分支处理步骤引入,进而设計求解步骤编制程序并验证。
  第(3)种场景下,关键信息提取:甲出牌、乙猜测、无限次机会。此时,重点引导学生思考分析两个问题:一次猜数的过程中可能发生哪些情形,分析不同的情况下怎样进行处理?无限次机会情况下,游戏怎样结束?比如:在用户猜对的时候,进行提示并中断循环;在用户猜错的时候提示“是否再猜一次?”并需要用户选择,如果继续猜,则进入下一次循环,如果不继续猜则中断循环。并启发学生进行求解步骤的设计并编制程序验证。
  多轮模式的游戏,则需要再加入外循环控制,问题可交给学生讨论分析和设计。
  情境化案例法的策略运用有助于提高学生学习的兴趣和积极性,同时可在生活化场景化案例模拟中强化问题分析与设计思路,联系课程的知识点并加以运用,也能快速促进学生对所运用的知识模块及知识点的理解和吸收运用。
  2.2以简单案例为基础,改造案例升级难度,实现抽象思维训练螺旋式上升
  素数判断问题是编程中的典型案例,素数问题本质上是物质的几何学问题,如著名的黎曼猜想、孪生素数猜想、哥德巴赫猜想均涉及素数,这些问题既有趣也值得探讨,运用编程方法验证或求解,也有助于抽象思维能力的锻炼。在C语言课程教学中,笔者以最基本的素数判断案例为基础,将案例升级改造成不同版本,做了系列素数问题的探讨,从简单到复杂,举例如下:
  (初级版)案例1:找出[m,n]范围的所有素数。
  (初级版)案例2:找出[m,n]范围的孪生素数对。
  (中级版)案例3:在[m,n]范围中,找出长度为3的连续素数等差序列。
  (高级版)案例4:在[m,n]范围中,找出最长的连续素数等差数列。
  案例1重点引导学生明确“需要在指定的整数范围内循环取数,并判断取到的数是否素数,是则输出”的求解思路。
  案例2的目标是要找“孪生素数对”,若整数x和x 2均是素数,则这两整数即构成孪生素数对,这也是该问题的切入点。可引导学生自行分析并设计求解过程,在[m,n]范围内取数置于变量i中,判断条件isPrime(i)
其他文献
摘要:2020年国内的疫情对高校的教学秩序产生不利影响,学生前期不能到学校参加正常的学习。Java课程由理论和实践两部分组成。为了克服疫情对Java课程教学的影响,Java理论课程采用线上教学模式;Java实践课程由于不适合线上教学,继续采用传统的线下教学模式。但是,线上教学作为高校出现的新型教学模式,还存在教学效果不佳的问题,影响后期的实践课程教学。线上理论课程和线下实践课程产生时间差,学生对理
摘要:在课程教学的过程中如果想要更好地推动教学信息和信息技术的结合,就需要依托智能化的教学平台,还要加上建立专业的教学资源库来有效地实现优质的教学资源的分享,进而让数据库原理与应用可以完成线上和线下的混合式教学。在整个的教学过程中,学生是学习的主体、教师是整堂课的主导。学生可以通过线上的学习来完成知识的获取,实现知识的传递,在线上完成学习,在线下检测学习的效果,课后完成线上的拓展以及个性化的辅导,
摘要:为了进一步提高教学质量,将信息技术与教育教学深度融合,以学生为中心,对《软件工程导论》课程探索基于Spoc线上线下混合的教学模式,提出该课程改革要解决的重要问题,并依托中国大学Mooc构建spoc课程,借助课堂派、QQ等多元化手段组织实施教学,并对教学改革成效进行分析,突出学生学习的自主性,提高就业竞争力。  关键词:Spoc;混合式教学;软件工程导论;案例教学;教学改革  中图分类号:G6
针对大创项目实践中选题有效性欠佳、完成质量有待提高,以及实验课程教学中学生学习动力不足等问题,借鉴OBE教育理念,以项目选题方向为基础,探究将“大创项目”实践与相关课
摘要:统计学是信息管理专业的核心课程,涉及统计学、计算机、管理学等诸多学科,具有鲜明的跨学科特性。部分专业负责人对信息管理专业统计学课程的专业特性认知不足,导致经管专业统计学课程师资队伍先天不足,进而引发教师对该课程与相关学科的关系认识不足,指导学生进行统计实践的能力不足,从而影响该课程的教学效果和教学质量。针对以上问题,本文从遴选具有交叉学科背景的教师、完善教师跨学科专业知识结构和教师应主动钻研
摘要:文章通过对高职院校学生的生源现状、学业水平调研分析,针对目前大学计算机基础课程教学中存在的问题,结合作者自身长期的实践教学经验,总结出适合教师教授和学生学习的教法和学法,同时为促进学生的学以致用,推荐采用线上线下相结合的方法,利用翻转课堂的教学模式,结合完整项目设计,以任务驱动的教学策略,给信息时代高职院校大学计算机基础教学一条行之有效的路径。  关键词:高职院校;教学方法;项目教学法;完整
摘要:党的十九大报告指出教育信息化是实现教育现代化的必然途径。当前是信息化时代,探索信息化与教学的深度融合是当前教育事业的重点和热点课题,对深化教育改革具有重要意义。该文以湖州师范学院为例,立足地方本科高校特征,分析高校信息化建设存在的普遍共性问题,提出解决策略途径。  关键词:信息化建设;教育现代化;智慧校园  中图分类号:G642 文献标识码:A  文章编号:1009-3044(2021
摘要:众所周知,实现“双万计划”的关键点和落脚点在于专业建设和课程建设。2020年突发的疫情凝聚了更加广泛的共识——在线课程及其资源的建设尤为必要。然而,传统的在线教学资源存在着自身的各种问题,而“闯关式”教学模式的独特优势,使其对促进提高教学质量有着较强的作用和意义,文中基于“闯关式”教学模式的独特优势,给出了构建“闯关式”Java类课程教学资源的研究内容、研究目标和拟解决的主要问题,为后续实际
摘要:伴随现代互联网信息技术的迅猛发展,网页设计的专业性越发提升,已经成为炙手可热的行业,并且市场对相关人才的需要也正在飞速提升,但实际情况却是高职出身的网页设计人才的就业率明显较低,这和高职教育单位的教学工作不无关联。所以这就要求相关网页设计与制作课程教师能够充分贴合学生的实际需要,有效增强学生的综合素养,以此来培养出更多符合社会需求的人才。在经历数年教学实践后,发现混合式教学在网页设计与制作课
摘要:随着科技的发展和壮大,我国的各项事业获得了新的发展契机,在新时代的背景之下,我国的教育事业也开启了新的模式。当前计算机基础课程已经成为高校课程改革的重点任务,计算机基础课程的教学改革存在着多种方式,其中,慕课就是一种顺应时代而兴起的课程教学方式,这种教学方式可以有效利用信息技术的开放性特点,对于高校计算机基础课程的改革有着极为重要的意义。  关键词:慕课;课程改革;计算机基础  中图分类号: