基于计算思维的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语言程序设计中可以使用,建议其它学科的教师即使是文科类的教师,在上课中也可以穿插计算思维的使用。

    

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建