关键词: 编程
程序的性能与编程语言(精选十篇)
程序的性能与编程语言 篇1
关键词:简化编程,子程序,应用技巧
0 引言
子程序多层嵌套在数控铣床及加工中心手工编程的教学中属一大重点,本案例综合简化编程指令和多层子程序嵌套来阐述主程序与子程序,子程序与子程序之间的逻辑关系。
见下图,若编程原点G54设定在边长为50mm正方形轮廓上表面对称中心处。可以运用所学简化编程及子程序指令对其进行综合编程。正方形轮廓以Y轴作为对称轴,则只需编制出正方形的对称轮廓。
此零件结合所学简化编程:缩放(G50,G51)、镜像(G24,G25)、旋转(G68,G69)及子程序(M98/M99)等指令的综合应用,以锻炼学生编程逻辑思维为目的。
1 镜像功能
2 缩放功能
3 旋转功能
4 子程序的格式
在程序开头必须规定子程序号,以作为调用入口地址。在子程序的结尾用M99,以控制执行完该子程序返回到主程序。
5 调用子程序的格式
P:被调用的子程序号
L:重复调用次数,当不指定重复次数时,子程序只调用一次。
6 子程序可由主程序调用,被调用的子程序也可以调用另一个子程序
当主程序调用子程序时它以被认为是一级子程序,子程序可以嵌套8级。
如图所示:
图形分析:通过图形可知,程序只要求编出正方形的一半,通过缩放,镜像,旋转,子程序嵌套,把握好各子程序之间的逻辑关系,最后得出图5所示的图形。
编程环境:HNC-21M系统切削参数:根据实际情况,读者自行给定,本例不作参考。
图1为子程序100所做正方形的对称轮廓,图2为子程序200调用子程序100的零件轮廓,图3为子程序300调用子程序200的零件轮廓,图4为子程序400调用子程序300的零件轮廓,图5为子程序500被子程序600调用后的轮廓。
编程中要体会各子程序的作用和相互之间的嵌套关系,在编制轮廓时一定要注意子程序的起点和终点要为同一点处。
为方便读者在实际应用中对程序进行调试,笔者保持了其完整性,确保程序能在HNC-21M系统的机床上运行,该程序已在数控铣床上进行过实际运行验证。
7 结论
在数控铣/加工中心的编程中,凡零件中具有对称轮廓或有多个相似的轮廓部分时,可以灵活地综合采用简化指令及子程序嵌套指令编程,这样不仅可以缩短程序行,而且还可以减少所占的内存,运用娴熟,往往可以起到事半功倍的作用
参考文献
[1]武汉华中世纪星铣床数控系统HNC-21/22M编程说明书,2002,11.
程序的性能与编程语言 篇2
【关键词】VB语言;程序设计;教学改革
Discussion on the teaching reform and practice in the " VB language programming" course
WANG Li
(Information department in Yangtze University College of Technology &Engineering Hubei Jingzhou 434020)
【Abstract】"VB programming language" is a very practical course.Traditional teaching methods and means can not meet the needs of the development,combined with the student's actual situation,I propose the reform measures based on teaching problems in the course as the starting point in this paper.Practice has proved,after improving the teaching methods,on the cultivation of students' practical ability,thinking ability,and innovation ability are obtained remarkable result,so as to achieve the educational purposes to apply their knowledge.
【Key words】VB language; Programming; Teaching Reform
0.引言
《VB语言程序设计》课程是为非计算机专业学生开设的第一门程序设计课程,是高等學校理工科学生的公共基础课。该课程是一门实践性很强的课程,要求学生既要掌握理论知识,同时又要具备一定的实践能力。
目前,该课程的课堂教学大多采用传统的讲授式教学法,其结果是学生一开始学习VB语言就进入到这些语法知识记忆和理解中,导致学生在上课开始反映VB语言难懂、难学,只会照着书本上的例子进行验证,要独立完成程序编写常常感到无从下手。因此,提高《VB语言程序设计》课程的教学质量是课程改革的一项急迫任务。
1.课程教学中存在的问题
该课程中涉及的概念多而杂,数据类型及表达式丰富,语法结构复杂,对于初学者来说是一门较难的课程。在传统的程序设计教学中,采用的是“以教为主”的讲授教学法。教学的内容以单向传输为主,教师灌输知识,学生被动接受知识。由于教学环境的改进,目前大多数的程序设计课程都是在多媒体教室上课,课堂的信息量一般都比较大,连续高强度听课,导致学生注意力下降,课堂显得枯燥乏味,学生提出问题、分析问题和解决问题的能力都不能得到很好地培养。
目前,在《VB语言程序设计》课程教学中存在着以下几方面的问题:
1.1没有充分调动学生学习的积极性
在课程教学中,教师往往会在第一次课上向学生说明该课程的性质和学习的目的及用途。但是,随着教学的进行,不断出现的语法规则及大量琐碎的知识点,让学生感到学习内容的枯燥乏味,加之,缺少有效的实践环节,致使学生听课没有兴趣,缺乏主动性。
1.2教学方法陈旧
教师讲授该课程时一般是介绍基本语句,语法要点,然后是讲解例题。学生在前几次课还可以较好地领会与掌握,随着教学的深入,概念的增多,学生愈来愈感觉VB语言难以掌握,对其产生“望而生畏”的厌烦心理。
1.3对于实践教学环节重视不够
《VB语言程序设计》课程是一门实践性很强的学科,书本中的理论只有在实践中才能得以验证,在制定教学计划时,由于受传统教学观念影响,致使VB语言理论学时远高于实践学时,实践学时的不足也影响学生实践环节的学习效果。
1.4课程的考核方式缺乏有效性
考试是现行教学模式下检验和评价“教”与“学”效果的最常用手段。VB语言本身是一门实践性很强的课程,学生是否已掌握和理解所学的知识,设计算法解决问题,将算法转化为计算机程序,需要通过在计算机上实际操作,并以能否顺利调试通过为标准来考核。而在具体的教学过程中,一般教师很难做到这一点。
2.课程教学改革的方法和策略
针对传统VB语言教学中出现的种种问题,本人总结讲授VB语言的教学经验,同时借鉴众多教师的教学改革实践经验,通过以下几个方面来提高本课程的教学效果:
2.1激发学生的学习兴趣
兴趣是最好的老师,要使学生学好VB语言,必须让他们对编程产生兴趣。在教学实践中,应根据学生的认知程度和学习特点,合理安排和调整授课内容。在学习之初,教师应设法充分调动学生的学习兴趣,特别是第一堂课的教学尤为重要。教师要精心设计第一节课的教学内容,做到先入为主,引起学生的学习兴趣。
我国对于大学生的认证考试有很多,学习该课程后,我们鼓励学生参加全国计算机等级考试二级考试(VB语言)或参加全国计算机水平和资格考试初级程序员或程序员级的考试,拿到计算机专业资格证书,提高了学生走向社会的市场竞争能力,同时也能极大限度地激发学生学习的积极性。
程序的性能与编程语言 篇3
一、C语言与汇编语言的混合编程方法分析
在C语言与汇编语言混合并进行编程作业的过程当中, 可供选取的方法分为如下几种类型:第一类:即在C语言编程程序当中, 对于变量以及常量的定义以汇编语言程序为准;第二类, 即在C语言编程程序当中, 以内汇编语句进行内嵌处理, 将C语言编程下无法达成的硬件控制功能以汇编语言的编程方式予以实现;第三类, 在C语言编程程序设计过程当中, 通过应用内部函数的方式, 实现对汇编语言语句的直接性调用;第四类:即在C语言与汇编语言进行混合编程的过程当中, 每一项任务的执行均能够被划分为多个具有不同功能的模块, 而这部分模块是以函数形式或是子程序形式所存在的。结合上述不同功能的模块特点, 在C语言与汇编语言当中选取合适的语言进行编程。在此基础之上, 应用语言编译系统对这部分模块进行编译处理, 按照此种方式可形成与之相对应的目标文件, 并在相互联立的过程当中形成完整性的执行文件。按照C语言与汇编语言混合形式的差异性, 具体可以划分为以下几种类型。
1. C语言主程序针对汇编语言子程序进行调用处理:
为在混合编程过程当中实现C语言与汇编语言的充分混合, 要求在汇编源程序的编程过程当中, 严格按照程序设计下既定的编译系统进行段顺序以及段组合的确定。从被调用的汇编语言子程序角度上来说, 格式约定需要遵循以下几个方面的规律。
(1) 考虑到在程序设计的过程当中, 堆栈段以机器为面向对象, 这也就意味着同一堆栈段所对应的C语言以及汇编语言均处于共用状态。从而要求在汇编语言编程子程序下, 其开端应当具备两条标准性指令:
PUSH BP
MOE BP, SP
(2) 考虑到在C语言编程程序作用之下, 子程序对于局部变量的存放可采取SI以及DI方式实现。仅针对高于两个的变量, 应用堆栈对其进行存储处理。这也就意味着在被调用汇编子程序当中需要涉及到以下两个方面的操作语句:
PUSH SI
PUSH DI
(3) 对于即将被C语言程序执行调用处理的子程序或者是过程而言, 需要通过应用“PU BLIC” (伪操作) 方式, 针对这部分子程序及过程进行详细说明。现阶段主要可以通过“PU BLIC函数名”的方式说明其共外部调用的特性。
2. C语言编程程序中针对汇编语言语句的嵌入式处理:
在此种混合模式作用之下, C语言编程程序当中对于所嵌入汇编语言语句的处理可以省去分号标记。按照此种方式来说, 嵌入汇编语言语句可以按照如下语法方式予以表示:
在此基础之上, 若需要针对一组单位以上的汇编语句进行嵌入处理, 则应当通过应用“{}”的方式将其进行统一性处理。具体的表达方式如下所示:
二、C语言与汇编语言混合程序设计技术应用中的关键问题分析
为最大限度的保障在C语言与汇编语言混合状态下程序设计标准的有效实现, 首先需要确保关键参数在编程函数调用过程中传递的有效性, 同时还需要结合程序设计实际情况确定C语言与汇编语言相互之间的调用关系。现针对以上两个方面的问题做详细分析与说明。
1.在C语言以及汇编语言程序进行调用处理的过程当中, 最为关键的表现为对关键参数的传递作业。在程序设计过程当中, 参数传递方式的选取多以堆栈为准。简单来说, 在汇编语言编程吹作用之下, 将BP选取为基址寄存器。在此基础之上, 调用程序首先面向C语言编程程序发出操作指令, 要求其将关键参数按照传递顺序压入堆栈当中。在之后的程序设计过程当中, 若需要使用压入堆栈中的部分参数, 则可以指令汇编语言编程下“BP+偏移量”的方式, 实现对相关参数的存取处理。
2.在程序设计的过程当中, 针对那部分需要进行调用处理的函数以及过程而言, 需要预先设定相应的调用关系。明确函数以及过程的外部类型属性, 可方便在后续程序设计过程当中更为有效的为外部模块所引用。与此同时, 在有关调用关系的确定过程当中, 还需要结合存储模式的差异性来制定与之相对应的汇编语言格式。一般情况下, C语言编程程序中的小存储模式需要与汇编程序下的近类型过程相对应, 而C语言编程程序中的大存储模式则需要与汇编程序下的远类型过程相对应, 确保调用关系有效且可靠。
三、结束语
通过本文以上分析需要认识到:在将C语言与汇编语言相互混合并展开程序设计的过程当中, 两种语言自身所具备的独特优势均能够得到有效发挥, 同时避免出现单独应用某种语言进行程序设计下的局限性问题, 在参数传递的过程中实现对数据信息以及数据结构的共享。实践证实:应用C语言与汇编语言的混合程序设计技术所开发软件在实用性及安全性方面优势显著, 能够提高软件开发及编程工作效率, 是大规模程序设计中应当特别重视与关注的技术。
摘要:在现代计算机技术与编程技术持续发展与更新的过程当中, 程序设计开始呈现出规模性发展趋势。从这一角度上来说, 对于大规模性的程序设计工作而言, 实现C语言与汇编语言的充分融合, 发挥其各自的优势, 能够提高程序设计的时效性与合理性。本文依据这一实际情况, 以C语言与汇编语言的混合程序设计为研究对象, 首先针对C语言与汇编语言在混合编程中的基本操作方法进行了简要分析, 在此基础之上研究了混合程序设计技术应用中需要引起关注的几点问题, 希望能够通过混合设计技术的应用方式, 达到提高程序运行效率的目的。
关键词:C语言,汇编语言,混合,程序设计,技术,分析
参考文献
[1]史贵才, 葛修润.面向对象有限元程序设计及其VC++与Matlab混合编程实现[J].岩土力学, 2005, 26 (12) :2005-2009.
[2]顾可民, 白殿生.基于在程序设计中混合使用VC/VB编程的研究[J].沈阳工业大学学报, 2005, 27 (1) :91-93.
[3]陈进才, 郑守淇, 冀德学等.多Agent系统的形式化开放混合体系结构模型研究[J].西安交通大学学报, 2000, 34 (2) :42-46.
程序的性能与编程语言 篇4
C语言程序设计课程是计算机专业一门非常重要的课程,很多教师觉得这门课程难教,学生也觉得难学。针对这一现象,根据实际教学经验,本文对这门课程的教学改革与实践进行了研究。其中对教学思想、教学手段、方法和成绩考核方式等内容进行了较为全面的论述与剖析。
一、引言
目前,C语言程序设计这门课程已经成为高校学生的公共基础课程,并且是多种程序设计语言学习的起点,对于这门课程的学习,学生往往很难掌握,感觉比较枯燥,并且目前教师在这门课的教学过程中,还主要采用传统的单一教学模式,即黑板加粉笔。课程的教学形式主要是理论教学,教学的重点放在程序设计基础语法知识上,使学生感觉困惑,枯燥,不知道如何来利用这些知识把所学到的基础知识综合应用起来,且很难掌握编程思路。因此如何教好这门课程仍然是我们值得研究和探索的话题。本人根据十几年的实际教学经验,进行了研究和思考。
二、要转变教学思想
传统的教学思想都是先从程序设计基础开始讲,然后再进行程序设计,类似于盖房子。这样的方法往往是常量、变量、数据类型等这些语法基础知识讲得很多,占用了一定的学时,也没能使所学到的知识得到够实际运用,且无法掌握程序设计思想。所以应该运用树木生长的原理,要树根、树干、树枝、树叶一起长大。
三、教学方法的改革
1、因材施教,不能所有同一专业的班级同一个进度,同一种考核内容,要因材施教。在实际教学中掌握到不同班级的学生能力也不会完全相同,有的甚至相差很大,学生接受能力强进度就可以稍微快一些,如果学生接受能力不是很好,就放慢节奏,不能只强度进度,不顾学习效果。这个现象很普遍,在实践中对接受能力高的学生提出了高要求,包括平时的作业以及考试题的难易程度也增加了,同时对该班加快了授课进度。在有限的时间内学到了更多的知识,达到了良好的学习效果。
2、要实例化。比如在讲数据交换时,学生往往很难明白在计算机里两个数到底是如何交换的,这时我们就可以举个形象的例子,比如两个文具盒里各有一只笔,要交换这两只笔的例子。
3、学并快乐着。很多学生觉得这门课程很枯燥,为此我们提出口号“输入理想的程序,输出快乐的人生”,如果学生感觉做程序是一种煎熬的话,可以用C语言来编制一个身边的一些常见管理工具,这样既实用,又熟悉,比如可以编一个调查问卷的程序、超市的收费系统等,从中可以学到很多知识,再有就是学生成绩管理系统,如果这个和文件联系起来,可以提高学生的编程能力。学生在程序编写过程中,不断调试、改错、直到成功,很有成就感。
四、教学手段的改革
根据本专科学生的培养目标,结合自己多年的教学经验,通过对传统的《C语言程序设计》教学模式进行改革与实践,变老师主导型教学为与学生交互型学习的教学过程,在教学过程中不断探索新的教学方法和尝试先进的教学手段,首先,对教学用例进行了调整,用生活中常见的案例原型进行讲授。其次,充分利用现代教育技术资源,将实验环境搭建于课堂之上。从备课——上课——上机实践,进行了一系列的改革探索,很好地解决了C语言程序设计教学中出现的种种问题。结果表明:教学改革后,课堂气氛活跃了,开小差的同学少了,听课效率上去了,学生学习主动性也加强了,课外主动学习的兴趣浓了。进而,程序设计能力得到了普遍提高。
本人积极进行多媒体教学的尝试,大大革新了课堂教学的形式手段和途径 ,利用多媒体教学,借助多媒体辅助教学形象、直观的优势,对课程教学进行改革,可以提高学生学习C语言的兴趣和效果。多媒体教学模式的广泛应用,使教育技术更具有时代特色,更加科学化和系统化。运用多媒体教学,能够充分利用教学资源,对教与学的整个过程进行系统设计,能够达到利用最少时间得到最大的教学效果。但是本人觉得C语言程序设计这门课程并不适合完全采用多媒体教学,多媒体辅助教学在C语言程序设计这门课程教学中有利有弊,本人在实践中采用“多媒体教学模式”与“传统教学模式”相结合能达到很好的学习效果。
五、成绩考核方式的改革
学生的考试考核方式是实现人才培养目标的重要组成部分,一个课程教学方式的改革与实施,其教学效果好坏评定应当凭借一个科学的测量方法,通过参照一个较为完善的课程标准进行科学的测量,再对测量结果进行科学地分析与判断,最后得出科学公正评价结论。为此,对学生的理论和实验都要考核,尤其要改变去过以理论为主的考核形式,本人认为这门课程实验课的考核应该占很大比例,在成绩考核过程中,实验考试成绩占70%,理论考试成绩占20%,平时成绩占10%,平时成绩包括出勤、作业、课程设计、课堂提问等,实践教学中证实,这种方法的确使学生编程能力得到很大提高,并且考核方式公正客观。
[1]谭浩强.C语言程序设计[M].清华大学出版社,2000.
[2]杨文君,杨柳.C语言程序设计教程[M].清华大学出版社,2010.
程序的性能与编程语言 篇5
运用C语言,可以编制程序实现对一个已经存在的记录文件中的数据进行处理,结果信息既可显示到屏幕终端,也可再次保存到磁盘文件中去。本文以“评分处理程序”的实现为例,阐述了C语言文件处理的一般流程和方法。
1 需求分析
某竞赛活动,聘请十位专家作为评委为八位参赛选手进行现场打分,现已将选手的评分存于文本文档score.txt中,试以此为原始数据,去掉一个最高分和一个最低分后取余下分数的平均分,作为每位选手的最终得分并按此由高到低排名后存入文本文档re-sult.txt中。
1.1 处理流程
事务处理流程(不包括数据处理的具体过程)如图1所示。
1.2 具体任务
1)从文本文件score.txt中(如图2所示),按格式读出原始数据显示到屏幕,求出每位选手的总分存total数组中并显示到屏幕。
2)找出每位选手的最高分和最低分后显示到屏幕。
3)总分去掉一个最高分和一个最低分后取余下分数的平均分作为每位选手的最终得分仍存total数组中并显示到屏幕。
4)按最终得分由高到低排名后存入文本文件result.txt中(如图3所示)。
2 源文件分析
在文本文件score.txt中,以记录的形式存放了十位评委对八位参赛选手的打分。每行记录均按选手编号,选手姓名和十位评委的打分依次存放,且编号和姓名为字符,评委打分为保留二位小数的实数。如何将数据从文件读取到内存中?如何存放?根据前面介绍,C文件可视为由一个个字符数据顺序组成的字符序列。则可选用fscanf函数,从此文件流中执行格式化输入,将编号、姓名和分数按不同的格式读入到内存。读入后,可将八位选手的编号(三位字符)存放在二维字符数组number[8][4],姓名(不超过四个汉字即八个字符)存放在二维字符数组name[8][9],十位评委的打分则存放在二维实型数组score[8][10]中待处理。为方便读者理解数据读入前后在文件与内存中的存放形式,将score.txt文件内容划分成三大块对应内存中的number,name和score数组。
3 程序设计与实现
用C语言实现评分处理程序,使其具有读源数据文件、求总分、平均分、最高分、最低分、排序和写结果文件等功能。
3.1 序设计思路
C语言是面向结构的程序设计语言,且C程序是由函数构成的。根据功能设计本程序的函数包括:主函数main()、读文件函数readfile()、数据处理函数dealscore()、求最高分函数max()、求最低分函数min()、排序函数getorder()和写文件函数writefile()。各函数间通过函数调用实现功能的整合,其中主函数分别调用读文件函数、数据处理函数、排序函数和写文件函数;数据处理函数再分别调用求最高分函数和求最低分函数。
3.2 程序流程图
本程序的执行流程如图4所示。
3.3 程序实现方法
1)主函数:按一定顺序调用各功能函数,串起整个程序,实现本程序功能。
2)读文件函数:主要实现从给定文件中读取数据存数组并按格式显示到屏幕。首先定义文件指针fpscore,再利用fopen函数打开文件,由于score.txt为文本文件,则选用“r”方式打开。然后读文件存相应数组,C语言中读文件的函数较多,有读入单个字符函数fgetc、读入字符串函数fgets、读入数据块函数fread(一般适用于二进制文件)和格式化读入函数fscanf。根据前面介绍的源文件分析及数据处理的要求,选择使用fscanf函数进行格式化读入,并且存入不同类型和大小的数组:number,name和score。fscnaf函数的原型是:fscanf(文件指针,格式字符串,输入表列);其中文件指针即为fpscore,格式字符串中依次为%s,%s和十个%f及n,分别控制输入表列中的number[k],name[k]和score[k][0]~score[k][9],按行循环地读入,其中k指第k位选手,每读完一行选手的数据,变量k就累加一次,故当本程序段执行完后,k正好为选手的人数。循环可利用while语句实现,只要不到文件末尾就读文件,关于是否已读到文本文件末尾,可用EOF判断或feof函数测试,此处用feof函数测试实现较为方便。最后利用fclose函数关闭该文件。
3)数据处理函数:主要实现求每位选手的最终得分。首先利用for循环求出每位选手的十位评委的评分之和存入total数组,再调用max()和min()函数求出每位选手的最高分和最低分,最后按总分去掉一个最高分和去掉一个最低分后求平均的方法求出每位选手的最终得分。并将这些中间结果显示到屏幕,如图5所示。
4)求最高分函数:主要实现求某位选手的最高分。函数为有参函数,形式参数为minscore[10],接收dealscore()函数中实际参数score[i]的值,两者类型一致,且score[i]其实表示第i位选手的十个评分,故大小也一致,可以实现数据的传递。然后利用比较法求出一组数中的最大值即为最高分。最后用return语句返回最高分给主调函数待处理。实现代码如下:
5)求最低分函数:主要实现求某位选手的最低分。方法与求最高分类似,就不做说明。
6)排序函数:主要实现将数据按最终得分由高到低排序。排序算法选用冒泡算法,算法中数据交换的条件是前一最终得分小于后一最终得分,值得注意的是:编号和姓名均为字符串,C语言中字符串的交换必须使用字符串处理函数strcpy()实现。另外,除了交换编号、姓名、最终得分外还需依次同时交换该相邻两位选手的十个评分,否则score数组中的数据将混乱。
实现代码如下:
7)写文件函数:主要实现将最终结果写入文本文件result.txt中。首先定义文件指针fpdkdz,再利用fopen函数打开文件,由于result.txt为文本文件,则选用“w”方式打开。然后将名次、编号、姓名、得分依次写入文件,C语言中写文件的函数也较多,有写入单个字符函数fputc、写入字符串函数fputs、写入数据块函数fwrite(一般适用于二进制文件)和格式化写入函数fprintf。根据要求选择使用fprintf函数进行格式化写入,每写完一位选手的结果就换一行。其中名次可用计数器i依次累加实现。最后利用fclose函数关闭该文件。
4 结论与分析
C语言中文件处理的一般步骤可归纳为:先利用fopen()函数配合恰当的使用方式打开文件,再选择适当的读写函数读写文件,最后切记一定要利用fclose()函数关闭该文件,以避免意外的发生。
笔者认为C语言文件操作时还应特别注意区分文本文件与二进制文件,根据文件类型和具体要求选择合适的文件使用方式。另外,在读写文件尤其是读文件时还应关注文件的位置指针,必要时可使用rewind()函数重定位或fseek()函数移动位置指针,进行随机读写。
C语言文件处理较为实用,许多可供实际使用的C程序中都包含文件处理,掌握好文件的使用,还需更多的实践和探索。
摘要:运用C语言的读写技术,可将磁盘文件中的数据读入到计算机内存,处理完后的数据或中间结果依然可以输出到磁盘文件中永久保存。该文以“评分处理程序”的实现为例,阐述了C语言文件处理的一般流程和方法。
关键词:C语言,文件处理,程序
参考文献
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2005.
[2]向华.C语言程序设计[M].北京:清华大学出版社,2008.
程序的性能与编程语言 篇6
国外的高校基本上都开设了Java这门课程,我国高校的计算机及相关专业也将其设为一门必修的专业主干课程。我国当前大力提倡应用型本科教育,其基本特征主要体现为:定“性”在行业,定“向”在应用,定“格”在复合,定“点”在实践。与我校人才培养计划相结合,如何在有限的教学时间内使Java语言程序设计课程的教学取得更好的效果,以期培养出符合应用型本科教育所要求的人才,这一问题值得深入研究与思考。通过对教学中发现的问题进行分析和总结,本文提出了Java语言实践型教学改革的若干想法。
1 Java的教学现状
目前,Java语言教学的重点一般都放在对基础理论知识的讲解,以教材顺序来组织教学,极少会穿插应用型实例,辅以较为生硬而刻板上机实践。这种教学方法通常会导致如下几个问题:[2,3]
1)学生对所学内容感到抽象、难以理解,从而导致其对知识的掌握多浮于表面,无法深入了解语言的精髓,更无法培养起他们对改语言的学习兴趣。
2)由于缺乏较为生动的实例程序向学生展示Java语言的多彩和博大,使学生没有确定的学习目标,并且在实践中很难进行综合性的应用。
3)学生对面向对象编程思想和方法的理解和掌握不够扎实,导致实际解决问题的能力和编程能力较为低下,达不到预期的教学效果。
这些问题的存在,会使得学生在学完该课程后而不知道到底Java有何具体的应用和如何进行具体的应用。为此,如何在实践中完成教学,让学生知其然并知其所以然的接受所学语言,达到学以致用的应用型教学目标,必然要求教师对其传统的教学模式、方法进行深入的思考,并进行大力的改革。
2 教学模式和方法的改革探讨
1)基本知识教学方法的改革
基本知识是学生学习和将来应用提高的重要基石[4]。在教学中要明确课程的教学大纲,合理组织教学,设定重点讲述对象。在和Java语言前导语言课程的对比的基础上,让学生比较形象的了解java语言的特点。
但是,在强调基础知识教学的同时,决不能陷入“本本主义”,合理的分配有限的课时是很有必要的。以我校为例,Java课程安排的是48节理论+32节实训。理论授课主要是Java语言的基础知识点做较为细致的讲解,所涉及到的例子不可能也没必要太大。其目的是使学生建立起基于Java的面向对象程序设计思想和对问题的实际解决能力,同时要让学生清楚地意识到,面向对象程序设计是一种思考问题的方式。无论是Java,C++,还是其他面向对象编程的语言,都是将这种思想进行具体实现的工具。
2)注重提高学生的实际综合应用能力
Java语言实践性极强,我们在教学安排计划中,非常注意理论知识部分与实践教学合理安排,尽量处理好理论教学和实践教学的关系,通过理论讲解和上机实践,强化提高学生阅读程序能力和理解能力。针对Java语言的优势,布置课程设计,加强应用程序开发等实践性较强的实践锻炼。让学生在学习过程中,提高认识问题和解决实际问题的能力。
在实际教学中,本人按照大纲要求将教材知识点进行了归纳汇总,并自编了实验指导教材。该实验教材选择了一个大的工程项目,将各章节内容融会贯通,既反演了理论教学中的重要知识点,又培养了学生的对具体而实际的问题综合解决能力。。
3)培养学生的软件工程思想
将软件工程思想有机的融合到Java语言的教学中,也是提高教学效果的重要环节之一。具体要求学生应该掌握:
(1)结构化分析与设计的方法。对于大型软件系统的设计,应以类为单位分解,按照自顶向下的软件构造方法来开发。在每个类的编码完成之后,进行单元测试十分方便,也保证了提交代码的完整正确性。作为面向对象的语言的Java,其封装性可以把数据和功能一起封装到类中。
(2)规格化文挡的建立。这将有助于软件人员之间进行交流,在提高软件产品的质量,降低软件产品的开发和维护成本等方面具有重要意义。在教学过程中,要强调Java语言的注释标记和Javadoc工具的作用,利用它们可以方便地生成源程序。另外要让学生掌握Java语言标准的命名规范,养成良好的编码格式习惯。
总之,在Java语言教学中注重软件工程思想的培养,不仅能充分让学生体会到Java语言的优势和特点,同时通过这样的教学实践,可以让学生有正规、实际的项目开发经验,激发学生的学习兴趣,为将来的进一步学习打下坚实的基础。所以,在Java教学过程中,应注意通过选择合适的课程设计题目,组成开发小组,完成需求分析、系统设计、编码实现和测试运行的各个阶段。通过实践实际的项目开发的全过程,让学生真正领会,掌握面向对象程序设计思想。
4)优化教学过程与模式
(1)通过教师精心的选择教材和安排教学内容来有效的组织备课,改进教学手段和方法。
选择一本好的教材是教师有效实现教学目标的首要前提,也是课程教学的必要保证。我校以《Java程序设计案例教程》作为Java初学者教材能取得较好的教学效果。该书采用任务驱动方式,展现全新的教学方法,全书以案例的形式,通过大量的实用、经典的编程实例,来介绍Java语言,使读者可以快速掌握、应用所学的Java语言编程知识。另外,教学辅导用书课参考《Java大学简明教程:实例程序设计》,它的优点在于:利用生动、有趣的例子,可以使学生更好的理解和掌握枯燥的语法并在同时学习到利用Swing制作GUI的知识等;教材虽然很厚,但是多为图例和图示,和学生的实践互动性很好,等等。由于教学时间的安排问题,不能把所有的内容都做详细的介绍,这就要求教师有较好的选择和判断,结合社会的人才需求,有重点的进行教学。
(2)备课是组织教学的基本环节,更是教学质量的有效保证。
教师必须认真组织教学内容,并对教学内容进行必要调整,规划重点、难点,注意结合Java语言发展前沿方向,综合利用现代信息技术,建设高质量的电子教案。由于教学内容重点、且各个内容之间相对独立,语法规定较多,因此应注意把握结构、概念的阐述深刻明了、内容丰富生动。从而有助于激发学生学习兴趣和创新意识,自然就会受到学生欢迎。
(3)转变教学模式,有效利用教学资源搞好课堂教学
采用启发式互动教学。Java语言教学要遵循“因人而异,因材施教”的原则,教师要充分发挥在课堂的能动主控作用,最大限度地调动学生课堂主动参与的积极性,结合学生具体情况,不断改进教学方法,提高教学效率,努力为学生奉献高质量的课堂讲授。转变传统教学模式,应用启发式教学方式,通过影响学生的思维过程,来促进学生的发展启发学生思考和完成学习任务,并逐步过渡到让学生自己向自己提出问题、自我启发自我学习,解决在学习中所遇到的问题。
实际授课过程,我们在建立有局域网的机房进行,保证每个学生配有计算机,教师的计算机要配有投影仪。在教学过程中,将电子教案和程序范例与学生共享。在对程序讲解过程中,注意将程序进行分解,别是对于程序的结构,复合语句,函数的具体作用,在讲解的时候可以配合相应的流程图加以阐明,以便加深学生对问题的理解。帮助学生调控自己的思维过程,改进自己的思维活动,通过引导学生思考完成一个程序的步骤、方法、以及各种方法的优点与不足和方法,应用条件和环境,形成科学思维的方法和技巧。
同时应该在启发式互动教学的基础上,合理的利用现有的其它教学手段和工具来辅助学生完成学习。例如采用以兴趣为导向的分组教学,能够极大的提高所有学生的学习兴趣和主动性;利用有趣而又有深度游戏编程平台,让学生自主性的思考和设计;利用网络论坛交流学习等,都可以取得更好的教学效果。
3 考试方式的变革
考虑到Java程序设计语言本身的特点,应该将考试重点转移到考核学生的实践技能方面,从而采用课程设计与试卷相结合的方式,依据平时成绩,课程设计、笔试编程三方面综合情况给出成绩。
在此,我们特别强调的是课程设计。课程设计是提高Java语言教学的一个必要环节,其目标在于督促学生综合应用所学基础理论知识,通过独立查阅相关资料和规范,初步掌握解决实际应用问题时,所应具备编写程序、程序调试等能力。课程设计要求学生开发出具有一定实用性的应用程序,从而使学生树立起正确的设计思想,使学生在自主性、探索性、创造性和合作性方面得到培养,并且丰富了学生的知识,也开阔了学生的视野。因此,可以将课程设计作为考核的重点。[5]
要更好的实现这一环节,首先要求教师注意选择布置符合教学要求,内容具有一定的先进性和实用性、可行性的课程设计题目,这样学生可以通过课程设计来了解Java的综合应用和最新的技术动态。由于课时有限,选题要精巧而具有针对性。学生可以在教师所提出的设计题目中选择自己感兴趣的题目,也可以自己拟定题目进行设计。根据实际情况,可把同学分为小组进行协同课程设计,通过合作,交流经验,集思广益,可以培养学生们团结互助、协同合作能力又能引导学生钻研问题。其次要加强对学生设计的指导。注重讲解设计思想、设计的目的、系统的总体设计等,引导学生按指导书阅读参考资料,互相讨论启发,通过自己的努力独立完成。这个过程中,可以让学生有目的的去参考Java API文档,它是学习Java的手册性工具。最后,课程设计最好在课程教学最初就提出来,设计好题目,给予学生充分的时间思考选择,随着学习的不断加深和知识的累积,从而有目的地、有针对性地、进行安课程设计的准备工作。
4 结束语
Java语言程序设计的应用范围逐渐扩展。对Java语言的教学,我们希望能用较简单的方法和手段使学生更好的认识Java,了解Java,从而深入浅出的掌握Java语言的规范和标准,理解面向对象编程的思想,牢固树立工程开发思想,最终达到学以致用的目的。本文在分析目前Java程序设计教学的不足的基础上,通过在实际教学中检验,从优化教学模式和方法,改革计算机语言类课程考核方法的角度提出了自己的一些看法。这些研究和改革如果被推广和应用到其它计算机语言课程的教学中,也必然会取得更好的教学效果。
参考文献
[1]鲁辉.Java程序设计[M].北京:地质出版社,2006.
[2]耿祥义.Java大学实用教程[M].北京:电子工业出版社,2005.
[3]邵丽萍.Java语言实用教程[M].北京:清华大学出版社,2005.
[4]耿蕊.关于计算机基础课课程设计的研究[J].高师理科学刊,2005,25(2):79-80.
程序的性能与编程语言 篇7
关键词:教学策略,教学目标,教学内容,教学结构,教学评价
1. 现状分析
《C语言程序设计》课程是国内多数高校非计算机专业本科生的必修课,是学生普遍认为难学、厌学的课程,主要因为:(1)学生初次接触编程语言,没有任何基础,几乎是零起点学习;(2)传统的教学内容组织与呈现形式、教学方式方法令学生感到枯燥无味,教学评价形式单一,评价难以起到及时、正向的强化与激励作用;(3)只有50多个学时的教学时间,授课内容繁多,练习时间较短,学生常常旧知识未及巩固又要消化新内容,紧张的节奏使学生极易产生厌学心理。所以,要在短期内要求学生熟悉该门语言,领会编程思想,掌握编程技术,将对《C语言程序设计》的教学策略提出极高的要求,是我们急需解决的问题。因此,笔者所在团队以“《C语言程序设计》教学策略的探索与实践”为题展开全面的理论探索与实践研究,以期改变这种现状。
2. 思路探索
教学策略是以一定的教育思想为指导,在特定的教学情境中,为实现教学目标而制定并在实施过程中不断调适、优化,以使教学效果趋于最佳的系统决策与设计,它并不等同于“教学方法”,它包括目标的设立、媒体的选择、方法的确立、活动的组织、成绩的评定,是一整套合理有效的教学策略。
⑴教学目标体系的构建
目标是教学的起点也是教学的归宿,它指出了教学的主攻方向,规定了教学内容。教学目标体系可以分成:课程教学目标、单元教学目标、课时教学目标等不同的层次。
⑵教学内容体系的重组
根据教学大纲的要求,本着更有利于教学,更易于学生接受的指导思想,采用布鲁纳提出的“动机原则”,对教学内容的教授顺序及呈现形式等做出一些调整,使其更容易被学生所接受。
⑶教学方法与结构体系的优化
这包括教学方法与教学活动组织模式的确立。根据教学目标、教学内容以及学生的学习特征,综合考虑现有的软、硬条件及教师的个人风格,充分整合“讲授法”、“演示法”、“实验法”等传统的教授方法,及现有的“案例教学法”、“项目教学法”、“任务驱动教学法”等,进一步提出构建科学合理的教学活动组织模式的思路与办法。
⑷教学评价体系的创新
改革现有单一的教学评价方式,不仅要做好成果评价的工作,还要做好过程性评价,定性与定量评价并行。充分利用我们现有的网络课程平台、网上测试系统、校内网及互联网等数字平台与资源,开展诊断性评价、形成性评价和总结性评价,制定切实有效的教学评价策略。
3. 策略实施
⑴构建目标体系
在目标体系的构建中,我们分课程教学目标、单元教学目标、课时教学目标三个不同层次。课程目标由校、二级学院专家、学科带头人共同参与制定,并且要设计课程目标说明书,将目标逐条解读,为下一步授课教师制定教学目标、开展教学活动提供充分的指导依据;在课程总目标的指导下,由授课组主要成员集体完成单元教学目标的制定。在制定中严格把握分类的准确性、描述的严密性,对不同层次、不同类别的知识,用不同的行为动词作出具体而恰当的描述;任课教师根据课程和单元教学目标以及自己所任班级学生特点制定出适宜本班的课堂教学目标。在具体对教学目标的设置中,要求教师表述上要使用清晰、易于检测、易于操作的动词来表述,将行为具体化。例如:说出函数定义时需要主要的问题;说出while、do......while、for三种循环结构的执行流程;能用printf()语句输出任意类型的数据。
⑵重组教学内容体系
在重组教学内容体系中涉及两个方面:顺序、材料。
为了达到教学目标,实现良好的教学效果,可以改变教学内容的顺序,重组教材。比如,我校所使用的教材在编排上将函数设置为第八章,但事实上在前面的讲解中,根据题目的特点,就可以将自定义函数调用的简单用法加以介绍,设计一些简单的综合性题目。学生感到兴趣,也会提前主动学习后面章节内容。
布鲁纳提出了“动机原则”,他指出激发好奇心远比奖赏、竞争更具有对学生学习行为的驱力作用,而且要向学生提供成功的经验,因为人的心理特点就是会对给自己带来成功感受的东西感到兴趣。所以,在选材上要抓住两点:趣味性与成就感。首先,让学生对所学材料感兴趣。比如在讲授数组概念时,我们会设计这样的导入例题“中秋佳节,有贵客来到草原,主人要从羊群中选最肥的一只来宴请宾客。请你帮忙找出最肥的那只羊,并输出其重量”。其次,选材要具有一定挑战性,学生通过努力还能够完成,获得强烈的成就感,如在讲解完字符串概念后,设计这样的题目“某同学发表英文短文一篇,共有3段,每段不超过100个字符。每个字符可获稿费0.2元,空格不计算稿费,请计算该同学可获多少元稿费”。
⑶优化教学方法与结构体系
美国学者乔伊斯在《教学模式》中指出:“没有一种教学模式是为适合所有的学习类型或学习风格而设计的”。所以,教师要认识到教学方法的多样性、多变性,了解每种教学方法的局限性,打破一种固定不变的教学模式,因地制宜,灵活运用才是不变的方法。例如在前二章C语言概述和数据类型的授课中,更多的是采用讲授法使学生获取基本概念性知识,采用程序演示法,让学生辨别、识记每种数据类型的不同和应用方法。在第三章顺序结构程序设计中,往往题目难度不大,比如“从键盘接收一个小写字母,将它转换成大写字母后输出”这样的题目,逻辑思路并不难,可以采用讨论法,带领学生讨论,形成用程序解决问题的思路,并留出足够的时间让学生上机实验。在第七章指针中,学生初次接触指针的概念,此时,可采用案例式方法,通过对案例的分析,让学生领会用指针解决问题的方法。
⑷创新教学评价体系
在教学评价环节,我们加强了学生的自我诊断性评价和形成性评价,最终的成绩评定是定性的形成性评价与定量的成绩评价相结合的办法。
我中心设有“C语言自主学习园地”,其中设有“C语言基础知识概要”、“单元测试”、“综合测试”与“经典算法”四个模块。在“C语言基础知识概要”中也配有相应的填空、选择等题型,可以供学生在每节课前进行课前评测或在课后进行学习效果的自我测试。当单元内容学习完之后,学生可利用“单元测试”进行学习效果评测。这不仅是一个学生自我诊断性评价的过程,也是教师形成性评价的判断依据。根据学生登录使用情况,教师要给出定性评价,评出ABCDE五个等级。在期末考试仍旧保留原有的方法,上机考试并给出定量成绩,最终将期末定量成绩与平时的形成性评价按比例结合在一起,给出学生最终的学习成绩评定,使成绩更关注过程、更客观有效。
4. 结束语
在整个教学改革尝试中,我们通过使用这些新的思路与方法,尽可能地为学生扫清学习障碍,【下转第110页】消除他们学习编程语言的恐惧心理,努力使学生不仅掌握该门语言的使用方法,更重要的是引导学生掌握编程思想,培养使用计算机解决实际问题的基本能力。当然,想要完全实现这一目标,还需要更多地学习、探索、反思与实践。
参考文献
[1]冯忠良等《.教育心理学》.人民教育出版社,2000年.
[2](美)乔伊斯(Joyce,B.)等《.教学模式》.中国轻工业出版社,2009年.
程序的性能与编程语言 篇8
现在, 我们学校和许多高校一样, 选择C语言作为电子信息类专业的高级语言程序设计的入门教学课程, C#语言和Java语言程序设计与开发作为计算机专业后续岗位能力延展课程。C语言程序设计是一门专业基础课, 强调语法和基础, 而C#语言和Java语言程序设计则着重于岗位应用能力。
本人多年从事 《C/C + + 语言程序设计》、《C#语言程序设计》、 《数据库编程技术》和 《ASP. NET》课程教学, 发现我校高职电子信息类专业相当一部分学生语言不过关, 给后续课程带来很大麻烦, 造成教学被动。为此, 很有必要对高职电子信息类专业C语言程序设计教学进行反思, 提出相应对策。本文以C程序设计课程为例, 分析目前高职电子信息类专业学生C语言教学上存在的主要问题, 就如何确定并有效实现教学目标做一个切实的探讨。
二、高职电子信息类专业C语言教学的特点
1C语言的教学特点: 具有逻辑性、理论性、创构性和理论性是计算机程序设计课程的四大主要特征。想要掌握计算机语言, 需要学生有一定的主动创造力和罗辑思维力。而C语言更是计算机程序设计课程之中的难点, 很多首次接触到C语言的同学很难入门。根据这一特性, 对高职院校在C语言的教材编写上和教学上带来了很大的困难。
计算机语言的学习不仅仅是看教材, 听课更重要的是在于应用。学会使用C语言编写程序, 最重要的环节是做习题和上机实训。如果学得不扎实, 对后续专业课程影响很大。所以一定要强化实训教学。
高职院校的学生普遍存在着文化水平较低, 认知度不足, 综合素质不高等特点。很多学生对学习没有热情, 思维理解能力也较差。有的学生上课, 仅仅是为了应付家长和学校, 自己没有主动学习的欲望导致学习没有纪律。因此, 高职院校的学生上课处于一个积极性不足, 学习习惯不好, 没有学习计划规划, 不主动思考这一环境之中。他们往往是被动的接受学校的教育, 仅仅是为了完成目标而学习, 一版不会主动进行相关课程的深入思考和练习。由于这些不好的学习因素吗, 导致相关的学习课程学习起来更加困难, 也不知道如何求助如何进行解决。
目前, 相当大一部分学生对学习计算机课程存在两个误区: 一方面是在现在软件领域这个大环境下, C语言基本无用, 另一方面是学习这门课程如果今后不从事相关工作也无用武之地。还有相当一部分学生学习中产生畏难情绪, 严重挫伤他们学习计算机语言的积极性, 甚至影响他们学习本专业的信心。
但同时也要看到, 有一部分高职生来自于高职院校的学生, 他们在学习C语言的过程中实践和动手能力都得到了很大的加强, 逻辑思维能力和创新能力也有明显提升, 还有一部分有自己兴趣十足的爱好。这应当充分肯定并予以高度重视, 并加以正确的引导。在教学中注意扬长避短, 充分发挥他们的优势。
三、高职C语言教学的思考与对策
( 一) 要遵循计算机语言学习的认知与教学规律
计算机语言程序设计学习都有自身的认知与教学规律。计算机程序就是用某种计算机语言把计算机的执行过程描述出来。学习计算机语言, 就是学习语法规则以及掌握这些语法规则的应用。众所周知, 要学好一门语言, 关键是不停地进行读写训练, 活学活用。 多看、多读、多写、多模仿练习是学好任何一门语言的诀窍, 那么学习计算机语言也是如此。所以, C语言程序设计教学首先是引导学生多阅读C语言程序, 然后是学会调试C语言程序, 接着是模仿编写C语言程序, 最后才是设计C语言程序。
( 二) 分级制定教学目标
我们的教学对象是这样现状的高职学生, 还存在计算机水平差异、思维发展差异。这就要求我们根据高职教育的根本要求和专业人才培养方案, 结合本课程的内容特点, 在教学大纲中应制定多级教学目标。多角度分层次分阶段从低到高设计的教学目标如下:
1、掌握C语言程序设计的基本知识、基本方法和技巧
2、具有程序设计初步应用能力
3、理解结构化程序设计的基本思想
4、培养程序设计逻辑思维方式, 提高学生自主探索学习和分析解决实际问题的意识
在教学实施过程中, 要根据学生所表现出来的差异进行分层, 设计不同层次的学生模型, 分层次制定教学内容和教学目标。有条件分班教学的, 可按不同层次的学生在教学活动中要达到不同的学习目标, 分班级安排不同的学习内容。比如: 把C语言程序设计课分为两个层次, 一个基础层次, 一个提高层次。
( 三) 选择或自编适合高职学生的C语言实训教材
高职的培养目标, 教学模式、教学内容有其鲜明特色, 这就要求高职 《C语言程序设计》教材也应当独具特点, 不能照搬普通高校教材, 更不能借用中职教材。但现有教材很多是介绍语句的格式和功能, 不适合高职学生, 因此必须调整教材结构和内容来应对现在高职教育。
2008年我们曾编写 《C + + 程序设计实训指导书》, 可满足6个专业方向的学生使用。本书是在编写组各老师多年从事C + + 语言程序设计教学的基础上编写的, 书中根据多年的教学经验, 针对海南高职学生实训中遇到的问题, 精心挑选训练题目, 进行强化训练, 以提高学生分析问题和解决问题的能力。力求将复杂的问题和概念用简洁的语言描述出来, 力争让学生当时看得懂、学后用得上。
( 四) 围绕最大限度提高与保护学生对C语言的学习兴趣, 优化教学方法, 以求全面教学实效
大量的调研证明, 学生在如下情况下其学习效果才会是非常有效的: 感觉到自己备受别人的关注; 对他们现在学习的知识充满兴趣; 自己是学习的主导和参与者; 在任务完成后得到适当的反馈; 看到了成功的机会; 对正在学习的东西感兴趣并觉得富有挑战性; 感觉到他们正在做有意义的事情。要促进学生的自主发展, 就必须最大可能地创设让学生参与到自主学习中来的情境与氛围。因此, 教师要因势利导, 采取多种教学方法, 最大限度提高与保护学生对C语言的学习兴趣, 以求取得真正教学实效。
1. 做到每一堂上机课都能让学生通过自己上机程序练习获得成就感。
2. 提倡学生朗读程序。比如, 语句int x; x = 5; , 可读成 “声明一个整型变量x, 然后将整型常量5赋值给整型变量x”。通过朗读程序, 能够使一些原本很模糊的概念得到不断地巩固, 逐渐地变得清晰。
3. 养成良好的编程习惯, 将枯燥难记的语法融入范例程序的上机调试过程中。
在整合课程内容的基础上, 改变过去先给出定义和规则的讲授办法, 而是从具体问题入手, 精选范例, 努力把枯燥的 “语言”讲得生动、活泼。在程序范例中, 将语法知识点同实际编程结合。讲授时避免纠缠于语法细节, 应始终明确一点: 计算机语言是用来描述需要解决的问题和问题的解决方法的, 任何语法规定都是为这个目的服务的。
4. 点面结合, 少讲多练, 确保创造自主学习的情境与氛围
学习计算机语言主要在于应用, 仅仅通过听课和阅读教材是不可能掌握的。学会使用C语言编写程序, 最重要的环节是做习题和上机实训。要区分学生层次, 精选上机练习题, 既要满足少数提高训练, 又要满足大多数基础练习, 做到点面结合, 符合学生实际。
5. 及时帮助学生化解难点, 共克难关
应事先分析C语言学习的难点, 做到胸中有数。在C中, 变量与数据类型概念是第一个难点, 它与内存概念紧密相关。这个难点, 将影响全局。循环控制语句是第二个难点, 它改变程序执行流程, 难在如何构造, 关键是抓住循环初值、终值和增值三要素。
教学中要及时发现学生在学习C时的难点, 厘清难点的根源, 逐个击破, 不留隐患。
6. 结合专业, 学以致用
根据教学不同阶段, 教师应适时收集一些与其授课学生专业方向结合的程序案例, 让学生能够切实体会到C程序设计在解决本专业中的问题中所发挥的作用。
7. 发挥计算机网络与多媒体的优势, 增加教学互动
及时开发C课程网站, 提供学生在线多媒体学习与答疑平台。 在C语言程序设计学习上, 把复杂的计算机语言、专业化的技术变成了轻松自如、随心所欲的人机对话。因此, 使学生不至于掉入C语言知识的细节里, 避免出现既费时、又费力, 而学习收效不理想现象, 使枯燥无味的内容变得简单, 从而有趣, 激发了学生浓厚的学习兴趣。
学生在课堂内外的学习中, 遇到不能解决的问题时, 既及时可上Internet网查询, 又可与同学老师交流。这样, 既增进了师生之间交流的机会, 又达到共同提高的目的。
四、结束语
总之, 对于高职电子信息类专业学生来说, 学好C语言既是专业素质的需要, 也是未来岗位能力的要求。对于教师来说, 如何因材施教, 因人而异, 充分激发学生的内在积极性与潜能教学模式也成为迫在眉睫的重任。针对目前高职电子信息类专业学生在C语言程序设计教学上存在的主要问题, 我们提出采用点面结合, 分级教学目标, 精选程序案例, 突出高职认知规律, 以提高学生的学习兴趣为基础, 强化学生上机练习及指导为突破口, 最终实现高职C语言程序设计的教学目标。
参考文献
[1]全国高等院校计算机基础教育研究会高职院校计算机教育经验汇编第二集[M].中国铁道出版社, 2008.
程序的性能与编程语言 篇9
关键词:C++;程序设计;教学方法;教学改革
0引言
C++语言运用范围非常广,在软件设计、网络通讯、游戏娱乐等等领域都能涉及到,也是当前世界上使用最广的编程语言。但是行业的发展受到多方面局限,人才的缺失是行业发展最大的阻碍,许多高校都意识到这个问题,相继的开始《C++语言程序设计》课程,主要就是让计算机专业的人才能够多涉及这方面课程,提高学生的自主学习与独立思考能力,增加就业的几率。传统教学方式,存在教学目标不清晰以及教学方式古板的问题,很多学生对这门学科的重要程度认知不足,教学方式与内容的乏味让学生对此课程并无多大兴趣。本文是根据多年来的经验总结以及市场调查,从教学目标与内容多方面进行研究,以此追求有效的教学改革。
1教学中存在的普遍问题
1.1学生学习目标不明确
教学的主要目的是为了培养学生的兴趣以及软件编程能力,提高学生的独立思考、分析与解决问题的能力,提高就业的几率。以往的课程都是由不同教师来传授,每一个教师都只关注自己本科教学,并没有从全局效果分析,学生对自己的学习目标不明确,导致学习兴趣降低。没有目标的学生犹如行驶中迷失了方向的帆船,不知所措。当学生对自己的学习有了清晰的规划,就会不断朝着目标的方向努力前进。
C++涉及的概念都是较为复杂的,在学习过程中灵活多变,出错可能性非常大,可以说想要学好此课程是相对较难,所以很多学生都产生退却念头;同时C++不仅是纯对象语言,当中还涉及到程序设计语言,面对对象并不是单一的。这种特性导致了C++语言与C语言能够兼容存在。两种语言之间有时不需修改就能够使用,所以在刚开始学习时,学生觉得相对简单。[1]。然而,这两种语言也必然存在不能共通之处,学生要真正掌握两种不同的语言,就必须对其进行对比,找到其相同之处和不同点。
1.2教学重点偏向语法,课后延伸匮乏
在语言教学中侧重与语法[2]。在传统的教学当中,不管是老师教授还是教材讲解,都是先把概念推从出去,再理解规则,最后用案例讲解。概念知识相对来说不仅枯燥,要想记住也是较难的,在教学过程中,要引起学生兴趣非常难。虽然传统教学中有案例分析,但是案例分析都是各自孤立的,只是针对某一部分的知识,学生无法从中感受到实际运用价值。枯燥无味的文字不仅不能引起学生的学习兴趣,反而会让他们觉得反感。被动地接受理论知识只会让学生很快就忘记了教学内容,只有生动的教学方式才能激发起学生的兴趣。
教材课程中有课时限制,所以教学过程基本上都是从语法、规则、案例等等形式来落实。每一堂课讲解的时间都有限,再加上教师的课前准备不足,那么这堂课的实际效用就非常低。如果在课后没有进行延伸与巩固,那么学生要掌握更深层次的知识是不可能的。在这种情况下,学生掌握的知识只是皮毛,甚至可以说有些接收能力比较差的学习是掌握不了课堂知识。如果没有进行课后巩固,基本上这堂课的知识就是一闪而过了。对于老师传授的知识,学生不可能过目不忘,因此,只有不断对知识进行巩固和复习,才能让学生牢牢记住知识。
1.3教学方式无结合企业实际需要
学生在C++语言的学习中,通常都是局限在一部分知识中,并没有顾全大局的理念。传统的教学都是采用循序渐进的形式,每一节课都给学生灌输新概念、新规则,学生没办法从所有学习的知识中进行融合使用。[3]。就算是在教学中加入了大量的实验课程,也只是围绕某一个章节某一个知识进行实验安排。这种实践课程也只是一时兴趣,学生在学习一段时间后就会产生厌倦,学到的知识进而就无法使用到企业公中。单调的教学模式显然已经让学生失去了兴趣,这对于提升学生的思考能力和动手能力毫无帮助。每一个学生在毕业后都会步入社会,因此,了解社会环境和企业对于人才的要求对于学生来说尤为重要。如果教师一味地向学生传授课本知识,即便学生能够牢牢记住这些理论知识,也不知道如何将其应用到实际操作中。因此,在教学过程中,教师应该注重理论与实际的相互结合,把学生培养成为综合型的人才。
2教学改革策略
针对上述对C++语言教学存在问题的概述,本文从以下几个方面进行策略研究,在实际使用中也取得了不错的反馈。
2.1明确学习与教学目的
学习的动机是学生能够持续进行的基础,完成整个学习与巩固过程都需要学习动机来维持。现在大学生在学习过程中会考虑到今后就业方向,如果在课堂当中能够开展与今后就业相关的内容,那么学生会非常重视这次学习,效果自然就非常明显。对于不同的教学内容,学生往往会表现出不一样的兴趣程度,因此,老师首先要了解学生在学习过程中最为关注的问题,并且针对这些问题设计和安排教学内容。学生对于感兴趣的教学内容往往会表现出更强的积极性和主动学习性,学习效果也会有所提高。结束校园学习后的学生都会走向社会,他们对于未来的就业环境和企业的人才需求表现出更强的兴趣,因此,老师在教学过程中可以适当插入这部分的内容。
2.2教学内容要结合整体与具体两个方面
教材的编排几乎都是从概念、规则、举例这样的形式,但是知识的分散导致每一个章节的内容都联系不上,学生感受不到整体的编程效果。所以,在教学当中,应该注重整体到具体的方式,让学生能够先了解整个C++编程过程,然后再在每一个程序中融入教学内容,把教学具体到每一个知识点中,巩固学生的知识能力,学生在学习完所有知识后就已经完成整个设计。这种教学思路对程序类型的课程学习有极大作用。教学首先必须具备清晰的规划,才不会显得杂乱无章。教师应当确定一个大致的教学方向,然后再对教学内容展开详细的安排,在规划教学内容时,必须充分考虑不同学生对于教学任务的完成程度,从而对教学内容的难度进行适当的调整,尽可能地让更多的学生掌握教学内容。
2.3教学方法注重同中求异、异中求同
教学当中注重同中求异,异种求同的话,能够让学生抓住事物的本质,对事物的理解加深,有利于思维拓展。为了能够让学生的学习更加深入,可以用对比学习的方式,这样的教学效果会更加好。比如说,把c++语言与C语言进行对比教学,这样学生不仅能够学习到新内容,还能够巩固旧知识,得到双收益效果。其实两种语言在设计思路上有较大差异,一种是面对程序语言,把数据与数据捆绑起来,另一种是面对整个过程的语言设计,用分块的模式教学。教学内容的不同并不是意味着教学方法也截然不同,把相似的内容集中起来教学,有利于学生更好地把握知识,采用不同的方法对相同的内容进行教学,有助于老师找到教学中的平衡点,发现更合适的教学方法。
2.4校园学习与企业联合,为就业作准备
很多计算机相关专业的学生为了能够快速就业,在校园里就会选择去外面机构培训。当然培训并不意味就是能提高就业率,主要还是看学生的态度以及掌握情况。如果在高校的C++语言学习中,可以用校园与企业合作的方式来教学,在教学当中可以加入机构培训的方式;在每一次学完知识后就加入实践活动,对于今后的就业帮助极大。同时,提高学生的学习能力以及适应能力方面也有很大帮助。学校更加注重的是理论知识的传授,而企业更加注重的是实际的操作,企业提出人才要求,学校能够更加有针对性地为学生制定学习任务,从而让学生更好地掌握相关的专业技能,让自己离开校园后尽快适应到社会的工作中。
3结语
本文提出了《C++语言程序设计》课程的教学改革思路,通过教学方法、模式的改变,来激发学生的学习兴趣与能力培养,用校企联合的方式来为今后就业奠定基础,累积学生经验的同时还能提前模拟就业。有教学实验证明,这些教学改革方式是能够在一定程度上提高教学效果,并且对编程类型的课程来说都有极大的借鉴作用。传统的教学方式显然已经不能满足人们日益增长的需求,社会环境是不断进步的,竞争是越来越激烈的,为了使学生具备更强的社会竞争力,学校必须转变教学方法,一方面要让学生掌握基础的理论知识,另一方面需要注重学生的操作能力培养。总体来说,就是要理论知识与实践操作相互结合,培养全能型的学生,对他们的知识掌握以及今后的就业都有极大帮助。
参考文献:
[1]杨庚.面向对象程序设计与C++语言[M].北京:人民邮电出版社,2012.
[2]杨杰,陈雪兆.《C++程序设计》教学中存在的问题及改进建议[J].湖南科技学院学报,2013,11(26):190191.
程序的性能与编程语言 篇10
1 C语言教学中存在的问题
1.1传统讲授法忽视了学生的主体性
目前, 各高校C语言程序设计课程的教学仍以传统的讲授法为主, 大部分学生是在被动地接受知识的灌输, 尤其是在课程的入门阶段, 大量的语法知识的讲授很容易让学生产生厌烦情绪, 进而丧失了学习的兴趣。教学过程是需要教师与学生共同参与的一个过程, 如果教师只专注于自己“教”的方面, 而不考虑作为学习主体的学生的感受, 只把学生当作是自己的听众, 是很难取得良好的教学效果的。
1.2语法知识难讲难理解
C语言以其丰富的数据类型和灵活的语法结构, 当之无愧地成为一种功能强大的程序设计语言。然而对初学者来讲, 往往看到的是它繁多的语法内容和复杂的语法结构, 无法体会到它强大的功能和程序设计的魅力。语法知识成了C语言程序设计教学中教师难讲、学生难理解的一大障碍, 没有科学合理的教学方法来攻破这一障碍, 很难达到理想的教学效果。
1.3学生学习水平的多层次性
学生的学习水平参差不齐, 也是C语言程序设计教学过程中教师要妥善处理的一个问题。由于学生学习新知识的能力不同, 有的学生逻辑思维能力较强, 不满足于教师在课上传授的知识, 希望学习一些有深度的内容;而对于学习能力相对较弱的同学, 如果教师讲解的内容较多、较深, 则会“消化不良”。针对这种情况, 大多数教师一般采取折中的方法, 以中等水平学生的学习能力作为教学的标准, 但这种方法不利于激发前两种学生的学习积极性。
1.4实践课教学效果不理想
C语言程序设计是一门实践性很强的课程, 越来越多的学校将这门课的理论学时与实践学时设定为1:1, 突出了上机实践的重要性。但是目前实践课的教学效果并不理想, 原因是教师没能对实践课进行系统的教学设计, 往往只是让学生做书上的练习题或例题。由于没有具体的学习任务分配, 学生没有驱动力, 学习的积极性不高, 不免就会出现浏览网页、玩游戏等现象。
2教学方法的探索与实践
2.1以学生为主体的启发式教学
程序设计类课程的教学, 重在培养学生的创新意识和分析、解决问题的能力。学生是教学活动中的主体、是学习的主人, 教师的任务是以主导者的身份让学生真正的参与到教学活动中来。传统教学模式下教师往往处于“主宰”地位, 学生的学习则缺乏主动性, 而在启发式教学模式下教师须从学生的实际出发, 以启发学生思维为核心, 灵活采用多种教学方法, 如类比法、课堂讨论法等, 引导学生分析问题和解答问题, 从而提高学生的课堂参与度。当学生真正的融入到教学活动中以后, 随着分析和解题能力的不断提高, 学生会逐渐建立起学习的信心, 体会到学习的乐趣, 学习的积极性和主动性也会明显提高。因此, 在C语言程序设计教学中教师应以启发式教学为导向, 以学生为本, 才能不断地提高教学质量。
2.2三步关联记忆教学法
对于如何讲解C语言语法的问题, 我院根据学生的学习特点, 提出采用“快速讲解—实例分析—应用巩固”三步关联记忆教学法。由于C语言程序设计课程一般开设在大学一年级, 学生没有程序设计的基础, 同时又对将要学习的知识感到新奇, 但随着一连几章的大量的概念、术语、语法知识的学习, 学生就会觉得C语言程序设计学起来难度大且枯燥, 进而失去了学习的兴趣。所以在介绍语法及基础知识的部分, 需要采用快速讲解的方法, 让学生对C程序的基本组成、简单的变量定义、输入输出等语法有一个初步的印象即可, 然后就进入到结构化程序设计的学习阶段。在程序设计学习阶段, 每次课首先由教师提出问题, 如“百钱买百鸡”、“猴子吃桃”等有趣味性的问题。问题的选取要以授课内容为核心, 最好能贴近实际生活, 便于激发学生的兴趣。其次由学生思考或一起讨论如何来解决这个问题, 教师要注意启发学生从多角度思考, 开拓思路找到多种不同的解题方法并画出流程图。最后教师对解题涉及的语法做讲解, 学生应用刚学到的语法来编程解决这个问题。经过以上第二步实例分析后, 学生已经基本掌握了相关语法的应用, 但仍需要进一步的应用巩固练习。此时教师应给学生留一些独立完成的题目, 强化所学的内容。三步关联记忆教学法的实施, 有利于消除学生对语法学习的畏难情绪, 同时更注重的是对学生分析、解决问题的能力和编程能力的培养。
2.3小范围分层教学法
针对学生水平参差不齐的状况, 教师可以在教学中尝试采用小范围分层教学法。这种方法是指在统一的教学目标下, 不同层次水平的学生可以分阶段达标, 为了便于教师能够充分掌握每个学生的学习状况, 分层法适合在较小的范围实施 (3 0人左右) , 因此称为小范围分层教学法。分层有可能导致学生的误解, 甚至有些学生会认为是歧视, 因此教师在采用分层教学法时要注意使用隐性策略。例如教师在讲授循环结构程序设计时, 讲完while、do…while和for这三种循环语句后, 给学生布置一个有可选题目的作业。作业内提供许多不同难度的编程题目以供不同层次的学生选择, 比如简单一点的有求1到20的累加和、循环输出n个星号, 稍难一些的题目有输出九九乘法表、求1到n的阶乘的累加和, 较难的题目像“猜数游戏”和“水仙花数”等。教师规定学生必须完成的数量, 同时允许一些同学先完成一部分, 但在后续内容学习阶段必须将这个作业补上。实施小范围分层教学法后, 基础差的学生不会因为学习负担过重而产生放弃的想法, 在学习新知识的时候又做到复习巩固旧知识, 最终达到统一的教学目标。对于比较优秀的学生要做到在统一目标下激励其向更高目标迈进。
2.4项目教学法为主线的实践课教学
实践课是培养学生编程能力的有效途径, 要想上好实践课, 教师需要进行系统的实践课教学设计。我院采用以项目教学法为主线, 以任务驱动、任务分解、错例分析等教学方法为实施细则的实践课教学方法。项目教学法为主线是指学生的全部实践课是由一个项目 (如学生成绩管理系统) 贯穿起来的, 而任务驱动是指在实践课中将学生分组, 然后以组为单分配要完成的任务 (如学生成绩的录入、查询、修改等) 。组的划分以分层为基础, 组内学生水平有差异, 但组间并无差异。任务分解是在组内将任务细化, 具体落实到每个学生身上, 这种方法能够培养学生的责任意识和团队合作的精神。每次实践课结束前教师要对小组任务验收, 并对学生在编程过程中存在的问题及产生的错误以错例的方式给出, 让学生明确编程中有哪些易犯的错误, 起到强调的作用, 避免下次再犯同样的错误。教师还可以应用评比、奖励等措施激发学生动手编程的积极性, 真正做到全面提高学生的编程能力。
3结束语
上述方法在实际教学应用中取得了较好的教学效果, 但是对于C语言程序设计教学方法的探索还在继续。教师在教学过程中要与时俱进, 积极探索, 教学得法, 才能不断地提高教学质量。
摘要:本文从分析当前C语言程序设计课程教学中存在的问题入手, 提出采用三步关联记忆法、小范围分层法和项目教学法等一系列教学方法来有针对性的解决问题。通过这些教学方法的实践, 达到了优化课程教学效果的目的。
关键词:C语言程序设计,教学方法,教学效果
参考文献
[1]谭浩强.C程序设计[M].北京:清华大学出版社.2002.
[2]郝惠馨, 李秀坤, 辛明影“.C语言程序设计”课程教学实践与创新[J].计算机教育.2009, (15) :75-77.
相关文章:
C语言C++程序员编程必备01-23
浅谈如何学好计算机编程程序语言——VisualBasic程序编程的学习01-23
做程序员学哪个编程语言发展前景比较好?01-23
时尚粤曲汇演主持稿礼仪主持01-23
数控冲床编程操作程序 AMADA01-23
宏程序编程01-23
地质矿产施工中勘查与找矿技术的应用分析01-23
2025年考务会议主持词(4篇)01-23
地质勘查及找矿工作01-23