基于计算思维的C语言程序设计教学探索
欧莹元+张继燕+王燕
摘要:文章根据作者教授C语言程序设计过程中学生学习遇到的障碍,提出了在教学中加入计算思维进行授课。并用实际案例来讲解了计算思维在教学中的应用,然后总结了C语言程序设计的一般思路,并对教学同仁提出了自己的建议。
关键词:计算思维;教学改革;教学设计;程序设计
1问题的提出
C语言是大学理工类必修课程,对于计算机专业来时更是基础课程,它是后继课程数据结构、算法分析等前驱课程。但是对于刚接触计算机的大学新生来说,学习C语言课程有一定难度。C语言涉及的规则与概念相对较多,需要一定的理解力度,并且C语言程序设计语句使用形式比较灵活,非常容易出现错误。通过时间教学发现,在学习课程前面的语法规则、变量表的时候初学者能跟上进度,但一旦学习后边比较复杂的知识章节时候就及其困难。甚至有学生C语言学习完成后,考试成绩非常好,但是要用C语言解决一个实际问题时候就无从下手,没有清晰的程序设计思路与合理的解决方案,总之学生在学习程序设计时,有两种情况,一种是面对繁杂的知识点无从下手,脱离的程序设计的思维,第二种是即使记住了很多知识点,仍然不知道灵活使用,不知道在什么时候用什么知识去解决什么问题。追究学生的这些问题,说明学生学习思维的僵化,那么启发学生使用正确的思维模式来学习,比仔细分析,详细讲解知识点更为重要。
2解决的办法
而计算思维就是帮助学生降低程序设计的难度,计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为,它包括了涵盖计算机科学之广度的一系列思维活动。所以在平时的教学中,教师要注重培养学生的计算思维,让他们从实际的问题中去思考,不要着手就考虑具体的语法,先分析实际问题的解决办法。例如,要录入一个班级N名同学的5门课程的成绩,求出每位同学的平均分,然后对全班同学的排除名次,并把成绩单提供给学校存档。
计算思维就是通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个我们知道怎样解决的问题。首先要分析问题,要分析出我们要做什么工作,分析上面问题,细化我们要做的工作。
(1)获取全班同学的5门课程的成绩。
(2)求每位同学的平均分。
(3)排名。
(4)输出成绩单。
然后,根据细化后的工作,再逐个击破,对于输入全班同学的5门课的成绩,我们需要做到以下几点。
首先要选择用什么样的数据结构来存放学生的成绩,有多名同学,多门成绩,最好是选用结构体来定义学生的类型,然后用数组来存放多名学生信息。
结构体的定义:
确定先录入全班同学的一门课的成绩,再录入第二门课的成绩,以此类推,还是,按照同学,先录入一个同学的5门课成绩,再录入第二个同学的5门课的成绩,以此类推。
不管(2)中要用那种方法录入多名同学的多门课程的成绩,都需要用到循环,而且是双重循环。
那么分析(2)中的第一种录入方法,按照课程数输入每位同学的成绩,我们用for循环来接收数据:for(int
i=0;i<5:i++)
for(int j=0;j 分析(2)中第二种录入方法,按照学生数来输入每门课程的成绩,我们用for循环来接收数据:for(int i=0;i(N;i++) for(int j=0:j<5:j++) 分析这两种录入的方法,第一种,我们要求平均值,需要在录入完成以后,再写一个循环,来专门求平均值,第二种,我们在录入的时候,就可以求平均值,分析的算法的执行效率,选择第二种,下面给出代码: 此处是用数组和指针结合来使用,解决了输入的问题,并且一并把求平均分的问题也解决了。其实,根据实际情况,若数据较少且变化少,此处可以只使用数组来解决,若是数据变化较多的大量数据,此处可以用链表实现。 此处就是计算思维的应用,我们从分析了多种解决问题的方法,然后比较,不断的细化,不断的转化,不断使其简单,用最为简洁,明了,有效的方法来解决问题。 然后是排名,排名实际上就是排序,是按照平均分降序排序。解决排序的算法有很多种,有冒泡法,快速排序法,插入排序,选择排序等等一共有八大排序方法。根据每种排序方法的优缺点,我们分析,在解决这种小型数据的排序问题上,可能最为简单的排序方法,反倒最有效。选择了冒泡法来实现排序。具体的冒泡法排序的算法到处都是,此处不在赘述。 排名完成以后就是输出成绩单,输出成绩就按照排序完成后的数据,按顺序输出,此处也不做赘述。 现在,我们来整体上分析这个例子,我们来整理下思路,实际上这个问题,我们只用了四步就完成,第一步是确定数据结构,第二步是输入方式,第三步是运算操作,第四步就是输出。 3问题的归纳 由此我们可以推广到所有的实际问题到程序设计的转化,是不是都可以用四步来完成,第一步分析数据,我要解决的问题,需要用到哪些数据,要用什么样的数据结构来实现我要解决的问题。 第二步:我们已知的条件和数据是什么,我要用什么样的方式来输入我需要的数据。 第三步:此处是问题的关键,我要解决什么问题,我要用什么方式解决这些问题,归结到程序设计里面,就是不断的用顺序,选择,循环三种结构的语法来解决问题。此处重要的是选择合适的算法,来快速有效的解决问题,解决问题的方法,往往有很多种,我们可以一种一种比较,筛选,从中选择出最适合你的方法。然后才是我要解决问题需要用到哪些语法,语法的格式是什么。 第四步:输出,我们通过程序要解决什么问题,怎么查看问题的解决,就是通过输出,那么以什么方式输出,输出的格式,是这里要考虑的问题。 4结语 在平时的教学中,不断地把计算思维用到教学的方法里面,学生潜移默化地接受计算思维的方式,在解决实际问题的时候,就会自然运用,不会再死记硬背课本的知识。此种方式不仅仅在c语言程序设计中可以使用,建议其它学科的教师即使是文科类的教师,在上课中也可以穿插计算思维的使用。