收藏 分销(赏)

提高学生编程能力的探讨(新版).doc

上传人:精**** 文档编号:2475104 上传时间:2024-05-30 格式:DOC 页数:38 大小:196.54KB
下载 相关 举报
提高学生编程能力的探讨(新版).doc_第1页
第1页 / 共38页
提高学生编程能力的探讨(新版).doc_第2页
第2页 / 共38页
提高学生编程能力的探讨(新版).doc_第3页
第3页 / 共38页
提高学生编程能力的探讨(新版).doc_第4页
第4页 / 共38页
提高学生编程能力的探讨(新版).doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、提高学生编程能力的探讨(新版) 作者: 日期:2 个人收集整理 勿做商业用途存档日期: 存档编号: 徐州师范大学成人教育学院毕业论文题 目: 提高学生编程能力的探讨 学 号: 0501091063 姓 名: 杜 庆 祥 联 系 电 话: 15952127768 电 子 信 箱: defl 院 系: 计算机科学与技术学院 学 习 形 式: 函 授 专业、年级、班组: 计算机科学与技术、2005、05计算机本科 指 导 教 师: 王 文 虎 徐州师范大学教务处印制31提高学生编程能力的探讨摘 要: 21世纪,我们正面临着人类文明史上的又一次大的飞跃-信息化社会。信息技术的进步,必将会影响我们的教育

2、与生活,计算机编程也就自然成为人们所要掌握的一门技术.在学习编程过程中,要激发学生学习编程的兴趣,要增强学生的求知欲,要采用合理的教学方法,让学生扎实地学好理论知识,改变课堂教学设计,激发学生自己动手编程的兴趣,要学会引导学生积极思维,发现问题,提出问题,并逐步解决问题。在学习过程中学生对语言课基础知识和基本概念的理解和掌握比较扎实,但在灵活应用高级语言编制程序的能力方面就比较薄弱.针对存在的问题,我们近年来为改变这种状况,紧紧围绕提高学生编程能力,在注重加强课堂教学环节的同时,不断充实和完善上机实践环节,主讲教师参与上机辅导,组织上机考核等方面作了一些有益的探索,收到了较好的教学效果,对学生

3、编程能力的培养和提高有一定的促进作用。关键词:编程能力; 主动学习; 探索; 教学;发现Improve the Ability of Students ProgrammingAbstract: With the arrival of the 21th century, we are facing to another great leap in the history of human civilizationthe informational zed society。 Advance of information technology will certainly affect our ed

4、ucation and life, computer programming will naturally become skill of the mastery of technology。 In the process of learning programming, it is necessary to stimulate students interest in learning programming to further students desecration of pursuit of knowledge and to adopt a reasonable teaching m

5、ethods 。 so as for students to obtain the theoretical knowledge solidly 。 Changing the teaching design of class and agitating students interest in programming all by themselves , in the terms of the points. students are galvanized to think positively , so that they could find the problem, raise the

6、problem and gradually solve the problem . During the process of learning, students understanding and mastery of the basic knowledge and the basic concept are relatively solid , but in the aspect of the flexible application of high-level language programming , they are relatively weak. For existing p

7、roblems, we focus on the ability of students programming, close attention to the class teaching , to constantly compensate and perfect the practical work on computers in order to change the situation for recent years. we have been engaged in the exploration of the instructor and the coach in and the

8、 assessment in working on computers, the effect of which is beneficial, it in a certain sense, accelerates students cultivation and improvement of programming ability。本文为互联网收集,请勿用作商业用途本文为互联网收集,请勿用作商业用途Keywords: Programming ability ;Active study ; Explore ;Teaching; Found目 录第1章 激发学生学习编程的兴趣1第2章 采用合理的教

9、学方法让学生扎实地学习好理论知识3第3章 抓好语言课教学环节,使学生能读懂并分析程序5第4章 要精通算法设计与分析,具有逻辑分析能力7第5章 以任务驱动模式进行程序设计训练11第6章 训练学生的模仿能力及联想思维13第7章 提高编程思想,优化程序结构15第8章 培养学生的综合编程能力18第9章 加强上机实践环节,理论和实践相结合20第10章 提高编程能力的措施和考核22第11章 结束语24第1章 激发学生学习编程的兴趣21世纪,我们正面临着人类文明史上的又一次大的飞跃-信息化社会.信息技术的进步,必将会影响我们的教育与生活,计算机编程也就自然成为人们所要掌握的一门技术.随着科学技术与应用的迅猛

10、发展,直接要求计算机编程能力的提高。特别是各种语言技术的突飞猛进、日臻完善,人们也越来越多地需要强有力的用计算机语言工具来描述和解决实际问题,这就需要我们要学好计算机语言,提高编程能力.目前我国计算机教育普遍存在教学方式呆板、教学内容滞后、理论与实践脱节的情况,培养出来的只是些具有一定书本知识,而没有任何实际经验,更没有学习能力和学习主动性的学生,更不用说成为满足社会需要的人才。因此,作为人才摇篮的学校应该认清目前的社会需求,及时地调整计算机教学的方式方法,培养出具有真才实学的IT人才,满足社会对人才的需要。要改变目前的教学方式方法,必须从教学观念上进行转变,即从传授知识转变为培养能力,这以所

11、说的能力包括创新能力,抽象思维能力,学习能力,应用能力等。1。1、激发兴趣,增强求知欲陶行知曾说:“治学以兴趣为主,兴趣愈多,则从事弥力,从事弥力,则成效愈著。”学生要学好编程,兴趣是很重要的一个因素,这就要求教师讲的每一节课都能吸引学生。开头讲的好,可以吸引住学生,结尾讲得好,可以为下一节课打下伏笔.在上“随机函数的应用”这节课时,我先让学生利用以前的知识来模拟编彩票程序,然后每人都写一个号码来模拟买彩票,再找一位同学当公证员来运行程序,结果谁也没有中奖,大家不甘心,要求再来一遍,于是每人又重新写了一个号,但计算机产生的那个中奖号码没有变,又来了一遍,中奖号码还没有变。此时,不用我多说,同学

12、们就已经坐不住了,他们已经感到了问题所在,急着想知道怎么解决?这样就激发学生的学习兴趣,把他们的求知欲望增强了。1.2、培养学生的创新能力在一切能力当中,创新能力是学生最为缺乏,同时也是整个高等教育、职业教育的重点和难点。所以我们应该把培养学生的创新能力放在首位。中学生创新能力的提高首当其冲的就是提高教师的创新意识,树立全新的教育观和教学观,打破传统教学方式,采用“案例教学”、“主动探索”、“协作学习等,激发学生的创新能力。在整个计算机教学过程中,要充分发挥学生的主体性和创新性。例如,在计算机编程中学生可以先抛开限制,通过竞赛的方式,让学生自主选择主题和工具,在学习过编程的基本理念之上,自行设

13、计,这样他们就会选择自己熟悉或者感兴趣的东西,去充分挖掘自己的创新意识,制作出新、异作品。同时还应该指导学生对自己选择的内容和使用的编程语言进行多方面的思考比较,开阔思路,找出解决问题的多种设想。然后在众多的设想中,经过归纳、判断和比较,最终得出个最优化的结论,选择最合适的内容和工具进行设计制作,从而培养创新能力.1.3、 形象比喻,贴近生活在讲课的过程中,尽量多举一些学生能理解的实例,这样就可以让学生明白所学的知识到底有什么用?比如,在讲求和问题时,我让学生做了类似1+2+3+100的一些题目,有的学生可能觉得没有意思,这时,就可以让学生用所学的知识来解决实际问题,比如算考试成绩总分、数字排

14、列等实际问题。例如:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?首先对程序进行分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 然后就写出如下程序源代码: main()int i,j,k;printf(n);for(i=1;i5;i+)*以下为三重循环*/for(j=1;j5;j+)for (k=1;k5;k+)if (i!=k&i!=j&j!=k) /确保i、j、k三位互不相同*/printf(”%d,d,%dn,i,j,k)第2章 采用合理的教学方法让学生扎实地学习好理论知识2.1、教材是课程建设的第一要素一本好

15、的教材能使学生在学习过程中起到事半功倍的效果。针对学生的计算机基础教育课程按教育部要求分三个层次(计算机文化基础、技术基础与应用基础)进行教学的要求,结合多年语言课教学的实践和经验,计算机专家新编了一本计算机应用基础及程序设计语言教材。教材中重点介绍了高级语言必要的基础知识,系统地介绍了结构化程序的顺序结构、选择结构、重复结构、函数与过程(子程序)及其它语言成份、语言要素和程序设计方法,特别是自顶向下逐步求精的结构化程序设计方法。对例题和习题的选取及有关程序等方面做到内容组织合理,概念叙述清晰,能反映基本概念和程序设计的要求。在叙述程序设计时,突出编写程序的知识、方法和技术。在列举程序实例时,

16、用框图或文字描述了编程的思路和程序结构。2。2、改变课堂教学设计,激发学生学习的兴趣学生开始接触计算机语言时感到新奇,随着课堂不断深入,学生易产生枯燥无味的感觉.为把学生的好奇转化为学习兴趣,我们在授课时要改变过去先给出定义和规则的讲授办法,在教学设计上采用以问题形式推出教学内容,在课前详细分析教学内容,将教学内容转化为学生感兴趣的实际问题,以问题为载体引出教学内容,吸引学生注意力,引导学生主动探讨解决问题的办法。比如在讲逻辑表达式时,突破以往教学方式,不再以理论灌输的形式讲授,而是直接提出有趣的逻辑推理问题,问题一提出就吸引了学生的注意力,学生主动参与并积极探索。教师在进行教学设计时,应把枯

17、燥无味的语法知识融入生动实例中,让学生在探索中学习,这样学生更乐于接受。2.3、合理调整教学内容,积极构建不同算法程序语言教材比较注重逻辑推理,强调理论及抽象过程,但在教学实践过程中却不适应多数学生的特点,教学往往事半功倍,效果不理想。针对学生的认知特点,我们在该课程的教学过程中,要合理调整教学内容,不是从语法规则入手,而是针对教学内容,引入不同的实例,先让学生体验生活中是如何解决这样的问题,引导学生和教师一起构建算法,并让学生构建不同的算法,比较这些算法之间的优劣,并根据分析对算法进行优化。学生在对算法的构建优化练习过程中不断总结、完善,无形之中熟悉了语法规则,同时提高了学生构建算法的能力.

18、例如,在分析排序法时,可请学生上台演示如何按高矮顺序排队,让学生去体会各种不同排序方法,给学生以直观感受,有助于学生探索如何构建算法.2。4、改进课堂教学方法,引导学生动手编程传统的教学方法一般以“教师讲,学生听为主,学生只是被动的接受知识,很难引导学生真正动手编制程序。我们要改变原来机械式传授知识的方法,根据学生的认知规律,遵循先易后难,先具体后抽象的原则,通过各种教学方式和手段综合使用,让学生带着问题听课。要引导学生积极思维,发现问题,提出问题,并逐步解决问题.教师在讲解程序设计实例时,从分析问题入手,给学生一个比较实际的切入点,引导学生主动探索,找出解决问题的方法,构建算法,鼓励学生大胆

19、动手编制程序。并充分利用多媒体设备展示学生的成果,给予评价和激励,让学生感受编程的全过程。在整个教学过程中,可将学生分成小组进行体验、探索,教师起引导作用,所有的任务由学生来完成。2.5、要有程序编制与调试的过程从编辑、编译、连接到调试,需要学生借用系统软件自己完成。为提高学生上机动手能力,调试和运行其编制的程序,在实验课中应配备有编制程序经验的教师担任辅导。通过多年的教学实践表明,主讲教师最好参与实验教学。主讲教师参与辅导不但能把丰富的上机经验传授给学生,同时在上机辅导的过程中可随时了解存在的问题,作为下一次课时的补充内容,便于掌握学生学习的全过程.辅导过程中教师应在以下方面针对程序中出现的

20、问题给予学生指导和帮助:第一,随时帮助学生找出程序的错误,向学生传授上机编程技巧和使用调试程序的技术。调试技术中的清除可见错误技术,发现隐含错误和证明程序正确的技术,预见未来错误的技术等都需要在上机实验环境中向学生言传身教。第二,辅导教师在实验中要经常强调让学生使用结构化程序设计方法与基本原则,要严格把关,发现问题要随时纠正,决不要因功能勉强通过就放松对程序质量的要求.程序编制中学生要写好说明程序的必要注释,使用合适的变量名,使程序文本写成锯齿形等。有的学生只顾功能正确,而程序结构零乱,应帮助他彻底修改,以得到一个层次清晰,结构良好的程序。对学生编制的结构设计合理、构思新颖和有特色的程序,辅导

21、教师要组织学生观摩,让编制人现场介绍编程思路,互教互学,起到启发、示范和交流作用。在教学过程中,以学生为中心,根据内容需要与学生情况灵活地采用多种教学方法和手段进行教学,学生在课堂上真正成为“主体”,教师扮演“主导”角色,学生在比较融合的学习氛围下,积极主动参与到编程活动中,有效地提高了学生的编程能力.第3章 抓好语言课教学环节,使学生能读懂并分析程序提高编程能力的先导语言基础知识的学习学生要学好计算机程序设计语言,解决实际问题,编制程序,学好程序设计语言的基础知识是提高编程能力的先导和基础。3.1、根据语言课的特点抓好课堂教学环节程序设计语言课的整体性和连贯性很强,任何一个程序设计(编制程序

22、)都是各种语句的综合应用。学习中对各条语句的功能、语法格式规定、相关语言要素等必须详细理解和牢固掌握。对于一个语句应起的功能不甚了解,语法规定模糊不清的初学者,要求他编制一个应用计算程序是不可能的,更谈不上熟练编写程序。在语言课堂教学中对基础知识的传授所遵循的模式为语言的基本概念介绍,语言要素讲解,语句功能说明,语法格式说明,例题示范,上机实践。对语句的学习只能依照循序渐进原则一个语句一个语句的学。这就要求在课堂上每讲授一个新语句时,都必须将已学过的语句有意识地穿插使用,让学生对已学过的语句随时都有一个复习的机会和完整的概念.在讲解每个语句时,除讲明其格式、特点、用途外,还应阐明其禁忌以及常见

23、错误,并以例题加以说明,这样有利于使学生克服一些常见的错误.对编程和上机要解决的重点和难点问题以及处理流程也应在课堂教学中向学生交代清楚。基础知识的学习应是系统的,不仅要注重各部分的独立性,更要注重其相关性。3。2、读程序与分析程序高级语言程序设计实际上是用计算机语言来描述任务的执行过程,能否把这一过程描述出来以及描述得好坏,主要取决于对语言的使用能力.这种能力只能通过更多地编写程序获得,同时多读程序、分析程序也是方法之一。这是提高编程能力的开端。运用一种程序设计语言编制程序的初期,通常需要阅读一些已有的程序,作为自己编制程序的导向。为了从已有程序(通常是教材中的程序范例)中真正获得收益,必须

24、对程序进行分析,了解程序设计的思路、技巧和方法。我们通过讲习题课的方式组织学生阅读指定例题或习题,把程序中的每条语句读懂,清程序的执行流程,分析例题中所采用的算法,对数据的输入与输出处理过程,然后布置类似题目,由学生课堂解决问题。例如,找出二维数组A(5,5)中每行中最大的那个元素。例中已给出了完整程序。在学生已读懂该程序后,要求学生继续完成打印输出该数组的下半三角;求出数组中不靠边的各元素之和;求出数组中靠边的各元素之和;分别求出数组的两条对角线元素的和与积;求出数组中每行元素的平均值。通过启发式教学,学生在读懂程序,熟悉语句和掌握编程方法的前提下能在要求的时间内编制出解方程的程序,程序和示

25、例不宜长,内容要能引起学生兴趣,以期能对学生起到举一反三的作用。在各个教学单元内除讲解语言要素、语句功能、语法格式外,必须注重对包含若干功能在内的实际问题的分析,结合教学内容穿插有代表性例题和习题进行编程训练.为配合对程序的阅读和理解分析,帮助学生提高编程能力,我们还可以专门编印一些介绍程序设计方法和编程技巧的参考资料,对学生进行程序设计有一定的参考与辅导作用。第4章 要精通算法设计与分析,具有逻辑分析能力无论是计算机科学还是计算机编程,算法都在其中扮演着重要角色,算法被公认为是计算机科学的基石。翻开重要的计算机学术刊物,算法都占有一席之地,没有算法,计算机程序将不复存在。对于计算机专业的学生

26、,学会读懂算法、设计算法,应该是一项最基本的要求,而发明算法则是计算机学者的最高境界.提高学生的问题求解能力是高等教育的一个主要目标,在计算机科学的课程体系中,学习算法还能够提高学生分析问题的能力.算法可以看作是解决问题的一类特殊方法-它不是问题的答案,而是经过精确定义的、用来获得答案的求解过程。用计算机求解任何问题都离不开程序设计,而程序设计的核心是算法设计。一般来说,对程序设计的研究可以分为4个层次:算法、方法学、语言和工具,其中算法研究位于最高层次。算法对程序设计的指导可以延续几年甚至几十年,它不依赖于方法学、语言和工具的发展与变化.例如,用于数据存储和检索Hash算法产生于20世纪50

27、年代,用于排序的快速排序算法发明于20世纪60年代,但它们至今仍被人们广为使用,可是程序设计方法已经从结构化发展为面向对象,程序设计语言也变化了几代,至于编程工具很难维持3年不变.所以,对于从事计算机编程的人士来说,学习算法是非常必要的。个人收集整理,勿做商业用途个人收集整理,勿做商业用途学习算法还能够提高人们分析问题的能力.算法可以看作是解决问题的一类特殊方法他不是问题的答案,而是经过精确定义的、用来获得答案的求解过程.因此,无论是否涉及计算机,特定的算法设计技术都可以看作是问题求解的有效策略。著名的计算机科学家努思(Donald Knuth)是这样论述这个问题的:“受过良好训练的计算机科学

28、家知道无何处理算法,如何构造算法、操作算法、理解算法以及分析算法,这些知识远不只是为了编写良好的计算机程序而准备的。算法被公认为是计算机科学的基石。通俗的讲,算法是解决问题的方法。严格地说算法是特定问题求解步骤的一种描述,是指令的有限序列,此外,算法还必须满足输入,输出,有穷性,确定性和可行性的重要的特性(如图1.1所示): 问题输入 算法(确定性、有穷性、可行性) 输出图1。1算法的概念算法设计者在构思和设计了一个算法后,必须清楚准确地将所设计的求解步骤记录下来,即描述算法。常用的描述算法的方法有自然语言、流程图、程序设计语言和伪代码等。算法设计过程是一个灵活的充满智慧的过程,它要求设计人员

29、根据实际情况具体问题具体分析。可以肯定的是,发明(或发现)算法是一个非常有创造性和值得付出精力的过程.在设计算法时,我们要遵循下列步骤可以在一定程度上指导算法的设计:第一, 理解问题在面对一个算法任务时,算法设计者往往不能准确地理解要求他做什么,对算法希望实现什么只有一个大致的想法就匆忙地落笔写算法,其后果往往是写出的算法漏洞百出。在设计算法时需要做的第一件事情就是完全理解要解决的问题,仔细阅读问题的描述,手工处理一些小例子.第二, 预测所有可能的输入算法的输入确定了该算法所解问题的一个实例。一般而言,对于问题P,总有其相应的实例集I,则算法A若是P的算法,意味着P的任一实例input I作为

30、A的输入,都能得到问题P的正确输出。第三, 在精确解和近似解间做选择计算机科学的研究目标是用计算机来求解人类所面临的各种问题。但是,有些问题无法求得精确解,例如求平方根、解非线性方程、求定积分等,有些问题由于其固有的复杂性,求精确解需要花费太长的时间,其中最著名的要算旅行商问题(即TSP问题,是只旅行家要旅行n个城市,要求经历各个城市且仅经历一次,并要求所走的路程最短),此时,只能求出近似解。有时需要在根据问题以及问题所受的资源限制,在精确解和近似解间做选择.第四, 确定适当的数据结构在结构化的程序设计时代,著名的计算机学者沃思提出了“算法+数据结构=程序“的观点,断言了算法和数据结构是构成计

31、算机程序的重要基础。在面向对象的程序设计时代,数据结构对于算法设计和分析仍然是至关重要的。第五, 算法设计技术算法设计技术是设计算法的一般性方法,可用于解决不同计算领域的多种问题。它包括蛮力法、分治法、减治法、动态规划法、贪心法、回溯法、分支限界法、概率法等等,这些算法设计技术构成了一组强有力的工具,在为新问题设计算法时,可以运用这些技术设计出新的算法。第六, 描述算法在构思和设计了一个算法之后,必须清楚准确地将所设计的求解步骤记录下来,即描述算法。描述算法的常用方法有自然语言、流程图、程序设计语言和伪代码等.第七, 跟踪算法跟踪必须要用“心和手“来进行,跟踪者要想计算机一样,用一组输入值来执

32、行该算法,并且这组输入值要最大可能地暴露算法中的错误。第八, 分析算法的效率算法有两中效率:时间效率和空间效率,时间效率显示了算法运行得有多快,空间效率则显示了算法要多少额外的存储空间,相比而言,我们更关注算法的时间效率。第九, 根据算法编写代码在把算法转变为程序的过程中,虽然现代编译器提供了代码优化功能,但仍需要一些标准的技巧,比如,在循环之外计算循环中的不变式、合并公共子表达式、用开销低的操作代替开销高的操作等。算法设计的一般过程(如图1.2所示)。理解问题预测所有可能的输入确定:精确解还是近似解确定数据结构算法设计技术设计并描述算法跟踪算法 不满意分析算法的效率 根据算法编写代码 图1.

33、2算法设计的一般过程总之,对于任何一种计算程序设计语言,从单个语句的功能来讲都是极其简单的也是非常容易理解的.但是要把各种语句有机地组合起来完成一定的功能,即编制出应用程序,初学者往往感到无从下手。问题的实质在哪里呢?除不会应用自顶向下逐步求解的方法外,主要是缺乏逻辑思维能力,即不能正确定义出解决一个问题的逻辑步骤,这就是通常所说的算法。所谓逻辑步骤或算法实际上就是指为解决某个问题需要执行者一步一步施行的有序操作的描述。例如,要求将N个数按从大到小的次序排序.当采用人工的解决办法时是找出最大的一个数排在第一,接着找余下的N-1个数中最大的排在第二,这样每次都找出余下的数中最大的数,直到余下的数

34、只有一个时为止。在清楚此人工方法后,学生就可能较快写出正确的交换排序程序。所以,为培养学生逻辑思维能力,要求学生在编程前应对要解决的问题进行算法设计,构造出一个好的算法,写出人工解题的思路和步骤,用程序流程框图(或称N-S图)表示程序内各具体步骤的内容以及它们的关系和执行的顺序,然后根据这个流程去编写程序就不困难了。严格要求学生在编程前一定要进行算法设计,切不可一拿到题目就立即动手写程序。使用自顶向下和结构化程序设计方法是提高学生分析问题和解决问题能力的关键。算法设计是程序设计的核心和基础,始终贯穿于语言课教学中.同时引导学生逐步掌握单入口单出口的控制结构,这种控制结构是结构程序设计的必备条件

35、。注重把基础知识和程序设计方法同编程能力的培训两个方面的内容融合在一起,逐步培养学生分析问题和解决问题的能力.第5章 以任务驱动模式进行程序设计训练“任务驱动法”是一种建立在建构主义教学理论基础上的教学法。作为建构者,教师是学习的指导者、辅助者、导航者,学生才是主体。所谓“任务驱动教学法就是让学生在一个典型“任务”的驱动下展开学习,引导学生由简到繁、由易到难、循序渐进地完成一系列“任务”,从而得到清晰的思路、方法和知识的脉络,并在完成“任务”的过程中培养分析问题、解决问题以及用计算机处理信息的能力。驱动式实践教学可以充分发挥计算机的优势和学生个性的特点,让学生在任务中通过不断实践自己发现、解决

36、问题,同时在这过程中掌握知识、提高操作技能。任务驱动模式中的关键问题是如何选择任务,如何处理任务中可能出现的超越学生现有能力之外的环节,是任务驱动训练过程中需要面对与解决的两个关键问题. 5。1、选择任务的基本原则 选择任务遵循的基本原则是:任务必须对学生有强烈的吸引力.这样才能激发学生的兴趣,才能激发学生挑战梭的信心与斗志,才能让学生在面临困难的时候不轻易退缩与放弃. 我们认为任务的吸引力主要源自以下几个方面: (1) 任务贴近学生的实际生活,符合学生的应用要求,在一定程度上迎合学生爱刺激的心理。在我们教学过程中,常遇到一些学生提出要求老师多讲解一些诸如怎样编写通讯录管理程序、小病毒程序、Q

37、Q等密码盗取/破解程序、系统漏洞扫描、键盘监控程序。学生们并不是希望用这些来搞什么破坏,而是想锻炼或者验证自己的能力,稍严重点的就是在同学或朋友间做点小恶作剧以炫耀自己,或者在应用过程中获取一定的刺激。充分利用这种心理就可以设计出合适的、具有强烈吸引力的程序设计任务。当然在这一方面教师必须正确的引导学生对这些技术的合理、合法应用。 (2) 任务的网络化趋势。网络的普及使每个学生在学习过程中都有机会去接触各种类型的网络应用,如网络间传送数据文件、网络聊天等,合理的设计与这些应用有关的程序设计任务,让学生自己有一定的能力在网络中自由遨游,也将对学生产生巨大的吸引力。 (3) 任务与数码技术的关联。

38、目前数码技术的应用可谓无孔不入,数码照相、摄像等可以随时随地的进行。将程序设计任务与数字图像、视频的简单操作、处理相关联,势必也能激发学生的兴趣. 5。2、对任务超越学生能力范围的处理 依据上述原则选择与设计程序设计任务。有些任务虽说算是小型问题,但涉及到其他一些知识点。有些任务直接,涉及其他知识点不多,但可能需要有更高级的编程技术,如基于Windows的应用程序界面制作、Windows API的调用等.如果处理不当,将会使任务难度太大,反而打击学生挑战的信心与斗志。我们提出以下几种处理方式。(1) 在学生具有一定的实践能力之后,可逐步将所学习的程序设计语言向更高层次拓展。如针对C语言,有必要

39、拓展到C+,不过只能是最简单、最必需的知识点,不宜太全面。在学生有一定C语言的基础之后,仅引入C+中的类的基本概念、定义及使用、构造函数、析构函数,其他知识点先置之不理。之后,进一步将学生编写、调试程序的工具移植到可视化工具之中,如Visual C+,不过也仅是让学生了解该工具的基本操作,不宜全面介绍与引入,关键是能理解、会用即可。(2) 针对某些任务进行专题讲座。个人收集整理,勿做商业用途个人收集整理,勿做商业用途如编写小病毒程序,教师则针对病毒程序的几个特性来进行技术讲座,并针对典型问题详细介绍如何获取相关资料、如何解决等,引导学生充分利用现有资源(如网络、书籍等)获取资料和解决问题的办法

40、。 (3) 针对学生一时无法解决的问题,最好的处理办法是给出程序的框架,并做详细注释与讲解,让学生只需要利用现有知识及能力就能解决这类任务。 总而言之,要设计出具有吸引力的任务,但又要合理把握好难度.第6章 训练学生的模仿能力及联想思维6.1、训练学生的模仿能力学生要学会编程,必须有一个观察模仿的过程,教师每讲一种题型,都应让学生多做类似的练习,如教师讲了1+2+100,就让学生做1+2+50、50+51+200等练习。在此基础上,要求同学画出这些程序的流程图,结果学生发现,这些程序的流程图基本框架都是一样的,只是内容不同而已。这样,累加题型的普遍规律就由学生自己找出来了。在教学过程中应避免学

41、生单纯地模仿教师,教师在讲解过程中,应偏重分析,引导学生学会思考,自己去解题。对一些不善于独立思考的同学,要多问他们问题 。要从多个角度入手,将例题改变一下形式,或改变一下条件,引导学生一题多变,一题多解,再让学生解决类似的问题,这样就能使学生灵活思考,而不是机械的模仿.6.2、多与别人交流,善于发现问题 三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多多上网,看看别人对同一问题的不同看法,会有很大启发的。6.3、要有丰富的联想思维 学习计算机编程,不要拘泥于固定的思维方式,要有丰富的联系思维,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法,丰富的想象力

42、是建立在丰富的知识的基础上的,除了计算机以外,我们要多多涉及其他学科的知识,比如在物理学中关于自由落体运动的例子:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时, 共经过多少米?第10次反弹多高?我们首先对程序进行分析:我们再要求第n次反跳高度。就要先求出第n次落地时共经过的米数,然后那么程序源代码就写出了(如下):main()float sn=100.0,hn=sn/2;int n;for(n=2;n=10;n+)sn=sn+2*hn;/*第n次落地时共经过的米数/hn=hn/2; /*第n次反跳高度*/printf(”the total of roa

43、d is %fn”,sn);printf(the tenth is f metern”,hn);所以了解一些天文、物理、数学等等学科知识,也对编程极有帮助的。另外,多看一些科幻电影,这对编程可能有一定的帮助作用。第7章 提高编程思想,优化程序结构7.1、传统结构化设计传统的机构化程序设计强调程序设计风格和程度结构的规范化,提倡清晰的机构。怎样才能得到一个结构化的程序呢?如果面临一个复杂的问题,是难于一下子写出一个层次分明、结构清晰、算法正确的程序的.机构化程序设计方法的基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。7。2、面向对象的程序设

44、计面向对象的程序设计是程序基于对象后,通过自建层次式的类型,使得问题中的逻辑结构反映为实体间的层次关系,于是大规模问题的解析就比较直观了。然而,基于对象的程序设计本质上还是过程化的.知识某些数据关系被提取出来,成为一个类,边可以更好地重用了,而且分工协作更通气了。当抽象数据类型在C+中进入到真正接口的角色时,动态程序的形式又发生了质的变化。程序的运行,不再是一个进程硬要全面主宰一切那样完成计算任务的形式,而是面对环境中正在“生活中”的对象,不时地请求其服务,以达到完成计算的目的。那些生活中的对象也不是为了某个进程而活着,而是各司其职充当系统的一个部件而已。所以程序运行的概念,变成了图1。3中的

45、网状模式。对象界面图1.3 面向对象运行模式那么我在进行程序设计过程中,面向对象思想总体来说可以体现在以下几点:(一)、 面向对象思想的目的是框架化,手段是抽象相信很多人都明白面向对象讲了什么:类,抽象类,继承,多态。但是是什么原因促使这些概念的产生呢?打个比方说:我们去买显示器,然而显示器的品牌样式是多种多样的,你在买的过程中发生的事情也是不可预测的。对于这样的事情,我们在程序语言中如何去描述呢。面向对象的思想就是为了解决这样的问题。编写一个程序(甚至说是一个工程),从无到用是困难的,从有到丰富是更加困难的。面向对象将程序的各个行为化为对象,而又用抽象的办法将这些对象归类(抽象),从而将错综

46、复杂的事情简化为几个主要的有机组合(框架化)。其实我们的身边很多东西都是这样组成的:比如说电脑:电脑是由主板,CPU加上各种卡组成的。这就是一个框架化.而忽略不同的CPU,不同的主板,不同的声卡,网卡,显卡的区别,这就是抽象。再比如说现在的教育网是由主核心节点:清华,北大,北邮等几个,然后是各个子节点,依次组成了整个教育网网络。所以我觉得面向对象的编程思想就是:一个大型工程是分层次结构的,每层又由抽象的结构连接为整体(框架化),各个抽象结构之间是彼此独立的,可以独立进化(继承,多态)。层次之间,结构之间各有统一的通讯方式(通常是消息,事件机制)。个人收集整理,勿做商业用途个人收集整理,勿做商业用途(二)、 以前C语言编程中常用的“面向对象方法

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服