您好, 访客   登录/注册

浅析基于计算思维的C语言程序设计教学

来源:用户上传      作者:

  摘要:C语言是计算机相关专业的必修基础课程,在新工科背景下,将计算思维应用到C语言程序设计教学中,有助于培养学生的计算思维意识,提高学生的编程能力。本文分析了现如今C语言程序设计的教学现状,从教学内容、教学方法和考核方式等方面提出了相关教学改革措施。
  关键词:计算思维;C语言;教学改革
  中图分类号:TP3      文献标识码:A
  文章编号:1009-3044(2020)16-0145-02
  C语言是计算机相关专业的必修基础课程,是学生接触的第一门程序设计语言课,也是数据结构、Java、数据库等课程的前导课程,因此在计算机相关专业的整个课程体系结构中占有举足轻重的作用。而计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[1]。教育是人类社会发展的永恒主题[2],计算思维的概念一经提出就备受国内外教育界和科学界的关注。国内外教育界都将计算思维推广至普通教育课程中,在很大程度上已经形成了以“计算思维”为培养目标的核心任务,以计算思维为导向进行的教学改革,自然应当将计算思维有效的融入我们的每一堂课中[3]。因此,将计算思维融于C语言程序设计教学中,有助于培养学生的计算思维意识,提高学生的编程能力。
  1 C语言程序设计教学现状
  1.1 计算机水平问题
  虽然现如今在中学基础教育阶段,学校已经开设了信息技术课, 但学生来自不同地区,受经济、地域、环境等各方面因素的影响,经济和教学条件较好的发达地区的学生计算机水平较高,有极少数学生已经具有编写简单程序的能力。而来自边远经济比较落后地区的学生,由于师资力量、硬件配置等条件的限制,接触计算机的时间很少,计算机水平相对较差。
  1.2 学生学习习惯问题
  在笔者调查中发现,约有85%的学生在课前不预习、课后不复习,仅仅靠每周短短的几节课时来学习。并且上课时,不注重记笔记。在碰到问题时,不会自己分析解决,而是网上搜索答案或抄袭。
  1.3教学方法问题
  传统的C语言程序教学采用讲授教学、案例教学、任务教学和讨论教学相结合的方法进行授课。传统的教学方法是以教师讲授教学为主,将知识点灌输给学生,学生是机械的接受,不利于培养学生的计算思维。而且以教师讲授为主进行授课,学生参与教学活动很少,就使得课堂气氛沉闷、趣味性不够,学生往往觉得乏味枯燥。笔者发现,学生在前期有足够的学习热情,实践课程也好问,但是随着教学内容的深入,教学时间的拉长,学生渐渐失去对该门课程的学习兴趣,这跟教学方法有很大关系。学生能参照案例进行编写程序,但是面对实际问题时,却没有独立思考和解决问题的能力,因此传统教学方法不利于培养学生的计算思维。
  1.4考核方式不够完善
  C语言程序设计的考核方式为闭卷笔试,不足以真正考核学生对实际问题进行算法设计和编写程序的能力,而更多的是考核学生对基本语法知识的掌握。从阅卷情况来看,虽然卷面分高,但是编写程序得分很少,因此高分并不意味着学生的编程能力好。
  2基于計算思维的教学
  2.1 补充必要计算机基础教学内容
  C语言程序设计课程的教学对象是计算机相关专业大一新生,虽然在中学阶段学习过信息技术课程,但是对计算机相应的基础知识缺乏必要的了解。比如不了解计算机如何工作、数据在计算机中如何表示和内存等相关知识。因此在讲到C语言程序如何编译并执行、数据类型、指针等知识点时,学生难以理解,因此可适当补充相关计算机基础内容,有助于学生深入理解并掌握知识点。比如在讲解C基础知识时中的C源程序需要经过编译和链接产生可执行程序,然后输出结果。简简单单一句话很抽象,学生很难理解和掌握,所以通过一个案例“编写程序,打印输出从键盘输入两个数中的最大数”从算法描述到C语言源程序到目标程序到可执行程序这一个过程逐一进行讲解,让学生对程序设计有一个宏观意识。
  2.2 强调案例算法分析
  C语言程序设计的授课会应用到很多的案例,在讲解完成基础语法知识后,再辅以案例分析帮助学生理解知识点,但是在对案例进行分析时,注重语法分析而不是算法设计的分析。课后跟学生沟通发现,仅从理解层面上来说,绝大多数学生是可以理解的当堂讲授的知识点,但是他们不理解的是为什么这个程序要这样写,即他们不知道这个程序为什么要这样设计,尤其是在实践课程中,用到的知识点知道,但是不知道该如何组织。也就是说学生缺乏计算思维,不知道如何利用C语言、计算机技术等基础概念、基础知识去对实际问题进行求解,进行程序设计。因此在讲解案例时,应该语法和算法分析并驾齐驱,更多的是让学生掌握如何从实际问题出发,分析问题,提出算法,编写程序。怎么由一个具体问题到计算机输出结果。例如讲解选择结构案例“从键盘输入3个正整数,找出其中的最大数,并输出这个数”时,不直接将程序给出进行语法分析,而是提出问题引导学生一步一步进行问题分析。分别用a、b、c三个变量表示3个正整数,Max表示最大数,提出问题:(1)如何比较这3个数?(2)如果a>b为真,接下来应该判断哪两个数?(3)如果a>b为假,接下来应该判断哪两个数?(4)如何画流程图?(5)如何编写程序?(6)是否有其他算法?通过这种方式,不仅可以让学生多参与到教学活动中,还可以培养学生的计算思维意识,建立起计算思维思考问题的方式。
  2.3 改进教学方法
  传统的教学方法存在导致学生上课兴趣下降,不利于培养的计算思维等问题。因此在教学方法改进中,应该让学生更多地参与到教学活动中来。以往布置预习、课后复习作业并没有落实到人,因此很多学习主动性差的学生不会认真预习和复习。因此对学生采取“分组预习、分组讨论、分组解题”,对每组分配不同的学习任务,由小组长将学习任务落实到各小组成员,并针对每次的学习任务,小组成员之间互评打分。同时整合教学资源,结合雨课堂或微助教等进行发布,学生可随时随地不受空间和时间的限制进行学习。
  2.4 优化考核方式
  课程考核是检验学生学习成果的有效手段。但是对于C语言程序设计课程,传统的笔试不足以考核学生的编写程序的能力。因此将传统的笔试改为机试,可以同时考核学生对基础知识的掌握和编写程序的能力。考核时,根据需要设置题型、知识点难易程度,并进行随机组卷。对于编写程序题,学生不再像笔试一样,随便写几行代码,且不注重代码风格。机试则要求学生不仅要具有严密的逻辑思维和分析问题的能力,同时还要求学生平时就要注重代码风格。学生在提交程序之后,由机器检查学生编写的程序是否合格,通过机器阅卷的学生对课程会更有兴趣。机试不仅可以避免学生相互之间抄袭,更重要的是可以体现学生实际的编程能力。
  3总结
  C语言是计算机相关专业的基础课程,也是相关核心课程的前导课程,通过增加必要的教学内容、注重案例算法分析、改进教学方法和考核方式,将计算思维融入教学中,可以培养很好的培养学生的计算思维意识、提高利用计算思维去解决问题的能力。
  参考文献:
  [1] Wing JM.Computationalthinking[J].Communications of the ACM, 2006,49(3):33.
  [2] 教育部高等学校大学计算机课程教学指导委员会.计算思维教学改革宣言[J].中国大学教学,2013(7):7-10,17.
  [3] 陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1):10.
  【通联编辑:张薇】
转载注明来源:https://www.xzbu.com/8/view-15315130.htm