浅析C语言教学问题

2016-06-06 14:30王晓莉黄燕
电脑知识与技术 2016年6期
关键词:编译器C语言教学问题

王晓莉 黄燕

摘要:C语言是一种很好的结构化程序设计语言,目前是高校计算机、信息管理等专业中一门重要的基础课程,也是一门实践性很强的课程,但就目前教学过程中,运行环境的多样化,造成了不同的运行结果致使学生十分迷惑,因此,在课堂教学与实践中需要重点强调其结果的运算过程。由此,本文就自加自减不同运行结果的问题加以分析。

关键词:C语言;编译器;教学问题;教学改革

中图分类号:G424 文献标识码:A 文章编号:1009-3044(2015)06-0143-02

Abstract:C Language is a good structured programming language. At present, it is an important basic and practical course on computer, information management and so on.But now as for the teaching process, the different operating results caused by the diversification of operating environment makes the students very confused. Therefore, we should emphasize the results of the calculation process in classroom teaching and practice. Thus, this paper will analyse from different operating results plus decrement problems.

Key words:C Language; compiler; teaching problem; reform in education

当前,电子信息化的时代,计算机的应用技术飞速发展,程序设计技术也从结构化程序设计技术不断地向面向对象程序设计技术过渡,虽然,对于规模较大的应用程序,总体框架是由面向对象程序设计而搭建,但在局部实现过程还有许多仍需采用结构化程序设计技术。C语言是高级语言中的低级语言,也是一种很好的结构化程序设计语言,因此,在全国各高校《C语言程序设计》依然占据这重要的地位,也是计算机、信息管理相关专业必修的一门基础课程。但其丰富的功能、多样化的运行环境,给初学者带来了很多困惑。本文就C语言教学过程中具体遇到的问题进行分析。

1 C语言的优势与特点

C语言是目前使用最广泛的一种计算机高级程序设计语言,具有数据类型丰富,概念简洁,通用性好,表达能力强等特点,而且用法灵活,可读性好,有利于读者培养其良好的编程习惯,是一种既适合系统程序设计,又适合应用程序设计。因此,赢得了广大编程人员的喜爱,得以广泛应用。由此,也成为高校中计算机及相关专业的必修课。

每一种事物得以存在和发展,都有其自身不可忽略的特点,语言也不例外,当然,C语言的发展也有着不同于甚至优于其他语言的特点。具体特征包括:

1) C语言是一种结构化语言

结构化语言就是将自然语言加上程序设计语言的控制结构就成了结构化语言,它显著特点就是代码和数据的分隔化,换言之,程序各部分除必要信息交流外彼此互不影响。

2) 简洁、紧凑、灵活

C语言一共有43个关键字,包括通用关键字32个,扩充关键字11个;9种控制语句。程序书写形式自由,主要用小写字母表示。

运算符丰富。C的运算符包含的范围很广泛,共有34种运算符。C把括号、赋值、强制类型转换等都作为运算符处理,从而使C的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。

3) 语法限制不严格

C语言语法限制不太严格,程序设计自由度比较大,例如对数组边界不作检查,整型、字符型数据可以通用等等,这些都需要由程序编写者自行确保程序的正确性。

4) 运算符丰富

C语言共有44种运算符。C语言中把括号、赋值、强制类型转换等等都作为了运算符处理,即可以实现其他高级语言中难以实现的运算。此外,C语言数据结构也非常丰富,基本涵盖了各种数据类型。主要包括基本类型(字符型、整型、实型、枚举型)、空类型(void)、构造类型(数组、结构体、共用体)和指针类型等。从而可以实现各类复杂的数据结构(如链表、树、栈等)的运算。

5) 功能强大

C语言有着丰富的库函数,强大的图形功能及其预处理能力,与其他语言容易接口,可直接对硬件进行操作。比如PASCAL语言、汇编语言、数据库语言等。而且,C语言还可以直接调用DOS命令。由此,当前工业计算机控制系统开发过程中,C语言成为了越来越多编程人员编写控制软件的首选。

由此,有人把C语言称为“高级语言中的低级语言” ,也有人称它为“中级语言”。它具有很多只有像汇编语言才具备的功能,比如直接访问物理地址等。但它又具有高级语言的编写容易,较高的可读性特点,这就使程序员不仅减轻负担,而且效率提高,同时,C语言编写的程序具有更好的可移植性。

2 C语言教学问题

目前,结合C语言的特点,C语言的教学方法也越来越多样化,而随着教学改革,在教学过程中采用的编译运行环境也多样化,方便C程序的实现的同时也给教学过程带来了相应的问题。

在某些运行问题中不同的运行环境造成的结果是截然不同的。目前常用的C语言的编译运行环境包括Turbo C、Visual C++、Vs2008、Win-TC、C-free等,在教学过程中,运用比较多的就是Turbo C、Visual C++、C-free。但是就在这些编译运行环境讲解时问题也应然而生,尤其在自加自减运算过程中,所得结果是截然不同的,主要原因是自加自减自身运算规律和编译过程中运算顺序不同而造成,例如,现有程序:

将教育观由“以教师为中心”转化为“以学生为中心”[7],综合应用各种新型教学方法, 以期最大程度的激发学生的好奇心和求知欲,引导学生进行自主学习和研究,教师从旁予以指导和鼓励,培养学生勇于探索、敢于质疑和独立创新的精神。

3.1.1情景式教学

通过教师创设恰如其分的教学情境,激发学生情感,吸引学生注意力,产生学习的意愿,同时引发学生的积极思考和探索,发展学生的创造性思维。这就要求教师要不断求新,善于在教学内容中发现可以切入的点,巧设疑问,引导学生主动参与学习,鼓励学生勇于提出新的观点。

3.1.2问题讨论教学

在教学中按照学习成绩,民族,性别等元素对班级学生进行分组,每组任命一位组长来协调工作,采取“教师事先引导-小组积极讨论-学生总结汇报-小组交叉互评-教师点评升华”的模式。旨在提高学生学习的兴趣,引导学生积极主动进行学习,鼓励学生大胆设想,提出新思想和新观点,锻炼其自学能力和语言表达能力,并促进协作式学习,促进学生之间共同进步。

3.1.3渐进式教学法

鉴于学生对数据结构课程有畏难情绪,采取渐进式教学法来帮他们逐步树立信心,由浅入深,一步一个脚印,最终水到渠成。学生在教师的不断引导下探索怎样去解决问题,老师和学生一起讨论,增强师生互动,锻炼学生独立分析解决问题的能力,激发学生学习的热情,培养学生的创造性思维[8]。

3.2改革实践教学环节

实践教学是创新人才培养的重要环节,通过数据结构实验环节能够巩固和提高理论知识,培养学生的动手能力和创新思维。

3.2.1加强实践环节的训练

一方面提前一周布置上机任务,给予学生充分的时间去设计算法,要求在实验前一天提交书面作业,教师批改后在实验开始前分发下去;另一方面,将上机时间由每次两课时增加至三课时,尽量给学生充分的时间去调试程序,实验过程中加强生生之间和师生之间的互动。

3.2.2项目驱动实验教学

在实验设计中,教师可设计多个项目式题目供学生自由选择,学生自行组成多个项目小组,选择各自感兴趣的项目去完成。在实验过程中小组成员共同讨论解决问题的思路,设计算法,分工合作完成实验,以此来充分调动学生的学习热情和主动性,培养和锻炼学生的系统分析能力和协作创新能力。

3.3科研融入教学

在教学过程中要充分促进科研与教学互动[2],加强科研与教学之间的紧密结合,鼓励本科生参与到科研活动中来。

3.3.1将前沿科研成果渗入教学

在教学过程中追源溯流,讲解如何将基础理论知识应用到前沿科学研究中去,并将这类的优秀成果介绍给学生,丰富教学内容,拉近理论学习与科研创新的距离,激发学生的学习兴趣。

3.3.2协作式项目

鼓励学生参与教师主持的科研项目,将复杂的课题细分成多个小项目,分别交由学生去完成,在此过程中,定期开展师生之间的讨论和交流,教师精心指导学生训练,逐步培养学生科研能力。

3.3.3学生科研项目

为学生提供科研平台,设立本科生科研项目,鼓励学生自行组织团队申报,使学生在学习理论知识的同时,有目的地开展科研活动,激发学生参与科学研究的积极性,丰富实践知识,培养科研创新意识,提高独立研究能力。

3.4改革实践教学环节

在考核过程中,要标准化考核方式,注重学习过程考查和学生能力评价。

3.4.1学习过程考核

在前面提到的问题讨论教学和项目驱动实验教学过程中,当学生完成任务后,请各小组派出一名代表讲解算法设计的思路并演示程序,可以由其他小组各派出一名成员与教师组成验收委员会,进行提问和成绩的判定。

3.4.2学生能力评价

根据不同的科研实践形式给予相应的学分,激发学生参与科研实践活动的兴趣。在协作式项目中,根据学生完成任务的情况进行成绩评定,并及时进行点评和指导;在学生独立完成的项目中,根据项目成果的有效性和创新性进行成绩评定。

4 结论

在本校信息安全专业的数据结构课程教学实践中,我们对所设计的教学方法已开展验证工作,取得了较好的教学效果,学生普遍反应良好。在未来的研究中还需进一步探索适合创新人才培养模式的各类教学方法,力求取得教学效果的最大化。

参考文献:

[1] 中共中央国务院. 国家中长期教育改革和发展规划纲要(2010-2020年) [EB/OL]. http://www.gov.cn/jrzg/2010-07/29/content_1667143.htm, 2010-07-29.

[2] 教育部. 教育部关于全面提高高等教育质量的若干意见[EB/OL]. http://www.gov.cn/zwgk /2012-04/20/content_2118168.htm, 2012-04-20.

[3] 刘晓静,王晓英,张玉安,黄建强,刘志强. 以创新人才培养为目标的数据结构实验教学改革[J]. 实验技术与管理, 2014, 31(11):184-187.

[4] 汪江桦,韩莉英. 民汉一体化教学中高级语言课程的教法设计与研究[J]. 福建电脑, 2014, 30(1):66-67.

[5] 黎路,薛先贵. 民族地区《C语言》教学方法探索[J]. 福建电脑, 2010, 26(10): 203-204.

[6] 张铭,赵海燕,王腾蛟,等. 北京大学“数据结构与算法”教学设计[J]. 计算机教育, 2008(10): 5-11.

[7] 余腊生,石献. 基于创新理念的数据结构教学方法探讨[J]. 计算机与信息技术, 2006(11):110-114.

[8] 汤建国,汪江桦. 渐进式教学方法在JAVA语言教学中的应用[J]. 福建电脑, 2013,29(6): 1-3.

猜你喜欢
编译器C语言教学问题
基于Visual Studio Code的C语言程序设计实践教学探索
基于相异编译器的安全计算机平台交叉编译环境设计
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
本科英语专业翻译教学改革与实用型翻译人才的培养
浅析给排水工程课程教学设计
论子函数在C语言数据格式输出中的应用
通用NC代码编译器的设计与实现
编译器无关性编码在微控制器中的优势
基于ARM嵌入式平台的x86译码SOC架构设计