“C语言程序设计”课程案例教学法研究

2018-04-26 06:39白鱼秀
微型电脑应用 2018年3期
关键词:C语言程序设计C语言程序设计

白鱼秀

(榆林学院 信息工程学院,榆林 719000)

0 引言

C语言是目前最流行的程序设计语言之一,一直在计算机编程语言中占据数一数二的位置,在系统程序、嵌入式系统开发中占有不可替代的作用。学习“C语言程序设计”课程,可以掌握基本的编程技能,锻炼计算思维方法,提高分析和解决问题的能力;了解计算机软件的生成过程;便于进一步学习其它语言,C语言是其它编程语言的基础,容易学习,使用方便。“C语言程序设计”课程是一门理工科学生必修的教学实践课程,通过学习“C语言程序设计”课程,理解计算机强大能力所在,更好的利用计算机解决本专业领域问题。

1 目前存在的问题

传统的C语言教学方法,主要把教学重点放在C语言的语法等理论知识上,而对如何分析问题、解决问题很少涉及,忽略实践编程,缺乏对学生自学能力、编程和调试能力的培养。目前存在的问题主要涉及以下几个方面。

课程之初,传统“C语言程序设计”教材前两个章节都是在介绍程序的词法、语法等理论知识。如果按照课本按部就班的讲授,抽象的概念,枯燥的语法等晦涩难懂内容[1],使得学生觉得C语言枯燥,不易理解,对程序设计的兴趣和好奇心消失殆尽,打击了学生的学习积极性。从而对C语言程序设计产生厌烦心理,失去学习的兴趣,畏惧程序设计课程。

课程之中,学生在学习过程中不知道学习C语言能解决什么实际问题,感觉只是解决一些计算问题,求解水仙花数、完数和素数等[2]。实验课时,冗繁的语法规则和编写程序频频出错,学生失去学好C语言程序的信心。进而,害怕自己编写程序解决问题,只会照抄课本程序,把代码原封不动的输入电脑,当编译链接出现错误时,则束手无策,没有调试解决问题的能力[3]。

课程之终,学生学习“C语言程序设计”课程一学期的效果是,只是掌握了C语言的概念,结构等语法知识,可以看懂部分简单的程序代码,自己不能针对具体问题,独立设计合理简单的C语言程序算法解决问题[4]。甚至有的学生为了应对考试,而死记硬背源程序代码。不能真正掌握编程思想和编程能力[5]。

2 C语言程序设计课程案例教学法

本案例教学法以“引入案例-分析案例-知识分解-编码运行-深化案例”层层递进的方式,激发学生学习兴趣,增强实践动手能力。

2.1 教学内容

传统的“C语言程序设计”教材通常分为8章。依次为C语言概述、数据类型运算符、程序控制结构、函数、数组、指针、自定义数据类型和文件。各个章独立分散,没有一个案例融会贯通其中。本教学法把所有知识点以“学生成绩管理系统”为主线重新划分,优化整合课程内容,循序渐进,让学生掌握C语言的各个知识点时,最终实现“学生成绩管理系统”,实现学生成绩的增加、删除、修改、查找和统计等基本操作。

通过对 “学生成绩管理系统”案例功能模块的层层分析与实现,由浅入深,逐步提出问题,引出新的知识点并进行代码实践解决问题,从而引发学生学习和思考,直至全面实现该系统。功能模块的划分以层层递进实现该系统为主线,并把传统C语言程序设计教材内容贯穿在整个实现过程中。不再是单纯的讲授理论知识点,所有理论知识点的引入都是为了解决提出的新问题。

2.2 教学方法

以“学生成绩管理系统”为主线,把“C语言程序设计”教材内容划分为4章内容,分别为输入输出、数据处理、程序结构和构造类型数据处理。此四章内容涵盖了“C语言程序设计”课程的所有知识点,各个章节知识点的划分如表1所示。

表1 知识点划分

(1)输入输出。任何C语言程序都必须有输出。输入输出主要包含两部分,基本输入输出和文件读写操作。首先是简单学生的成绩输入,输出显示。讲解输入时引入基本数据类型,整形、浮点型和字符型。调用输入输出库函数,每次运行都必须重新输入,并且结果无法长期保存,引入文件读写操作。讲解文件读写操作过程中,引入指针的概念。指针是C语言程序的精华,通常指针内容都是在教材最后章节,学生对前面章节学的云里雾里,到指针更是一头雾水。所以提前引入指针,使得学生提前接受和理解。编写简单程序代码,输入并输出一个学生成绩信息,如图1所示。

学生成绩管理系统请输入学生的学号、姓名、英语、高数、C语言成绩:1612230101 王博 84 79 89学号姓名英语高数C语言1612230101王博84.0079.0089.00Pressanykeytocontinue

图1 学生相关信息

并更改数据类型,比较他们之间的区别。

(2)数据处理。向计算机系统输入数据,不是为了单纯显示数据,主要是为了处理数据。计算这名学生总成绩、平均分。引入算术、关系和逻辑等运算符,从而计算并显示该学生的总成绩和平均分。进一步,我们按五分制(优秀、良好、中等、及格和不及格)显示该名学生的平均成绩,引入程序控制三大结构,顺序、选择和循环,输出如图2所示。

(3)程序结构。完成计算处理后,进一步增加增删改查操作,引入结构化程序设计“自顶向下、逐步求精”的思想和函数调用的概念。设计编写不同功能函数,实现成绩的输入、增加、删除、修改、查询、统计和输出显示等功能。“成绩管理系统”功能模块图,如图3所示。

学生成绩管理系统请输入学生的学号、姓名、英语、高数、C语言成绩:1612230101 王博 84 79 89学号姓名英语高数C语言1612230101王博84.0079.0089.00总成绩平均成绩五分制252.0084.00良好Pressanykeytocontinue

图2 计算处理

(4)构造类型数据处理。前3章的学习,我们可以计算处理一个学生的成绩,但是要计算一个班级50个同学的成绩该如何解决。引入数组和结构体的概念。结构体封装每个学生信息,数组保存班级学生人数。但是数组是静态数据类型,更优化的利用内存空间,引入动态数据结构,链表操作,完成一个班级的学生成绩管理,如图4所示。

2.3 教学手段

传统“C语言程序设计”课程总课时为72学时(36理论学时+36实践学时)。本教学法在原有大纲规定学时之内,同样采用理论和实践相结合的方式,但是把传统的固定每章的验证性实验改为以“学生成绩管理系统”的不断扩展与优化。并采用个人独立和团队合作两步完成整个系统的开发。

首先,对每一章内容,学生掌握课堂知识点后,直接进行实践操作,独立的完成简单的代码程序,让学生在“做中学”中加深理论知识。这样很大地提高学生的积极性,提高其探索发现问题,解决问题的能力。

其次,整个班级学生分小组完成“学生成绩管理系统”的整合和调试运行,3个学生为一个小组,大家互相学习讨论各个函数功能模块的编程方法,学习好的编程技巧,修改调试程序,最终完成整个“学生成绩管理系统”的整合。以小组为单位,不仅可以降低大家对独立完成系统开发的恐惧感,而且可以促进大家相互学习、相互帮助的团队协作精神,体会软件开发的成就感。

2.4 考核方式

传统的考核方式为平时成绩(30%)+笔试成绩(70%),不能检测出学生的编程能力及其真实水平。此考核方式不同于传统的纸质闭卷考试形式,主要分为系统考核(60%)和代码改错(40%)两部分。

其一,每个小组实现和完善“学生成绩管理系统”,提交课程报告并进行系统答辩,对其开发成果进行评分。同时,小组之间互相分享在开发系统时遇到的问题,以及如何分析和解决问题。

其二,为每一个小组根据“学生成绩管理系统”系统,分别设计不同程序段的代码改错,要求小组在2个小时内通过编译调试运行。最终根据每个小组修改的代码程序段进行量化评分。

笔者依托榆林学院2017级计算机科学与技术专业学生,实践了此C语言案例教学法。结果表明,用案例教学法授课的班级学生成绩普遍高于传统方式授课班级学生成绩。

3 总结

通过在计算机专业大一新生中运用该案例法进行“C语言程序设计”课程教学,实际跟踪学生学习该课程过程发现,学生理论知识水平和实践动手能力显著提高。此方法极大的吸引了学生的学习兴趣,调动了学生的实践动手能力,激发了学生探索问题、解决问题的能力,使学生在实践编程中理解和掌握了理论知识。

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

[2] 项响琴.德国理念指导下的教学方法改革——以C语言课程为例[J].计算机教育,2013(21):37-41.

[3] 郭鹏,张海燕.地方高校转型中的C语言课程改革研究与实践[J].石家庄学院学报,2017(3):156-160.

[4] 徐亦丹,刘瑛.C语言程序设计案例教学法研究[J].电脑知识与技术,2017(6):191-192.

[5] 项响琴.“无纸化”教学模式下创新型人才培养的研究与实践[J].电脑知识与技术,2015(35):87-88.

猜你喜欢
C语言程序设计C语言程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
以“学生为中心”的《C语言程序设计》教学设计探究
基于翻转课堂的《C语言程序设计》课程教学系统的实现与研究
浅谈《C语言程序设计》课程的教学改革
《C语言程序设计》课程的教学改革与实践
PLC梯形图程序设计技巧及应用