论文部分内容阅读
中图分类号:G623文献标识码: A
高等职业教育具有普通高等教育和职业技术教育的双重意义。从现阶段众多职业教育院校的运作模式来看,是一种学历教育规范内,注重非学历的技能培训教育模式。鉴于高职教育这一特点和内在要求,它的课程体系及教学模式严格和市场接轨,紧跟人才市场需求,致力于培养出去就能做事或只需经过短期培训即可做事的人才,计算机专业的学生动手能力尤为重要,而计算机编程语言的使用是计算机专业学生的基本素质,成为教学的重中之重,因此,提高计算机语言的教学质量和效果至关重要。据国内外专家的调查统计及众多高校实践教学反映,对于初学者而言,计算机编程语言是一门较难掌握的课程,教学中存在多方面問题,学生编程能力低,总体教学效果不理想,不能较好地达到高职院校对学生动手能力方面的要求。
计算机语言学习中的几种困难:
1)有畏难情绪。
一听说编程,有的学生就觉得很难。首先有心理障碍,学习过程顺畅还好,一旦遇到难理解的知识点,就怀疑自己。难理解的知识点积累到一定程度后,开始慢慢放弃,直到跟不上课,破罐破摔。
2)语法掌握差,编程习惯不规范。
观察学生上机情况,会发现很多同学的程序卡壳在一些小问题上:关键字拼写错误、大小写错、中英文模式错,多空行或少空行,数据类型乱用混用,程序结构理解错误等。关注程序结果兴趣大,顾及编程过程及编程风格少。基本功薄弱,心急浮躁型。
3)编程思路不清晰。
写出的程序结构不清晰,规模臃肿,可读性差,程序效率低。偏难一点的程序,就会感觉无从下手,出现即使能听懂却动不了手的现象,典型的眼高手低。
4)学习态度消极。
上课时,遇到难理解的就放弃;上机时,遇到程序卡壳就放弃。不主动提出问题,不积极思考问题。自由练习时散漫,交作业和关注考试内容却积极。典型的应付考试型。
对以上情况的分析:
学生有以上表现,不完全是学生单方面的原因,是初学者中的典型现象,但这些问题将导致学生一学期下来,收获甚微。因此,我们还应该从课程本身和教师引导方面找原因。计算机编程语言本身比较抽象,要将需解决的问题,按计算机处理数据的内部机制,遵从编程语言的规定按步骤编写出来,确实需要逐步训练出一个慎密的思维过程。另外,据Iain Milne和Glenn Rowe的统计,编程语言中的几个知识点,如指针、与内存相关的知识点等是学生理解的瓶颈,这些都造成了学习的困难。
除此之外,老师在编程教学中的作用也非常重要。学习编程语言,首先就会接触到许多庞杂的语法知识,老师必须帮助学生找准重点,讲清关键点,攻破难点,提醒易错点。还要引导学生一开始就养成良好的编程习惯,逐步训练编程思路,有效的鼓励学生,营造良好的编程学习氛围。在这方面,老师切忌只号召或喊口号,要实际引导,通过老师的引导真正带动了学生的行动。
提高计算机编程语言教学效果的措施
一是从语法、语义本身的角度;二是从编程思路的角度,最后是老师对学生的激励措施方面。学生刚开始学习编程,对编程语言本身的运作机理首先就不理解,也就是首先需要一个认知过程,而要把实际问题,抽象为在编程规则约束下的算法,用程序语句表达出来,然后得到解决答案的过程,需要一个训练过程。在学习过程中,学生可能遇到这样那样的问题,其中的挫折可能导致学生不同程度的产生放弃的念头。如何引导学生的编程兴趣,增强学生编程的信心,老师在此层面的作用,至关重要,否则,众多学生的放弃实际就是败在第三层次上。
1. 理清课程的知识点
1)对于每个知识点,知道该去关注本知识点的一些什么东西。比如,学习数据类型,必须关注每种数据类型的类型名、表示的长度、能进行的计算、特殊用途。学习流程结构,必须知道它们运行的细节。学习函数,必须关注这个函数名,参数的个数和类型,返回值,另外就是要习惯查库函数。学习类和对象,要学会抽象出类,分离出每个类的属性和行为等。这样每个知识点有该关注的点,学习起来就有针对性,上机编程时,也不至于犯很多的语法错误,调试排错时,也会本能地朝这些方面去检查。否则,就会眉毛胡子一把抓,结果什么都记不住。
2)利用案例去理解和掌握知识点。现在很多书本为案例教学,本堂课的知识点体现在案例中哪些语句上,用法怎样,和上下文之间如何衔接等均可以从案例中学习到。学生去背程序是不可能也完全没有必要的,在理解案例基础上,抓住了案例中体现出来的知识点,掌握好每堂课的知识点,本堂课就做到重点突出了。
2.编程思路的训练
1)用模块化、逐步细化的分析方法。
教会学生站在全局的角度分析问题,将问题按功能分解成一个个小问题,然后按步骤各个解决。对学生而言,如果程序功能比较单一,代码行数比较少,学生容易把握。当一个程序要处理的问题多了,或者逻辑关系稍微复杂了,就顿时感觉头大,无从下手。如果用模块化的思想来解决问题,就会有条有理,逻辑清楚,不会错漏。
2)让学生了解程序细节,即程序的运行过程。
比如JSP课程中,运行结果中出现的界面元素(比如一个图片、一个表单、一个链接,或者一个处理结果),给学生指出,分别对应程序中的哪几行代码。这样也能根据运行结果去推理程序的编写流程和运行细节,让学生知其然知其所以然,还能把一些有用的代码重用,下次写程序时,能直接搬出那段代码来,这样知识块累计起来,时间长了,掌握的东西自然就多了。
3)训练学生程序调试、排错能力。
没有任何一个人写出来的程序是不需要排错的。初学者班级的老师,会发现辅导学生上机时是最累的,可能老师整堂课程到处跑着帮学生排错,结果还发现解决的却几乎是同样的问题。因此,课程中,首先要训练学生怎么在调试过程中分析错误报告,然后教会学生一些基本的排错技巧。每堂上机课的开始,可以先提醒学生,在本次练习中,一般会出现什么错,怎么解决。课堂最后几分钟,可以跟同学们总结一下,此次上机大家仍然还在犯什么方面的错。这有利于节省学生卡壳的时间,老师的工作效率也会提高很多。
3.有效的激励措施
1)把握好上机课作业的难度。
特别那种记录在数的、学生比较看重的作业,有意识地让他们能有几次是所有同学都能圆满完成的,无形地给他们获取成功的感觉,增强编程的信心。
2)辅导上机时鼓励胆小和不主动学习的学生。
对于编程而言,即使是一个小问题被卡住,整个编写、编译和运行过程就进行不下去,让学生自信心和学习兴趣严重受挫。辅导上机时,细心的老师们会发现,有部分同学羞于问问题。更有甚者,当自己程序出现问题实在解决不了,不但不发问,老师经过时,还连忙掩藏起来。如果看到这种情况,老师们可以主动凑过去,即使程序没有错误,对于那些腼腆胆小的学生,也要时常关注,偶尔站到他们身边,鼓励地说一些诸如“嗯,就是这样”;“不错”;“如果有问题解决不了,就要及时叫我”之类的话。这样一来,学生会发现老师在关注每一个学生,也会很感恩,师生之间的关系就融洽了,营造了一个好的学习环境,老师的教课激情、学生的学习兴趣和积极性自然也提高了。
3)设计编程题目时,有意激发学生的创新意识。
变更题目的要求,要求学生写灵活性更强,适应面更广的程序,训练学生的发散性思维和变通能力。比如,求三个数的最大公约数和最小公倍数,等学生写完了,可以问学生,我们是不是可以试着写一写求多个数的最大公约数和最小公倍数呢?这样程序功能更大,健壮性更强,学生自然摩拳擦掌,跃跃欲试。
4)抓住学生的学习心理,从其他方面刺激他们学习的兴趣。
单纯用学习好所带来的物质、经济方面的激励言辞,确实可以让部分学生逼迫自己学习,但也很可能带来的动力是极其短暂的。特别是对于90后这一代学生,网络、电影、电视等社会中的一些因素对他们有很大冲击,他们的脾气秉性已和老师们的读书年代有很大不同,因此要抓住他们的心理喜好去刺激他们。比如,从编程中找到的乐趣和收获的成就感就是发自内心的,可以让学生在没有任何外在逼迫的情况下沉浸在编程的乐趣中。抓住学生的学习心理,不单纯纠结于学生不认真的态度,偏要多鼓励而少责备,站在理解学生的基础上,学生容易接受。如今年代的孩子流行颓废,喜欢想往那飘渺的理想未来,那就顺其自然,用他们喜欢的方式去激励他们。
结语
教育工作本身是一种引导性很强的工作,学生们的心智还不成熟,老师的引导在他们人生中可能产生非常大的影响,不经意的一句话或者一件事,都可能对学生的以后造成很大的影响,言重点说,有时候真的就可以成就了一个人,也可能无意将他们推入了消沉的深渊。所以,老师们首先要热爱教育、热爱学生,然后要用心教学。计算机编程语言的教学尤其如此,课程本身的特性、学生的学习习性等,决定了需要师生默契配合,树立信心,相互鼓励,以求获得良好的教学效果。
高等职业教育具有普通高等教育和职业技术教育的双重意义。从现阶段众多职业教育院校的运作模式来看,是一种学历教育规范内,注重非学历的技能培训教育模式。鉴于高职教育这一特点和内在要求,它的课程体系及教学模式严格和市场接轨,紧跟人才市场需求,致力于培养出去就能做事或只需经过短期培训即可做事的人才,计算机专业的学生动手能力尤为重要,而计算机编程语言的使用是计算机专业学生的基本素质,成为教学的重中之重,因此,提高计算机语言的教学质量和效果至关重要。据国内外专家的调查统计及众多高校实践教学反映,对于初学者而言,计算机编程语言是一门较难掌握的课程,教学中存在多方面問题,学生编程能力低,总体教学效果不理想,不能较好地达到高职院校对学生动手能力方面的要求。
计算机语言学习中的几种困难:
1)有畏难情绪。
一听说编程,有的学生就觉得很难。首先有心理障碍,学习过程顺畅还好,一旦遇到难理解的知识点,就怀疑自己。难理解的知识点积累到一定程度后,开始慢慢放弃,直到跟不上课,破罐破摔。
2)语法掌握差,编程习惯不规范。
观察学生上机情况,会发现很多同学的程序卡壳在一些小问题上:关键字拼写错误、大小写错、中英文模式错,多空行或少空行,数据类型乱用混用,程序结构理解错误等。关注程序结果兴趣大,顾及编程过程及编程风格少。基本功薄弱,心急浮躁型。
3)编程思路不清晰。
写出的程序结构不清晰,规模臃肿,可读性差,程序效率低。偏难一点的程序,就会感觉无从下手,出现即使能听懂却动不了手的现象,典型的眼高手低。
4)学习态度消极。
上课时,遇到难理解的就放弃;上机时,遇到程序卡壳就放弃。不主动提出问题,不积极思考问题。自由练习时散漫,交作业和关注考试内容却积极。典型的应付考试型。
对以上情况的分析:
学生有以上表现,不完全是学生单方面的原因,是初学者中的典型现象,但这些问题将导致学生一学期下来,收获甚微。因此,我们还应该从课程本身和教师引导方面找原因。计算机编程语言本身比较抽象,要将需解决的问题,按计算机处理数据的内部机制,遵从编程语言的规定按步骤编写出来,确实需要逐步训练出一个慎密的思维过程。另外,据Iain Milne和Glenn Rowe的统计,编程语言中的几个知识点,如指针、与内存相关的知识点等是学生理解的瓶颈,这些都造成了学习的困难。
除此之外,老师在编程教学中的作用也非常重要。学习编程语言,首先就会接触到许多庞杂的语法知识,老师必须帮助学生找准重点,讲清关键点,攻破难点,提醒易错点。还要引导学生一开始就养成良好的编程习惯,逐步训练编程思路,有效的鼓励学生,营造良好的编程学习氛围。在这方面,老师切忌只号召或喊口号,要实际引导,通过老师的引导真正带动了学生的行动。
提高计算机编程语言教学效果的措施
一是从语法、语义本身的角度;二是从编程思路的角度,最后是老师对学生的激励措施方面。学生刚开始学习编程,对编程语言本身的运作机理首先就不理解,也就是首先需要一个认知过程,而要把实际问题,抽象为在编程规则约束下的算法,用程序语句表达出来,然后得到解决答案的过程,需要一个训练过程。在学习过程中,学生可能遇到这样那样的问题,其中的挫折可能导致学生不同程度的产生放弃的念头。如何引导学生的编程兴趣,增强学生编程的信心,老师在此层面的作用,至关重要,否则,众多学生的放弃实际就是败在第三层次上。
1. 理清课程的知识点
1)对于每个知识点,知道该去关注本知识点的一些什么东西。比如,学习数据类型,必须关注每种数据类型的类型名、表示的长度、能进行的计算、特殊用途。学习流程结构,必须知道它们运行的细节。学习函数,必须关注这个函数名,参数的个数和类型,返回值,另外就是要习惯查库函数。学习类和对象,要学会抽象出类,分离出每个类的属性和行为等。这样每个知识点有该关注的点,学习起来就有针对性,上机编程时,也不至于犯很多的语法错误,调试排错时,也会本能地朝这些方面去检查。否则,就会眉毛胡子一把抓,结果什么都记不住。
2)利用案例去理解和掌握知识点。现在很多书本为案例教学,本堂课的知识点体现在案例中哪些语句上,用法怎样,和上下文之间如何衔接等均可以从案例中学习到。学生去背程序是不可能也完全没有必要的,在理解案例基础上,抓住了案例中体现出来的知识点,掌握好每堂课的知识点,本堂课就做到重点突出了。
2.编程思路的训练
1)用模块化、逐步细化的分析方法。
教会学生站在全局的角度分析问题,将问题按功能分解成一个个小问题,然后按步骤各个解决。对学生而言,如果程序功能比较单一,代码行数比较少,学生容易把握。当一个程序要处理的问题多了,或者逻辑关系稍微复杂了,就顿时感觉头大,无从下手。如果用模块化的思想来解决问题,就会有条有理,逻辑清楚,不会错漏。
2)让学生了解程序细节,即程序的运行过程。
比如JSP课程中,运行结果中出现的界面元素(比如一个图片、一个表单、一个链接,或者一个处理结果),给学生指出,分别对应程序中的哪几行代码。这样也能根据运行结果去推理程序的编写流程和运行细节,让学生知其然知其所以然,还能把一些有用的代码重用,下次写程序时,能直接搬出那段代码来,这样知识块累计起来,时间长了,掌握的东西自然就多了。
3)训练学生程序调试、排错能力。
没有任何一个人写出来的程序是不需要排错的。初学者班级的老师,会发现辅导学生上机时是最累的,可能老师整堂课程到处跑着帮学生排错,结果还发现解决的却几乎是同样的问题。因此,课程中,首先要训练学生怎么在调试过程中分析错误报告,然后教会学生一些基本的排错技巧。每堂上机课的开始,可以先提醒学生,在本次练习中,一般会出现什么错,怎么解决。课堂最后几分钟,可以跟同学们总结一下,此次上机大家仍然还在犯什么方面的错。这有利于节省学生卡壳的时间,老师的工作效率也会提高很多。
3.有效的激励措施
1)把握好上机课作业的难度。
特别那种记录在数的、学生比较看重的作业,有意识地让他们能有几次是所有同学都能圆满完成的,无形地给他们获取成功的感觉,增强编程的信心。
2)辅导上机时鼓励胆小和不主动学习的学生。
对于编程而言,即使是一个小问题被卡住,整个编写、编译和运行过程就进行不下去,让学生自信心和学习兴趣严重受挫。辅导上机时,细心的老师们会发现,有部分同学羞于问问题。更有甚者,当自己程序出现问题实在解决不了,不但不发问,老师经过时,还连忙掩藏起来。如果看到这种情况,老师们可以主动凑过去,即使程序没有错误,对于那些腼腆胆小的学生,也要时常关注,偶尔站到他们身边,鼓励地说一些诸如“嗯,就是这样”;“不错”;“如果有问题解决不了,就要及时叫我”之类的话。这样一来,学生会发现老师在关注每一个学生,也会很感恩,师生之间的关系就融洽了,营造了一个好的学习环境,老师的教课激情、学生的学习兴趣和积极性自然也提高了。
3)设计编程题目时,有意激发学生的创新意识。
变更题目的要求,要求学生写灵活性更强,适应面更广的程序,训练学生的发散性思维和变通能力。比如,求三个数的最大公约数和最小公倍数,等学生写完了,可以问学生,我们是不是可以试着写一写求多个数的最大公约数和最小公倍数呢?这样程序功能更大,健壮性更强,学生自然摩拳擦掌,跃跃欲试。
4)抓住学生的学习心理,从其他方面刺激他们学习的兴趣。
单纯用学习好所带来的物质、经济方面的激励言辞,确实可以让部分学生逼迫自己学习,但也很可能带来的动力是极其短暂的。特别是对于90后这一代学生,网络、电影、电视等社会中的一些因素对他们有很大冲击,他们的脾气秉性已和老师们的读书年代有很大不同,因此要抓住他们的心理喜好去刺激他们。比如,从编程中找到的乐趣和收获的成就感就是发自内心的,可以让学生在没有任何外在逼迫的情况下沉浸在编程的乐趣中。抓住学生的学习心理,不单纯纠结于学生不认真的态度,偏要多鼓励而少责备,站在理解学生的基础上,学生容易接受。如今年代的孩子流行颓废,喜欢想往那飘渺的理想未来,那就顺其自然,用他们喜欢的方式去激励他们。
结语
教育工作本身是一种引导性很强的工作,学生们的心智还不成熟,老师的引导在他们人生中可能产生非常大的影响,不经意的一句话或者一件事,都可能对学生的以后造成很大的影响,言重点说,有时候真的就可以成就了一个人,也可能无意将他们推入了消沉的深渊。所以,老师们首先要热爱教育、热爱学生,然后要用心教学。计算机编程语言的教学尤其如此,课程本身的特性、学生的学习习性等,决定了需要师生默契配合,树立信心,相互鼓励,以求获得良好的教学效果。