软件工程专业C语言程序设计教学与考试改革研究

来源 :计算机时代 | 被引量 : 0次 | 上传用户:tielian77
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: 传统的C语言程序设计教学存在不足,不仅影响了本门课程的教学质量,还影响了后续语言类课程的学习。为了改善该课程的教学效果,提出从教学质量控制、教学互动、代码规范和考试等方面进行改革的措施。实践结果表明,这些改革措施明显改善了C语言程序设计课程的教学效果。
  关键词: 软件工程; C语言; 教学改革; 考试改革
  中图分类号:G642 文献标志码:A 文章编号:1006-8228(2015)06-68-03
  Abstract: There are drawbacks in the traditional teaching of C language programming, which not only affect this course teaching quality, but also have negative effect on the following language courses. In order to improve the teaching effect, this paper proposes the reform measures to teaching quality control, interactive teaching, programming specification and testing. The practical results show that the reform measures improve the C language programming teaching effect significantly.
  Key words: Software engineering; C language; teaching reform; Examination reform
  0 引言
  软件工程专业是一门实践要求非常高的专业,该专业的学生要求在毕业时即可达到软件从业人员所需的软件开发、项目管理的能力,因此,软件工程的教学质量必须得到控制和保证。为此,教学人员从多个方面探讨提高教学质量的途径。邓泽林提出建立教学团队来提高语言类系列课程的教学效果,并深入探讨了教学团队的创建、教学团队的提升等问题[1],同时,他提出从大型软件项目实践、项目管理等方面提高软件工程专业学生的实践能力[2]。周波提出了本科院校学生软件工程能力的评价标准,更好地评估学生的实践能力[3]。
  软件工程专业学生的实践能力主要体现在应用程序设计语言进行软件开发的能力,而C语言程序设计是软件工程专业所有语言课程的基础,该课程的教学效果影响到Java语言程序设计、C++语言程序设计、C#语言程序设计等课程的教学质量,最终关系到了软件工程专业学生的专业素养和求职就业。本课程的教学人员对提高C语言教学效果进行了研究,钟美提出以培养应用人才为目标的C语言教学方法[4],但志平提出改善地方高校C语言教学的改革措施[5]。这些方法和措施尚未探讨教学质量控制、编码规范等方面,对于提高学生的专业素质意义有限。为此,我们提出了教学过程质量控制、师生互动、编码规范和上机考试等多个方面的教学与考试改革措施,以提高C语言教学质量和学生的动手能力,并为后续课程的学习打下良好的基础。
  1 教学中的问题
  1.1 教学只注重课程的讲解,不注重教学过程的质量控制
  传统的教学以课程内容的讲解为主,通过讲解变量、循环、数组、指针等内容,并结合一定的教学案例来推进教学过程的实施。这种传统的教学方法没有考虑到本阶段学生的特点,往往造成教学效果差,教学质量难以控制。C语言程序设计课程在大一新生中开设,许多学生缺乏程序的思维和一定的动手能力,学生难以跟上教学进度,造成一定数量的学生对学习语言失去兴趣,从而影响整个专业课程的学习。
  1.2 教学过程缺乏有效的互动
  C语言程序设计的教学过程中主要使用PPT来讲解,案例程序也通过PPT展示,甚至包括程序运行结果也以截图的形式在PPT中显示。虽然在PPT中可以添加很多的动作,动态地标注、显示程序的运行过程,但这种方法以投影为中心,缺少与学生交流的环节,加上程序类课程相对枯燥,以致学生难以集中精力做到全程听课。
  1.3 代码编写规范强调不够
  编码规范是软件专业学生必须要牢记并遵守的,良好的编码规范不仅能体现软件从业人员的素质,而且使代码有更好的可读性,更容易被别人所理解和交流。该课程的讲解主要以编写简单逻辑来解决一些日常问题、数学问题,编程的环节侧重于算法的实现,往往忽略了编码规范。
  1.4 考试以笔试为主,难以检验学生的动手能力
  传统的C语言程序设计课程考试以笔试为主,考查学生对C语言基本的语法、简单逻辑编写的掌握情况。这种考试机制脱离了程序语言的实现介质,即计算机。虽然在试卷中也可以用编程题目来考查学生的编程能力,但在纸上写程序与在计算机上写程序有本质的不同。在纸上写程序只需要写出大致的逻辑即可,而在计算机上写程序不仅要写出正确的代码,而且需要调试和跟踪代码,最终保证程序的正确执行。因此,笔试并不能很好地检验学生的动手实践能力。
  2 教学改革措施
  2.1 加强教学过程的质量控制
  C语言程序设计课程是一门实践性强的课程,仅通过做一些常规练习无法达到教学质量监控的目的。为了更好地控制教学质量,需要从学生语法规则的掌握到动手编程这一系列环节进行掌握和跟踪。为此,我们开发了一套在线作业系统用于教学质量的控制。
  ⑴ 作业题库的建设
  C语言程序设计的任课教师根据自己的经验和理解来搜集和设计C语言题目,包括基础知识的题目和编程实践的题目。基础知识的题目主要用于C语言知识点的训练,包括填空题、选择题、判断题和程序阅读题;编程实践的题目主要用于编程能力的训练,这类题目需要学生对问题进行正确分析、设计算法、编程并运行,最终得到结果。教师在给出题目时,需要提供测试数据和对应的结果。   ⑵ 作业的布置与批改
  教师可以根据每次课的教学大纲、课程内容,从作业题库中选择一些填空题、选择题、程序阅读题、编程题来建立课程作业供学生在课外完成。学生在规定的时间之内完成作业后提交作业,系统根据教师预先设定的答案进行自动批改,形成每个学生的作业记录。如果学生在规定的时间之内没有完成作业并提交则失去本次作业的记录。教师通过查阅部分学生的解答来掌握学生对相关知识的掌握情况,特别是需要整理学生所犯的共性问题,并有针对性的开设习题课进行解答。
  ⑶ 配套政策
  为了使学生重视平时作业的完成,课程的期末成绩将考查平时作业的情况。如果学生没有提交作业的次数在30%以上,则平时成绩计0分,其他情况按照提交作业次数和作业得分根据一定的公式进行计算得到学生的平时成绩。这种策略的主要目的在于督促学生跟着教学进度进行学习和训练,不至于严重滞后于教学进度而失去学习的兴趣,可有力地保证教学质量。
  2.2 加强教学过程中的互动
  课堂教学应该在一定程度上脱离PPT的教学,这样才可以调动学生的积极性。加强师生之间的互动可以结合本课程特点进行。在讲解课程知识点后,配以适合的案例进行教学,这些案例都是需要编写C语言程序来实现的。此时,编程实现的环节不要通过PPT展示,而要在教师的计算机上动手编写并运行得到结果,这样可以改变教学节奏,吸引学生的注意力。C语言课程案例程序的一大特点是代码量少,一般在20~30行之间,适宜在课堂上完成。
  教师在编写程序的过程中,可以向学生展示编程中需要注意的问题,同时,进一步讲解C语言的语法和基本知识点。教师在编写程序的过程中难免会犯小错误,或者是有针对性的故意犯一些学生经常犯的错误,在编程后的编译运行时会有错误报出,这时对于提高师生交互是很好的机会。从学生的角度来说,他们的编程往往会有很多错误,编译时会出现大量的错误提示。此时,学生可能就比较迷茫,不知道如何定位并解决错误。因此,当老师也出现错误,而且是学生经常遇到的错误时,学生往往是比较兴奋的,希望能知道老师是如何处理错误的。从老师的角度来说,真实地反映程序编写、编译的过程,展示程序错误的发现、定位、解决的方法,能够更快地提高学生的动手实践能力。面对错误,教师还可以引导学生参与程序错误的解决,消除学生对程序错误的恐惧感。
  在解决程序错误时可以参考以下步骤。首先,教师要把所有错误信息读出来给学生听,因为一般编译出来的错误是用英文写的,而且有些单词学生不熟悉,因此,老师需要指出错误是变量重定义、变量没有定义、还是其他错误;然后,指出核心错误的位置,教师要告诉学生程序报出很多错误信息往往是由一个小错误导致的,因此,老师要指导学生学会确定引起其他错误的核心错误;最后,在源程序中找到错误的位置,修改错误并重新编译,得出运算结果。
  这个错误处理过程是针对简单语法错误的处理方法,如果程序中出现了逻辑错误,即程序编译正确,但运行结果不是预期结果,此时,错误的处理方法更为复杂,可能需要重新检查程序逻辑,并使用编译环境进行程序中可疑变量的监视,通过观察变量中的数值在程序运行过程的变化来确定错误。
  通过实地编写程序并调试,发现和解决程序错误,最终得到正确的计算结果,不仅能使同学更好地掌握程序编写的方法,而且还能更好地与学生进行互动,提高教学效果。
  2.3 强调代码规范
  有些老师在教学的过程中特别是演示程序时,注重于解决问题而忽视代码规范,甚至是自己写程序也是这样,没有代码规范。虽然遵守代码规范并不能改善程序的性能,但遵守代码规范能够使程序具有更好的可读性、可维护性,是软件代码实施过程中软件从业人员良好素质的重要体现。改善代码规范可以从以下几个方面进行。
  ⑴ 适当的缩进
  每一行代码不要顶格书写,而要根据情况缩进。具有良好缩进格式的代码不仅能少犯语法错误,还能够使阅读者快速掌握程序内容。
  ⑵ 适当的空行
  函数与函数之间增加必要的空行,使得程序构成一目了然。
  ⑶ 适当增加代码注释
  程序中函数的开头最好加上注释说明该函数的作用、参数的意义,在函数中重要逻辑的部分加入注释说明该逻辑的主要思路、算法。
  ⑷ 代码块要用花括号界定
  代码块尽量使用花括号来界定代码范围,即使代码块里只有一行代码,这样可以提高代码的可阅读性,防止阅读者误解程序。
  ⑸ 变量和函数的命名
  尽量使用多个字母来命名变量和函数,使得程序阅读者通过名称即可大致了解变量的意义、函数的作用,提高程序的可读性。
  通过编码规范的强调和实施,使学生认识到软件开发的专业素质,对于提高学生的专业素养具有潜移默化的作用。
  2.4 上机考试
  上机考试采用在线考试的方式进行,考试环节包括如下几个部分。
  ⑴ 试题库的建设
  C语言程序设计的任课教师负责组建上机试题库,试题库中的题目都是编程的题目,用于考核学生的编程能力。教师在组建试题库时,标明每个试题的知识点和大致难度,并提供测试案例和对应的答案。题库负责人负责查看、重新编辑每个题目,从题库整体的角度更新每个试题的难度。
  ⑵ 上机考试的实施
  为单次考试准备7个知识点和1个综合知识点的题目,教师在考试之前为每个知识点选定难度相当的5个题目。每个学生登录系统后,系统自动建立考卷,具体策略是从为每个知识点准备的5个题目中随机选择1题组成一个考卷,因此,该考卷包含8个题目,这8个考题要求学生在4小时内完成编程。考试时间一般定为上午8:00至中午12:00点。
  学生根据随机组成的考卷题目进行解答,为每道题目编程求解,并在学生机上利用示例测试用例检验代码的正确性。如果在本地没有通过检测,则进行逻辑检查,修改程序;如果本地通过测试,学生需要将代码提交到服务器。服务器接收到代码后,自动调用教师提供的更多的测试用例来检测程序运行结果是否与预先设置的结果匹配,进行代码逻辑黑盒测试。如果全部通过,则说明学生的编程逻辑是正确的,此时将学生成绩记录中对应的题目标为通过,并回显“通过”给学生,学生继续做下一道题目;如果其中有的用例运行结果不正确,则返回“错误”给学生,学生可以接着做本道题目,也可以选做另外一道题目,同时,在学生成绩记录中对应的题目标为错误。   教师在考试现场调取并查看所有学生成绩记录信息,如果发现异常信息,如在很短的时间内完成了过多的题目,则可能学生在作弊。此时,根据异常学生信息中的IP地址找到该学生,进行现场查证,如果确认为作弊则立即处理。如果学生正确完成了8道题中的5道题,则学生通过上机测试,否则,学生没有通过上机测试。为了减轻学生的压力,上机考试可以分两次进行,如果第一次没有通过上机考试,还可以组织学生进行第二次考试,取这两次考试的较高分作为学生成绩。
  3 结束语
  C语言程序设计是软件工程专业的一门重要的基础课程,其教学效果直接影响后续语言类课程的教学效果。
  传统的C语言程序设计在教学过程难以进行质量控制;师生之间缺少良好的交互,没有强调编码规范,没有进行机试测试,导致教学效果难以保证。为此,本文提出了一系列改革措施,这些措施包括:利用在线练习系统来保障学生的课程作业得到及时的完成;通过课程程序的现场编写、编译等措施,加强与学生的互动交流;强调编码规范提高学生的专业素养;通过在线考试提高学生的程序思维能力和动手实践能力。
  通过这些措施,学生学习C语言的进度基本能够得以保证。由于学生平时就被要求在作业系统中进行程序的编写并在线评判,从而具有了良好的编程能力,而且所编写程序有较好的编码风格,最终大多数学生能够通过机试考试。实践表明,本文所提出的改革措施提高了本专业学生的专业素养和动手实践能力,有力地保证了后续语言课程的教学质量。
  参考文献:
  [1] 邓泽林,谢中科.教学团队在软件工程系列课程教学中的改革实践[J].
  计算机教育,2014.12(15):103-106
  [2] 邓泽林,谢中科.软件工程专业实践教学改革的研究与探讨[J].中国
  电力教育,2014.30(8):176-177
  [3] 周波,刘兴丽,乔付等.应用型本科院校学生软件工程能力评价研究[J].
  中国电力教育,2013.29(23):18-19
  [4] 钟美.培养应用型人才为目标的C语言教学改革[J].计算机教育,
  2013.11(16):55-58
  [5] 但志平,任东,王安慧等.地方高校C语言教学改革的探讨与分析[J].
  教育教学论坛,2014.6(20):56-58
其他文献
C程序设计是很多高校计算机专业的一门专业基础课,针对该课程教师难教、学生难学的情况,本文结合实际教学,阐述了教学原则,以算法为中心,并时刻注意激发学生的兴趣。提出根据
随着城市人口老龄化的加速、家庭结构的变化和人们思想观念的转变,中国传统的家庭养老方式受到挑战,探索老年住宅市场化运作的多种方式,提高老人的生活质量,已经成为一个迫切
摘 要: 传统的考试模式很难激发学生的自主学习热情和培养学生分析问题、解决问题的能力,而采取多元化、过程化的新型考试模式,可以充分发挥考试在教学中的作用。分析了VB课程现有考试模式的弊端,讨论了VB课程综合化、过程化考试模式设计原则并给出了实施过程。实践表明,这种新型考试模式在VB教学中的运用有利于学生创新能力的培养和个性化发展,有利于提高教学质量和实现人才培养目标。  关键词: 考试模式; 过程
摘 要: 针对传统教学模式中理论教学和实践教学脱节的问题,结合C语言程序设计课程与应用技术类专业学生的学习特点,采用“教学做”一体化教学模式进行C语言程序设计教学实践。从教学场所、教学方案、考核方案、教学实施等方面进行研究。实践表明,这种教学方式有助于提高学生的实践能力和综合素质。  关键词: 教学做; C语言; 教学模式; 程序设计  中图分类号:G642 文献标志码:A 文章编号:1006-8
DOI:10.16644/j.cnki.cn33-1094/tp.2016.09.031  摘 要: 互联网不断地融合各大传统产业,人们的生活、工作乃至思维逻辑都逐步发生着改变。高等学校党务管理部门负责干部的培训,高校党务工作必须适应时代要求,步入科学化、信息化的新时代。以广东工商职业学院为例,分析并设计一套与“互联网+”相融合的高校党务管理系统。  关键词: 互联网+; 党务管理; 需求分析;
现代远程教育的开展推进了终身教育体系与终身学习社会的构建。在远程教育中,如何高效开展实验教学是困扰教育管理者的一大难题,而虚拟实验的出现,为解决这一难题提供了一种
无线多跳网络因为内外因素的影响而呈现出不同的服务质量。节点作为网络的参与者,需要在个体利益与群体效用之间做出合理的权衡,以适应无线网络的实时动态性。基于博弈理论的基
提出了Canny算子与小波变换相结合的道路边缘特征提取算法。首先用Canny算子对原图像提取边缘,与原图像进行叠加,再用小波变换对此图像进行二次边缘提取,有效地提取道路边缘特征,避免了Canny算子提取道路边缘不连续现象和小波变换提取边缘时出现的虚假边缘信息。
以杨凌职业技术学院信息工程分院为例,针对计算机实验实训室管理过程中存在的机器使用频率高、软件更换频繁、人员流动性及日常维护难度大等问题,从实训室人员的素质及现状、
完善高职人才培养评价机制是发展高职教育的有效手段,“点线面体”立体型高职人才培养评价机制是对高职人才培养模式的创新和探索。介绍了基于B/S结构的“点线面体”立体型高职