您的位置: turnitin查重官网> 汉语言文学 >> 文艺美学 >C语言程序设计课程中培养计算思维案例教学法

C语言程序设计课程中培养计算思维案例教学法

收藏本文 2024-02-06 点赞:17095 浏览:72042 作者:网友投稿原创标记本站原创

摘 要:计算思维能力是未来人所要具备的基本能力之一,程序设计课程对培养大学生的计算思维能力和信息应用技能是一门核心课程。本文以计算思维为核心,介绍案例教学法在C语言程序设计课程中的应用以及典型案例的设置。
关键词:计算思维;案例教学法;程序设计
中图分类号:TP31

2.1-4

《C语言程序设计》课程是大多数高校非计算机专业必修的一门计算机课程。课程以C语言为依托,介绍程序设计的基本策略,使学生了解结构化程序设计的基本思想,掌握用计算机解题的基本思路。
计算思维能力的培养是目前国内教育界重点研究的课题。为了实现培养和训练学生的计算思维,《C语言程序设计》由于其课程的特性是培养计算计算思维的重要课程,对改善学生的知识结构、培养思维能力与创新精神其中十分重要的作用。通过课程来实现或展现计算思维在思维培养中的作用,将计算思维逐步渗透到学生的专业学习中。

1 计算思维与程序设计

1.1 计算思维的基本概念

计算思维在我国引起广泛注意是在2006年,美国卡内基·梅隆大学的周以真教授系统的提出了计算思维的概念C语言程序设计课程中培养计算思维的案例教学法相关范文由写论文的好帮手www.udooo.com提供,转载请保留.。她认为计算思维是运用计算的基础概念去求解理由、设计系统和理解人类行为的一种策略,是一类剖析思维,涵盖了反映计算机科学之广泛性的一系列思维活动[1]。
教育部高等学校计算机专业教学指导分委员会联合中国计算机学会教育专业委员会、全国高等学校计算机教育研究会召开主任(理事长)扩大会议,于2012年3月提出计算思维能力培养的几点认识,其中就指出了计算思维的重要性。随着信息化的全面深入、无处不在、无事不用的计算使计算思维成为人们认识和解决理由的重要能力之一。一个人若不具备计算思维的能力,将在从业竞争中处于劣势。计算思维不仅是计算机专业人员应该具备的能力,而且也是所有受教育者应该具备的能力[2]。
计算思维的本质是抽象和自动化。计算思维的抽象是使用符号代替实际理由中的各种变量,每个程序包括各种标识符、常量、变量、数组、函数和结构体等符号语言,这些组合在一起就构成了程序设计语言。计算思维的自动化则体现在程序的机械式执行,这也是冯·诺伊曼计算机体系的本质特征。要实现自动化,就必须要设计精确的算法和严格的程序语言体系。

1.2 程序设计课程存在的理由

一直以来,非计算机专业的计算机教育以学习基本知识、掌握基本工具为核心要求,一般不强调计算思维能力的培养。如何在十分有限的学时中既学会掌握必要的工具,也让计算机思维诸要素融入到学生的能力结构中,更好的帮助学生建立计算机理由求解意识,是对非计算机专业的计算机教育的挑战[2]。
程序设计课程的内容最能够体现语言级的理由求解策略,是计算思维能力培养的重要内容。对大多数非计算机专业的学生而言,学习程序设计的目的是学习计算机分析和解决理由的基本过程和思路,而不是成为程序员。目前在程序设计课程的教学过程中,经常会出现偏重语言而不是设计的误区,考试内容也偏重语言语法,这对学生计算思维能力的培养是非常不利的。程序设计课程的教材也存在相应理由,多数教材偏重语言本身的知识结构,详细介绍语言的语法等知识点,只能教会学生如何编写程序,不能让学生掌握用程序解决理由的策略。

2 案例教学法培养计算思维

有些学者归纳了计算思维的元素包括约简、嵌入、转化、仿真、递归、并行、抽象、分解、保护、冗余、容错、纠错、系统恢复、启发式、规划、学习、调度、折衷等。而在教学的过程中,教师不可能在讲解知识时指出某个知识点或理由属于计算思维的某个元素,而是需要在潜移默化中引导学生按计算思维的策略深思理由。培养思维能力常见的教学策略就是案例教学法。

2.1 C语言课程中的案例与计算思维

案例教学模式是一种互动式的教学策略,以案例分析为基础,解决理由为主线,教学内容围绕案例的讨论、分析逐步展开,通过对案例的剖析,激发学生的求知欲,调动学生的积极性,使学生主动地深思,让学生充分讨论并发表各自的见解,教师适时引导和评判,最后推导出结论[3]。
在案例教学中案例是基础和关键因素,教学案例的选取不是简单的举例,应该覆盖相应知识单元的知识点与技能点。更重要的是案例所反应的知识点要丰富,具有针对性、系统性和启发性。学生能够在案例分析的过程中,通过对具体理由的算法设计,体会到如何选择合适的策略描述理由,对这个理由进行建模,从而让计算机能够解决该理由。
在C语言程序设计课程中,教学的重点在于程序设计而非语言本身。程序设计解决理由的过程是理由化→抽象化→层次(模块)化→自动化→系统化。其中理由化是对具体理由的分析;抽象化是指把复杂理由按照一定的算法找到解决理由的策略;层次(模块)化是要把一个复杂理由简单化;自动化是通过程序代码自动实现;系统化是指要对运转的结果分析,通过学习、训练、反馈等方式,在时间、空间、效率上找到合适的平衡点。在此过程中可以通过流程图把整个理由解决的过程抽象出来,找到解决同类理由的策略,形成一个思维方式,这样就是一个计算思维能力形成的过程。这个待解决的理由可以通过案例的形式呈现出来。
采用案例教学法可以不拘泥于原有的以知识点建构的课程体系,教师引导学生在理由的求解过程中,由案例引出知识点,然后对知识点进行详细的介绍。

2.2 C语言课程典型案例培养思维能力

(1)案例贯穿教学始终
在采用案例教学的课堂中,从第一堂课开始就用案例引入程序设计思想,同时也让学生了解程序设计及编码的过程,给予他们最直观的感受,增加学生对程序设计课程的兴趣。对于非计算机专业的学生来说,如何将思维的过程转化为计算机程序是一个难点,这就需要从第一节课开始就训练这种能力。
在第一堂课中,可以给出一个简单的例子,通过分析人脑深思理由的过程,转化为计算机解题的步骤,再演示如何将分析的过程用C语言程序来实现,从而引出程序的基本组成和框架。例如,给出一个简单的案例,将华氏温度转换为摄氏温度。首先分析如何深思这个理由:解决这个理由需要通过转换公式来进行运算,运算中用到数据为华氏温度。再确定解决理由的步骤:首先得到华氏温度的值,再根据公式进行数学运算,运算的结果再输出显示。然后在C语言的开发环境中写入代码,进行编译运转,屏幕上显示输出结果。通过这个案例可以引出程序设计中的制约结构,该案例为顺序结构,学生初次接触很容易理解。还可以引出分析理由的过程:分析理由中涉及的数据、解决理由需要的制约结构、程序的预期结果。通过这个例子,学生在第一节课就可以看到程序是如何编写、编译,最终运转得到结果,既了解了理由的基本分析过程,也了解了程序的基本框架,可以让他们能够尽早的动手编程。
(2)尽量选择生活化的案例
在很多的教材中,很多例题为数学公式运算等比较枯燥的内容,理由的本身不易让学生产生强烈的学习兴趣。在教学中,尽量选择一些生活化的案例,除了能够吸引学生注意力外,更重要的是能让学生体会到在日常生活中如何以计算机解决理由的策略来解决实际理由,这个过程实际上也是计算思维培养的过程。
例如,在学习数组时都会介绍二分查找的算法,常见的例子是给学生一个已排序的数组,在其中查找其中某个数的位置。这时可以引入一个案例:有电视节目要求选手竞猜某件商品的,如果猜中商品就归该选手所有,请问如果你是该选手,采用什么样的策略能较快的猜到商品?这个电视节目很多学生可能都看过,通过这个案例能够充分调动学生积极性进行深思。教师需要引导学生将深思的过程逐步细化,最终确定解决理由的算法。
检测定商品的是1元到1000元之间的整数,首先猜为500元,根据提示的结果(高或低)能够快速去掉其中一半的区间。然后再在剩下的区间中猜中间,再根据提示结果缩小一半的区间,以此类推,最终能够确定商品的。这个分析的过程就是二分查找的算法思想,确定算法后,分析其中的数据与制约结构。运算的对象为1到1000之间的数,用数组表示,算法中要重复进行取中间、确定新的区间的步骤,这个过程为循环结构。然后再介绍如何用C语言来实现分析的过程。
通过这个生活化案例,训练学生如何将生活中的理由用计算机来解决,既提高了他们的学习兴趣,也锻炼了思维能力。
(3)案例选择由简到难,具备可扩展性
有一些案例可以贯穿教学的始终,随着教学内容的增加逐步丰富。这样可以让学生在掌握前面案例的基础上,为后续内容做铺垫。
例如在介绍分支结构时,用求两个数最大(最小)值的案例介绍if-else语句。再引入一个案例求三个数的最大(最小)值,介绍嵌套的if语句。对于多个数(如100个数)求最值,制约结构仍然为分支结构,但数据结构要采用数组,从而引出数组的概念。随后,在数组求最值的基础上,引出排序的理由,要求对数组的元素从小到大排列。这个过程要在数组中找最小值,将最小值与第一个数进行交换,再在剩下的元素中找最小值进行交换,以此类推,从而对所有元素进行有序排列。在数组有序的基础上,再引入前面介绍的二分查找法的案例。
还可以设置案例根据教学内容的推进,提出不同的要求,让学生围绕案例循序渐进的学习,便于思维训练的连贯性。
例如案例:在屏幕上输入通讯录中的联系人信息,然后再显示出来,其对应的知识点如表1所示。
表1 案例及对应知识点
案例描述知识点
在屏幕上输入一个联系人信息:姓名、手机号,并输出变量、输入/输出函数
输入10个联系人信息(姓名、手机号),再输出数组、循环
输入10个联系人信息,并保存在磁盘上文件

3 实验环节中培养计算思维

程序设计课程除了在教学中采用案例训练学生思维能力外,也要重视上机实践环节。让学生在实际操作中强化计算思维。

3.1 实验内容体现计算思维

学生在刚开始学习时是以模仿为主,但随着学习内容的深入,实验内容不应该只是课堂内容的简单重复,要给学生提供思维创新的空间。可以在课堂上给学生留下一定的理由,让他们自己分析总结理由。也可以给出一些案例的部分解决办法,引导学生的思维过程,将解决办法补充完整。还可以给出错误的代码,让学生查错纠错。通过这些不同方式的思维训练,可以给于学生提出新的方案和排除错误的满足感,从而激发学习的积极性。

3.2 增强实验的综合性与趣味性

与课堂教学一样,实验的案例同样尽量选择生活化或实际理由。例如计算购房贷款、计算分段电费等理由。实验案例选择综合性较强的理由,让学生能综合应用所学的知识,进行系统思维的训练。
例如在介绍递归算法后,让学生自己分析影片《盗梦空间》中的情节,其中进入不同层次的梦境其实就是递归的过程。可以设置一个实验内容,让学生分析其中的递归过程,并模拟表现出来。

3.3 规范上机过程

在实验中,案例的实现要求学生都按照统一的流程进行:分析理由—>设计算法—>编写实现—>上机调试。引导学生的思维过程和编程习惯,逐步提高动手能力。
在上机调试完毕后,还可以进一步引导学生对程序进行优化,深思是否有其他解决办法,让学生体会思维不是固定模式的,不同的思维方式解决理由的效果是不一样的。
例如在解决一些穷举理由时,简单的方式是采用多重循环来完成。如理由:男人、女人、小孩来搬砖,1个男人搬2块砖,1个女人能搬1块砖,2个小孩能搬1块砖,请问10个人搬10块砖,应该怎么分配?解决这个理由最简单的方式是采用三层循环,分别表示男人、女人和小孩的人数,判断人数之和是否为10,对应的人是否能搬10块砖。
学生解决这个理由后,让他们计算程序运转的次数,再提出是否有其他策略能减少运转次数。学生就可以考虑能否用两层循环表示男人、女人的数量,小孩的数量用10减去两个循环变量就可以得到。这样循环的执行次数就大大减少了。
4 结语
计算思维能力的培养C语言程序设计课程中培养计算思维的案例教学法相关论文由www.udooo.com收集是经过长期学习训练、潜移默化中形成的能力,程序设计基础课程中程序的设计过程就是解决理由策略、思维能力形成的过程,因此程序设计课程是计算思维能力培养重要的基础课程,可以采用合适的教学策略来增强大学生计算思维能力的培养,为社会的发展起到积极的推动作用。
参考文献:
[1]Wing J M.Computational Thinking[J].Communications ofthe ACM,2006,49(3):33-35.
[2]李晓明,蒋宗礼,王志英.积极研究和推进计算思维能力的培养[J].计算机教育,2012(5):1.
[3]丁海燕,袁国武,周小兵,白孟尧.高级语言程序设计案例式教学模式的探讨[J].计算机教育,2011,4:65.
作者简介:郑爽(1982-),女,安徽人,讲师,硕士,研究方向:信息安全;王全民(1963-),男,山西人,副教授,博士,研究方向:信息安全;李秀荣(1971-),女,吉林人,工程师,硕士,研究方向:信息安全。
作者单位:北京工业大学计算机学院,北京 100124
基金项目:“以计算思维能力培养为核心的理工类专业程序设计课程改革研究”,项目编号:DJG-1-2,教育部“大学计算机课程改革”项目子课题。

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号