公务员期刊网 论文中心 正文

C语言程序设计教学改革探析

C语言程序设计教学改革探析

摘要:针对《C语言程序设计》课程教学现状和存在问题,以过程化管理模式进行教学改革,设计过程化教学目标、教学方法、考核方案等,以促进学生平时主动学习,提升学生编程能力及课程教学效果。

关键词:C语言程序设计;过程化管理;教学改革;编程思维

作为工科学生程序设计类课程的基础,《C语言程序设计》的教学目的是培养学生初步求解复杂问题的计算思维能力、算法设计能力、编程及测试能力等[1]。其教学效果受到广大计算机教育工作者的普遍重视。多年来,许多学者对该课程的教学方法进行探索,积累了许多宝贵经验,取得较好的教学效果。郭银章等在教学实践中,引入项目任务驱动的教学方法[1];周俊等结合军队院校中该课程存在着问题,提出了相应解决策略[2];唐晓等利用基于小班化教学模式对该课程教学方式进行了改革探索[3];谢丽霞利用基于问题的教学模式和交互式教学方法的混合式学习,取得一定的效果[4];汪红兵等以计算思维为导向,设计了该课程的教学内容、教学方式与考核方案等[5];陈昕等在教学方法和考核等方面采用了过程化管理策略,激发学生编程兴趣[6]。近年来,过程化管理模式成为许多高校教学改革的重点[7-8],其旨在督促学生利用平时进行过程学习,培养自主学习能力,激发学习积极性。本文阐述了福州大学至诚学院《C语言程序设计》的课程现状,分析教学过程中存在的问题,并结合笔者多年从事该课程的教学经验,提出基于过程化管理的若干教学改革措施,希望能以此为契机,提高该课程的教学效果,培养学生良好的程序和算法设计思维,为后续编程课程打下良好基础。

一、课程现状

《C语言程序设计》课程内容主要包含数据类型和表达式、程序控制结构(顺序结构、选择结构和循环结构)、数组、函数、指针、结构体和文件等。由于该课程是数据结构与算法以及其他编程类课程的先导课程,因此,对后续的面向对象程序设计、数据结构和算法设计等课程有着十分重要的作用。现阶段,《C语言程序设计》开课时间是大一下学期,课程学时为64节,其中理论讲解和上机实践各为32学时,期末的考核采用无纸化形式。然而,该课程一直存在着教学方法与考核方法较为单一的问题。课程考核结果一般由平时成绩、期中成绩和期末成绩构成,且期末成绩比重偏大。这种传统的教学和考核方法会使学生误认为该课程是理论课程,而忽略该课程在项目编程能力培养方面的重要性。

二、存在问题

由于学院属于独立学院,学生的学习能力相对于母体学校学生有较大差距,基础一般较为薄弱,不少学生在学习该课程时普遍感觉较为吃力,难以编写稍微复杂点的程序。笔者长期从事C语言课程教学工作,基于多年来的教学经验,认为该课程在教学中存在以下几个问题。

(一)课程理论知识点较多

《C语言程序设计》是一门理论性和实践性都较强的课程,特别是理论知识点较多。例如,在数据类型和表达式中,整数相除得整数,求余两边必须是整数类型等,会让学生难以记住(因为与数学中的表达式不一致),导致编写相应程序容易出错;在数组与指针、指针与函数以及指针和结构体相结合情况下,学生普遍感到理论性过强,难以理解和掌握,无法编写相应程序等。同时,现有的教学模式下,基本上是先课堂讲解理论知识,再进行上机验证,两次课的间隔一般是2~3天。因此,常常出现课堂理论知识讲解中,学生容易理解,但是到上机验证时,却无法将理论知识应用于实际编程的现象。

(二)课程教学手段较为陈旧

当前教学基本都是采用课堂讲授理论知识,同时结合上机实践验证等方式。然而,由于该课程具有较多的理论知识,大多数教师通常都是以“满堂灌”的形式讲解理论知识点,这种方式会使得学生产生疲劳的感觉,课堂听课效果较差。另外,在上机实践课中,教师往往会根据课堂理论知识点设计相应题目,且在验证之前对题目进行详细讲解,学生往往按照教师的解题思路进行编程,缺乏应有的独立思考与创造能力,无法体现出算法的多样性与优越性。

(三)课程考核方案过于单一

该门课程期末考试多采用闭卷形式,考核的重点也偏向理论知识,有关编程题也是采取手写形式来完成答题。现阶段,学生平时习惯在计算机上编写程序,其能及时进行调试与修改,更好地发现错误。但在闭卷考试中,学生采用手写形式进行编程,存在着较多的语法错误,导致失分较为严重。

(四)学生学习主动性不足

由于学生的学习态度较差,在学习中,仅限于完成教师布置的代码编写,有些学生为了应付而抄袭作业;不少学生没有课后进行复习及课前预习的习惯,也很少有学生能主动学习,对学习过程缺乏监督与管理。

(五)编写程序代码量过少

现阶段,大多数学生只是为了完成教师布置的作业或者是为了验证课堂理论知识而编写程序,一个学期的程序代码量基本上在2000行以内。开设这门课程,目的是为后续数据结构、算法设计以及其他面向对象程序设计等提供基本编程基础,但这样的程序代码编写量显然不足以培养编程能力。

三、基于过程化管理的教学改革探索

鉴于上述教学过程中存在的若干问题,根据学院计算机专业学生的实际情况,我们课题组引入了课程过程化管理教学改革方案—以课程教学目标为出发点,从提高课程教学质量出发,设计多样化的过程化管理教学方法,通过项目实践着力提高学生编程能力,以过程化考核方案对学生课程学习效果、项目实践能力等进行综合评价。

(一)过程化教学目标

教学目标是指教学活动实施的方向和预期达成的结果,是一切教学活动的出发点和最终归宿[8]。《C语言程序设计》的教学目标是使学生能熟练利用C语言编制结构良好程序及分析程序,掌握程序设计的技巧和方法,以及程序的调试和测试方法,为后续学习打下坚实基础。在教学过程中,针对目前普遍存在的学生学习积极性不高、主动性不强,缺乏对学生平时学习过程的监督,同时对学生编程能力的培养与锻炼目标不明确等问题,我们利用过程化管理思想,明确课程教学目标。

1.注重对学生学习过程的管控

为了能让学生积极、主动学习该课程,我们依托相关无纸化考试软件平台,利用该平台各章节大量的练习题,合理布置相应练习,要求学生在相应的时间内提交作业,并对学习成绩给予评价。同时,为了避免学生作业抄袭现象,利用平台的题库,给每个学生分配不同题目。

2.注重培养学生编程能力和项目实践经验

该课程对计算机专业学生而言是一门十分重要的程序设计课程,需要学生在学习过程中,通过海量编写程序,不断提高编程水平。为了培养学生分析问题和解决问题的能力,对学生的综合应用理论知识进行化强,设置综合实践项目,提高学生项目实战经验。

(二)过程化教学方法

教学方法是指教师和学生为了实现共同的教学目标,完成共同的教学任务,在教学过程中应用的各种方式和手段。过程化教学方法注重学生平时过程学习的促进和管控,目的是让学生能利用平时有效时间进行学习。在这个过程中,教师是组织者和促进者,而学生是学习的主体。针对教学过程中存在的问题,在教学过程中,设计了如下教学方法。

1.以网络慕课为资源,加强学生平时学习

考虑到传统教学手段过于单一,我们结合现有丰富的网络慕课资源,展开多样性教学,加强学生平时学习过程管理。由于网络慕课资源都有时间限制,需要学生按时主动学习,避免错过相应章节讲解过程。同时,为了验证学生学习情况,我们在课堂教学过程中结合翻转课堂模式进行有针对性的提问与讨论,对重点知识进行补充和扩展。

2.以程序案例为导向,提升学生理论知识

以往的课程教学方式是先理论讲解,后程序验证。理论知识的枯燥无味,往往导致学生听课注意力不集中。为了让学生更好地理解教材中的理论知识,我们以程序案例为导向,结合程序来讲解理论知识,使学生能体验理论知识是如何应用于编程过程,吸引学生听课的注意力。例如,在介绍循环理论知识时,先从数的累加或累乘编程开始,逐步讲解while、do-while和for语句的语法知识。

3.以项目实践为驱动,增加学生编程代码量

通过以项目实践为驱动,增加学生编程代码量,激发学生学习热情,提升学生分析问题和解决问题能力。同时,以小组为单位来完成相应编程项目,能够培养学生的团队合作精神。例如,在完成数组、函数理论知识学习后,布置一个“学生成绩统计系统”作业,具体要求是:输入学生成绩,显示学生成绩、统计总分、平均分等,需要有登陆验证模块;在完成指针、结构体理论知识学习后,安排学生构建一个综合的“学生信息管理系统”,要求具有:登陆模块、增加学生信息、修改学生信息、删除学生记录以及浏览学生信息等模块。

(三)过程化考核方案

考核的主要目的是对学生学习效果进行检验,考查学生利用所学理论知识解决实际问题的能力。过程化考核方案是过程化教学改革的重要方式,注重对学生过程学习效果的考核,弱化期末考试成绩。为了减少学生在考试中手写代码的错误,期末考试采用无纸化考试。具体的过程化考核方案如表1所示。采用过程化考核,有利于教师及时发现教学过程中存在的各种问题,及时调整教学方法,合理安排课程教学内容。

四、结语

过程化教学强调以学生过程学习为主,通过过程学习激发学习兴趣,促进学生学习的积极性和主动性。文章描述了计算机专业《C语言程序设计》课程现状,以及在教学过程中存在的若干问题,结合过程化教学模式,设计过程化教学目标、教学方法及考核方案。希望以此教学改革为契机,培养学生自主学习和分析问题、解决问题能力,提高学生项目编程水平,提升该课程的教学效果,为后续计算机课程学习打下良好基础。

参考文献:

[1]郭银章,王丽芳.基于项目任务驱动的C语言程序设计课程教学改革与实践[J].计算机教育,2017(2):41-44.

[2]周俊,董天平,李卫东,等.军队院校《C语言程序设计》教学策略研究[J].计算机工程与科学,2016,38(s1):38-42.

[3]唐晓,陈新,胡亚慧,等.基于小班化的C语言课程教学模式研究[J].计算机工程与科学,2016,38(1):93-96.

[4]谢丽霞.基于混合式学习的《C语言程序设计》课程教学研究[J].教育教学论坛,2017(20):169-172.

[5]汪红兵,姚琳,武航星,等.C语言程序设计课程中的计算思维探析[J].中国大学教学,2014(9):59-62.

[6]陈昕,王兴芬,焦健,等.注重编程能力培养的C语言过程化考核教学改革[J].实验技术与管理,2016,33(9):155-158.

[7]朱征宇,王茜,杨广超,等.一种基于全过程化管理的讨论式教学模式[J].计算机教育,2013(3):80-84.

[8]范晓芸,敖诗文,魏亚平.应用型本科“财务管理”课程过程化教学模式研究[J].东南大学学报:哲学社会科学版,2016(s2):163-164;176.

作者:阴爱英 马云莺 单位:福州大学至诚学院