APP下载

C语言教学中程序设计能力培养的探讨

2016-07-04吴慧婷

电脑知识与技术 2016年15期
关键词:能力培养实践教学

吴慧婷

摘要:C语言程序设计课程是其他程序课程的基础。但在教学中,学生面向实际应用问题的算法分析与实践动手能力普遍偏弱。为了解决这些问题,该人在教学理念设计、教学内容设置、实践教学体系建设等方面做了大量的探索与实践,并取得了良好的教学效果。

关键词:算法设计;能力培养;实践教学

中图分类号:G424 文献标识码:A 文章编号:1009-3044(2016)15-0170-01

1 概述

作为信息类专业重要的专业基础课程,C语言程序设计课程为学生打下坚实的语言及算法设计基础具有非常重要的意义,各高校也非常重视本课程的建设。但是,在本门课程的教学中,也普遍存在着一些问题:

1)教学目标不明确;

2)算法分析与设计能力培养偏弱;

3)面向实际应用的综合性设计性实践动手能力培养偏弱。

针对上述问题,本人在本课程的长期教学实践过程中,在教学理念设计、教学内容设置、实践教学体系建设等方面做了大量的研究与实践,并取得了良好的教学效果。

2 教学理念设计

在C语言课程的学习中,学生普遍存在“看得懂、不会写”的情况,主要是由于在课程的教学理念上定位不明确,存在“重语法结构,轻语言运用”的问题。

C语言程序设计课程,在本质上和中文、英文等语言类课程一样,也是一门语言类课程。语言类课程的教学,既要重视语法结构的讲授,但更为重要的如何培养学生运用语言的能力。

经过多年的探索与实践,本人在本课程教学上,形成了如下的教学理念:以“语言应用”目标,遵循“程序”(语法结构)和“设计”(算法思想)并重的原则,科学合理地设置课程教学内容,重点建设实践教学环节。

3 教学内容设置

课程建设的重点是教学内容设置。基于上述教学理念,本人分别在“程序”层面与“设计”层面的教学内容设置上做了如下的探索。

在“程序”层面,注重“知识体系的整体性”。在本课程的教学中,教师一般都注重每个知识点的讲授,但较少涉及“知识点设置的原因”及“各知识点之间的内在联系”,因而造成学生“知识体系零散化”,从而进一步削弱了学生语言运用的能力。针对这一问题,本人从语言的角度,将各知识点划分为两个层次:程序结构及程序控制结构,不同层次突出不同的教学目标。

1)程序结构包括“数据类型、运算符和表达式、数组、函数、指针、结构体和共用体、文件”这些知识点,重点突出对语法及上述 知识点相互之间层次递进的关系的掌握。具体方法是:针对一个问题,从知识发现者的角度,引导学生从“能否用已学的知识解决、解决过程有什么问题、应该怎么做”这一个循序渐进的过程,从一个已学的知识点过渡到另一个知识点,使学生理解并掌握相关知识点之间的内在联系,对分散的知识点形成一个整体性的认知,从而使学生碰到具体问题时,具备选择最合适的知识点或知识点的组合的能力,这对提高学生的实践动手能力至关重要。2)程序控制结构的知识点包括“顺序结构、选择结构、循环结构”,重点突出对语法和语义的掌握,尤其是分析不同语法结构的异同点。

在“设计”层面,注重对如下的算法设计能力的培养:1)在循环、数组及函数等知识点中,加强对常见的经典算法思想的训练,如枚举、递归、递归、迭代、排序等。2)针对学习或工作中的实际应用问题,注重包括建模在内的计算思维能力的训练。3)逐步培养学生求解最优解的算法设计能力。4)引入部分ACM或程序设计大赛题目作为案例,引导学生尽早接触学科竞赛,激发学习兴趣,促进教学和竞赛的良好融合。

4 实践教学环节建设

C语言课程,是一门动手能力极强的课程,因此实践教学环节尤其重要。本课程的实践教学环节,一般分为实验和课程实习。由于难度及学时限制,实验环节基本以验证性实验为主,使学生欠缺综合性、设计性实践动手能力的训练;当进入课程实习环节,学生突然面临综合性、设计性的项目时很难适应,项目完成质量总体不高。

为了解决上述问题,本人采取了如下的措施:

1)实验环节分为基础层次和提高层次两个类别的实验项目。基础层次为验证性实验项目,在课内完成;提高层次为综合性实验项目,采取课内和课外相结合的方式。为了向第二个环节课程实习更好地过渡,对于每次实验课程中的综合性实验项目,采用“总分总”的方式:即首先设计与课程实习类似的综合性的案例,然后将它科学合理地划分为若干模块,并切分到每次实验中;学生在每次实验时,完成该项目的一个模块,循序渐进地完成所有实验后,学生就可以完成这个完整的综合性的实验项目。

如:设计一个经典的学生成绩管理系统,并科学合理地切分至每次的实验中。在顺序结构实验中,实现输入一个学生的各门课程的分数并求出该学生的平均分;在选择结构实验中,判断学生的登录信息是否正确;在循环结构实验中,对于输入的错误的登陆,限定重新登陆的次数;在数组实验中,实现全班每个学生的平均分、单科及平均分的排序;在函数实验中,将输入、登陆、求平均分、排序等功能用函数实现;在指针实验中,采用动态数组实现函数实验中的各项功能;在结构体实验中,用一个结构体数组改写前面的若干个数组,并重新实现前述的各项功能;在文件实验中,将第一次输入的数据写入文件中,并实现从文件中读取数据到结构体数组中。

通过上述训练,既夯实了学生的基础,同时,在有限的学时内,也极大地提高了学生综合性的实践动手能力,并为第二阶段的课程实习奠定了良好的基础。

2)在课程实习环节,设计一个与实验环节类似的面向实际应用的项目,从设计到实现,全部由学生自主完成。同时,为了更好地激发优秀学生的学习兴趣,适当增加项目的难度及复杂度。

通过上述的方法,极大地增强了学生的综合性、设计性的C语言程序的实践动手能力。

5 总结

在C语言程序设计课程教学中,围绕“语言应用”这一目标,在教学内容设置上突出“知识整体性”以及“算法设计”,在实践教学环节建设上突出“面向应用的综合性、设计性能力培养”,经过多轮的教学研究与实践,取得了较好的教学效果。但是,目前面向应用的综合性、设计性实验项目案例资源库尚待进一步丰富与完善,在今后还需加强上述资源库的建设,以期更好地提升学生的实践动手能力,提高专业人才的培养质量。

参考文献:

[1] 王颖,杨文莲,刘丽娟. C 语言教学中不容小觑的思维能力培养[J]. 中国科技信息,2011(2):212-213.

[2] 吴永芬,陈卫卫. 面向创新实践能力培养的 C语言程序设计实践教学改革[J]. 计算机教育,2014(3):88-91.

[3] 李倩. C语言程序设计课程中计算思维能力的培养[J]. 网络安全技术与应用,2013(5).

[4] 李文生,吴舜歆. 面向计算思维能力培养的程序设计课程[J]. 计算机教育,2014(3): 57-60.

猜你喜欢

能力培养实践教学
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
研究型学习在传热学实践教学中的应用
思想政治理论课实践教学研究述评
高职院校商务礼仪课程教学改革探索刍议