吴 阳
(无锡太湖学院 智能装备工程学院,江苏 无锡 214064)
随着信息时代的到来,计算机技术已经深入生活的方方面面,学习计算机编程语言十分重要。在计算机编程语言中,C语言是程序设计基础课程中不可或缺的一环。尤其对应用类本科院校非计算机类专业的学生,C语言课程的学习非常必要[1-3]。但是,对于很多初学者而言,由于C语言本身的特点,语法和概念难以理解,加上许多初学者难以及时转换汉语和计算机编程的不同思维模式,学习吃力,事倍功半。
在学习C语言过程中,学生需要掌握基本的语法规则、程序结构和编程思路等,同时还需要掌握一定的算法思想和代码能力[4]。然而,在传统的“C语言程序设计”教学中存在很多问题,如学生的语言思维能力较差、计算机编程能力与日常应用能力脱节等,这些问题都给教学工作带来了不小的挑战。为此,本文剖析C语言教学过程,引导学生基于汉语思维的角度转换为编程思想学习C语言,从而用计算机语言来告诉计算机如何去做。通过改变传统教学方式,引导学生积极主动参与到学习中来,达到更好的教学目的。本文探讨基于汉语思维学习C语言的方法,旨在帮助初学者更好地理解C语言,为学生的可持续发展打下基础,尤其对应用型本科院校学生的培养具有重要意义。
计算机语言是一种用于与计算机进行交流的方式,是一种人与计算机之间的沟通工具,用于编写和运行计算机程序。计算机语言发展至今经历了机器语言(由0和1组成的指令)、符号语言(用英文字母和数字表示指令)、高级语言(接近于人的自然语言和数学语言)等阶段,其中,C语言是一种广泛使用的计算机编程语言[5],被广泛应用于系统编程和应用程序开发。C语言具有简洁、高效、灵活和可移植等特点,使得它成为编写操作系统、嵌入式系统和各种应用程序的首选语言之一。掌握C语言的基础概念和语法后,开发者可以更加深入地理解计算机系统和算法,并且能够编写出高效、可靠的程序。
C语言是一种计算机编程语言。在C语言的学习过程中,除了基本的编译器使用之外,更重要的是用计算机可以理解的程序思维来编写程序[6]。学生需要理解和掌握大量的编程概念和术语,如变量、循环结构、条件判断等,这就需要较强的语言思维能力。但是,当前很多学生的语言思维能力并不强。另外由于C语言是以英美西方国家人们的思维方式来定义的,而英语和汉语在表达顺序上差异较大,对于首次接触C语言的人来说就难以理解,思维转换不过来,导致力不从心,因而影响了对C语言的理解和掌握。
传统的教学方式缺乏结合学生的实际生活情景,主要采用“满堂灌”的方式,通常,教师先讲解理论,然后让学生上机操作,将教师作为知识的源泉,而将学生作为被动的接受者。这种方式并不能充分发挥学生的主体性和思维能力,也不利于学生对知识的理解和应用,主体性难以发挥,并不能真正地理解问题及背后的思维,不能对知识进行迁移[7]。
另一方面理论和实践脱节。在C语言学习过程中,存在过于注重理论知识,而忽视实践环节。因此,在实际应用中,学生可能会遇到各种问题,很难真正掌握C语言的使用技巧。虽然掌握C语言的基本概念和语法是重要的,但是理论知识无法真正体现实践能力。学习C语言时,需要结合实践任务进行学习,让学生在具体的应用场景下进行编码和调试,加深对知识的理解和掌握,才能更好地掌握语言的运用。
评价体系不完善。由于知识的多样性,C语言评价过程过于借助分数来评分,容易忽略学生技能和实践经验的维度,而且由于评价方法单一,会导致学生追求分数而不是真正的技能。因此,对于C语言的学习,应该重视多样化的评价方法。例如:学生的缺陷评价,成果和项目提交评价,综合各项评价因素。
C语言的语法和概念十分复杂,许多初学者都会遇到以下问题。语法过于复杂:初学者难以理解C语言的结构,例如:程序的入口、组成部分。理念难以掌握:对一些抽象概念的理解困难重重,例如:变量和指针。学习效率低下:学生的学习进度和接受程度较慢。难以理解逻辑思维:在一个新语言学习中,从逻辑角度去掌握程序结构也是非常难的。这些问题的根源在于程序语言的本质是一种计算机语言,其编写思想源自于英语或其他西方文化背景,而中文式的思维模式则往往富有诗意和情感,在此基础上,可以尝试从汉语角度学习C语言,来更好地理解它的语法和概念。
另外,学生在学习中还存在以下问题。没有良好的编程习惯:编程习惯是每个程序员都需要养成的一个良好习惯。在学习C语言的过程中,应该注重代码的可读性、可维护性和可扩展性。缺乏耐心和毅力:C语言的学习需要耐心和毅力,因为学习过程中可能会遇到一些困难和挫折,需要有足够的毅力和决心坚持下去。C语言是一门需要不断实践和练习才能掌握的语言。因此,学生应该在学习的同时,不断练习和实践,将所学的理论知识转化为实际应用的能力。没有学习C语言的实际应用:在学习C语言过程中,很多学生通常只关注语言本身,而忽略了C语言在现实生活中的应用价值,从而影响了学习的积极性。因此,对于学生来说,应重点强调C语言在实际应用中的广泛性以及对应用的帮助。
计算机中的程序是一组指令的集合,用于告诉计算机完成特定的任务或操作。程序由编程语言编写而成,根据特定的语法规则和语义含义来表达和控制计算机的行为。计算机执行程序时,会按照指令的顺序逐步执行,以完成所需的任务[8]。对于初学者,首先要了解C语言程序的组成。
C语言程序是由实现程序功能的源文件(后缀为.c 的文件,指明是C语言开发的)以及头文件(后缀为.h的文件,h是header的缩写,包含源文件用到的一些声明,如函数的声明、全局变量的声明、宏定义、类型的声明)两部分组成。
C语言程序由一个main函数和多个其他函数组成。一个C语言程序中有且仅有一个main函数。函数是程序的基本单位,用来实现特定的操作。每个函数是一段可以重复使用的代码,可以接收用户传递的数据或不接收数据。程序设计是解决特定问题的过程,使用计算机可理解的语言来告诉计算机如何进行操作。计算机只认0、1等数字代码,因此需要编译器将高级语言程序解释成计算机需要的机器语言指令集。采用编译器的好处在于可以将同一高级语言程序转换为各种不同的机器语言程序进行适应。图1显示了高级语言程序到计算机能识别的机器语言程序的过程。通过介绍,学生对“C语言程序设计”的整体有了直观的了解。
图1 高级语言程序到计算机能识别的机器语言程序过程
由于中文和英语的语言特点存在巨大的差异,因此,从汉语的角度分析C语言的语言特点,可以让学生更好地理解和掌握C语言。将C语言的语法规则和汉语的语法规则进行对比,寻找二者的相似之处和不同之处,以提高学生的语言思维能力。图2显示了C语言程序的基本构成。
图2 C语言程序基本构成
3.2.1 对C语言的术语进行中英文对照
对C语言的术语进行中英对照,以方便学生建立中英语言对应的概念体系。C语言中的术语大都是以英文单词及缩写组成的,例如下面所示的C语言程序“hello world!”中。
#include
/*int表示整个函数返回值的类型与下面的return 0相呼应 */
int main() //main为程序运行的入口,也叫主函数
{
/*一对大(花)括号即包含代码段,为实现程序的主体*/
printf("hello world!");//打印出hello world!
return 0; //返回0,与main前面的int相呼应
}
在这个程序里,包含以下单词include(包含)、main(主要的)、return(返回)等,还包括int(整形),它是integer的缩写。另外,还有一些组合单词,如stdio.h是由standard(标准的)、input(输入)、output(输出)、header(头文件)组成的,printf是由print(打印)、format(格式化)组成的。从这里也可以看出,C语言非常注重语法规则,在scanf及printf中也都体现了格式化,也就是要严格按照设定的格式来输入输出对应的信息。另外,其他术语的对应关系如下所示。
void空 true真 false假
print输出 scan扫描 format格式 long长的 short短的
float浮点数 double双 char字符 unsigned无符号的
if如果 else否则 get获取 string字符串
switch开关 case示例 default 默认
for使得 while当 do…while做…当
3.2.2 借用汉语的思维增加代码可读性
在使用语言时,可以多运用象征性的汉字代替英文,这样更有助于理解程序的结构。虽然这种方式显得有些略显幼稚,但当需要表述的内容超出了初学者的逻辑思维范畴时,可以较好地帮助初学者理解代码。另外,多采用注释,这是思维转换的一种有效方式。
int max(int x,int y) //返回x,y中最大的,由于x和y为整型,函数值也为整型
{
if(x>y) return x; //return用来返回较大者
else return y;
}
如上述代码中,max函数是返回两个整数中的大者,可以直接用汉语的思维方式来进行判断,如果x和y两个整数x大,那应该返回x(if(x>y) return x;),如果y大,应该返回y(else return y;),从而更好地理解上述代码。
3.2.3 将程序的逻辑和汉语类比
通过将程序和汉字相对应,可以更好地理解程序的逻辑,从而提高学习效率。例如:
在C语言中,if语句通常有3种用法,单独使用,和else配合使用以及多分支时使用。以if…else配合使用为例,如下
if (age >= 18)
printf("成年 "); //如果年龄大于等于18,输出“成年”
else
printf("未成年 ");//否则,输出“未成年”
在上述代码中,通过判断年龄是否大于等于18岁,从而输出“成年”还是“未成年”。此时就可以将程序的逻辑和汉语汉字进行类比。在汉语中,如果一个人的年龄大于等于18岁,那他就是成年人,对应程序
if (age >= 18) printf("成年 ");
如果不满足这个条件,那就是未成年人,对应程序
else printf("未成年 ");
通过类比,可以让初学者更好地理解C语言逻辑的抽象性质。
3.2.4 采用中文语义解析概念
可以采用中文翻译方式来解释C语言的概念和常用函数,向初学者详细地解析C语言的语法和概念。例如:
printf("hello world!");//printf函数 输出 hello world !
其中,printf为输出函数,用于输出字符串或者是数值。而"hello world"即为所要输出的内容。
这种中文翻译方式可以把C语言的概念用最简单的语言举例阐述,并且可以帮助学生更好地理解相关原理。
C语言是计算机程序设计中非常重要的一门课程,但在传统教学中存在一些问题,针对这些问题,本文提出基于汉语思维的学习方法,将汉语转换为计算机语言,提高学生的编程能力和思维能力。基于汉语思维方式,初学者可以更好地理解抽象概念,理解C语言的语法和概念,从而更好地理解和掌握C语言。这为初学者更快地掌握C语言编程奠定了基础,也提高了学生的学习效率和动力。总之,这些方法都可以为“C语言程序设计”的教学提供新思路和新方法。