论文部分内容阅读
[摘要]分析了地方院校C语言教学中存在的困难及原因,提出了一种多元互动教学模式,倡导自主性、交互性、渐进性、启发性、应用性的教学,目的在于提高教学质量,培养应用型人才。
[关键词]C语言 教学模式 教学方法
引言
大多数的地方高校将C语言列为第一门教学语言,其教学效果的好坏直接影响着学生的入门、兴趣和发展。目前,C语言的教学存在较大困难,原因是多方面的:一是初学者入门难,通过压迫式教育和应试教育而进入大学的学生,缺乏学习的自觉性,需要较长时间适应大学的教学,从而形成有效的学习方法;二是缺乏持之以恒的学习态度,容易滋生自暴自弃的情绪;三是沉溺于游戏,没能将拥有电脑的优势发挥到正道上来;四是颠倒了教学的主次,过分强调教师的教学及其探索和改革,忽视了学生的主动学习和思想教育;五是缺乏合适的教材,教材大多重视概念和理论,缺乏实际应用的范例和指导性思维。因此提出了一种多元互动教学模式,倡导“自主性、交互性、渐进性、启发性、应用性”的教学。强调了教与学两方面的继承和改革是双向的,只有双管齐下,才能收获良好的教学效果。
一、学与教四结合
自学与导学相结合,练习与点评相结合,达标与测评相结合,应用与引导相结合。
个人认为最重要的是自学习惯和自学能力的培养。自学包括课前预习和课后自主学习。预习主要是识记性的,对概念、用法的理解和记忆,任何事物的认识是从识记开始的,是最简单的,理解性的记忆是最好的、最牢固的,但很多用法和规则是专家规定的,不能去理解,不能去问为什么,只有记住了,才可能去使用,否则,只能是异想天开、胡乱发挥。作为引导学生进入程序设计殿堂的第一门语言,其概念多、原理多、用法多,没有课前的预习与记忆,课堂学习是漫无目的的、教学效果是糟糕的。在专业课程课时不断被压缩的现实下,课前预习恰恰是大量学生缺失的。自学是学习能力的一种重要体现,也是终生学习的必然,必须大大加强自学引导及其能力的培养。
课堂教学之外的练习是不可缺少的,虽然不提倡题海战术,但是一定数量的编码练习是必须的。其有利于检验基本概念、原理、方法的理解、掌握、熟练、应用、思考和创新,只有量的积累才能导致质的飞跃。在练习、测验、引导、点评、思考、应用中,积累经验和技巧,提高编码能力、应用能力、计算思维能力。
技巧和方法是可以传授的,能力是只能培养的。正可谓“道可到非常道,不可道”,只能从学中去悟道。
二、多元教学方法
多元教学方法就是多种教学方法的综合使用。也是目前各级各类学校教学研究和改革的重点内容。
(一)框架式教学法
所谓框架式教学法就是本着实用的原则,层层搭建框架,引导学生掌握知识的基本脉络,从整体把握知识的结构体系,从而便于理解和记忆,大大降低学习的难度,最大限度地提高学生的学习效率,快速把握重点,进而加强知识点的应用和发挥。
划分模块。根据C语言程序设计各章节内容的相关性,笔者把教学内容划分为四个模块:入门、基础、提高、高级,具体内容分别是运算符表达式和输入输出、选择和循环、函数和数组、指针结构体和文件,使学生把握整个教学内容的脉络,由浅入深、循序渐进地组织教学。在具体实施时,我校采用了分段教学、短学期制教学。
搭建框架。有些知识具有强烈的模型化特点,如C语言程序的基本构成,包括头文件、main函数、大括号、变量声明、输入、处理、输出。先建立程序的整体框架,再向其中添加“处理部分”,需要发挥的也正是这一部分。函数的组成,文件操作的步骤等都可以采用框架教学法。
基本规律。加法运算,和变量的初始值一般为0;乘法运算,积变量的初始值一般为1。
模仿处理。在C语言教学中,最重要的是循环结构的程序设计,掌握了“循环”这一知识点,很多问题就迎刃而解了。在教学过程中,可以采用讲授、模仿、渐进的方式组织教学。
框架式教学实现了“知识的三化”,即知识的结构化、模型化、应用化。
(二)演示教学法
现场编程,有意设置错误,根据错误信息,改正错误,讲述常见错误及修改方法、调试技巧。通过学生的参与、思考、回答等现场互动方式来组织教学,可以活跃课堂气氛,调动学习积极性,启迪智慧,避免了一言堂。
(三)启发式教学法
针对同一个问题,先讲述一种解题方法,然后进行延伸和拓展。引导学生去思考、去分析,有多少种解法、谁的效率最高、谁的易读性最好等。
譬如:求1+21+22+……+2n
首先,从每一项考虑,每一项都是一个乘积,i个2的连乘,自然想到使用循环去求每一项。代码如下:
int i, j, n, product, sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++){
product=1;
for(j=1;j<=i;j++) product*=2;
sum+=product;
}
printf("%d",sum);
其次,考虑到各项的特点,可以根据前一项乘以2就可求得下一项,可以修改如下:
int i, n, product=1, sum=1;
scanf(“%d”,&n);
for(i=1;i<=n;i++){
product*=2;
sum+=product;
}
printf(“%d”,sum);
再其次,考虑乘法的效率比加法的低,将乘法改成加法,可以修改如下:
int i, n, product=1, sum=1; scanf(“%d”,&n);
for(i=1;i<=n;i++){
product+= product;
sum+=product;
}
printf(“%d”,sum);
最后,考虑到左移一个二进制位,相当于乘以2,因此可以使用移位运算来实现,修改如下:
int i, n, product=1, sum=1;
scanf(“%d”,&n);
for(i=1;i<=n;i++){
product<<=1;
sum+=product;
}
printf(“%d”,sum);
从而激发思考、开拓思维和潜能。
在实际教学中,教学方法是多样的、因地制宜的,针对不同的教学内容、教学对象,选用不同的教学方法、创造不同的教学模式、达到最优的教学效果。
三、多元教学辅导
教学活动是一个复杂的过程,包括课前的组织、课中的讲授、课后的答疑。教材的选择也是一个重要的方面,纵观C语言程序设计的教材,仅清华大学出版社出版的就有300种左右,然而,真正适用于应用型教学的并不多,教材大多注重C语言的语法,极少涉足实际应用。因此,产生了学完C语言编程,并不会编程,不会用它去解决实际问题的现象。因此,教师在备课时既要重视基础知识、更要注重实际应用,注重多教材的参考,博采众家之长。
因此,适宜于地方院校的教材、实验指导书、多媒体课件、教学网站等立体化的教材建设是当务之急。另外,互联网、大众化的程序设计竞赛也是教学的重要辅导和参考书。
四、多元考核方式
由于倡导通识教育和素质教育,专业课的学时一般大幅减少,平时作业、实验报告不可避免地存在着抄袭现象,仅仅通过期中和期末的统一考试来督促学习、检验学习效果是存在不足的。因此,老师并不能真实掌握每个学生的学习情况,必须在课间或课堂上增加对预习、复习的检查频度,增加课堂单元测验,以此为依据来了解和检验学习效果,起到警示和督促作用。考试的形式可采用机考、答辩等,最终按一定比例将预习、复习、提问、测验、考试综合起来作为该课程的最后成绩。
五、“三动”学习方法
“三动”动眼、动脑、动手,是学好程序设计的基本方法。
俗话说“熟能生巧”。必须经历大量的编码练习,在练习中去熟练、去思考、去发现规律、去创新,只有经历量的积累,才能导致质的飞跃。“赵括的纸上谈兵”是荒谬的,“实践才是检验真理的唯一标准”。在学习编程的过程中,无论是阅读理解程序、还是调试程序、检验算法的对错,手工执行代码都是一个非常重要的手段。在教学中我们发现,不少学生眼睛盯着代码中的字母和数字发呆,对于简短的代码,可能动动眼,转转脑就可以理解其功能;对于较长的程序仅仅动动眼,转转脑,肯定是不行的;必须拿出纸和笔,仔细演算,才能理清思路、搞清各个值的变化,最后理解算法的功能。
六、结语
以学生为主体、以教师为主导、以训练为主线、知识应用为关键作为准则,以学生的主观能动性为基础,勤动手、多动脑,才是学习C语言的有效方法,才能逐步夯实编程基本功、培养和提高实践能力和创新能力。
[参考文献]
[1]吴文虎,徐明星编著.程序设计基础(第3版)[M].北京:清华大学出版社,2010,11.
[2]何钦铭,颜晖主编.C语言程序设计[M].北京:高等教育出版社,2008.4.
[3]熊启军.基于渐进启发式的数据结构线性表的教学[J].现代计算机,2011(6).
[4]赵立双,刘洪涛,商志光.多维教学模式在高校_数据结构_课程教学中的探索与实践[J].渤海大学学报,2010(12).
(作者单位:湖北文理学院数学与计算机科学学院 襄阳)
[关键词]C语言 教学模式 教学方法
引言
大多数的地方高校将C语言列为第一门教学语言,其教学效果的好坏直接影响着学生的入门、兴趣和发展。目前,C语言的教学存在较大困难,原因是多方面的:一是初学者入门难,通过压迫式教育和应试教育而进入大学的学生,缺乏学习的自觉性,需要较长时间适应大学的教学,从而形成有效的学习方法;二是缺乏持之以恒的学习态度,容易滋生自暴自弃的情绪;三是沉溺于游戏,没能将拥有电脑的优势发挥到正道上来;四是颠倒了教学的主次,过分强调教师的教学及其探索和改革,忽视了学生的主动学习和思想教育;五是缺乏合适的教材,教材大多重视概念和理论,缺乏实际应用的范例和指导性思维。因此提出了一种多元互动教学模式,倡导“自主性、交互性、渐进性、启发性、应用性”的教学。强调了教与学两方面的继承和改革是双向的,只有双管齐下,才能收获良好的教学效果。
一、学与教四结合
自学与导学相结合,练习与点评相结合,达标与测评相结合,应用与引导相结合。
个人认为最重要的是自学习惯和自学能力的培养。自学包括课前预习和课后自主学习。预习主要是识记性的,对概念、用法的理解和记忆,任何事物的认识是从识记开始的,是最简单的,理解性的记忆是最好的、最牢固的,但很多用法和规则是专家规定的,不能去理解,不能去问为什么,只有记住了,才可能去使用,否则,只能是异想天开、胡乱发挥。作为引导学生进入程序设计殿堂的第一门语言,其概念多、原理多、用法多,没有课前的预习与记忆,课堂学习是漫无目的的、教学效果是糟糕的。在专业课程课时不断被压缩的现实下,课前预习恰恰是大量学生缺失的。自学是学习能力的一种重要体现,也是终生学习的必然,必须大大加强自学引导及其能力的培养。
课堂教学之外的练习是不可缺少的,虽然不提倡题海战术,但是一定数量的编码练习是必须的。其有利于检验基本概念、原理、方法的理解、掌握、熟练、应用、思考和创新,只有量的积累才能导致质的飞跃。在练习、测验、引导、点评、思考、应用中,积累经验和技巧,提高编码能力、应用能力、计算思维能力。
技巧和方法是可以传授的,能力是只能培养的。正可谓“道可到非常道,不可道”,只能从学中去悟道。
二、多元教学方法
多元教学方法就是多种教学方法的综合使用。也是目前各级各类学校教学研究和改革的重点内容。
(一)框架式教学法
所谓框架式教学法就是本着实用的原则,层层搭建框架,引导学生掌握知识的基本脉络,从整体把握知识的结构体系,从而便于理解和记忆,大大降低学习的难度,最大限度地提高学生的学习效率,快速把握重点,进而加强知识点的应用和发挥。
划分模块。根据C语言程序设计各章节内容的相关性,笔者把教学内容划分为四个模块:入门、基础、提高、高级,具体内容分别是运算符表达式和输入输出、选择和循环、函数和数组、指针结构体和文件,使学生把握整个教学内容的脉络,由浅入深、循序渐进地组织教学。在具体实施时,我校采用了分段教学、短学期制教学。
搭建框架。有些知识具有强烈的模型化特点,如C语言程序的基本构成,包括头文件、main函数、大括号、变量声明、输入、处理、输出。先建立程序的整体框架,再向其中添加“处理部分”,需要发挥的也正是这一部分。函数的组成,文件操作的步骤等都可以采用框架教学法。
基本规律。加法运算,和变量的初始值一般为0;乘法运算,积变量的初始值一般为1。
模仿处理。在C语言教学中,最重要的是循环结构的程序设计,掌握了“循环”这一知识点,很多问题就迎刃而解了。在教学过程中,可以采用讲授、模仿、渐进的方式组织教学。
框架式教学实现了“知识的三化”,即知识的结构化、模型化、应用化。
(二)演示教学法
现场编程,有意设置错误,根据错误信息,改正错误,讲述常见错误及修改方法、调试技巧。通过学生的参与、思考、回答等现场互动方式来组织教学,可以活跃课堂气氛,调动学习积极性,启迪智慧,避免了一言堂。
(三)启发式教学法
针对同一个问题,先讲述一种解题方法,然后进行延伸和拓展。引导学生去思考、去分析,有多少种解法、谁的效率最高、谁的易读性最好等。
譬如:求1+21+22+……+2n
首先,从每一项考虑,每一项都是一个乘积,i个2的连乘,自然想到使用循环去求每一项。代码如下:
int i, j, n, product, sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++){
product=1;
for(j=1;j<=i;j++) product*=2;
sum+=product;
}
printf("%d",sum);
其次,考虑到各项的特点,可以根据前一项乘以2就可求得下一项,可以修改如下:
int i, n, product=1, sum=1;
scanf(“%d”,&n);
for(i=1;i<=n;i++){
product*=2;
sum+=product;
}
printf(“%d”,sum);
再其次,考虑乘法的效率比加法的低,将乘法改成加法,可以修改如下:
int i, n, product=1, sum=1; scanf(“%d”,&n);
for(i=1;i<=n;i++){
product+= product;
sum+=product;
}
printf(“%d”,sum);
最后,考虑到左移一个二进制位,相当于乘以2,因此可以使用移位运算来实现,修改如下:
int i, n, product=1, sum=1;
scanf(“%d”,&n);
for(i=1;i<=n;i++){
product<<=1;
sum+=product;
}
printf(“%d”,sum);
从而激发思考、开拓思维和潜能。
在实际教学中,教学方法是多样的、因地制宜的,针对不同的教学内容、教学对象,选用不同的教学方法、创造不同的教学模式、达到最优的教学效果。
三、多元教学辅导
教学活动是一个复杂的过程,包括课前的组织、课中的讲授、课后的答疑。教材的选择也是一个重要的方面,纵观C语言程序设计的教材,仅清华大学出版社出版的就有300种左右,然而,真正适用于应用型教学的并不多,教材大多注重C语言的语法,极少涉足实际应用。因此,产生了学完C语言编程,并不会编程,不会用它去解决实际问题的现象。因此,教师在备课时既要重视基础知识、更要注重实际应用,注重多教材的参考,博采众家之长。
因此,适宜于地方院校的教材、实验指导书、多媒体课件、教学网站等立体化的教材建设是当务之急。另外,互联网、大众化的程序设计竞赛也是教学的重要辅导和参考书。
四、多元考核方式
由于倡导通识教育和素质教育,专业课的学时一般大幅减少,平时作业、实验报告不可避免地存在着抄袭现象,仅仅通过期中和期末的统一考试来督促学习、检验学习效果是存在不足的。因此,老师并不能真实掌握每个学生的学习情况,必须在课间或课堂上增加对预习、复习的检查频度,增加课堂单元测验,以此为依据来了解和检验学习效果,起到警示和督促作用。考试的形式可采用机考、答辩等,最终按一定比例将预习、复习、提问、测验、考试综合起来作为该课程的最后成绩。
五、“三动”学习方法
“三动”动眼、动脑、动手,是学好程序设计的基本方法。
俗话说“熟能生巧”。必须经历大量的编码练习,在练习中去熟练、去思考、去发现规律、去创新,只有经历量的积累,才能导致质的飞跃。“赵括的纸上谈兵”是荒谬的,“实践才是检验真理的唯一标准”。在学习编程的过程中,无论是阅读理解程序、还是调试程序、检验算法的对错,手工执行代码都是一个非常重要的手段。在教学中我们发现,不少学生眼睛盯着代码中的字母和数字发呆,对于简短的代码,可能动动眼,转转脑就可以理解其功能;对于较长的程序仅仅动动眼,转转脑,肯定是不行的;必须拿出纸和笔,仔细演算,才能理清思路、搞清各个值的变化,最后理解算法的功能。
六、结语
以学生为主体、以教师为主导、以训练为主线、知识应用为关键作为准则,以学生的主观能动性为基础,勤动手、多动脑,才是学习C语言的有效方法,才能逐步夯实编程基本功、培养和提高实践能力和创新能力。
[参考文献]
[1]吴文虎,徐明星编著.程序设计基础(第3版)[M].北京:清华大学出版社,2010,11.
[2]何钦铭,颜晖主编.C语言程序设计[M].北京:高等教育出版社,2008.4.
[3]熊启军.基于渐进启发式的数据结构线性表的教学[J].现代计算机,2011(6).
[4]赵立双,刘洪涛,商志光.多维教学模式在高校_数据结构_课程教学中的探索与实践[J].渤海大学学报,2010(12).
(作者单位:湖北文理学院数学与计算机科学学院 襄阳)