时间:2023-06-16 16:10:09
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇计算机语言的概念,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
关键词:教学方法;语言;设问解答式
“C语言程序设计”是高等学校的公共基础课程,该课程要求学生了解程序设计的基础知识并通过基本的编程训练,培养大学生的计算机应用能力和软件设计的基本能力[1]。C语言程序设计概述(下简称“概述”)是课程的第一讲内容,一般包括计算机程序设计的基本概念、C语言的产生及发展过程和C语言程序设计的特点[2]。作为课程的导入课,“C语言程序设计概述”的课堂教学应该树立起学生对课程的宏观和整体认识,要解释和回答好以下几个问题[3]252:为什么要学这门课?这门课有什么用途?什么是计算机语言?计算机语言和人类自然语言有什么异同?什么是程序设计语言?程序设计语言是什么样的计算机语言?C语言又是什么样的程序设计语言?如何学好C语言?传统的课堂教学往往对上述问题没有完全回答或回答得不好。
2教学内容设计
笔者曾经做了这样一个调查,对正在学习C语言程序设计课程,而且学习已经接近尾声的学生进行问卷调查。75%的学生回答不出来课程有什么用?85%的人不能准确说出“计算机语言”的概念,80%的人不能说出到底什么是“C语言”?70%以上的学生认为没有十足的把握一次通过计算机二级考试。从这个调查问卷,发现笔者的“C语言程序设计”教学真的很失败――学生连最基本的概念都没有掌握,我们感到上好“概述”真的十分重要。教师在讲解“概述”时,一般就是从给学生演示“程序编辑调试”入手,进而讲解C语言的发展,接着讲解C语言程序设计中的数据类型、控制语句等。殊不知,这些学生都是从高中才进入大学,他们对程序设计可能一无所知,乍一接触这些知识,一下子可能无法接受,更有学生从此就失去了学习“C语言程序设计”的兴趣。
2.1设问解答式教学思路[4-6]
“概述”是C语言教学的敲门砖,上好这一节课,直接影响到后续章节的成败。讲述这个内容时,我们首先需要讲解这门课程的重要性,使学生认识到这门课必须要学好。在学生还不知道课程内容时,适当地通过课程提问,逐一分析解决,使学生认识到C语言的强大功能,产生学习的动力,希望学好C语言,了解C语言的学习方法。如图1所示。
2.2承上启下讲解课程的性质
对于学习,人总有一种想法,重要的东西才去学。对任何一门课程,教师必须要跟学生强调这门课程的重要性,从扩充知识体系方面去强调重要性,同时要用通俗的语言来提起学生的兴趣。对于C语言程序 设计,我们采用了如图2所示的讲解方法,使学生初步了解课程的重要性。
2.3层层递进提出问题
设问解答式在教学中已经成为一种流行的教学方法,但在问题设置和解答方面都要有技巧。很多人习惯提的问题是某一讲内容的重点、难点,殊不知,学生还没有开始内容的学习,如何能做到对提出问题有印象,从而做出解答。针对学生对程序设计的了解情况,我们设置以下问题,这些问题层层递进,如果学生了解了这几个问题,那么就对C语言有了一定的了解:
1) 有了丰富的人类语言,为什么还要有计算机语言?
2) 计算机语言有何特征?
3) 程序设计语言是一种什么样的计算机语言?
4) C语言是什么样的程序设计语言?有何特点和作用?
5) 如何学习C语言?
2.4教学方法和技巧――解决问题
2.4.1为什么要学习计算机语言
这是每个计算机初学者遇到的问题,我们利用图3所示的方法来使学生了解计算机语言与人类语言的区别:计算机语言是人与电脑交流的工具,计算机看得懂;而人类的自然语言是人与人交流的工具,计算机不认识。因此我们要指挥计算机做事,就必须要学习计算机的语言。
2.4.2计算机语言家族
有学生认为所有的语言学起来都枯燥无味,计算机语言也不例外。这个时候我们可以列举一下“图灵奖与计算机语言”,如图4为计算机语言的类别,通过讲解让学生了解到计算机语言的大师们对计算机语言的贡献,对计算机及信息技术发展的贡献,使他们感受到计算机语言的魅力,激发学习兴趣。
2.4.3以独特的视角展现“C语言”特色
学生在了解了计算机语言的概念后,肯定很想知道计算机语言的特征,我们抓住学生的心理特点,将C语言的特点总结如下:
1) 严格定义,有严谨的语法;
2) 语义上无二义性;
3) 比自然语言要精简;
4) 是机器可执行的。
在讲解这一部分时,我们一定要注意与人类的自然语言进行对比,使学生留下深刻的印象。
2.4.4层层细化,讲解C语言的发展
当学生了解了“语言”、“计算机语言”之后,接着即可引入“C语言”的相关知识。讲解过程中,我们始终把握联系实际,由浅入深的步骤[3]252-253,如图5展示了讲解思路,采用图示的方式讲解计算机语言的发展过程:
2.4.5图解“程序”的概念
我们一直强调,要计算机做事,要控制计算机,而其中重要的步骤是编写程序、解决问题。理论上说,计算机可以作任何事情,只要把实际问题抽象、制作为可求解的程序,本过程适宜采用如图6所示的图示方式讲解[3]252。
3结语
我们在全校“C语言程序设计”教学中普遍实施上述教学思路,教师和学生普遍感觉收获颇多,特别是加深了学生对C语言的了解,激发了他们学习的兴趣,课堂教学与实验教学效果都比过去有了明显改善。“C语言程序设计”课程在2010年度被评为湖南省精品课程。通过改革教学内容、改进教学方法使C语言教学更适应学生的需求,便于学生循序渐进地学习相关知识和技能[7]。同时在这个过程中,学生会不断地获得成就感,更大地激发起求知欲望,从而培养出独立探索、勇于开拓进取的自学能力。最终使我们的教学更适用于培养学生的创新能力、独立分析问题和解决问题的能力[8]。
注:本文所涉及内容的视频录像可在湖南工业大学“C语言程序设计”省级精品课程网站:218.75. 216.182/vc/850839观看。
参考文献:
[1] 张锦祥. 高级程序设计语言课程教学改革与实践[J]. 浙江教育学院学报,2007(4):71-76.
[2] 谭浩强. C程序设计[M]. 3版. 北京:清华大学出版社,2005:1-12.
[3] 赵娜. C语言程序设计课程教学研究[J]. 科技情报开发与经济,2007,17(8):252-253.
[4] 郭敏,刘会杰.“目标任务型”教学模式在程序设计课程教学中的应用[J]. 河北广播电视大学学报,2007(2):54-56.
[5] 刘小燕,申艳梅.“C语言程序设计”教学方法探析[J]. 计算机教育,2010(6):94-96.
[6] 杨素吟. 设问讲练教学法在教学中的运用[J]. 职业教育研究,2005(8):59-59.
[7] 温雅敏. 数学专业高级语言程序设计课程教学模式改革探讨[J]. 科技经济市场,2008(5):119-120.
[8] 楼蔚松. C语言教学新模式探索[J]. 现代企业文化:理论版,2009(22):191-192.
Based Question and Answer Style’s“C Programming Language Overview”Teaching Content Design
LIU Qiang, LI Changyun, RAO Juhua
(School of Computer and Communication, Hunan University Of Technology, Zhuzhou 412008, China)
关键词:高职院校;计算机专业;入门语言
高职院校计算机专业开设的计算机入门语言课,是计算机专业学生学习的第一门计算机语言,入门语言重点讲授程序设计的基本概念与方法,通过入门语言的学习,要将学生引入程序设计的大门,为今后进一步深入学习程序设计打下良好的基础,如果第一门计算机语言学习不好,将直接影响学生后续课程的学习,使得学生很难在专业上有进一步的发展。当前,随着高职院校计算机专业学生就业新形势的出现和计算机软件新技术的出现,使得高职计算机专业入门语言应根据新形势的需要进行适当的改革,以适应新形势的发展需要。
一、入门语言种类的调整,由c语言转换为c++语言
c语言是最具代表性的面向过程的程序设计语言,其功能强大,语法灵活,一直深受程序员的喜爱。正因为如此,多少年来几乎各类高等院校都将C语言作为高校学生的入门语言,这也成就了谭浩强先生的经典教材《c语言程序设计》800万册销量的奇迹。然而,当前随着新形势的出现,应该用C++语言取代C语言作为学生的新的入门语言。由三点原因决定了对这种课程设置改革的必要性。
1 “2+1”人才培养模式要求我们在课程设置上要更加紧凑,在衔接上要更加紧密。
当前高职计算机专业为了提高学生的职业技能,采用以顶岗实习为突出特征的“2+1”人才培养模式,即前两年的理论学习加第三年的顶岗实习。因此学生在校实际学习理论课程的时间只有两年,在校学习时间的缩短,要求计算机语言课程衔接更加紧密。
2 C++是在c语言的基础上发展而来的,它完全兼容于C语言,传统的课程设置方式开设完C语言一年后再开设C++,就要花费20学时的时间来讲C的内容,讲授的内容完全相同,这其实是课程设置的一种重叠。
3 当前C++语言体现“面向对象”技术是软件行业的主流技术,与其先向学生灌输C语言的“面向过程”的编程思想,将来再让他们去转变这种已经深入内心的思想,不如一开始就把最先进的程序设计思想传授给学生。
二、授课时做到语言丰富,生动、通俗易懂,用一些经典的例子和恰当的比喻贯穿始终
C++作为一种高级计算机语言,有自身的特点,C++语言的设计者之一斯坦・利普曼先生曾在《C++Primer》一书中指出“C++是最为难学的高级程序设计语言之一”,因为C++牵涉概念繁多,语法比较复杂,体系结构的庞大,很多概念非常抽象,将其作为入门语言,学生学习的过程中,会遇到很多困难。在这种情况下如果再语言单一,枯燥地讲解各种晦涩的语法知识,会使课堂沉闷,大大降低学生的学习兴趣。所以讲授C++程序设计时要做到语言丰富、生动、通俗易懂,用一些经典的例子和恰当的比喻贯穿始终,营造出和谐愉快的课堂氛围,这样才能让学生体会到在轻松的环境中获取知识的乐趣。其中选择经典的例子和恰当的比喻非常重要,它们不但可以使抽象的知识容易理解,还可以提高学生的兴趣,提高学习效率。比如,多态性是面向对象思想中的重要特征,但其概念描述为不同的对象接受了相同的命令产生不同的行为却非常抽象,不易理解。为了理解这一概念,可以利用上课铃声响起这一同样命令被教师和学生两种不同对象接收后,产生了教师走上讲台准备授课,学生安静坐好准备听课这两种不同的行为,这就是现实世界中多态性的实例。利用这样的现实例子,会很容易地理解类似的抽象概念。
三、笔试与上机相结合的过程化考核方式的使用
考核是教学活动中十分重要的环节,通过考核可以检验学生的学习成果。传统的程序设计课程的考试都采用期末笔试答卷的方式进行。然而以期末笔试的考核方式有两点明显的不足:第一,学习程序设计的最终目的是使用计算机进行编写程序来解决实际问题,而笔试只能考察理论知识掌握的水平,无法衡量知识的运用能力,单靠笔试的方式衡量学生计算机语言的运用水平本身就不准确。第二,一学期的学习,单靠最后一次期末考试考核学生的成绩,导致平时相当数目的学生对学习投入不够,以考前突击的方式应对考试。因为各方面能力的培养都需要一个过程,短时间的突击不但导致所学知识不够扎实,更对学生的知识运用能力与素质能力的培养毫无帮助,这也是以期末考试考核学生的成绩的最大弊端。
过程化考核是一种新型的考核方式,它是在学习的过程中对学生进行多次的分阶段,多种形式的测验,得到最终的学习成绩,这种考察方式不但较为客观地衡量出学生对知识的掌握与运用水平,还通过多次的考核时时激励学生,在学习的过程中始终怀着严谨的态度和饱满的热情,获得最佳的学习效果。《C++程序设计》课程的过程化考核采用笔试与上机相结合的方式进行,两次笔试重点考察学生的理论的掌握水平,四次上机考核重点衡量学生的知识实际运用水平,六次考核都在理论课与实验课的课堂完成。这种多次的阶段性考核措施保证了学生的学习热情与投入程度,在实际使用中取得了很好的教学效果。
四、恰当学习情境支撑抽象的理论知识
学习情境是指为学生提供一个完整、真实的问题背景,以此为支撑物启动教学。一个恰当的教学情境,是激励学生主动参与学习的根本保证,学习情境的创设是教学设计中的一个重要环节。在C++程序设计这门课程中主要可以创设两种学习情境:
关键词 计算机语言 发展 面向对象 必然性
中图分类号:TP3 文献标识码:A
0引言
计算机是现在人们日常生活中必不可少的实物,在生活以及工作中起着重大的作用,可以说,我们每天都会长时间的接触计算机,计算机的普及和日益的发展严重的影响着人们的日常生产和生活。计算机看似简单的结构,一个主机一个显示器,但是在计算机的背后运行却有着复杂的结构和设计,计算机的运行主要依托的部分是计算机语言,计算机的运行需要计算机语言的指引和控制。计算机的发展同时也促进了人们对计算机的使用,计算机使用量的增大也提高了对计算机的要求,特别是计算机的运行,要求的是计算机的语言。从计算机语言到汇编语言、计算机高级语言,再到结构化语言和面向对象语言,都表明计算机的语言在性能、方法、用途等方面的逐渐发展和完善。发展的目前,计算机面向对象语言是计算机语言的重要内容,也是现在软件开发的主流元素,技术的使用和完善,必然也会推动计算机语言的发展。
1算机语言的发展概况
计算机是一种机器的工具,在对各种程序执行过程中主要的依托是事前设计好的语言程序,操作支配语言,可以识别机器的语言,按照语言的指示运行有关的程序、进行相应的操作,才可以正常执行程序的运行。计算机语言的发展是一个逐渐发展的过程,在人们的需求和社会科技的促进下才发展起来的结果
1.1计算机语言的发展是一个不断演化的过程
任何事物的发展都是一个循序渐进的过程,在计算机语言的设计和使用过程中,计算机的出现和使用为人们的生产生活工作带来很大的便利,人们对计算机的使用日益增多,进而对计算机的运行速度等的要求也在逐渐提高,面对这一情况,计算机语言的设计在这样的背景下得以提高也是一个自然而然的过程,满足人们不断变化的需求、满足社会科技的需求,就是计算机发展的动力之一,也是计算机语言发展的不可或缺的动力。计算机语言的发展主要经历了以下几个阶段:机器语言汇编语言高级语言结构化语言面向对象语言。从上述发展的阶段来看,计算机语言的发展在多方面都是创新,这样的创新满足了人们的需求和社会科学技术发展的应用需求。
1.2机器语言
计算机作为一种机器,即使非常先进也是依靠事先设计好的程序和语言来运行的,毕竟是一种机器,可以识别的语言是机器语言,机器语言是由“0”、“1”组成的二进制代码指令系列,是一种可以为计算机识别的特殊语言。计算机在运行过程中,不需要单独的编译,直接对指令进行操作,而且操作的效率非常高。这种机器语言,对于我们人类来说,是非常无聊和枯燥的,编写的过程是难以通过人类的记忆完成的,而且,人们对速度和质量要求的提高,更是加大了工作者的工作量,增加了工作者的工作压力,所以,就出现了逐渐适用性较高的汇编语言。
1.3汇编语言
汇编语言的出现,代替了机器语言的二进制编码。没有了二进制的“0”和“1”,编程人员在操作时,就不需要再大量的进行二进制的编码和记忆的操作,只需要对有些相对简单的汇编语言指令进行识别和标记,这样一来,后期的对程序的维护等也变得相对简单起来了,工作的轻度显然变得减小了。但是,这样的操作得到的语言是不能被计算机直接识别的。还需要通过特定的程序,把这样的语言变成可以被机器识别的语言,这个程序就是“汇编程序”。汇编语言的直接面对的对象还是计算机可以识别的机器语言,不同的计算机,汇编语言也是有一定的差异的,也就是说,这种程序和语言的可复制性还是受到限制的。虽然如此,汇编语言在软件开发工具的使用中还是很普遍的。
1.4高级语言
随着计算机软硬件的发展,计算机程序的要求也越来越高,不依托计算机硬件、还可以通用的计算机程序是一种技术发展的新追求。在这样的社会和人们的期待和要求之下,计算机高级语言应运而生。高级计算机语言,相对于机器语言和汇编语言而言,在很大程度上提高了计算机程序的编写效率与程序运行的可读性。高级计算机语言与汇编语言类似,计算机这种机器是不能直接识别的,还需要特定的程序进行解读,才可以被识别,进而程序正常运行。虽然相对于机器语言和汇编语言这设计和使用的过程汇总有一定的优势,但是在真正的使用过程中,还存在一些弊端。
1.5结构化语言
结构化语言是一种面向过程的语言,语言系统是以功能为中心的,并且在执行的过程中是流水线的形式。在结构化语言程序中,整个过程中间的任何一个过程或环节如果没有按照规定和要求很好的完成,由于执行过程方向是无法通过人为操作改变的,所以就会影响到以后过程汇总其他程序的有效运行。
2面向对象语言程序开发的必然性
面向对象语言程序是目前应用比较普遍的一种新的技术手段,事实证明,使用的效果与以往的相比还是有一定的优势的,是目前计算机领域关注的重点,也是软件开发的主流应用元素。而且面向对象的技术应用超过程序的设计和软件的本身,在技术的领域是有一定的竞争力和重大作用的。
2.1 时展的产物
面向对象语言程序是从最原始的机器语言,一步一步发展到今天的结果,事物的发展都是朝着前进的方向的,那么计算机语言程序也一定是这样的,计算机语言是一种机器语言,运用非常普遍,也很方便,人们对之的要求也是逐渐在提高。发展至今,基于对计算机运行速度和效率等多方面的要求,实用性比较强、比较方便、效率高、速度快的语言程序面向对象的开发是很有必要的,也是科学技术进步的结果和要求,是符合时展的产物,同时也可以满足人们对计算机以及其边界功能日益增长的要求。在当今这个物质生活非常充足的社会,计算机的发展、计算机程序的发展是必然的结果。面向对象开发的必然性是显而易见的。
2.2 减轻程序开发人员的压力
最初的计算机的语言是机器院,我们都知道,当时的程序人员的工作量是非常大的,需要设计二进制码的编写等,还不可以在不同的机器之间通用,针对有差异的机器还要设计有差异的编码,可想而知,这样的工作对于当时的工作人员来说,工作压力是非常大的。针对这样的问题,计算机语言的逐渐演化和完善,逐渐减轻了工作人员在这一方面的工作量,在一定程度上提高了程序人员的工作效率,同时也更适应现在社会这种快节奏的生活。如果,工作量还是很大,那么工作人员的工作效率第,就无法适应这样一个快节奏的社会,必然会影响科学技术领域的日益壮大和发展。
2.3 满足人们对计算机的高要求
自从人们的生活中出现了计算机到现在,人们的计算机的使用时间和频率,一直在逐渐的增加,最初接受计算机时,也曾经有过对计算机功能的陌生,甚至是不知道计算机的存在会给我们的生活带来什么样的改变和便利。逐渐,计算机强大的功能被认知,使用计算机的方便给我们的日常生活和工作到来了很大的方便,那么使用计算机的人员在增多。熟悉了计算机的功能后,自然而然的希望自己可以通过简单的操作获得更多的成果,那么对计算机的功能和使用的方便性提出了进一步的高要求,计算机的设计人员就必须满足人们的要求才可以保证计算机的存在有一定的价值,就是这样的动力,让计算机在日益的发展。到今天计算机语言程序面向对象法的出现,目的之一也是满足人们的高要求。
2.4 程序的维护成本低
计算机的使用几乎渗透各个领域,非常的普遍,使用的多,软件和硬件的技术要求就高。面向对象技术的使用,保证了开发出来的软件的稳定性比较强,同时设计的使用并不是唯一的,可以重复使用,克服了面向过程设计的缺陷之一,同时封装性、继承性等优点,都为软件的使用和设计提供了更加方便的条件。面向对象技术开发出淼娜砑由于其稳定性,所以维护起来比较轻松,更新和升级相对比较容易,进而整个程序的维护成本相对于以往的软件开发技术都有一定的低成本的优势存在。这也是面向对象技术的必要性之一。
3计算机面向对象技术的核心思想
面向对象技术是一种把对象作为基础,以数据作为中心,将数据和数据操作作为整体进行事件驱动对象处理的程序设计。面向对象的过程与面向过程的程序执行是不一样的,面向对象的程序设计更加有益于程序语言的编程和实现。
对象、类是开发的概念之一。对象是指软件系统模拟生活中一种实物的抽象,每个对象的存在都是唯一的,对象的属性和行为都是独特的。类是指很多对象的合集,包含很多具体的对象,类中的各个对象的状态也是不相同的。封装也是面向对象的核心部分,封装性是指一个对象的方法与属性都结合成为一个独立的单元,对象具体的内部细节不会反应在表面,外面只有有限的接口,和外界联系。继承性也是核心的思想之一,描述了对象之间的关系,对象之间的差异和相同性都可以表现出来。多态性是为同一种技术方法提供多个不同的展现版本。
4总结
当今社会,面向对象开发技术已经被提出多年,现在发展一段比较成熟,除了在计算机利于之外,在其他很多领域也有了很多非常重要的应用。计算机语言的发展,真可谓是一个想不到的过程,当然是一个逐渐发展完善、循序渐进的过程,最初的机器语言的应用也是有一定的地位的,至今,面向对象技术的应用,更是为科学技术的发展添加了浓墨重彩的一笔。当然,面向对象的开发也是很有必要的,满足了人们日益增长的对计算机运行和使用的需求、减轻了计算机程序工作者的工作量和工作效率的压力、顺应时展、促进科学技术的创新、降低软件运行维护的成本,都是面向对象技术应用的良好效果。
参考文献
[1] 李舒琪.计算机语言的发展[J]. 电子技术与软件工程,2017(01):152.
[2] 刘睿潇.计算机语言面向对象开发的发展探讨[J].电脑编程技巧与维护,2016(08):36-37.
[3] 单继周,马红,刘树林.计算机编程语言的发展与应用[J].科技经济市场,2016(01):16.
[4] 叶连杰.计算机编程语言的发展与应用[J]. 信息与电脑(理论版),2014(11):191-192.
关键词: C语言 程序设计 教学研究
1.C语言的特点
C语言是计算机软件开发领域中流行的程序设计语言之一,它使用灵活、功能丰富、表达力强、生成目标程序质量效率高、可移植性好、语法简洁精妙,很便于描述算法,同时还可以方便直接地控制计算机的底层硬件,使我们能够深入系统底层进行编程,既可用来编写系统软件,也可用来编写应用软件,应用范围很广。其由于功能强大、效率高、简洁灵活和可移植性强的特点,在软件开发领域深受编程人员的喜爱。
C语言由于是理想的结构化语言,同样适合于程序设计教学,所以成为计算机语言教学的主流语言。通过对C语言的学习,可以使学生掌握基本的编程思想,为学习其他编程语言奠定基础。C语言掌握的程度,不仅能直接影响到学生对后继课程的学习,同时对他们以后的学习和发展也起着至关重要的作用。同时,它也是计算机等级考试的主要考试科目。大部分学校采用C语言作为非计算机专业学生计算机等级考试二级语言课程。
2.教学中存在的问题
然而,但从目前的教学情况来看,学生在学习C语言时往往存在着一定的问题,实际掌握的情况并不理想。由于C语言涉及的概念多、规则广、使用灵活,初学者很难掌握,容易出错。对于大多数的初学者,C语言灵活的语法结构使他们望而生畏,繁琐的细节使他们头晕脑张。同时由于缺乏对计算机结构的全面了解,缺乏对计算机硬件尤其是内存结合很紧密的一些概念,学生基本上很难理解和掌握C语言。
(1)课堂教学中没有突出语言本身的特色。C语言作为一门高级计算机语言,和其他计算机语言有很多相似甚至相同的地方,对于已经掌握计算机基础和其他语言的人,就不能再重复这些知识。一些教师对C语言本身的一些特有的概念,尤其指针、链表的应用,强调不够,既浪费了学生课堂上宝贵的时间,又使得学生对新知识理解不深。
(2)没有充分调动学生学习的积极性。在目前的课堂教学中,还是以教师讲授为主,没有充分发挥学生学习的主动性,启发式教学没有得到充分运用。教师不了解学生课前预习的情况,不了解学生的真正需求、难点和问题所在,挫伤了学生学习的积极性和热情。
(3)对于实践教学环节重视不够。C语言是一门实践性很强的计算机语言,但目前的实践课教学存在很多弊端。例如:学生不明确上机实验的目的,实验的内容不清楚,想干什么就干什么,没有相应的实验要求,考核中上机没有一定的比例。这样,语言课就成了单一为了考试的一门课,其结果有的学生连最基本的实践操作也不会做。
3.教学内容及方法的改革
学习程序设计不仅是为了掌握一种开发工具,更重要的是用计算机解决问题。因此在教学过程中,教师应改革传统的语法学习内容,将算法教学融入到语言教学中,通过实例由浅入深,使学生在解决具体问题的过程中掌握算法的精髓[2]。
在实践教学过程中,要对《C程序设计语言》教学内容进行调整和整合。首先,对书上的主要内容――I/O格式、控制结构、指针等内容,采用讲、练结合的方法让学生掌握精华部分,对结构体、公用体、文件等内容采用以学生自学为主、答疑为辅的方式让学生掌握这部分内容。其次,针对学生对语言课程学习的单调性和枯燥特点,采用多种教学方法,并在重点内容的教学上辅以大量的课内习题课和课外练习方式,让学生牢牢掌握基本内容。再次,让学生做针对性很强的练习来加强学生的理解。最后,对学生在作业过程中暴露的主要问题集中解决、个别问题单独解决,以此来弥补个体差异,同时兼顾到大多数学生的利益。
在教学过程中,要坚持“结构化程序设计”原则。所谓结构化程序设计,是组织人的思维,以便在合理的时间里,将计算任务用较容易理解的方式表示出来。结构化程序设计方法的基本思路是,把一个复杂的问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。因此,在学生初学程序设计时,这一方法可以养成良好的思维习惯。在教学中,应当向学生强调这样的几点:第一,程序质量的优劣首先取决于程序模块结构的清晰度,要按照一定的标准、一定的原则、一定的风格设计。第二,结构化程序的三种基本结构:顺序、分支、循环,它们是构成程序的基本单位。如果在程序中,所有的模块都只使用这三种单入口、单出口的基本控制结构,那么,不论程序包括多少模块,也不论一个模块包含多少个基本控制结构,整个程序仍然能够显示清晰的流程,这就实现了程序语言的“结构化”。第三,结构化程序设计的基本方法是自顶向下、逐步细化、模块化设计、结构化编码。逐步细化总是和自顶向下结合使用,一般也把逐步细化看作自顶向下的具体表现。
4.加强实验环节,注重学生动手能力的培养
C程序设计是一门实践性很强的课程,要把学生在课堂上所学的知识在计算机上用程序设计反映出来,必须加强实验环节的教学,强化实验能力和学生的动手能力[3]。为此要做好以下几点:
(1)编写符合学生实际情况的实验讲义,注重学生综合实验能力的培养。
(2)每一堂实验课前,检查学生的实验预习报告,了解学生的预习情况,并对本次实验内容提出具体的要求,在实验课结束前对实验中存在的问题进行总结。
(3)加强实验环节注重学生动手能力培养。
在实验教学过程中注意培养学生的动手能力、独立科研能力及合作精神,绝不允许“一人动手大家看”这种“放羊式”现象出现。学生在做完实验后都由教师检查其结果,打分后方可离开,凡无结果或结果不理想者,必须补做或提供条件让其重做,促使学生在实验中勤动手,也使学生们具有成就感。对于部分综合型的实验尤其强调分工合作,实行小组长负责制,争取小组成员一起协调配合完成。
5.改进考核方式
采用书面考试、上机考试、课程设计相结合的方式全面考核。计算机语言课的实践性决定了它不要求学生死记硬背各种语法规则和语句格式,而是要求学生在解决实际问题的过程中掌握程序设计方法,提高逻辑思维能力。因此,计算机语言课的考核宜采用书面考试与上机考核相结合的方式,辅之以对课程设计情况的考查。书面考试可以侧重对基本概念的理解和掌握方面,编程题目的涉及面可以较宽,以考查学生对基础知识的掌握情况。上机考核可以让学生在规定时间内对给定的程序设计题目编出程序,并在机上调试通过,题目可以是基础知识的综合运用,这样可以考查学生的综合应用能力和快速编程能力。课程设计的具体做法可以结合实验课,将学生分成若干小组,每组布置一个稍大的有实际应用背景的程序设计题目,组内分工各人完成一部分,再由其中一个人负责完成联合调试任务。通过对课程设计情况的考查,了解学生运用语言解决实际问题的能力和协作编程的能力。
6.结语
以上是本人在C语言教学过程中的几点体会,现总结出来,谨供各位同行参考,不当之处,敬请指正。教师需要在教学过程中不断总结,在教学方式、教学方法、课题设计等方面进行探索,为C语言课程建设积累经验,促进计算机语言教学学科的建设。
参考文献:
[1]谭浩强.C程序设计[M].北京:清华大学出版社,2001.
[关键词]创造性思维教学改革计算机语言
中图分类号:G71文献标识码:A文章编号:1671-7597(2009)1110167-01
计算机语言就是在计算机上使用的语言,是为了人与计算机间进行交流,专为计算机设计的语言,是人与计算机间特有的用来交流的工具,计算机语言的种类很多,总的来说可以分成机器语言、汇编语言、高级语言三大类。下面以高级语言中的C语言为例,针对目前高职高专学生计算机语言教学中出现的问题进行探讨,并对C语言课程的教学过程设想了一些改革措施,与大家共勉。
一、存在的问题
目前在一些高职高专院校,不论是计算机专业的学生还是非计算机专业的学生,都把C语言作为一门必修课在学习。但是,在教师的教与学生的学的过程中存在着一些问题,主要归纳如下:
(一)学生兴趣较低,缺乏学习的主动性。C语言教学中,普遍学生一直都认为概念较多,使用灵活,难于记忆和掌握,尤其是对于非计算机专业的学生来说,没有一定的计算机基础知识,更是觉得难以理解,总认为计算机语言很难学。因此,对于大部分学生来说,一开始接触就有了心理压力,学习兴趣很难调动起来,此时如果不能进行正确的引导,就会使得一大批学生就此放弃,很难再去主动的学习。
(二)学生程度参差不齐。在计算机语言课的教学过程中,发现学生计算机知识程度参差不齐,比如在授课的过程中,一些基础好的学生觉得早已听懂,而基础差的学生会觉得进度快,感觉吃力,这样使得基础好的学生不能更加深人地学习,基础差的学生没能很好地掌握基本知识.,因而教师在教学过程中,也很难把握教学进度。
(三)程序设计能力和综合应用能力差。通过对学生的测试结果进行分析不难看出:学生对较死板的概念掌握较好,对简单的应用问题基本上也能回答,但对综合应用的题目大多无从下手,在计算机等级考试中,学生最怕笔试的程序填空、机试的编程题。而且在平时的训练中,学生也是很难独立完成程序的调试,如断点设置、单步执行、观察变量的当前值等,很难自己独立检查出程序中存在的错误,有时甚至是很简单的常见的问题也很难排查,因而更是无从谈起对知识进行拓展。这就说明学生在阅读程序和设计程序方面相对欠缺,综合运用知识的能力较弱,缺乏创新思维。
二、改革措施
(一)以任务为核心,激发学生的主动性。如何组织教学内容是教师备课的重要步骤,教学内容组织的好与坏,直接影响着教学效果。教师必须充分理解课程性质、课程特点以及在人才培养方案中的地位,必须对教材进行认真仔细地分析,针对学习对象采用最合适的方式组织教学。
C语言需要记忆的知识比较多,我们不仅要求学生记住这些知识,更重要的是如何让学生学会使用这些知识。课堂上如果只是罗列知识点,学生很难记住,更无法谈及到对知识的应用。所以在教学过程中,我们不妨采用任务驱动法来进行讲解,即通过对一个具体任务解决方法的分析从而引出知识,一方面有利于学生记忆,另一方面也使得学生了解了如何应用这些知识。
(二)重组教学内容,循序渐进中达到融会贯通。C语言的教学分理论教学和实践教学,高职高专一般所选用的教材都是基础教程,教学内容主要包括C语言中最基础的知识。在教学内容的组织上,尽量做到前后连贯,由浅入深,将难点进行分散,达到循序渐进。例如,C语言中基础知识部分运算符和表达式部分内容繁多,如果堆到一块儿去讲,学生很容易厌烦,所以应该适当地分散开去讲。又如,每讲一种运算符和表达式,就举例引导学生学习编写简单的程序,不仅使学生巩固了相关内容,又能了解C程序的组成以及调试过程,而且为后面学习数据的输入和输出、选择结构及循环结构程序设计打下了基础。
(三)合理安排教学时间,精讲多练,增强学生应用知识的能力。C语言是一门实践性很强的课程,一定要动脑多读程序、动手多写程序,通过多思考、多练习才能有所进步。因此,教师只需精讲知识点,其余时间放到学生对程序内容的考虑、对程序的设计以及程序的调试上,给学生以更多实践的机会。其实,学生在学习的过程中,对知识的认识包括两方面的含义,一是理解,对课程内容的理解;二是应用,如何在自己的程序中加以应用,对知识的应用是教师教学、学生学习的最终目的。所以教师的职责不仅仅是让学生学懂,更关键的是要让学生去实践,去应用。因此,要给学生提出各种不同的问题,让学生自己去思考,通过对各种不同问题的解决,既有利于对语言的熟练掌握,而且对计算机的工作流程以及程序设计的特点也会有更深的体会。
(四)因人而异,尽量做到照顾大局。由于学生的基础参差不齐,学习的动机、兴趣、能力存在较大的个体差异。所以决定了C语言的教学需要因材施教。教师不能只教好学生而忽略差的,也不能只为了照顾差学生而耽误了好的,这时的教学进度很难把握。我们可以采取不同的人给予不同的任务来完成教学,即对于学习能力较强的学生,就鼓励他们自学,并给予方向性指导,让他们超前学习。对于多数的普通学生,则把精力放在最基本、最常用的内容上,让他们学好基本功,掌握程序设计的方法,为后续课程的学习打下基础。另外,教学过程中,还应不时地从学生的角度来考虑问题,讲解内容,加强师生的互动效果,以降低学生学习的焦虑情绪。
(五)避免思维定势,培养学生的创造性思维。对于同一个问题来讲,如果程序能够正确地解决该问题,那么这个程序就是正确的,但这个程序到底好不好,又有其他的因素制约,比如,程序的可读性,是不是容易让人理解;程序的结构是否合理、符合逻辑;程序的执行效率以及程序所占用的存储空间等。因此,一个程序的好坏,衡量的标准很多,而且并不是绝对的,可能不同的程序,适应的场合、对象也就不同。通常每个人都有自己独特的思维方式,所以应鼓励每一个同学将自己对某一问题的解决方法讲出来,不要局限于某种标准答案之中,将不同的想法列出来,一一进行对比,找出不同的优、缺点,这对培养学生的创造性思维很有帮助,可以让学生看到相同的问题有不同的解决方式,并且能够理解不同解决方式的优点、缺点。
三、结束语
总之,上述内容就是本人在几年的计算机语言教学过程中总结出来的一点经验,并且也在逐步应用到C语言课程的日常教学活动中,教学效果有了一定的改善和提高。
参考文献:
关键词:计算机技术;VFP;非计算机专业
中图分类号:G424文献标识码:A文章编号:1009-3044(2012)21-5127-02
The Computer on College Program Design Teaching Professional VFP
HOU Wei-dong
(Baicheng Medical College, Baicheng 137000,China)
Abstract:Today,computer technology is widely used in all walks of life. Contemporary college students must master computer knowl edge and skills,in order to adapt to future competition and development.VFP program is designed as a main course for non-computer professional in the university, which is playing an increasingly important role.
Key words: computer technology; VFP; non-computer professional
Visual FoxPro(简称VFP),是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到Windows之后,得来的应用程序开发软件,主要用于开发数据管理与运算等方面的软件。VFP是Microsoft公司推出的最新可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统。它提供了功能完备的工具、极其友好的用户界面、简单的数据存取方式、独一无二的跨平台技术,交肯有良好的兼容性、真正的可编译性和较强的安全性,是目前最快捷、最实用的数据库管理系统软件之一。
计算机基础课程中包括三个层次,分别是文化、技术和应用,《Visual FoxPro程序设计》属于第二层次——技术层次。与此同时,它是新一代小型数据库管理系统的代表,VFP具有非常多的优点:界面友好、功能强大、开发工具多种多样、程序处理速度较快、与各平台的兼容性良好。VFP非常适合计算机初学者学习,其教学简单,自带编程工具,并且能够与数据库系统有机的结合起来,目前,VFP已成为我国高校非计算机专业首选的计算机课程,同时也是计算机等级考试的重点考核内容之一。
但是在实际教学中,VFP课时安排相对较少,学生很难在短时间内掌握此门课程内容。如何更好的将VFP设计技能教授于学生,如何改善教学方法,以及如何充分利用有限的课时,已成为各高校计算机教学工作者注重的问题。
1现状分析
VFP程序设计语言是一种面向对象和事件驱动的可视化编程语言,与传统面向过程的程序语言相比较,VFP更加灵活和方便,它能使程序员从枯燥的代码编写中解脱出来,显著提高了程序开发效率。VFP作为计算机程序设计的一门基础课程,应注重学以致用,通过这门课程的学习,要求学生能够独立开发一些简单程序乃至软件,对理论不应做太深入的要求,因此,必须通过大量的上机实践来锻炼学生的程序设计能力和语言应用能力。
但是,从VFP程序设计课程教学尤其是非计算机专业现状来看,我们发现,普遍存在以下两方面问题。
1)课程学时少。对于非计算机专业的学生来说,大部分没有计算机基础,计算机语言底子更是非常薄弱。对这些初学者来说,任一门计算机语言,都不是短时间之内能够掌握的,而非计算机专业程序课时却在不断压缩,而对于授课教师来说,既要完成本学期教学指标,又要让学生学会计算机语言的使用方法,这是非常困难的事情。并且由于诸多原因,计算机其他相关课程尚未开设,无形中也加大了该门课程的学习难度。
2)理论繁多、实践太少。作为一种面向对象程序设计的计算机语言,VFP优于面向过程的程序语言,但是在实际教学过程中,大部分授课教师仅仅只注重理论上的阐述,如算法概念和语法功能等等,而上机编程操作只是作为验证理论的方式而已。这样的教学方式是以授课教师为中心、以课程指标为任务的模式,根本无法实现授之以渔的目标,充其量只能使学生了解到VFP的基本理论,根部无法让学生建立系统的编程思想,这样一来,学生感觉程序设计语言枯燥无味、毫无兴趣,最终使得学生缺乏创造性,无法独立完成程序设计。
2教学方法研究
2.1科学设计教学内容,实例教学法
1.1逻辑语言的概念
逻辑最早是哲学中的词汇,在古希腊时期,很多哲学家在辩论的过程中,为了可以说服对方,自己的思路必须清晰,符合人们正常的思维,逐渐的形成了逻辑语言的概念,随着数学理论的发展,要想解决特定的问题,必须进行相应的推理和证明,而推理的过程中,就要使用逻辑语言,这样推理才能够符合人的思维。计算机的出现,对于科技的发展来说,是革命性的,很多人将计算机作为第三次科技革命的标志,通过计算机的使用,不但改变了人们的生活习惯,同时也在很大程度上提高了工程的效率,而计算机是在数学模型的基础上,因此控制计算机工作的软件,也必须具有一定的逻辑性。在计算机出现的早期,受到计算机性能等影响,程序的编写还采用二进制的机器语言进行,这种0和1组成的二进制语言,在编写的过程中,必须具有一定的逻辑性,计算机才能够去运行,现在程序的编写已经采用高级语言,如JAVA和C语言等,利用这些语言进行程序的编写时,逻辑关系的体现更加重要。
1.2逻辑语言的特点
从语言学上来看,语言主要可以分成三种,分别是自然语言、带符号的数学语言、以及形式化的逻辑语言,逻辑语言的出现,主要是因为逻辑学发展的需要,古时候受到知识水平的限制,人们在讨论问题时,经常会发生一些争执,为了解决这种争执,人们希望能够建立像数学那样完美,具有特定符号的语言,这就是逻辑语言。与其他的语言相比,逻辑语言具有很高的严谨性,这种语言将逻辑推理,转化成为了数学语言,在遇到具体的问题时,就可以利用这种没有歧义、严谨的语言,通过计算的方式,来解决这个问题,随着逻辑语言自身的发展,在解决实际问题时,人们首先会建立一个数学模型,然后采用数学的方式进行求解,极大的提高了解决问题的效率。由此可以看出,逻辑语言的特点是严谨性和普遍性,能够用来描述所有的问题,而且在这个过程中,不会出现任何的歧义,现代计算机软件的发展,很大程度上就是建立在逻辑语言的基础上,通过实际的分析可以知道,每个程序都是一个数学模型,而描述这个模型的就是逻辑语言。
1.3逻辑语言的发展
从语言的三种形式可以看出,其发展也可以分成三个阶段,首先是自然语言,在人类文明的初期,受到科学技术上的限制,人们的思维还不是很严谨,因此表达比较随便,采用自然语言进行交流,现在的日常生活中,依然使用这种语言,随着自然科学的发展,语言开始分为书面语和口语,在对科学进行描述时,主要采用书面语进行,这种表达方式具有一定的特殊性,尤其是在数学科学中,需要加入一些常用的符号,逐渐的形成了数学语言。逻辑语言的出现,是数学语言发展的结果,但是在逻辑语言刚出现时,主要建立在理论的基础上,很难在现实中使用,计算机是逻辑语言实践的结果,通过数学二进制和实际电路的结合,就可以利用逻辑语言来解决实际问题,计算机程序的出现,使得逻辑语言发展到了一个新的高度,在程序设计中,考虑到计算机的严谨性,必须采用逻辑语言进行。
2计算机软件开发的现状
2.1我国计算机软件开发的现状
通过实际的调查发现,目前我国计算机软件开发能力较低,现在使用的软件,很多都是国外软件公司开发的,虽然近年来随着国家的重视,加大了对软件公司的鼓励和扶持,在很大程度上促进了我国软件技术的发展,我国软件产业出现了一个黄金期,但是受到盗版市场等影响,很多软件公司的产品没有市场,导致现在我国还没有大型的软件公司。印度是现在世界上软件产业先进的国家之一,其在发展的过程中,也遇到了和我国一样的问题,但是在政府强硬的打压下,盗版市场得到了控制,为软件公司的发展,提供了一个良好的环境,我国与印度的国情相近,为了促进我国软件产业的发展,借鉴了其成功的经验,近几年政府部门出台了很多政策法规,对盗版进行严格的控制,在一定程度上改善了我国软件行业的环境。但是计算机软件行业经过了多年的发展,已经形成了良好的产业链,核心的软件技术都掌握在西方国家手中,我国要想发展自己的软件产业,面临的难度较大,而受到我国教育水平的影响,软件开发人员的整体水平较低,在很大程度上限制了我国计算机软件开发水平的提高。
2.2影响计算机软件开发的因素
在实际的计算机软件开发中,首先要进行需求分析,在计算机软件出现的早期,受到计算机性能的限制,软件都比较简单,只是进行一些简单的数学计算,因此不需要进行需求的分析,程序的编写都具有一定的针对性,人们遇到实际问题时,编写一个程序,来解决这个问题,由于计算机没有存储设备,程序无法进行存储,再遇到这个问题时,还要进行程序的编写。随着软件技术的发展,计算机语言得到了很大的进步,在传统的0和1二进制语言中,软件的编写非常复杂,为了方便软件的开发,人们对计算机语言进行了改进,把难理解的汇编语言等低级语言,变成了易懂的高级语言,同时软件的应用也有了很大的进步,要想满足不同领域的需求,软件自身也变得越来越复杂。由此可以看出,影响计算机软件开发的因素有很多,需求分析的效果、计算机语言等,都能够对软件的开发造成很大的影响,尤其是计算机语言的使用,现在的软件为了获得一定的市场,都会增加自身的功能,导致其体积越来越大,根据软件开发的实际情况,都会分成几个模块,要想让软件具有良好的可维护性、易读性等,必须采用严谨的逻辑语言。
3基于逻辑语言的计算机软件开发分析
3.1逻辑语言的表现形式
逻辑语言作为一种理论性的语言,如何使用这门语言解决实际问题,一直都是人们研究的重点,受到技术条件的限制,这个想法没有实现,随着科学的进步,物理学家们根据数学家的设想,制作出了现代电子计算机,从本质上来说,计算机自身就是一个数学模型,而这种模型就采用逻辑语言来描述,通过电路的通和不通两种状态,将数学二进制很好的联系起来。这样就可以利用逻辑语言来解决实际问题,计算机在应用的过程中,根据不同领域的实际需要,针对性的开发了应用软件,因此计算机的应用就是软件的应用,而在软件的开发,就是将计算机语言,按照一定的逻辑关系进行排列,然后计算机按照程序的指令,一步一步的去执行。由此可以看出,软件程序其实就是逻辑语言的表现形式,在计算机刚出现时,程序的编写比较简单,通常都是由几个指令构成,可以不考虑语句之间的逻辑关系,但是现在的程序非常复杂,很多软件占用的空间达到了GB的级别,这样复杂软件的开发,要考虑维护性和易读性等,因此必须具有清晰的逻辑关系。
3.2逻辑语言的使用
现在的软件开发中,主要采用C语言等高级语言进行编写,由于软件要实现不同的功能,因此在实际的设计中,人们根据具体的功能,将软件分成了相应的模块,每个模块实现软件的一个功能,然后设立一个主程序,通过特定的扫描机制,在需要哪个功能时,就调用相应的模块,这样程序可以很简单的实现维护等操作。计算机是以数学为基础,具有很高的严谨性,在程序编写时,如果一个语句出现错误,就会导致整个软件无法执行,因此在实际的开发过程中,必须采用严谨的逻辑语言进行,只有这样才能够确保程序可以被执行,通过实际的调查发现,现在的编程软件功能非常完善,在程序编写完成之后,可以进行相应的编译和运行,如果程序存在问题,就无法完成编译,编程软件会提出出错的位置,如果是命令的拼写错误,很好进行修改,如果是逻辑关系出现了错误,那么修改就比较困难,如果采用逻辑语言进行编写,就可以在很大程度上避免逻辑关系错误的问题。
结语
论文摘要:计算机语言课虽然很难学,但也有方法可循,本文从如何打好语言基础、学会知识的迁移、训练方法策略等方面阐述了如何学好计算机语言课。
一、如何打好语言基础
1.学好语言基本功
学习一门语言新课程,开始都会碰到一系列的新概念、数据结构、常量变量、函数、基本语句和思想方法等等。教学生某种语言,就要踏踏实实教好本语言的特点,教好常量、变量、数据类型、表达式等基本知识。如对函数要使学生切实掌握函数的格式、功能、自变量取值范围;对表达式要切记与数学和其他计算机语言表达式区别,突出本语言的特点;运算符号要书写正确,括号应标记谨慎,例如:应为a/(b·c),而不能写成a/bc;括号应配对出现,内外层关系要弄清楚。比如,在C语言教学过程中,在讲解两个变量的值交换时,一开始学生很容易使用A=B; B=A; 的语句,而不能理解为什么要引入另一变量C,使用 C=A; A=B; B=C; 的语句。笔者使用比喻法,假设A和B两个杯子中分别放了水和酒,要将两个杯子中的东西互换,必须引入第三个杯子。通过此比喻,学生恍然大悟,不仅容易理解了这部分内容,而且还有了继续学习的兴趣。
2.基本语句要熟练掌握
学习一门程序设计语言,对本语言程序的基本语句的格式、功能和基本使用方法的掌握显得十分重要。如果某一环学得不扎实,会直接影响编程语言认知结构的形成。
例如,学习选择结构语句:if...else,首先要使学习掌握格式:
if(表达式) <语句组1> else <语句组2>
然后是初步了解其功能,再通过编程实例掌握其用法。
二、学会知识的迁移
学习者在学习新知识或新技能时,总是受到先前学过的知识、技能的影响。教师在教学中若能注重迁移,很好地把握迁移方法,学生就可以举一反三、触类旁通,缩短学习过程。
1.数学知识认知规律能迁移到计算机编程学习
以函数的学习为例,数学函数的掌握首先要理解函数名称、功能和格式,然后掌握自变量的取值范围、函数值域,再掌握用法。如三角函数SIN,先给出函数的名称,指出这是已知角(弧度)求正弦的值,自变量的取值范围是一切实数,函数值域是闭区间[-1,1]的一切实数。同样这样的学习过程,我们亦可迁移到计算机语言学习上来,当我们学习各种语言的函数时,先是回顾一下我们在数学中学习函数的过程,然后把它与当前函数学习作对比,如C语言的正弦函数,它的函数名亦是sin(X),自变量、函数值的取值范围都与数学函数没有差别,不同点是自变量X必须用括号括起来。
2.一种语言编程的认知规律能迁移其他种语言的编程学习
学会一种语言之后,再学习另一种与之相近的语言人们就会学得轻松,易于掌握。对于计算机语言的学习也是如此,我们学习过BASIC语言之后,再学习C语言,就觉得易学、易记。因为这些语言有许多和共同特点,如基本程序结构,输入输出格式等。老师应着重去比较这些共同之处。同时还应指出它们的差异。如BASIC语言与C语言中的循环语句,他们的语句结构相同,一个是:
WHILE <条件>
<循环体>
WEND
另一个是:
WHILE 〈条件表达式〉
{ <循环体> }
不同地方,字面的书写符号不同。
学习不同的语言还应指出这两种语言的功能和作用的着重点不同,如BASIC与C语言,前者以初学者和计算为主,而后者以编写实用程序为主。
三、训练方法策略
在使学生掌握某部分编程基本语句或全部语句后应及时训练学生进行编程,培养编程思维的策略。在训练手段上应有片断训练、限题限时训练以及参加考级竞赛训练。在这些训练中会暴露出一个又一个的问题,为了回答这些问题,学生不得不进行更进一步的反省,当解决了这些问题后,又有新的问题等待着学生去解决。在如此多个循环过程中,学生的心智被充分地调动起来,渐渐地懂得了编程的实质问题。
1.片断训练
在教完某种基本语句后常采取片断训练的策略,如讲完分支、循环,可安排编程解决排名次的问题。
2.限题限时训练
学生的思维有一定的惰性,只会套书上或老师提供的例子编程,碰到问题,首先不是考虑自己尽快解决,而是依赖老师或别的同学给他(她)分析透彻了,才自己编程上机调试。碰到稍复杂或没有现成模式的问题就束手无策。长此以往,就不能激发学生编程的灵感性,就会泯灭学生思维的火花。因而,在编程教学中,就应使学生在规定时间内完成练习的给予标准分。这样就能培养出学生的直觉思维,培养出灵感。经过经常限题限时的训练,就迫使学生平时下功夫,多思考。
3.课余时间训练
程序设计课程安排课时相对较少,时间间隔较长,要达到预期目标就要求能够合理有效地利用课余时间,引导学生在课余时间巩固所学知识,并根据自己的兴趣爱好进行拓展。比如开展程序设计的课外兴趣小组,教师为他们设置中等难度的项目练习,并且予以指导。
计算机编程教学虽然很难,但是非常有意义,因为它有利于培养学生的创造性思维能力,有利于学生建立通过计算机解决问题的意识和途径。因此,我们只要能根据学生实际,就能在很大程度上化难为易,让每一个学生都能很好地掌握这门课程。
参考文献:
关键词:语言 定义 分析
关于语言的定义,学术界人士仁者见仁,智者见智。然而“语言的定义”这个基本的概念性问题,太多的声音容易导致统一的缺乏和认识的混乱。基于此,本文罗列、分析了14条关于语言的定义。当然这远远谈不上是对语言定义的拨乱反正,唯求鉴往知来,再全面、科学地认识理解宏大的语言。阐述自己的点滴认识。
1,语言的定义
1.1语言的元定义
1.1.1吕叔湘:“语言是什么?就是我们嘴里说的话……说话的效用有两种限制,空间和时间。这两种限制都可以拿文字来突破……可是一般地说起来,文字只是语言的代用品,只是语言的记录。”(吕叔湘,1956:1)
1.1.2乔姆斯基:“语言是一组有限或无限的句子的集合,其中每一个句子的长度都有限,并且由一组有限的成分构成。”(Chomseky,1957:13)
1.1.3罗宾斯:“语言通过两条途径接触世界。说话利用人体的某些器官、空气的物理性质和耳朵的生理特性:书写则利用平面上的可视及眼睛的生理特性。”(Robins,1964:13)
1.1.4《哥伦比亚百科全书》:“语言:声音符号实际交际功能的结构体系。”(E,1975:1527)
1.2语言的功能定义
1.2.1陈原:“语言是一种社会现象。语言是人类最重要的交际工具。语言是人的思想的直接实现。”(陈原,1984:3)
1.2.2房德里耶斯:“语言是工具,同时又是所谓的辅助形式,它使人类既能了解自己,又可彼此交流,从而形成社会。”(Vendryes,1925:1)
1.2.3弗斯:“我们总觉得语言就是表达情感或交流思想的工具,这个轻率的定义对于活生生的事实来说真是太简单化了。言语行为涉及整个社会组织,还必须把日常生活中周而复始的情形考虑进去。”(Firth,1973:153)
1.2.4考比:“我们可以在语言基本的信息功能的基础上,再区别出另外两种功能,分别叫做表情功能和指示功能。”(Copi,1953)
1.2.5赵元任:“语言是习惯性的声音行为形成的一个约定俗成的体系,社会成员用来彼此进行交际。”(chao,1981:1)
1.2.6潘文国:“语言是人类认识世界及进行表达的方式与过程。”(潘文国,2000)
1.3语言的其他定义
1.3.1塞厄斯:“语言既表达思想,又创造思想,因而一部语言史也就是一部人类思想史。”(sayee,1880:卷一)
1.3.2索绪尔:“语言是一种自足的结构系统,同时有是一种分类原则。”(Saussure,1916:25)
1.3.3刘易斯:“语言是一种活动形式,可能是人类最重要的一种行为模式。”(Lewis,1936:5)
1.3.4韩礼德等:“语言是人类在社会中的一种活动方式,具有可以类型化的特点。”(Halliday et al,1964:4)
据统计,中外古今关于语言的定义多达六百多条,这里摘选14条,只可谓冰山一角,但力图“管中窥豹,以见一斑”。下面本文从无定义、功能定义、其它定义三个视角人手,对它们进行比较和分析。
2,对上述定义的分析
2.1语言的元定义
这一类定义从描绘语言的元构成人手,对语言的外延进行界定,是对语言的表层认识。但就语言的外延而言,语言学家们不能达成共识。传统学家认为语言就是人类的声音符号系统,就是人们平常说的话。代表者如吕叔湘:“语言是什么?就是我们嘴里说的话……说话的效用有两种限制,空间和时间。这两种限制都可以拿文字来突破……可是一般地说起来,文字只是语言的代用品,只是语言的记录。”吕老这里指出了语言的构成,而且明确了两部分的功能。人类在语言产生之前,话语只能在说话人当时、当刻产生效用,很容易出现“听不见”的语言盲区。由是一种“听不见”但却“看得见”的状态――符号便应运而生,这两部分便构成了完整的语言。
然而,随着社会的发展,语言的外延被扩大了。《简明牛津语言学词典》对语言的定义是:“语言。1,普通意义上的语言,如英语、日语。与之相对的也是作普通意义上的‘方言’:2从类用口语或书面语进行交际的现象,也是普通用法。因而语言学的对象既包括人类一般特性的语言(意义1),也包括个别语言(意义2),意义2的‘语言’常引申到包括其它形式的交际。尤其是‘动物语言’,指的是其他动物的交际行为。……形式化语言经过引申,不仅可用于所谓的自然语言(意义2)及意义1中的一般语言,还可用于逻辑学或计算机科学中使用人造语言。”(Mstthews,1997:198)
从这里我们可以看出,语言学家们对语言的外延认识存在着差异。那么,这一部分“语言”――《简明牛津语言学词典》中的意义2的引申(动物语言,逻辑学语言或计算机语言等)究竟应不应该归于语言呢?
首先得看一看这些“语言”的产生。动物的“语言”,其产生实质上是类比联想的产物,一如中国的“纽约”。从修辞学的角度看,它们都是比喻的产品。这种动物语言是喻体中的语言,而在本体中它们仍然只是动物的叫声。表达的倾向性是它们的相似点。如果凭这一个相似点便将动物叫声归人语言的大家庭,这本身就是对语言的扩大,扩大到“只要是用于表达与交际的都是语言”,是一种轻视语言复杂性的草率认识。
计算机语言或逻辑学语言,同样也是类比联想的产物,但计算机语言又完全不同于动物语言,计算机语言的本体还是语言符号,它的最小单位还是构成语言的最小单位,不同点在于语法规则、指涉程式不一样。语言的构词成句、表词达意规则为每个语言使用者所熟悉。而计算机语言能指与所指之间的联系对大多数人来说还比较陌生。这不是一种全新的语言,而是语言创造性的又一体现:语言不仅可以是人际交流的工具,而且可以实现人机对话。其实计算机语言同数学方程式、物理学公式、化学反应式一样,都有着自己新的理解程式。而这一个程式都有一个从陌生到熟悉的过程。所以计算机语言是文字、声音的范畴,不是什么新的语言。它根本不是语言系统外部的附加,而是语言系统内部的自我拓展。它的出现再一次展现了语言的创造性,语言可以随意赋予一套新的理解程式去表达新的意思。
由此,动物叫声不能仅仅凭借其具有表达意义的倾向而被纳入语言的范畴,因为除了在同类间表达一些微乎其微的意义外,它们什么都不是。而对于所谓的计算机语言,我们应该回归到文字、声音的本质。它同数学方程式、物理公式、化学反应式一样,占据着语言内部的一个分支。为了保持语言的纯
洁性与实现语言认识上的统一性,所谓的计算机语言最好称为计算机符号。
我们再看一看乔姆斯基对语言的定义:“语言是一组有限或无限的句子的集合,其中每一个句子的长度都有限,并且由一组有限的成分构成。”这里,乔姆斯基从另一个更广的维度来界定语言。如果说通常的语言定义是金字塔式的,那么乔姆斯基的就是倒金字塔的定义,是反方向的,从句子人手,从高处着眼,不偏不倚,恰如其分。
其实,综合这两种视角,我们可以更进一步,更抽象一点,将语言归元为一种能指。一种藏在声音背后和文字之中的能指。它在不同的指涉程式下对人类所认识的一切事物、所掌握的一切认识、所具备的一切经验进行指涉。
2.2语言的功能定义
在这类定义中,定义者们普遍选择了语言的交际功能,如列宁的“语言是最重要的人类交际工具”。然而,在众多的功能中,人们为什么唯独青睐语言的交际功能呢?难道这真是语言最为重要、最为本质的功能吗?
语言从本质上讲,应该是人与世界关系的承载者。人与世界的关系通过语言而顺利实现。这就是语言产生的必要条件,是语言存在的意义。这一存在意义其实也就是语言功能的体现。因此,我们可以说语言的全部功能在于服务于人与世界的关系。在这一大的功能下我们可以进一步细分。
就普遍意义而言,世界可以分为自然界与人类社会。那么语言的功能也就可以分为服务于人与自然界的关系及服务于人与人类社会的关系。人与自然界的关系体现为认识自然界、表达对自然界的认识,人与人类社会的关系又可以体现为人与人的交际、人对社会的认识与描述。
由此,语言作为人与人之间的交流工具无疑是语言的一个重要职能。但把这种重要性提升到首要的位置,而轻视语言的认知与表达功能,这难免顾此失彼且值得商榷。尤其是在这样一个人类文明高度发达、科学教育程度极高的社会,语言的认知与表达功能便越来越重要。所以,我们赞成弗斯所说:“我们总觉得语言就是表达情感或交流思想的工具,这个轻率的定义对于活生生的事实来说真是太简单化了。言语行为涉及整个社会组织,还必须把日常生活中周而复始的情形考虑进去。”(Firth,1973:153)
同时,用语言的交际功能来描述语言容易引起误解,导致人们对语言理解与认识的混乱。正如潘文国先生在他的《语言的定义》一问中所说:“因为‘交际’并不是人类特有的,凡是‘社会性’的动物(social animal)都有这种需求,实际上也各有其进行交际的手段,如蜜蜂用舞蹈、猿猴用叫声,还有的动物能发出超声波等。因而,这个定义没能反映人类的本质特点。这个定义,即使加上‘符号体系’,仍然为‘语言’范围的扩大打开了方便之门:数学语言、逻辑学语言、音乐语言、舞蹈语言、动物语言,等等,尽管凭人们的直觉,这些与我们心目中真正的‘语言’不同,但在‘交际工具+符号系统’的定义下,却没有办法将它们拒之门外,这真可谓作法自毙,是下定义者所想不到的。”
综上,我们反对把语言的交际功能作为语言的最重要功能,更反对用这一功能来界定与描述语言,应该取之以“认知与表达”的功能。
2.3语言的其他定义
语言的这些定义事实上是对语言某个特征的突出描述,是对某个特征的精辟概括。它们只能加强人们对语言的理解,而不能解决“什么是语言”这一问题,因而从逻辑学考虑。这些特征的描述不是定义。如塞厄斯:“语言既表达思想,又创造思想,因而一部语言史也就是一部人类思想史。”(sayce,1880:卷一)索绪尔:“语言是一种自足的结构系统,同时又是一种分类原则。”等。这些都是定义者们对某个语言特征的精辟概括,所以在这篇讨论语言的定义的文章中,我们加以忽略。
一、计算机能力是学生学习能力的决定性因素
所谓计算机能力,是指利用计算机解决问题的能力。比如能用字处理作一些文字编辑的能力,使用数据处理软件统计数据的能力,甚至使用因特网获取信息的能力。在研究认知发展基础上产生的建构主义理论,不仅形成了全新的学习理论,正在形成全新的教学理论。建构主义学习理论和建构主义学习环境强调以学生为中心,不仅要求学生由外部刺激的被动接受者和知识的灌输对象转变为信息加工的主体、知识意义的主动建构者,而且要求教师要由知识的传授者、灌输者转变为学生主动建构意义的帮助者、促进者。可见建构主义学习环境,对学生的信息能力提出了较高的要求。之所以将计算机能力提高到学生未来生存能力的高度,有其深刻的社会原因,绝非标新立异,耸人听闻。要很好地说明这个问题,不得不提到“功能性文盲”的概念,这个概念最初的含义是指未能获得读、写及计算能力的人,而他们可能曾经上过学,时至今日,读、写及计算能力有了巨大的扩展,“功能性文盲”的标准也有了更为广泛的涵盖面。
“读”的含义在发生变化。读不仅要读印刷的文本,而且随着全球网络化的到来,如何有效、快捷地读网上丰富的信息资源成了一个现代人必备的才能。
“写”的含义在发生变化。写也不仅仅是指以往的伏案苦爬格子了,它还包括借助计算机的“写”更为重要的是,需要将自己的想法或需求写在网上,和全世界的人交流,以便获取更多的帮助和启发。
“算”不是过去的掐指推算,也不仅是指手工或一些简单工具核算成本和产出。计算机的出现,使算的工具有了极大的提高。很好地把握它,就能大量节约精力和提高效率。
简言之,现在“功能性文盲”是指那些受过一定的教育,会基本读、写、算,却不能识别现代信息符号、图表,不能应用计算机进行信息交流与管理,无法利用现代化生活设施的人。从上叙述中不难发现,计算机能力缺乏,将成为“功能性文盲”,而一旦成为“功能性文盲”,将有可能出现如下的尴尬局面:手持信用卡却在ATM自动取款机前取不出钱来,在电话费咨询系统的电子触摸屏幕前无从下手,在浩如烟海的因特网信息中找不到急需的信息,等等。当前流行一种说法:各种外语、计算机资格认证和驾驶执照是通往下个世纪的通行证。这从一个侧面说明了“应该拥有计算机能力”这一观念正被越来越多的人所接受。近年来一些从事未来教育模式的专家学者均指出:“多媒体”和“信息高速公路”成为工业化时代向信息时代转变的两个重要杠杆,正以惊人的速度改变着人们的工作、学习、思维、交往乃至生活。放弃计算机将不能很好地衣、食、住、行,而尽早地培养学生的计算机能力将会极大地提高他们步入社会后的生活素质、生存能力。
二、计算机教育对学生思维品质的培养
素质教育除了要培养学生的思维素质外,其中最主要的还是对学生思维品质的培养,要培养学生发现问题、思考问题和解决问题的能力。
1.培养学生的创造性思维。
创造性思维最显著的特点是能够提供新颖独创而又有价值的思维成果。在以往的教学中教师往往大量灌输知识性的内容,而忽略了对学生创造性思维的培养。当然,学生在解题、写作、绘画等尝试中有时也能体会到创造的愉悦,但这一切都不及程序设计所体现的有别于常规思维的创造性和成就感。之所以说程序设计有别于常规思维,是由于在程序设计中大量摒弃以往数学教学中所形成的常规思维模式,极具新鲜感,能极大地激发学生的创造欲望。
2.发展学生的抽象思维。
计算机教学中的程序设计是以抽象为基础的,要解决程序设计问题,首先要考虑适当的算法,通过对问题的分析研究,归纳出一般性的规律,然后再用计算机语言描述出来,将这个一般性的规律描述出来的过程就是一个高度抽象的过程。在程序设计中大量地使用了猜测、归纳、推理等思维方法,不难想象,一个习惯于程序的人,他的抽象思维能力一定远优于不会编程的人。
3.强化学生思维训练,促进学生思维品质的优化。
计算机是一门操作性很强的学科,学生上机通过手、眼、心、脑并用而形成的强烈的专注,使大脑皮层产生高度的兴奋点,将所学知识高效内化。在计算机语言学习中,学生通过上机体会各种指令的功能、分析程序运行过程、及时验证与反馈进行结果,都容易使学生产生一种成就感,更大地激发学生的求知欲望,从而培养出勇于进取、独立探索的能力。另外,由于计算机运行高度自动化的程序化,因此,在编程或操作中,学生需要有极为严谨的态度,稍有疏漏便会出错停机。这个反复调试程序的过程实际上就是锻炼思维、磨练意志的过程。因此,计算机的学习过程是一个培养顽强意志、深刻思维、坚强毅力的自我修养的过程。
三、计算机教育促进其他学科的发展
计算机教育作为一项面向未来的现代化教育,绝非仅仅停留在掌握其基础知识和基本操作技能上,而是着眼于培养学生用现代化工具和方法分析问题、解决问题,在培养学生逻辑思维能力方面发挥了极其重要的作用。计算机语言也具有抽象性、系统性和逻辑性,逻辑推理也有其基本研究方法、理论体系,更为重要的是计算机学科利用最新的科技手段、最现代化的方法研究新旧问题,这一点正好能作为数学教育的补充和完善,促进数学教育的改革。计算机教育一方面要让学生学习计算机知识,另一方面还应使学生能用所学知识操作计算机,以帮助学习其它学科知识。一些优秀的辅助学习课件能提高学生的学习兴趣、优化解题策略、在实践运用中也有上佳的效果。另外,我国在高科技领域的落后局面可以激发学生的忧患意识,启迪学生的爱国情、强国志。总之,理论与实践相结合的计算机课程、具有很强的操作性和面向未来的计算机教育,能让人在应试教育的重重壁垒中看到素质教育霞光,也能让严重脱离现实的基础教育找到贴近现实的支撑点,同时能为一贯注重思维品质培养的中小学教育奉送一道美味佳肴。从长远看,这样能增加学生未来的择业机会,提高学生未来的生存能力。从大处看,能促进我国高新科技的发展,使我国成为科技大国。
参考文献:
关字键:计算机基础教育;易语言;改革
中图分类号:G文献标识码:B
文章编号:1672-5913 (2007)03-0027-04
随着社会信息化程度的提高和IT技术的迅猛发展,计算机技术在各行业、各领域的普及和渗透呈现多样化,一个大纲、一张试卷已不能涵盖社会对计算机的所有需求,高校计算机基础教学面临新的变革和挑战。北大、清华从实际出发,根据学生的现状和社会需求率先进行了计算机基础教育教学改革,并获得了巨大的成功,由此一场以需求为导向、立足各校现状、面向应用、服务于信息化社会建设的计算机基础教育改革悄然进行。
作为普通农业高等院校,如何面对这场变革,适应需求改革计算机基础教育体系是我们亟待研究的课题,并“不是每个学校拿出来的教学计划看起来和清华、北大的差不多才算是合格的”[1],生源的固有素质、学生面向的就业市场、现有的办学基础与清华北大有着明显的差异。我认为,普通农业高等院校计算机基础教育改革必须“不唯权,不唯上”,要以需求为导向,立足现状,“面向实际,面向基层”[2],大胆引入易语言教学。
1 我校非计算机专业计算机教育体系结构与教师状况
1.1 非计算机专业计算机教育体系结构
目前我校非计算机专业的计算机教育是二层体系结构:第一层次是计算机基础教育,面向全校本科生开设,由两个部分组成。第一部分主要由两门课程:“计算机应用基础”和“VB程序设计”,分一年进行开设,统一由信息科学技术学院专业计算机教师施教,虽然文科与理科稍有差异,但基本上是统一大纲、材、统一参加计算机等级考试,为了保证教学效果,采取计算机等级证与学位证挂钩;第二部分是近年来增设的以Office为核心的“办公自动化”,作为公共选修课对全校本科学生开设,主要是深化办公软件的教学,所以仍然属于计算机基础教育,也由信息科学技术学院计算机专业教师施教。第二层次是计算机在专业上的应用教育,一般是一门课程(极少量专业开设两门课),如农学类专业开设计算机在农业上的应用、在草业科学上的应用、在兽医中的应用;工科类专业开设计算机辅助设计、机械制图及计算机绘图;文科类专业开设管理信息系统、计算机财务管理等,这类课程与专业结合紧密,一般由具有专业知识的教师施教。
1.2承担非计算机专业计算机教育的教师结构及其变化
我校非计算机专业计算机教育由计算机专业老师和非计算机专业老师承担,而计算机基础教育主要由计算机专业老师承担。由于计算机专业本身就是一个起步较晚的专业,计算机专业人才相对缺乏,因此我校计算机专业老师的学历、职称、年龄普遍偏低。计算机专业老师主要集中在信息科学技术学院,是一支平均年龄将近三十岁的年轻且可塑性大的教师队伍,近年来通过学历教育、人才引进,计算机专业教师的学历、职称正在不断提高;随着社会信息化程度的提高,社会复合型人才的需求增加,使得目前大多计算机专业教师在攻读博士、硕士学位时选择了生物信息学、管理学(信息管理方向)等专业,逐渐将信息技术与专业融合,计算机专业教师在提高自身学历的过程中也逐步实现了“专业化”。
与此同时,随着信息技术的快速发展,专业学科与信息技术的融合明显提高了其教学与科研水平。有些学科,如艺术专业、机械制造、园林设计等没有计算机的介入甚至无法生存、发展,使得既懂专业又懂计算机技术的专业复合型年轻教师大量涌现,非计算机专业教师计算机应用能力也逐渐增强。
2 当前我校计算机基础教育的现状与学生的需求
我校本科生计算机基础教育由两部分组成:公共基础课和公共选修课。根据各方面的资料显示,无论是什么专业都应该掌握计算机的发展、使用与维护及计算机网络方面的常识,“计算机应用基础”内容结构基本合理,因此,我们重点放在“VB程序设计”和近年来增设的公选课程上。主要了解学生对知识获取的主观愿望和对VB课程的认知程度、了解VB课程的教学效果、了解学生在学习VB语言课时存在的主要障碍、在此基础上进一步了解学生对目前已增设课程的认可度和自身的需求,就这五个方面我们对非计算机专业进行了问卷调查。调查分本部和独立学院两组进行,调查对象为已完成公共基础课程的本科大一学生和已接触社会返校进行论文答辩的毕业生,每组按文科类专业和理工科类专业分别对大一和大四毕业生进行统计,结果显示:
(1) 学生大都希望将来能用自己所学计算机知识来处理学习、生活或未来工作中的事务,两组数据有些差异,年级间几乎接近。非常希望的本部都在70%以上,独立学院的至少也达到49%,不希望的比例一般在3%以下。学生对计算机知识的求知欲相当高,有主观的愿望和能动性。学生对VB语言课程的认知程度也较高,认为该课程对今后工作非常有意义和有意义的在97%以上,毕业生和大一学生也几乎接近。
(2)VB课程教学效果不佳,主要学习障碍来自语言与数学逻辑,学生期望开设一种全中文环境的语言。学生对VB课程掌握了所授内容20%~30%的占31%~39%,40%~50%的占42%~45%,理工科类学生比文科类学生稍强,但总体来说,80%以上的学生仅能掌握所授内容的一半不到。学生学习语言的障碍主要来自语言和数学逻辑,文科类与理工科类两者有差异,文科主要表现在数学逻辑,而理科则表现在语言上,但这两者之外的因素都低于4%,毕业生与大一学生间、本部与独立学院间几乎无差异。因而在是否期望开设一种全中文环境的语言时,认为非常希望和可以尝试开设的占95%以上,但态度谨慎。
(3)学生从就业与工作的角度考虑,除了掌握计算机应用基础知识外,更多地关注办公软件与常用工具的学习,其次是专业相关的计算机技术的掌握、与网络和多媒体相关的知识的掌握,本部与独立学院的差异不大;理工科对程序设计与数据库更为关注;但大一学生与毕业生的需求差异显著,毕业生对计算机的需求明确,是社会信息化、网络化发展对人才需求的一种反映,同时也说明学生就业的社会层面不高,对计算机知识没有深层次的需求。
3 立足实际,更新观念,勇于实践,改革计算机基础教育
基于学生的求知欲望和学生自身需求及社会信息化、网络发展对人才的需求,调整计算机基础教育的课程结构,改革考试形式,提倡文科与理工科间差异教学,进一步淡化“公共”概念,促进“专业化”发展是我校计算机基础教育改革的方向,要根据不同专业组织差异化教学,提高计算机语言的教学效果,激发学生学习兴趣。
3.1 破常规意识,大胆引入易语言,提高计算机语言教学效果。
关键词:C语言;程序设计;教学方法
中图分类号:G642 文献标识码:B
文章编号:1672-5913(2007)18-0012-02
1引言
“C语言程序设计”是高等院校计算机及其应用专业学生的一门必修课,也是其它一些非计算机专业学生的一门重要基础课。C语言功能强大,表达能力强,但其丰富的功能所带来的繁多的数据类型和复杂的语法结构,给初学者产生了不少困难。在教学过程中,它不但要求教师具有良好的教学水平和教学方法,也要求学生具有良好的逻辑设计能力,因此,教师在教学过程中必须找到适合学生学习特点的教学方法,使学生在短暂的课堂学习时间内,学到尽可能多的C语言概念和C语言编程技巧。笔者从事C语言的教学工作,在教学中发现一些问题,也总结了一些经验。现就C语言课的教学方法,谈谈个人看法。
2循序渐进,由简到难
在C语言教学过程中,应该要遵循由易到难,循序渐进的原则。学习C语言的学生,一般都没有计算机语言的基础,对计算机语言的认识非常有限,很多基本概念都不知道,因此,在教学过程中,应该从简单的开始,循序渐进,慢慢培养学生的兴趣。例如在学习C语言时,关键是要熟练掌握并灵活运用好32个关键字。我们可以根据内容的先后顺序和功能给这些关键字分类,比如说,short、long和signed用于说明整型数据,float和double用于说明实型数据,而由if和else可构成选择结构的控制语句,在循环结构控制语句中可用for、while和do关键字。在上每节课之前,我们可以先板书写出已学习过的关键字和本节课要学习的新的关键字,对于新的关键字,写出其全名并注上对应的汉语意思来,以加深对关键字的理解,通过例题和练习来掌握此关键字的用法,久而久之,单调的关键字就变得容易接受并能熟练掌握了。
3多举例子,理论与实践并重
为培养学生的学习兴趣,教师在教学过程中,不能一味地按书本去讲,而要多举些实际的例子,多与日常的应用相结合,用C语言解决实际问题,使学生明白C语言的用处及其强大的功能。例如,在讲授for循环时,可以计算当前班级的所有学生的平均成绩,计算总分时,用for循环计算,最后把总分除以班级人数即可得到班级学生的平均分,这样就可以节省很多工作量,而且保证结果的正确性。
C语言还是一门实践性相当强的课程。学好C语言,要理论与实践并重。学习中存在的疑点或难点,学生可通过上机调试得到明确解答,同时也加深对学习内容的理解。教师在上课时,给学生举的例子要当场演示,在多媒体教学电脑上编译运行程序,得出正确的结果,加深学生的印象。对学生而言,在每一次的上机前应做好充分准备,编写好上机内容。对上机中出现的问题应能调试分析,编写实验报告,分析程序结果。学生只有反复上机操作,才能对C语言有更深、更全面的认识和理解,逐步提高实际操作和学习的能力。
4强调细节,避免出现不必要的错误
C语言规则繁多,且使用灵活,很容易出错。如果不小心,一些经验丰富的C语言程序员都会犯一些小毛病,但这又并不是语法上的错误,而是出现了逻辑错误,这样使得调试过程变得更难。因此,教师在C语言的教学过程中,一定要强调细节问题,把一些经常会犯的错误总结出来,如果程序运行结果不正确,就要去检查是否犯了其中的某个错误。例如在C语言里,赋值运算符是“=”,而“==”是关系运算符的相等,但是很多学生在编程时经常会误把“=”当成“==”,这样在判断语句中,例如if (a = 1),括号中的条件则会永远为真,程序在编译时不会提示有错,可以编译通过,但这明显不是所要的结果,程序最后运行的结果当然就会不正确。
5传授编程技巧,强调编程规范
C语言程序设计包含的内容广泛,每节课的教学容量大,如果泛泛地讲,既抓不住重点,又起不到好的教学效果。教学中,教师应该传授学生一些编程技巧,例如一些算法的运用等,让学生学会如何熟练应用C语言行动编程。在专科类院校,对该课程的学习,应能掌握一般C程序的编写和上机调试运行,并能解决一定的实际问题。因此,应引导学生多读程序,多编程序,多上机调试程序。除此之外,很重要的一点,就是要让学生养成良好的编程习惯,有良好的编程规范和编程风格。
6教会学生如何高效地调试程序
教师教会学生如何编写程序是主要任务,但这还远远不够,教会学生如何高效地调试程序也是很重要的一面。对于初学者来说,编写一个程序,无论大小,最初不可能一点错误都没有,如果是语法上的错误还好解决,编译器会报错。如果出现了上面所提到的逻辑错误,则编译器就不会报错了,可以编译通过,但是结果是不正确的,因此就要去找到出错的地方。教师在教学过程中,应该把一些调试的方法总结出来,教给学生,让他们自己去学习如何找错纠错,最后把程序调试成功。
7结论
C语言是一门非常优秀的程序设计语言,由于本身概念比较复杂,使用又灵活,要很好掌握它有一定难度。但在教学中,学生对C语言还是有极大兴趣的。只要教师对C语言有较深的理解,有比较丰富的实践经验,并在教学中采取相应的措施与教学手段,一定能取得理想的教学效果。
参考文献
[1] 刘霞. C语言教学改革探索与实践[J]. 吉林省经济管理干部学院学报,2003,(10).
[2] 谭浩强. C语言程序设计 (第三版) [M]. 北京:清华大学出版社,2006.
[3] 梁力. 程序设计基础与C语言[M]. 西安电子科技大学出版社,2001.