前言:中文期刊网精心挑选了程序设计风格范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
程序设计风格范文1
1、C++:一种面向对象的计算机程序设计语言,支持多重编程范式的通用程序设计语言,拥有过程化程序设计、数据抽象、面向对象程序设计、泛型程序等设计风格。
2、Java:一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
3、R语言:它是用于统计分析、 绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计制图的优秀工具。
4、易语言:一门以中文作为程序代码的编程语言,采用全汉
(来源:文章屋网 )
程序设计风格范文2
关键词:程序设计 教学 算法
程序设计是我国高校各专业学生必修的一门核心课程,该课程的教学目的是使学生掌握程序设计的基本方法和理论,应用某一程序设计语言编写具体的程序。程序设计的教学质量将影响到学生的程序设计能力,影响到学生创新思维的培养。
一、程序设计课程教学现状
“程序设计”课程长期沿袭传统教学模式,即以一种高级语言的语句体系为脉络展开教学,详细地讲解其语句、语法甚至一些细节内容,学生每学习一个语句需要做一些与该语句有关的习题。课程枯燥无味,学生学习积极性不高,很少动手实践。课程学完后,学生除了学到一些呆板的语句外,收获甚微。
1.理论基础薄弱
有些教师过分重视程序设计语言的教学,而对于程序设计中所涉及的程序设计理论、程序设计的方法和算法的设计思想等理论知识的讲解不够深入、透彻。
2.学生缺乏创新能力
学生可以解决那些和已经学过的知识有直接或有密切联系的问题,而面对一个需要用已经学过的知识进行综合求解的程序设计问题时,就不知从何下手,对所学知识做不到举一反三,缺乏程序设计的创新能力。
3.动手能力不强
学生实际动手能力差,具体表现在两个方面。其一,学生上机调试程序的能力差,难以找到错误产生的原因;其二,实际编写程序的能力不强,编写的程序功能不够完善,风格不一,程序健壮性差。
针对以上出现的问题,我们认为应该在教学过程中对学生各方面的编程素养进行引导和培养。
二、编程方法引导
程序设计的观念虽然发生过很多变化,但程序的基本结构仍然是顺序、选择和循环三种。因此,在学生初学程序设计时就应该注意渗透结构化程序设计的思想,以便使学生养成良好的程序设计习惯。
我们这里谈的不是纯粹的程序设计方法,如结构化的、面向对象的等,而是在教学中渗透程序设计的技巧。这里举一个结构化程序设计的例子。
例:求100以内的素数。
经过分析可以发现,除了“2”以外,偶数不可能为素数,所以外循环有50次是多余的,同理在内循环中,也不必用偶数测试。再进行分析又发现,一个合数最小的因子不会大于它的平方根,所以内循环中的次数被再次减少。最后程序变为:
通过不断改进程序,可以使程序效率得到不断提高,当然这些提高是在数据规模不断增长时才能体现出来。尽管现在很多人认为硬件的速度发展很快,我们应该把速度提高的任务交给硬件去实现,这样的想法未免过于武断。姑且不论类似上述的技巧对于程序执行效率的提高有多少益处,单从基于问题的学习方法这个角度的出发,程序的衍生对于提高程序员的编程水平也是一个很好的训练方法,所以这样的编程技巧是不可多得的,我们在教学过程中就是要进行这方面的引导。
三、编程风格和规则引导
前面提到我们在进行程序设计教学时,传统教学模式比较少注意编程风格和规则的引导,所以很多时候,学生编制出来的程序都是一路下来齐刷刷,缺乏良好风格,死套语法,缺乏考虑可能的不安全因素。
由于学习程序设计是一个循序渐进的过程,所以在教学中如果潜移默化地引导学生从程序设计入门开始,就注意程序设计的一般风格和应该遵守的规则,就能让学生更快更好地编制出高质量的程序来,并且具备良好的编程习惯。
举例说明。我们知道,free和delete都可以把指针所指的内存给释放掉,比如:
这段程序运行一定没问题,但如果在其后加上这样一段代码:
我们会发现出错了!这是因为,p所指内存被释放,但是p存放的地址值仍然不变,即p成了“野指针”。尽管尝试用if(p!=NULL)来判断p的可用性,我们却发现出错处理并没有起作用。所以,良好的习惯是在free和delete后,都要对指针作置空处理,即p=NULL。有人会说如果要这种情况出现在程序结束时,一切指针也会消亡,动态内存也会作系统回收,所以P置空是多余的。但是如果有人将这段程序取出来用到其他地方会怎样呢?结果不是我们想见到的。
四、算法设计概念的引入
程序=算法+数据结构。这就提出我们在进行程序设计教学过程中,不仅要重视语法的讲授,也要重视算法的讲授,甚至是要将算法提到更为重要的地位。程序设计是要解决问题,语言只不过是为解决问题而使用的工具,真正解决问题的是算法,难怪专家说“算法是魂,程序是衣”。
如在C语言程序设计课程教学中,当完成分支结构程序、循环控制和数组,进入内容较多的算法设计教学后,我们将教学内容分为以下五个方面。
(1)一般数据组织算法:查找、排序、字符串处理、求素数、筛选、迭代、穷举等;
(2)函数调用,函数嵌套归、递推及贪心算法等;
(3)指针算法,动态内存分配,链表等;
(4)用矩形法、梯形法计算定积分、模拟算法的随机抽样、蒙特卡罗法等算法;
(5)文件数据处理。
在课堂上增加算法设计的分析和讨论,强调算法设计的优化和程序的优化,是提高学生分析和解决实际问题能力的有效方法。
五、开展研究性学习
在程序设计过程中,开展研究性学习,是为了提高学生分析和解决实际问题的能力,主要是通过对解决问题的算法进行研究而展开的。由于课时所限,并且学生没有足够的实践经验,所以对算法问题的研究也是初级的,主要是讨论典型问题的典型算法及其应用。
1.通过研究性学习,可以重构知识体系,加深对算法的理解。
研究性学习是学生在教师的指导下,选定主题,然后搜集相关材料,对材料进行归纳、加工处理、分析、总结得到相应结论的学习活动。在教学中,可以根据教学内容,经过反复研究,确定研究主题,并根据学生的自愿报名成立研究小组,如搜索算法研究小组等。然后各小组根据自己研究的算法,重新整理相应的知识,对知识进行归纳、总结。通过对各种算法知识进行整理、分类、小结,加深学生对这些算法的理解。
2.通过研究性学习,同学之间取长补短,共同提高。
每个学生都有所长,也有所短,研究性学习一个重要特点就是:分工合作,共同讨论,共同提高。我们可以根椐学生的特点、特长,对他们进行分工,每位学生研究一种算法其中的一个问题,然后整个小组一起讨论,每位学生介绍自己的研究情况、研究成果,然后其他同学进行补充,发表自己的见解,这样每个学生都使自己的研究内容得到补充,同时也学习到了其他同学研究方面的知识,可以取长补短,共同提高。
3.通过研究性学习,总结算法的应用规律,提高程序设计能力。
在进行研究性学习时,除要求学生归纳、整理专题算法知识外,还要总结出算法的应用规律、应用算法解题的步骤和算法的框架。学生通过自己对算法应用规律的总结,对算法的应用得到升华,进一步提高算法的应用能力和程序设计能力。
4.通过研究性学习,提高分析问题的能力、算法表达能力和归纳、综合能力。
对算法的专题研究,不仅要对算法理论进行总结,算法应用的研究也是很重要的一方面,通过算法的解题应用,既提高了学生分析问题的能力,也加深了学生对算法的理解,提高了学生的算法应用能力。另外,我们在算法研究过程中,要求学生透彻理解算法内容,用算法语言准确描述算法,通过这种途径进一步加深学生对算法的理解,同时也提高了学生的算法表达能力和归纳、总结的能力。
结论
我们认为在程序设计教学中,要改革旧的教学体系,需要用新的理念、新的内容、新的方法组织教学。首先要用先进的程序设计理论指导教学,并加强编程算法、逻辑思维和编程方法的引导。其次,重视和鼓励学生对具体问题进行分析和研究,勤于动手和上机训练,养成良好的编程习惯。此外,对不同层次的学生可以进行分阶段教学,前一阶段讲授基本的程序设计方法,除了讲授程序设计语言的基本语法,还对学生进行编程方法及程序设计风格的引导;后一阶段主要讲授程序设计的较高级的语法和功能,提高学生对算法的认知和重视程序,并且在学生中开展研究性学习,培养学生实际动手能力。
参考文献:
[1]李云清等.程序设计创新能力的教学研究[A].全国计算机新科技与计算机继续教育论文集2003.
[2]李海伦等.“程序设计”课程教学改革的研究与实践[J].计算机教育, 2005.7.
[3]丰振.计算机程序设计教学方法研究[J]. 教学研究,2004.9.
[4]等.浅谈程序设计语言课程教学方法[J].吉林大学学报,2005.8第23卷.
程序设计风格范文3
1.顺序表的建立、插入、删除。
2.带头结点的单链表的建立(用尾插法)、插入、删除。
二、提交到个人10m硬盘空间的内容及截止时间
1.分别建立二个文件夹,取名为顺序表和单链表。
2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.c文件、.obj文件和.exe文件)。
3. 截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。
三、实验报告要求及上交时间(用a4纸打印)
1.格式:
《计算机软件技术基础》上机实验报告
用户名se××××学号姓名 学院
① 实验名称:
② 实验目的:
③ 算法描述(可用文字描述,也可用流程图):
④ 源代码:(.c的文件)
⑤ 用户屏幕(即程序运行时出现在机器上的画面):
2.对c文件的要求:
程序应具有以下特点:a 可读性:有注释。
b 交互性:有输入提示。
c 结构化程序设计风格:分层缩进、隔行书写。
3. 上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。 请注意:过时不候哟!
四、实验报告内容
0.顺序表的插入。
1. 顺序表的删除。
2.带头结点的单链表的插入。
3. 带头结点的单链表的删除。
注意:1. 每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。
例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。
程序设计风格范文4
初中信息技术选修部分主要介绍VB程序设计,学生刚接触到它会感到陌生,并带有一种神秘感,认为程序设计一定很难,只有高手才能学会编写程序。有了这样的想法,就为教师的教学带来一定的困难。那么,程序设计这部分内容怎样教,才能让学生顺利地掌握这些内容,为升入高一级学校继续学习程序设计打下坚实的基础呢?经过几年的程序设计教学,要让学生掌握以下几个方面,就会很轻松地完成教学目标。
一、什么是程序和程序设计
首先要让学生理解什么是程序。程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。要让学生理解它,必须从学生熟悉的实例入手。教材中举了一个“猎人过河”的趣味问题,猎人怎样顺利一把一只狼、一头羊和一些白菜带过河,只要按照如下的指令做,就能顺利过河:
第1条:把羊带到对岸;
第2条:返回;
第3条:把狼带到对岸;
第4条:返回时把羊带回原岸;
第5条:把菜带到对岸;
第6条:返回;
第7条:把羊带到对岸。
通过执行这些有序的指令完成了“猎人过河”这一具体的工作,这些指令的集合就是程序。这个程序是用人类语言描述的,计算机不能识别,如果用计算机能识别的语言来描述这些指令,这就是计算机程序。
其次要知道什么是程序设计。程序设计是给出解决特定问题程序的过程,可以用一个公式来说明:程序设计=数据结构+算法。
按照百度百科的定义:数据结构求助编辑百科名片数据结构是计算机存储、组织数据的方式;数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
如果把程序设计当成盖房子,那么数据结构就像砖、瓦,而算法就是设计图纸。你若想盖房子首先必须有原料(数据结构),但是这些原料不能自动地盖起了你想要的房子;你必须按照设计图纸(算法)上的说明一砖一瓦地去砌。这样你才能拥有你想要的房子。程序设计也一样,你使用的编译工具中有各种功能语句或基本结构,它们不会自动排列成你要的程序代码。你得按照程序规定的功能去编写,而程序的功能是实现算法的具体体现。所以通俗地说:你必须按照特定的规则,把特定的功能语句和基本结构按照特定的顺序排列起来,形成一个有特定功能的程序,这就是:程序设计=数据结构+算法。
二、学好数据结构是学好程序设计的第一步,也是关键的一步。
三、学好算法,这个是程序设计的重点,也是难点。
四、要让学生养成一个良好的程序设计风格和习惯。
首先,要让学生养成自上向下逐步求精的程序设计思想和方法。怎样才是自上向下逐步求精的程序设计呢。举个例子,有这样一个问题:求1+2+3+…+N。
现在,当你看到这个问题时,你不要立即下手去编写,而是要思考一下怎样才能求解(算法),然后把它写下来以免忘记。于是就写了一级算法:
1.输入N;
2.计算S=1+2+3+…+N;
3.输出S。
当你写完之后,你若觉得第2步不太清晰,还不能写出代码,那就继续求精,二级求精:
2-1.S初始为0;i初始为1;
2-2.第i次循环将i累加到S;
2-3.i每循环一次增加1,直到i等于N后结束。
这样问题就得到了解决,接着就可以轻松的编代码了。再仔细看看上面的步骤:先写出一级算法,如果觉得由此还是得不到源代码,或者是其中有一步还有很多步骤要写,那么就继续求精,直到你认为可以很清晰的写出代码为止。但是求精可以因人而异,像上面的题目,若是一个编过很多程序的人来说,可能不用什么求精,代码就可以直接写出来了;但要是一个初学者来说就可能要写到二级求精。
这样说来,有人可能认为这个求精是不是太慢,抑或根本就是在浪费时间。这可是众多的编程先驱推荐的基本方法。你知道编程中,主要时间用在了哪里吗?不是编写代码,而是用在了求解算法和调试程序上了!而算法的求精就是缩短这些时间的最好的方法。它可以使你不用再很费力的苦思冥想到底该怎样构造算法,使这个过程更条理、更简明;它也很可能使你不用再为了一个小小BUG而调试半天,因为,它给出的算法已经趋于完美。其实,列一个小提纲(算法)就可以解决很多的问题,生活中不也是如此吗?所以,求精算法这个最重要的习惯一定要养成的。
其次,要让学生养成一个良好的习惯就是要做到程序源代码的清晰度与可读性一定要高。
第三,要少用goto语句跳来跳去,虽然增加了编写代码的灵活性,可是却严重破坏了程序的结构化,容易造成程序运行和大脑思维的逻辑混乱,很可能导致一些很不容易发现的错误。而且所有的goto都可以用其他的语句来代替。
程序设计风格范文5
关键词:C语言;教学方法;赛马程序
中图分类号:TP312.1-4 文献标识码:A文章编号:1007-9599 (2011)05-0000-01
Students C Language Programming Students Teaching Method Reform
Li Hongyan
(Shangqiu College,Shangqiu476000,China)
Abstract:Programming language life on application,learning to learn, learn to think,learn to survive.Learning to learn is to adhere to the theoretical teaching and practical teaching closely.In this paper,the relevant C language programming problems and solutions,for students of different professions to learn C language programming teaching methods.
Keywords:C-language;Teaching method;Horse program
一、C语言程序设计教学中以前存在的问题
集中式的讲述(运算符、数据类型);语句的语法讲的多,注意事项一堆;忽略程序的“设计”过程(思维过程);举例死板、单一、分离;相关知识联系不紧密;过于依赖教材。结果:学生学了不会编程,不会应用;考完试就忘了;学习兴趣逐渐淡化;学生不明白,却又问不出问题。
二、面向不同专业的C语言程序设计教学方法
(一)面向计算机专业的教学方法
1.基础知识与实际应用知识相结合的教学方法。在强调基础知识的同时,注意在开发实际应用程序时具有重要作用的知识。如将程序范型、程序测试、代码验证与程序优化、函数栈框架与递归、库与接口、数据存储、数据抽象、算法与程序抽象、面向对象等内容引入课程。
2.关注两部分学生的教学方法。(1)面向大部分学生,对教材上的实例进行详细讲解,使其能够掌握基本的语法、理解教材上的实例,以解决一般类型的问题。另外,从教材习题或参考书中选取有一定难度和代表性的实例进行概要性的讲解,有助于学生学会利用基础知识。(2)面向一些比较突出的学生,给出一些ACM Online Judge上的相关问题,并介绍解题思路,使其能解决更复杂的问题,带动其他同学,增加编程兴趣。
3.实际编程演示互动的教授方法。在课堂上实际编程演示,并运行结果。一方面要体现良好的程序设计风格和编程习惯,同时也反映了教师在编程时的思维过程,从注重结果转向注重过程和方法。
大量地实践证明,学生对编程演示的过程兴致很高,为了进一步活跃课堂气氛,在编程过程中会有意设置Bug,当程序的运行结果与期望的结果不一致或者出现异常情况的时候,学生的注意力会更集中,此时可让学生分析问题的所在。此外,也可以通过对学生程序样例展示,鼓励学生的学习兴趣。
三、面向软件工程专业的教学方法
重实验的教学方法,对于软件工程的学生,比较特殊,我们可以从一些具体实例来作为出发点,具有代表性的案例如下:
(一)赛马程序案例。特点:赛马比赛管理系统贯穿整个实验。分步骤进行,整体是一个demo。
实验1,创建“马术比赛”管理项目的开始部分,让程序能够处理命令行和菜单。
目的:使学生理解语言的基本结构,会使用scanf()、printf()、getchar()、putchar()等函数时行输入输出操作。若能写出简单的函数则更好。
实验2,写一个程序,在马术超越障碍赛中,协助测量时间和记录结果;踢倒障碍物和修复障碍物。目的:进一步理解输入,输出。字符流很有用,如何格式化输出,如何使用时间的头n,其中包括,在单独的n中使用和编制“自己的”代码(定时器)。如果你做到以下两点,将会很好:
能创建一个带参数函数;能把你的代码写在不同的文件中。请参考学习给出完整的程序示例。
实验3,出场顺序设计
定义好参赛者的出场顺序,要添加并存储参赛者和马的数据;确保你的程序是安全的,不会在意外的输入中程序崩溃,能处理错误;打印出整个参赛者列表。
目的:理解结构体,字符串,数组以及迭代器的用法;使用函数以及参数传递来结构化你的程序;最好使用不同的文件来存储代码,你可以使用类和成员函数。
实验4,出场顺序管理
一个骑手能够在不同的马上进行比赛,骑手在两轮比赛后,要有足够的时间来换马;交换两个装备马车出场顺序;添加一个函数,使用户能够非常方便地随机化参赛者的出场顺序;移除、添加、搜索装备马车。
实验目的:学会自学和查找相关资料的能力;学会使用随机函数和迭代器。
四、非计算机专业的教学方法
教学内容:数据类型,运算符与表达式 ,简单的C程序设计,程序的控制结构,函数,数组,指针,结构体和共用体,文件操作。
案例―任务驱动的教学方法“程序设计语言”强调的是“设计”,应当从“设计”入手,以程序设计思想与方法为核心,注重程序的编写过程,选择一个恰当的案例非常重要。案例的选择应当由浅入深,要做到精、准、易。精就是突出重点,目的明确;准就是能够反映欲教授内容的本质;易是简单易懂,不能把学生吓着。
五、学生的学习方法
(一)必备知识。英语基础;数学知识(算法);认识事物的抽象能力;应用的能力。(二)学生应当做的(听、读、写、思)。克服恐惧心理,敢于写程序,尽快写程序;从阅读程序到写简单的程序开始;按自己思维重复编写书上的程序;编写复杂的程序;有几种编写程序的方法。(三)应当培养的品性。诚实规范化的品性,在调试无穷多的Bug时,就体会了“诚实”的意义。简单实用将复杂的问题转化为计算机能处理的一些简单的程序。克服困难,坚持遇到困难,调试不下去,也要坚持,寻求解决问题途径,协作精神通过大的程序体会协作的必要。
参考文献:
程序设计风格范文6
论文摘要:该文分析了程序设计在计算机学科中的地位以及程序设计有关的知识和能力构成,结合自己多年的计算机专业教学实践,探讨了在计算机教学中培养学生程序设计能力的有效策略。
计算机科学是一种创造性思维活动,其教育必须面向设计。计算机的本质是“程序的机器”, 只有懂得程序设计,才能懂得计算机,真正了解计算机是怎样工作的。培养学生程序设计能力对计算机专业的学生来说不仅是培养职业技能的需要,也是培养大学生创造性思维的重要途径。学习程序设计语言可以培养学生运用算法来解决实际问题的能力,这种解决问题的方式是计算机所独有的,也只有通过对计算机的程序设计语言和程序设计方法的学习才有可能获得这种解决问题的能力。
1 程序设计在计算机学科中的地位
程序设计是利用某种计算机语言,编制完成某一特定功能的程序的过程,是涉及描述、开发及有效实现求解的一系列活动,是利用计算机实现自动化的重要手段。
计算机学科主要是系统地研究信息描述和变换的算法过程,包括它们的理论、分析、设计、效率、实现和应用。可以这样说,一切算法的基本问题是“什么能被自动化”以及“如何有效地自动化”。这个自动化的过程就是程序设计的过程。
程序设计语言是人们学习计算机的最基本的工具,也是人们学习计算机基础与应用知识的基本课程。通过学习,使学生掌握程序设计的基本概念、基本知识和基本方法,养成良好的程序设计风格,得到一定的程序设计训练,具备初步编写程序解决实际问题的能力。程序设计也正是有形表达抽象思维的方法,在程序设计过程中贯穿阅读判断、分析思考、工具利用、抽象表达、综合创造等多项技能,是理论、抽象、设计和应用的综合能力培养过程。因此程序设计是计算机学科教学的重要内容之一,对计算机专业人才素质的培养至关重要。
2 程序设计的知识和能力构成
根据循序渐进的原则,与程序设计有关的教学内容主要有:计算机基础知识和操作、程序设计语言和基本的程序设计方法、最基本的数据结构及其基本算法、常用的算法设计方法等。在学习这些知识的同时,必须与能力的训练有机地结合起来。程序设计能力表现在以下几个方面:
1)自然语言能力。要有较强的运用自然语言描述现实事物的能力,只有运用背景知识正确且清晰地陈述问题及其求解目标,才能确定程序的功能。
2)数学描述能力。程序设计是为了告诉计算机做什么和如何做。这就需要利用定义、定理、公式、函数等数学工具把问题形式化,建立数学模型。
3)数据结构设计能力。选择合理的存储结构,在计算机中表示数学模型,是程序设计的一个重要方面。
4)算法构造能力。好的程序由精心构造的、好的算法构成。给出问题求解的离散化计算过程,是程序设计中最具有创造性的工作。
5)程序编码能力。用某种程序设计语言表达算法,尽管这种能力往往被认为技术含量不高,但也需要对程序设计语言的熟练掌握和对算法设计的深刻理解。
6)程序调试能力。程序调试能力是一种专业综合技能,需要对程序设计语言和程序结构有深刻的理解,需要熟练的操作技能,需要会设置测试数据和设置程序断点,这些都有待于学生在实践中逐步积累经验。
可以说,程序设计能力的高低很大程度上反映在驾驭自然语言、数学语言和计算机语言的能力上。这3种语言是人们毕生有用的3种通用智能工具。前两者是后者的基础,良好的英语和数学训练是学好程序设计语言和培养程序设计能力的重要基础。
3 培养程序设计能力的有效策略
知识的价值在于运用,知识的运用需要技能,而技能的形成则依赖训练。程序设计知识的学习和能力的培养需要各方面的知识基础,它是一个系统的教育训练过程,需要多个教学环节的紧密配合才能完成。
1)明确教学要求
程序设计语言课程一般是为应用性教学而设置的,因此,课程的教学不仅仅是传授知识,而且应该强调应用性,应该以培养学生的能力为主。程序设计语言的内容比较丰富,在教学中如果面面俱到,必会耗费较多课时,而且教学效果不一定好。因为过分强调程序设计语言的系统性和完整性就可能会转移学生对课程重点的注意力,关键在于教会学生如何正确运用程序设计语言编写程序,训练实用编程能力。所以必须突出重点,突出应用性,侧重教思想,即把程序设计语言的基本思想、基本环境、基本概念、基本知识和基本方法教给学生,使他们在学习中对硬件、软件环境、程序设计的基本思想和基本技巧,所学程序设计语言的基本概念和使用方法以及编程技术有一个比较全面的感性认识,从而提高解决实际问题的能力。
2)打好数学基础。严格的数学训练是程序设计能力的基础,学习和加强排列与组合、数列、数学归纳法等离散系统的数学方法对提高程序设计能力尤为重要。问题描述和建立数学模型是程序设计的前奏,数学归纳法、穷举法、构造证明法等证明技巧是算法设计方法的基础。
3)强化英语水平。程序设计语言的符号系统以英语为基础,程序设计文档语言首选英语。英文资料是计算机最新和最大的技术资料来源,英语水平是我国软件产业发展和参与国际竞争的制约因素。
4)重视阅读训练。从某种意义上来说,程序设计是用程序设计语言和方法进行的一种写作。可以想象,如果学生没有阅读过一份完整、规范、有实用价值的标准程序,即使记住了有关语言的语法规则,也不可能写出像样的程序。所以,大量阅读、分析、修改和扩充典型的算法和程序,是提高程序写作能力的有效途径。而这个重要学习环节往往未得到应有的重视,缺乏配套的程序设计阅读分析教材。教师应经常指导学生阅读程序,理解程序,提高学生分析程序的能力。
5)注重算法设计,突出数据结构内容。瑞士科学家、PASCAL语言和MODULA-2语言的发明者沃思(Wirth)教授提出了著名的公式:程序=算法+数据结构。这个公式表达了程序的实质,说明对于一个程序设计问题来讲,算法与程序设计是紧密联系的,绝不能脱离数据结构去讲解算法设计。程序设计语言的教学应该结合数据结构的基本内容。对于同一个计算问题,选用不同的数据结构,其算法大不一样,算法的优劣程度也不同。因此,要教会学生对不同的问题选择合适的数据结构。在整个程序设计课程中,必须强调算法设计方法,通过不断的算法设计训练,使学生切实掌握迭代、枚举、递归、分类等常用算法设计方法。
6)更新教学内容。计算机学科是一门综合性学科,而且程序设计语言的应用领域在不断扩大和发展。因此,在教学中应结合专业的特点和教学的要求,将软件工程的思想方法贯穿于整个教学过程,介绍程序设计语言的最新发展和应用,重视面向对象程序设计方法的引入,搞好教材内容的更新。如图形程序设计、下拉式或弹出式菜单、计算机病毒防治等等。这样不仅能把最新的知识和最新发展动态充实到教学上来,大大丰富了教学内容,而且使学生加深对程序设计语言的理解和掌握,保持对信息技术和专业的兴趣,及时跟上信息技术日新月异的发展趋势,在今后工作中保持领先地位。
7)采用先进教学手段。用传统的课堂教学方法讲授动态的算法和数据结构是十分低效的,像排序、递归等抽象动态的内容讲解就常常是费力不讨好。应该根据课程特点,采用先进的现代教学方法,如直观教学方法:利用挂图、教具等讲解,以及计算机辅助教学(CAI)和计算机辅助学习(Computer Aided Learning,简称CAL)进行教学,通常开发利用与课程内容与教学特点相适应的多媒体课件进行教学。它们是讲解算法和进行程序设计训练的最佳教学平台,既能增加学习的趣味性,又可利用图形的直观性帮助抽象和动态过程的理解。
8)加强实践环节,强化创造性思维能力培养。在教学中,常常听到学生提出这样的问题:“程序设计语言有什么用?”,有的学生还反映:“程序设计语言并不难学,就是不知道如何应用?”一些学生学到了一定的科学知识,但上机动手水平低。这种现象与普遍忽视实践环节有关。为了扭转这一局面,在整个教学过程中,必须强调实践环节的重要性,充分安排上机实践时间,加强系统训练和实践能力的培养,强化创造性思维能力培养。根据课程特点,在教学中,采用案例驱动教学,进行兴趣引导;在实践中,可以精心组织一系列由易到难、由浅入深、配套衔接、结合学科学习、有一定设计技巧的程序设计作业,最后再安排一次综合性强、有一定难度的课程设计实践,对学生进行项目训练,提高学生应用能力。通过上机作业和课程设计的完成,使学生独立思考,各显才干,总结经验,培养他们的动手能力和编程能力,以及分析问题和解决问题的能力。
4 结论
总之,培养学生计算机程序设计能力的方法和途径很多,但是编程序不难,编好程序不易。作为教师,必须从培养学生编程思维的角度出发,按照以上策略认真进行编程知识的教学和技能的培养,加强实践,提高学生科学思维的能力,真正学会程序设计的真本领。
参考文献:
[1] ,王楠.浅谈程序设计语言课程教学方法[J].吉林大学学报(信息科学版),2005(S2).
[2] 徐进华.提高学生程序设计能力的几个措施[J].计算机时代,2005(11).
[3] 李凌.浅谈高级语言程序设计课堂教学方法[J].淮北职业技术学院学报,2005(04).