结构化程序设计范文

时间:2023-11-03 07:05:33

结构化程序设计

结构化程序设计篇1

关键词:中职学校;结构化程序设计;Visual FoxPro 6.0

中图分类号:TP312.1-4

结构化程序设计课程通常是高职、高专和本科类院校,为计算机及相关专业开设的课程,中职学校很少开设,原因很多,但通过多年在中职学校的结构化程序设计课程教学工作经验的积累,我发现只要能掌握习题设计合理的方法,给中职学生开设编程类课程并不困难,更对培养学生的逻辑思维能力、扩宽就业道路都非常有益,中职升高职的高考技能考试中,结构化程序设计考题共计50分,占50%的比重,直接影响学生的升学质量。

1 了解学生的特点,定制适度的教学目标

中职学校学生普遍文化课基础知识欠缺,对理论性知识的学习理解能力较弱,逻辑思维能力差,分析问题和解决问题的能力水平较低。但是他们正处在长身体时期,对学习成果较易感到满足。根据学生的这些心理特点和思维特点,教师要定制适当的教学目标。题目通俗易懂,实用性强。学生学了理论知识,重在应用,如果没有地方用,或者不会用,那么久而久之就会降低学生的学习积极性,让学生失去学习兴趣,因此在设计习题时尽量做到通俗易懂,实用性强。在讲解RAND()随机函数使用时,可以利用该函数为小学生随机出十以内的加减法练习题,并根据计算结果给出评判。通过实际操作,学生们利用在课堂里学习到的计算机专业知识回家以后给身边刚学算数的弟弟妹妹出练习题,计算机自动帮助批改,这让他们非常有成就感,再回到课堂学习积极性更高了。

2 难度有层次,逐级提升

结构化程序设计课程最忌讳把学生一竿子支到门外,虽然课程本身有难度,但作为授课教师只要在习题难度上分号层次――让尖子生吃好,让中等生吃饱,让学习困难的学生不放弃。

在讲解显示命令符“?”的使用,在屏幕上用十个星号连成一条横线显示,绝大部分学生可以直接利用“?”**********这条命令完成;对于编程基础薄弱的学生,我们可以通过这道的题目,吸引他、鼓励他,让他消除对编程有难度的恐惧感;而对于编程基础扎实、运用灵活的学生,当然不能仅限于此,他们应该在教师引导下遵循选择和循环等结构化程序设计的思想,用更简洁的程序解决复杂问题。

设计习题“利用随机函数RAND()实现随机抽取中奖学生”,抽取学生人数从一人到多人,抽取次数从一次到若干次,逐步完善程序功能和实用性的同时,程序复杂程度也在逐渐增加,从简单的顺序结构程序到顺序、选择和循环三种结构程序综合运用,使课堂教学保持一致性和连续性,吸引学生在教师的组织下一步一步提高编程能力,也为今后工作中的实际问题提供新的思路和方法。

3 运行结果鲜明,便于观察

结构化程序设计教学中循环是重中之重,也是学生在学习过程当中的拦路虎,如果能准确、熟练地控制循环进程,就能够更好得利用循环结构程序解决问题。如果我们能够让学生很明确某个知识点能干什么,有了目标方向,也就有了动力,许多问题也就会迎刃而解。在关于循环程序的控制命令LOOP、EXIT的授课过程中,程序流程图的讲解方式固然好,但如果能配合典型例题,则能达到事半功倍的效果。我在实际授课过程中用过如下的数字显示的例题,不仅能让学生更好的理解循环程序,同时能通过不同的循环程序控制命令对程序结果影响,解释清楚课堂知识重点。

4 充分发挥典型习题作用

张丘建《算经》中的“百钱百鸡”问题、“水仙花数”问题、绘制“杨辉三角”都是结构化程序设计的经典题目,都是无数前辈留给后人无价的精神财富和竟然总结,教师一定要指导学生利用编程的方法解决。因为这些问题的背后都有很多有趣的故事传说,并且广为流传、耳熟能详,大多数人又只知其一、不知其二,如果我们能够在给学生讲故事的同时,潜移默化地引导学生用编程的思维方式解决问题,能够提高学生的逻辑思维能力水平和计算机素养。

5 合理安排理论与实践的比例

在中职学校,开设的结构化程序设计课程一班有C语言、Visual FoxPro和Visual Basic等,既是升学就业的需求,也是符合中职学校学生特点的语言类课程。在授课过程中,教师应该合理安排时间,在打好理论基础的同时,提高学生动手操作、分析问题和解决问题的能力,在解决实际问题的基础上,学生能够逐步形成并提高逻辑思维能力。理论课与上机课的时间比例是1:2,即教师演示讲解一道题,学生练习两道题,这样就可以保证学生在实际操作中掌握知识,使教学理论与实践操作紧密结合起来。理论课有两方面的作用:一是可以为学生理清知识逻辑,讲清楚操作原理;二是可以总结学生在上机实践中遇到的一些问题和错误,使学生更加快速深刻地掌握操作方法和操作技巧。实践课可以让学生对其逻辑思想加深理解,对程序规范进一步严格要求。

6 多媒体网络技术使用

程序设计关键在于思想的激发和过程的理解,教师应该利用充分利用现代化的教学手段提高授课质量。在多媒体网络技术使用方面,首先注重课件制作,内容简练,重点突出,结构清晰,动静结合,能够死的理论知识跃然纸上,通俗易懂,最好使用FLASH动画的形式展现结构化程序设计的思路和程序的流程,让学生对问题的关键一目了然;翻转课堂。程序设计类课程对于中职学生来说,在学习和使用方面确实存在很多困难,但为了学生将来更好更广发展,我们一定要上好该类课程,为学生负责,也更应该不断提高自身的理论和实际应用水平。

参考文献:

[1]周察金.数据库应用基础――Visual FoxPro[M].北京:高等教育出版社.

[2]牟云翠.Visual FoxPro程序设计基础与实训[M].北京:机械工业出版社.

[3]朱强.Visual FoxPro结构化程序设计教学方法和技巧探讨[J].福建电脑,2010.

[4]陈阳.程序设计教学的指导思想[J/OL].中国论文中心,2001.

[5]高冲,徐群.基于程序设计项目化教学的研究[J].计算机与现代化,2012.

结构化程序设计篇2

[关键词]认知心理学 C语言程序设计 认知结构

“C语言”是一种结构化的程序设计语言,是计算机专业的一门基础课程,近年来越来越多的院校也将“C语言”列入非计算机专业的基础课程。作为新时代的大学生,仅仅掌握基本的计算机应用软件操作能力是远远不够的,还应该具备一定的编程能力。学习“C语言”课程,有利于拓展学生的逻辑思维能力,对理工科学生,尤其对计算机专业的学生日后学习专业技术知识有很大的帮助。“C语言”是一门语法灵活、功能强大的高级程序设计语言,正是因为C语言具备的这些特点,刚开始接触C语言的大学低年级学生会觉得C语言比较抽象,也比较枯燥。学生在“C语言”的学习过程中,应该是有计划和系统地学习这门课程。在“C语言的教学中”教师应该把握怎样的度,怎样发挥自身的作用呢?

一、认知结构的概念及理论

正确运用美国心理学家布鲁纳的“认知――结构学习论”可以很好地解决上述问题。布鲁纳主张学习的目的在于发现学习的方式,使学科的基本结构转变为学生头脑中的认知结构。所谓“认知结构”,就是学生在学习过程中在其头脑中建立起来的知识结构。可以具体地理解为学生在学习某一学科的知识的过程中,在其头脑中关于该学科的观点的全部内容。原有的认知结构是影响新知识的学习的关键因素。 学生学习的过程就是不断把新知识融入到已有认知结构中。美国著名认知心理学家奥素伯尔认为,加强认知结构能促进新知识的学习,教学目标就是使学生形成良好的认知结构。

二、激发学生学习兴趣,逐步优化学生的认知结构

教师在教学过程中要鼓舞学生,努力调动学生的积极性,增强学生的自信心,激发学生学习该课程的兴趣。另一方面要培养学生的探索精神,这样学生在学习过程中就会不断为自己树立新目标,学生自身就会具备挖掘新知识的需求,并在这一过程中不断增强信心,享受学习新知识所带来的乐趣。这样学生的学习就变成了一种自觉地、主动地过程,而不是被动的过程。教师和学生会分别体会到教与学的快乐。学生应该调整好心态,以探索者的身份来面对新学科。教师在进行“案例教学”的过程中,所举的例子应尽量避免抽象化,尽量贴近实际生活。这样学生在学习过程中会不断提高自信心,逐渐消除刚开始接触该课程时的恐惧心理。经验和研究都表明,在有序的结构中提取有序的知识,必然是迅速而准确的。建构主义学习理论,强调了认知主体的主观能动性,认为“意义建构”是整个学习过程的最终目标。著名心理学家奥苏伯尔认为,富有意义的新思想是通过把它归类到一个已经存在着的认知 结构中去才被学会的。在“C语言”教学过程中,教师的“教”是引导学生将新知识融入到已有的知识结构中,学生的“学”是将新知识融入到自己又有的认知结构中,并不断完善自己的认知结构。“C语言”教学要采取理论教学和实践教学相结合的方式,学生在不断地学习教师教授的知识的基础上,不断地培养自己的动手能力。

三、更新学生学习观念、发挥学生的主观能动性

大学C语言教学改革依据建构主义学习理论,在教学中应该已学生自主学习为主,以教师教授为辅,在“案例教学”中所举例子应该兼具实用性与趣味行。对学生而言,在自主学习的过程中能够更好地挖掘自身的潜力。在教学过程中应该采用灵活多样的教学方法和手段。例如在讲授“冒泡排序”这一算法时,学生会觉得算法比较抽象,难以理解。教师可以在教学过程中,选择身高差距比较明显的几个学生,用学生排队的过程来展示“冒泡排序”排序算法。大学生已经具备了一定的自主学习的能力,大学教师应该是指导学生学习,而不是像中小学教师那样以传统的教授为主。大学教师在教学过程中应采取“启发式”教学,即

在每次讲授新知识前,先总结旧知识,接着安排一些案例,这些案例是用旧知识无法解决或用旧知识解决比较繁琐的,同时,教师所举的这些例子应该尽量贴近于学生生活,这样就会启发学生进行思考,激发学生对学习新知识的渴望。教师所举的这些例子应该尽量贴近于学生生活,这样有助于学生养成良好的学习习惯,使学生的学习方式由“接受型”学习转变为“发现型”学习。把教师的“教”与学生的“学”结合起来,帮助学生构建合理的认知结构,从而使学生的“C语言学习之旅”变得轻松快乐。

美国著名认知心理学家奥苏伯尔根据学习进行的方式把学习分为接受学习与发现学习,又根据学习材料与学习者原有知识结构的关系把学习分为机械学习与意义学习,并认为学生的学习主要是有意义的接受学习。所谓“意义学习”,就是将符号所代表的新知识与学习者认知结构中已有的适当观念建立起非人为的和实质性的联系。意义学习既受教材本身性质的影响,也与学习者自身因素有很大关系。学生所使用的教材都是专家学者精心编写,并经过严格审核的。所以“意义学习”主要取决于学习者自身因素。要构成有意义的学习,必须具备以下三点:

1.学生积极主动地将新知识融入到已有的认知结构中。

学生认知结构的组织应该有利于学生清晰地分辨原有的知识与要学习的新知识。如果学生原有的认知结构是层次分名、条理清晰的,那么新知识就会很快地在原有的认知结构中找到固着点,新知识和旧知识才能很好地联系起来。注重新知识和旧知识的比较,能够提高学生认知结构的可辨别性。例如在“C语言”学习中,在学习结构体时,可以将其与已经学习的数组进行比较,数组中只能存放类型相同的一些数据,而结构体中可以存放类型不同的数据。但是它们同属于数据类型。

2.教师更好地发挥指导作用

在教学过程中教师的指导作用体现在帮助学生优化其认知结构,使其认知结构更加条理化、系统化。教师授课的知识结构经过学生的加工和转化就变成了学生的认知结构。因而教学中最重要的一点就是编制最佳的知识结构。这样学生才能准确地运用已有知识解决问题。因此,教师在教学过程中应该不断丰富和更新学科知识,勇于创新。这样教师编写的教案才会在源于教材的基础上更具可利用性。教师在授课过程中,在指导学生构建认知结构的过程中应该本着“从知识块到知识链再到知识网”的原则,即“从点到面再到空间“的原则。例如在“C语言”中,数组和指针是两种数据类型,是两个“知识块”,但是在解决问题的时候数组和指针往往是可以通用的,即同一个问题,既可以用数组来实现,也可以用指针来实现,只是表现形式不同而已,所以数组和指针这两个“知识块”其实是属于同一个“知识链”的。

3.采用多种有效的学习方法

教师在授课过程中应充分利用典型例题,使学生学习新知识之后可以做到举一反三、触类旁通。例如“斐波那契”数列,既可以在讲授循环的时候,也可以在讲授数组的时候,把它当作一个很好的例子。在“C语言”教学中,教师在讲授同一类型问题的时候,尤其是有关算法思想的问题时,可以选择其中的一个问题,编写程序,修改已经解决的问题的程序来解决其他的问题,从而做到举一反三。

另外,合理利用“先行组织者”策略,也可以达到增强知识结构各个变量的目的。所谓“先行组织者”,是先于学习任务本身呈现的一种引导性材料,它的抽象概括和综合水平高于学习任务,并且与认知结构中原有的观念和新的学习任务相关联。其目的是加强知识间的比较,加强认知结构的可辨别性。

四、小结

综上所述,在“C语言”教学中,通过对学生认知结构的分析和研究,从教师在教学中如何充分发挥自身的知道作用和学生在学习中如何充分发挥自己的主观能动性两方面,总结了如何优化学生的认知结构。以上只是笔者自己在教学中的一些心得体会,在今后的教学中还需要更多方面努力优化学生的认知结构。

参考文献:

[1]邵瑞珍,教育心理学[M].上海:上海教育出版社,1997:219-249.

[2]郭志宏.教学中促进学生学习迁移策略初探[J].内蒙古财经学院学报(综合版),2005,(2):22-24

[3]谢春艳.认知心理学的教学观对教学改革的启示[J].改革与策略,2005(9)

[4]罗伯特•斯莱文.教育心理学理论与实践[M].姚梅林,译.北京:人民邮电出版社,2004.

[5]李阳.基于“先行组织者” 策略的大学物理教学经验总结[J].中国电力教育,2009(7)

结构化程序设计篇3

1.1结构化方法的创新发展过程随着机构化方法的不断完善,内部组成部分趋于成熟。目前,结构化方法主要包含三个方面:结构化分析、设计和实现,其中最为重要的结构化分析和设计。在软件开发的初始阶段,软件开发的目的在于实用性,由此忽略了程序设计的简单性,使得研发出来的软件可读性非常差,使得后期软件的维护工作异常吃力。面对这种问题,软件工程师意识到,在进行程序编写的过程中,不仅要注重编写的技巧,也要注意到后期维护的诸多问题,才能提高软件的应用空间。为更好的解决这项问题,软件开发改变传统的设计过程,采用创新的方式,提出一种全新程序设计方向,以期提高程序设计的可理解性。以此为基础,经过相关人员的一直努力,最终研发出结构化软件。在结构化软件中包含顺序、选择和循环。结构化方法的问世,是整个软件工程发展上的里程碑,极大了促进了软件工程的发展。此外,为规范程序设计操作,研究员于1973年设计出程序化设计语言,进一步加快了软件工程的发展。

1.2面向对象技术的创新发展过程面向对象软件开发方法不同于传统的软件开发方法,使用这种方法可以很好的将现实生活中的实体以技术方法的形式呈现在计算机上,并且在此基础上,将两者进行匹配。目前,面向对象软件开发方法的具体体现包括Java语言和C++语言。面向对象技术可以很好的将数据和操作进行结合,明确对象和类的不同概念。同时,为便利软件开发过程,研究者在现有软件开发技术的基础上,不断进行创新,以期研发出新型的软件开发技术,提高程序设计的效率。随着研究的深入,在计算机程序编写的过程中引入软件生命周期的概念,由此研发出OOA面向对象分析以及OOD面向对象设计等等。

2结构化方法和面向对象方法的创新研究

2.1结构化方法的创新研究结构化方法的问题得益于过去软件开发过程中的诸多问题。比如在结构化方法没有研发以前,软件工程师在设计软件的过程中,没有详细的设计方案,只是按照一定的目标,随心所欲的进行程序设计。在设计的过程中,十分注重程序设计的技巧性,而且忽略了后期的维护工作,此外由于行业之内缺乏明确的规定,使得一部分人设计出来的程序他人很难进行操作。当这些问题逐渐显现,人们意识到过分追求程序设计的技巧性是不可取的,需要提高程序设计的可理解性,才能便利以后的维护工作。由此研究者通过创新思维,建立一种全新的程序设计方法,最终提出了结构化方法,来便利软件工程师的程序设计工作。

2.2面向对象方法的创新研究为了将显示问题更加直观的呈现在计算机上,分离数据和操作,更好的衔接系统分析和系统设计,相关研发人员经过长时间的探索研发出面对象的程序设计方法。面向对象方法的创新属于一种思维理念的创新,促使人们以全新的思维方式来反思程序设计问题。当传统设计方法的弊端不断显露,需要程序工程师以一种全新的思维方式来解决软件开发过程中存在的问题,不断完善软件开发方法。由此,在这种情况下,研发人员经过长时间的反思,最终提出Java语言和C++语言。

结构化程序设计篇4

关键词:模块化;计算机软件;价值

模块化软件实际就是模块化概念在软件设计中的具体应用,同时也是软件开发的一种技巧,用计算机软件专业术语来讲就是“模块化程序设计”,简单来说,就是将系统或者是程序当作一组模块集中进行开发的技术,其最终目的就是为了将复杂的任务分解为简单的子任务,进而方便程序的编写。虽然说模块化概念早已被引进计算机软件领域且被运用多年,但随着网络科技与社会经济的不断发展,人们对于软件模块化的认知和运用越来越深入化发展,特别是在软件的系统设计的运用上尤为明显。模块化设计的水平将严重影响软件开发的效率及质量。

1基本思想

1.1理念

模块化设计在设计思想上古来有之,可将其简述为把产品设计作为系统模块划分或者是将模块集合的两种不同过程:一种是指将一个具备某种功能的产品细分为若干功能模块,这些模块可以相互调用,它们分离出来之后可独立存在,也就是产品的模块划分;另外一种就是将多个不同的模块遵循系统要求进行有机组合,重新构成具备不同功能的全新产品,这就是模块的重组。模块化设计与传统设计有着本质区别:(1)传统设计往往针对具体产品进行功能设计,而模块化设计则是针对产品系统进行设计,将系统范围内的产品分为通用和变动两部分,新产品设计将由通用部分和选择变动部分共同来完成;(2)传统设计往往是针对某个领域专用,而模块化设计则是适合各领域广泛通用;(3)传统设计主要是着重具体功能的详细设计,模块化设计则是比较重于整个产品系统的规划、分解和组合;(4)传统产品部件基本是固定方式组合,而模块化则是以模块形式组合,需全面考虑系统的协调性、互换性及组合性,设计难度比之传统设计也高得多;(5)传统设计对象单是产品,模块化设计则是产品或者模块两种不同的对象。

1.2基本概念

模块化设计基本可认为是针对多功能的不同产品设计出多种模块,再经不同组合方式重构不同的产品,进而解决产品品种、规格和设计、成本之间的矛盾。(1)模块模块是由系统拆解而来的,可单独作为一个单元将其从系统中拆出或者更换,或者也可组合成具备确定功能的新系统。模块是系统的基本构成部分,同时它又是一个具有特定功能的独立存在。模块结构往往具备兼容和共通性以及典型性,可以自成系列。模块之间彼此独立,又互有关联,模块有机组合之后便可形成系统。(2)模块化模块化是为优化效益,基于系统观点出发,深入探究产品或者是系统的基本构成,通过分解、组合的方式来构建模块体系,并利用模块重新组合新的产品或者是系统的整体过程。模块化最终目的就是最大程度地优化效益,以产品或系统为对象,以系统的拆解和重组为手段,构建模块化的对象系统的一种活动过程。模块化与产品标准化、系列化联系较为密切,彼此影响、相互制约,常常连在一起被当作评判产品质量的重要指标。现如今,模块化设计已渗入多个领域,例如汽车、家电、计算机等。(3)模块化设计的应用现状模块化设计在国内外各行业被广泛应用,分别在机械、电子、船舶等行业中取得了显著成果。尤其是在汽车行业中更是得到了重视,模式化生产方式被称之为其是继大规模生产、精益生产之后,汽车生产方式的第三次革命。上世纪50年代,我国在积木式机床的设计中,力图以最少的“积木块”构成多种机床,对模块化设计做了初步探索,但因缺乏理论指导,设计中过于侧重通用而忽略了特性,导致结构和性能匹配困难,效果欠佳。1970年到1980年之间,模块化设计在我国再次受到重视和应用。1981年,北京机床厂龙门铣床进行模块化设计;杭州汽轮机厂引进Siemens公司的模块化工业汽轮机技术;1989年至1991年模块化项目应用到机床、模具、电机等各个方面。90年代末,重汽集团公司对面向国际市场的10m到12mde大客车进行了模块化设计[1]。

2模块化与计算机软件设计

2.1存在的问题

计算机软件开发以其他产品设计相比,其开发程序较为复杂,是由多种程序组合而成的。我国的计算机软件在实际的开发过程中,因为设计人员对软件开发缺乏研究,进而导致了计算机软件在实际运用过程中经常会出现用户数据丢失、计算机软件遭到损坏,网络不稳等种种现象,不仅一定程度上抑制了计算机软件企业的发展,还会导致用户隐私信息泄露的不良后果的发生。除此之外,在设计软件项目中,由于部分软件开发人员忽略项目数据分析,进而造成软件开发比较笼统化,数据分析也比较缺乏完整性和真实性,极大程度上降低了计算机用户的使用效率。在软件开发过程中,因为软件开发人员在进行开发过程中未严格按照国家相关规章进行规划设计程序的工作,导致软件工程建设延期,且不能保证软件工程的质量。软件工程是一项较为复杂、庞大的项目,所以要求开发人员必须严格遵循相关章程,进而提升软件开发效率及软件工程质量。

2.2难点的应对策略

2.2.1设计方法模块化设计方法模块化一直以来都是软件工程明确的发展方向及目标。随着当代网络科技的不断发展,采取模块化设计的方式已然成了当今时展的必然趋势。模块化设计不仅可以有效提升计算机软件的使用效率,而且还可以提高计算机开发人员的工作效率。模块化设计最显著的特点就是在计算机原有程序的基础上随意增添或删改软件程序,正是这一特性可有效简化原本复杂化的软件设计程序。模块化设计外在表现形式就是以若干小程序为基础,开发人员通过进一步的设计和处理这些小程序,并将这些小程序串联整合起来,进而构成庞大的计算机软件程序。在此过程中,计算机软件开发设计人员应注意:在对小程序进行处理和设计的过程中,必须确保小程序可作为一个独立个体的形式而存在,如果计算机系统自动分解化,那么很多程序就需要开发人员根据计算机系统分解设计来进行增添或是删改软件特性,计算机下级模块绝对不能调试为更高级别的模块。由此可见,计算机开发人员遵循相应的设计原则是实现模块化设计的前提基础。2.2.2设计层次数据结构信息作为计算机软件开发中的重要组成部分,在计算机系统中有着至关重要的作用。根据当前我国计算机软件设计的基本情况分析,虽然大多数企业都实现了程序结构化以及结构的层次化设计,但是较多企业软件在数据结构程序化方面却十分欠缺,进而导致了软件工程设计面临着数据信息经常性流失及图文信息笼统模糊。因此,加快数据信息结构层次化是当前软件开发人员需快速解决的紧要问题之一。计算机软件程序设计中,通过全部采集信息对内部结构进行进一步的调整和优化,并根据详细明确化的图文特征及信息流动性深入探析软件数据结构,进而形成软件设计结构。耦合和内聚两个部分是影响数据结构设计的关键因素,因此开发人员需根据其两方面数据进行数据结构的设计,方能有效解决计算机软件系统中数据流失及图文信息模糊的难题。2.2.3多元化的数据结构设计当前国内的数据结构基本上都是采取Warnier软件开发方法,此开发方式不仅可将前面所提到的数据难点通过图表结构的形式直观显示出来,而且可以为解决数据难点问题提供便利。数据结构设计包括重复、顺序及选择3种类型。首先由开发设计人员分析数据结构,得出数据结构结论并创建程序控制结构,然后形成数据结构设计过程,最后将数据软件结构与各自对应的计算机系统相配备。强化计算机数据结构设计不仅可有效解决计算机软件开发中数据难点问题,同时对于数据结构的多元化发展也起着积极作用。

2.3模块化与计算机软件设计

通过以上分析,随着我国网络科技的快速发展,我国计算机软件开发虽然取得了一定进步,但是仍有很大的增长完善空间,开发设计人员需严格遵循相关法律法规,同时企业通过采用模块化设计手段,为软件设计的层次化提供保障,进而有效提升计算机软件质量[2]。

3软件进行模块化的实用价值

软件设计和程序设计完全是不同的程序设计,而是程序的编写,是针对某些问题进行的算法设计以及编码设计,只适用于小型软件项目。由于程序本身的设计是很少以软件结构角度做出整体的考虑,所以不仅不可以使软件结构变得清晰、层次化,反而也还会导致使各软件元素之间的连接、调用变得混乱,因而造成软件的维护及修改困难;除此之外,程序设计步骤模糊,中间缺乏常规检查,因而导致设计出现错误却又不能及时地发现,错误不断蔓延、扩展,就算调试时纠正,同样也无法更改软件成本的增加,软件工程延期交付的结果。现代软件设计的主要核心实际上其实是把问题拆解为能独立处理的最小功能模块。设计整体以数据为基础,从上到下,逐步进行优化完善、模块化的过程。软件的模块化设计可有效地解决软件的复杂性问题,有易于软件设计、调试及维护工作的进行。软件模块化的作用有:降低软件的复杂性、便于软件设计、便于软件测试。

4结语

通过模块化与计算机软件设计的相关分析,事实证明,软件模块化对于计算机软件的开发设计具有较高的价值。可有效降低软件的复杂性采用模块化设计手段,为软件设计的层次化提供保障,进而有效提升计算机软件质量。

参考文献

[1]应建平.计算机辅助模块化设计系统研究[D].合肥工业大学,2006.

[2]章伟.浅谈计算机软件开发设计的难点和对策[J].科技展望,2016.

结构化程序设计篇5

关键词:C语言;程序设计;循环

1. 前言

顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构,一个程序的任何逻辑问题均可用这三种基本结构来描述。所以在高级语言程序设计课程中,掌握这三种结构是学好程序设计的基础。而循环结构是这三者中最复杂的一种结构,几乎所有的程序都离不开循环结构。在C语言中,循环结构主要包括for、while和do-while三种语句,其中for语句的应用更为普遍一些。循环语句的用法对于有程序设计经验的学生来说轻而易举,但是对于那些没有经验的初学者来说,难度却不小。本文从初学者的角度,阐述了C语言中如何建立循环的思想。

2. 如何设计引例

英文原版教材,循环是这样描述的:repeatation,重复。《辞海》上说循环是指事物周而复始的运动或变化。由这两个定义可以看出,循环重在强调重复。

2.1 运用实例解释循环思想

在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环。例如:春夏秋冬四季的更替,汽车内燃机的作功过程:进气——压缩——燃烧——排气,叉车装货、运货、卸货的过程。3个例子的共性在于,它们都是周而复始的、重复的运动,为了研究问题本质,只要找出规律,将重复频率高的相同部分作为重点进行突破,可以为我们的研究节省时间,提高工作效率。

比如,我们要提高发动机效率,并不需要要研究千次、万次的燃烧过程,只要从研究一次进气、压缩、燃烧、排气一个周期入手;

再如运输问题,我们可以通过一次往返运输过程的研究,明确该从哪些环节下手实现安全、快捷、节能等问题。

2.2 编程中的循环问题

现在我们可以提出一个问题:在计算机程序设计的世界里是否也有类似的这种相同操作重复出现的问题呢?我们又当如何提高程序设计的工作效率呢?

利用最简单累加求和的例子。

例:求1+2+3+4+5+…+10的和。

利用所学知识学生很快能写出这个问题的程序:

#include<stdio.h>

main()

{int s;

s=1+2+3+4+5+6+7+8+9+10;

printf(〝%d〞,s);}

接下来把题目改成:求1+2+3+4+5+…+100的和。

同样学生可以利用上面的方法实现:

#include<stdio.h>

main()

{int s;

s=1+2+3+4+5+6+7+8+9+10;

printf(〝%d〞,s);}

在编写的过程中学生会发现此种方法虽然可行,可是写起来麻烦费时。我们如何对其进行改进呢?

首先,复杂操作简单化——将一个复杂操作化为多个简单操作;

#include<stdio.h>

main()

{int  s=0;

s=s+1;

s=s+2;

s=s+3;

s=s+4;

………

………

………

s=s+100;

printf(〝%d〞,s);}

经过改进之后会发现,虽然每一行变简单了,但是行数却增加了,在工作量上并没有减少。经过观察可以发现,被框起来的部分虽然不同但已经十分相似。下面引导学生如何利用常量与变量的关系把不同的行变成相同的,也就是第二步变化。

接下来,简单操作相同化——多个简单操作整理成相同操作;#include<stdio.h>

main()

{int  s=0,i=0;

i=i+1; s=s+i;

i=i+1; s= s+i;

i=i+1; s= s+i;

i=i+1; s= s+i;

………

………

………

i=i+1; s= s+i;

printf(〝%d〞,s);}

经过第二步之后会发现原本不同的语句变成了相同的语句,我们在整个过程中都做着重复的、相同的事情,也就是前面所说的循环。下面就可以引出本节课的重点循环结构。

最后,相同操作重复化——设计控制相同操作执行多次。

#include<stdio.h>

main()

{int  s=0,i=0;

i=i+1; s=s+i;

i=i+1; s= s+i;

i=i+1; s= s+i;

i=i+1; s= s+i;

………

………

………

i=i+1; s= s+i;

printf(〝%d〞,s);}

通过实例总结,循环结构程序设计的思想:

①复杂操作简单化——复杂操作化为多个简单操作;

②简单操作相同化——多个简单操作整理相同操作;

③相同操作重复化——循环控制相同操作重复执行

经过这几步变化可以将循环的思想简单明了的呈现在学生眼前,学生只有真正理解掌握了循环的本质,才能在以后的学习过程中很好的去运用。这种方法在日常教学中得到了很好的效果,也得到了学生的认可。

3. 循环本质

循环结构程序设计的任务就是设计一种能让计算机周而复始地重复地执行某些相同代码的程序。换句话说就是:相同语句程序员只编写一次代码、并让计算机多次重复执行。将程序员从大量重复编写相同代码的工作中解放出来,计算机的工作量并没有减少。

利用循环的好处是:节省编程的书写时间,减少程序源代码的存储空间,减少代码的错误,提高程序的质量。

这就是程序设计过程中循环的本质。

了解掌握了循环的本质接下来讲解循环的三要素、三种循环语句的结构及执行过程就很容易被学生接受了。

4. 结束语

此方法较以前的教学学法有了很好的改进,对于循环问题学生不再有畏惧感,也为以后数组及其他知识的学生打下了基础。

如何让一名初学者尽快摆脱日常的思维定式,更加透彻地理解和掌握程序设计中的基本思想,领会程序设计的精髓,总结出程序设计中每一种程序设计结构的本质及适合解决的问题,是高级语言程序设计这门课程在讲授过程中,应该时刻注意的问题。

参考文献:

[1] 谭浩强. C 语言程序设计(第二版)[M]. 北京:清华大学出版社,1999

[2] 苏运霖译. 计算机程序设计艺术第1 卷 基本算法[M]. 北京:国防工业出版社,2002

结构化程序设计篇6

1.在《C程序设计》与《数据结构》教学中对课程整合概念的理解

理论上,课程整合是指对课程设置、各课程教育教学目标、教学设计、评价等诸要素作系统的考察与操作。在实际教学中,课程整合是指考虑到各门相互分裂的课程之间的有机联系,将这些课程综合化。

在传统的教学模式中,《C程序设计》是先行课程,《数据结构》是后续课程,它们都是学习操作系统、数据库原理和应用、面向对象程序设计等课程的基础。《C语言程序设计》是学生最先接触的结构化程序设计语言,其教学目的主要是使学生了解结构化程序设计的算法和思路,掌握程序设计和调试的基本技巧,培养良好的软件设计基础。《数据结构》主要是研究非数值应用问题中数据之间的逻辑关系和对数据的操作,同时还研究如何将具有逻辑关系的数据按一定的存储方式存放在计算机内。其教学目的主要是使学生掌握数据的逻辑结构、存储结构及其相应的算法,培养学生解决实际问题的能力,即能够把现实世界中的客观问题,变换为在计算机内的表示形式,学会组织数据、选择算法、养成良好的程序设计风格。

《数据结构》课程中分析数据之间的逻辑关系和确定数据在计算机内的存储结构是所有程序设计过程中必须完成的两大任务,且《数据结构》中算法描述的语言又多采用C语言,两门课程之间存在着紧密而内在联系,为两门课程的整合提供了可能性。

2.《C程序设计》与《数据结构》的教学现状

在传统的教学模式中,《C程序设计》是先行课程,《数据结构》是后续课程,将两门课程分开来教学,人为地割断了它们之间的内在联系,导致学生在学习《C程序设计》时,仅局限于C语言的语法层面上,不能把C语言的程序设计思路和语法知识具体运用到数据结构的算法中去,使理论知识与实践运用脱钩。而在学习《数据结构》时,由于教师的更换和教材的多样化,任课教师又不得不花掉一、两周的时间来复习C语言的相关知识,造成了课时的浪费和学生反感。在具体运用时,又出现学生能理解数据结构中的算法和读懂算法,却不能运用C语言去实现算法等程序设计能力较差的现象。笔者长期从事这两门课程的教学工作,一直在探索如何提高这两门课程的教学效果,培养学生运用C语言这个工具去解决实际问题的能力。

3.《C程序设计》与《数据结构》课程整合的思路

在高职院校计算机应用专业的课程体系中,实现《C程序设计》和《数据结构》这两门课程的整合,要结合职业教育培养实用型人才的目标,根据后续专业课程的需要来确定。《C程序设计》和《数据结构》课程整合化的思路以C语言为工具,以实践为中心,重视基础知识,注重能力培养,对两门课程教学内容和教学模式进行优化和整合。

在实施过程中,将这两门课程整合为一门课程,课程名称为《C程序设计与数据结构》,在一个学期内完成授课内容。坚持理论联系实践的教学模式,突出实践教学的重要性,去掉繁琐的理论推导,重新设计教学、实训大纲,处理教材,合理分配学时。在具体教学中,以C语言为主线,将数据结构的内容溶入到C语言的教学中,对数据结构的内容以“适度够用”为原则,适当地进行删减,以满足高职教育培养应用型人才的教学需要。

4.《C程序设计》与《数据结构》课程整合的具体实施

(1)整合后理论课教学的内容和学时分配

整合后周学时为6节,总学时为102节(按17个教学周计),其中理论课时为68节,上机实践课时为34节。

(2)课程整合后的实践教学设计

在实践教学中,要进一步巩固对理论知识的理解,提高学生灵活运用数据结构和算法的能力,使学生在编程、上机操作、程序调试与正确性验证等基本技能方面得到训练和提高。实验可分两部分,一是验证性实验,主要结合课堂理论教学内容展开,学生可以对在课堂上学到的基本算法进行验证;二是运用性实验,组织学生以小组为单位设计一些实用程序,要求学生从实际出发,在具体、真实的环境中分析研究数据对象的特性,构造合理的数据结构以及相应的算法。

(3)课程整合后的考试要求

整合后的课程培养目标是提高学生的计算机应用能力,计算机应用能力包括了三个层次:操作使用能力、应用开发能力和创新能力。因此整合后的课程考核,应采取理论基础闭卷和上机操作开卷相结合的方式进行,综合评价应从以下三个方面来着手。

①笔试。笔试主要是考察学生对理论知识的系统性的理解,可由客观题型(如选择、填空题等)和主观题型组成,客观题型要立足于基础知识,小而全,避免死记硬背。主观题型要灵活多样,如问题解决分析、程序编写等。占整个评价的30%。

②上机实践。上机实践贯穿于整个教学当中,所以要注重过程考核,结合实训计划,在各单元模块结束时,进行随堂考核,并认真检查和记录学生考核情况,作为期末上机实践成绩的一部分。实行各单元过关,有了各单元模块的考核,到期末上机操作综合考核时就不成问题了。通过对上机操作实践的评价,可以考察学生应用计算机解决实际问题的能力。占整个评价的40%。

③学生的平时表现。学生的平时表现是指是否认真上课、听课,上机练习的任务是否独立完成,上机设计的任务是否有创意,作业是否按时上交等等,这些资料的积累,有利于对学生学习情况的全面认识。学生在整个授课过程中的表现,占整个评价的30%。

在课程整合中,合理的考核方案能促进学生知识的积累,避免学生考前突击和死记硬背现象,使学生真正学到知识。

随着我国经济的突飞猛进和国家对职业教育的高度重视,高职教学改革也在不断深入,探索高职计算机专业应用型人才的培养模式,加强《C程序设计》与《数据结构》课程建设与教学改革也将不断深入,作为一名长期从事计算机教学的教育工作者,更要转变观念,探索新的教育教学模式,培养更多适应我国社会主义现代化建设需要的高素质应用型专业人才。

结构化程序设计篇7

1.思维导图

思维导图(Mind Maps)是英国人东尼?博赞(Tony Buzan)在20世纪70年代提出的一种先进的记笔记方法,一般通过带顺序标号的树状结构来实现思维过程,它是以图和直观形象的线条进行思考和表达的,并将放射性思考实现具体化。国外的一些世界500强企业,如微软、IBM、惠普等,都是思维导图的第一受益者和倡导者。思维导图主要由图像、颜色、曲线和关键词等元素构成,其主要特点有:主题主干作为分支呈放射状、注意力主要集中在中央图形上、分支构成一个连接的节点结构体系、由关键词或关键图形构成分支。

2.“C语言程序设计”课堂教学的现状

《C语言程序设计》是一门理论与实践并重的程序设计课程,教学难度较大,对于很多知识,学生总是似是而非,概念模糊,不能完全理解和掌握。

目前,《C语言程序设计》课程教学情况主要表现在以下几个方面:

(1)在教学模式上,教师多采用多媒体教学,课堂理论加上机实验的教学模式,课堂理论为主;

(2)在教学手段上,教师按照CAI教学课件进行讲解,学生所接受的都是零散的知识,这一节课学完,下一节课可能就忘记了最基本的知识点;

(3)在教学方法上,以教师讲授为主,缺乏师生互动和驱动式任务教学,对于课程和章节,学生也不能从整体进行认识和掌握;

(4)在实验环节中,由于学生对基础理论知识掌握的不够扎实,在上机课时,只是机械的照搬教材代码,以验证课堂内容为主,不能很好地理解程序的编程思路和方法,以致于课程结束时,学生不能很好地开发一个小的C语言程序。

为了加强学生的逻辑思维能力,提高学生学习效果,我们将思维导图这一教学方法应用在《C语言程序设计》课堂教学中。

3.思维导图在C语言程序设计课堂教学中的探索

在《C语言程序设计》这门课程中,教学内容非常多, 包括程序设计基础知识、常量变量、数据类型和表达式、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、指针、用户自己建立用户类型、文件的输入输出等。

(1)课程的综合性设计。由于C语言内容较多,学生对知识只是进行线性的接受,不能对课程形成整体的认识,因此,首先对课程进行整体设计。

采用XMind思维导图设计软件,对C语言课程整体结构图进行设计,如图1所示。

在第一节课授课过程中,教师采用思维导图呈现给学生这门课程的整体结构,学生头脑中能够对课程有整体的认识和了解,有助于提高学生的学习兴趣和求知欲望,便于学生进一步学习。

(2)章节的连续性设计。C语言中的三种程序设计结构在知识讲授结束时,要进行章节的总结,将三种程序结构的相关知识以思维导图的形式展现出来,一方面不仅可以加深了学生对知识的理解和掌握,另一方面也潜移默化地引导学生主动学习和对知识连续记忆的能力。

(3)知识点的扩展性设计。在引入新章节时,教师首先向学生展示章节完整的思维导图,将其作为目标教学的工具。思维导图的运用能使学生明确学习目标、学习内容与范围,以及各知识点之间的先后顺序,能够更形象、更直观、更全面的表述学习进度目标。以循环结构一章为例,教师首先给出整体的章节结构,同时每个知识点都可以进行扩展,辅助学生记忆。

(4)学生的自主性设计。在进行章节复习时,教师展示章节完整思维导图的同时,引导学生自行绘制出思维导图,教师也可以只给出提示或关键词,引导学生建立内容全面、详实的思维导图,从而建立自己的知识结构,更好地掌握知识。

教师通过学生设计的思维导图能够发现学生的知识结构和对知识的理解和认知程度,从而更好的优化教学。学生在自我设计过程中,能够及时发现知识的盲点区,不断学习并进行弥补,提高自己对知识的掌握。

4.结语

结构化程序设计篇8

关键词:数据结构;课程设计;教学质量

数据结构是计算机专业的核心课程之一,是计算机软件技术的基础,以数据为中心讲述问题如何在计算机程序中得以实现。该课程的教学不仅要注重学生对理论知识的理解,更要培养学生能针对具体问题,设计合理的数据结构,对数据进行有效的存储、操作,并能完成相应的高效算法。课程设计的教学是整个教学环节中非常重要的一环,它弥补了课堂教学中实践少的缺陷,其教学目标不仅要培养学生缜密的逻辑思维和数据抽象能力,更要培养学生在软件设计领域科学的思维方式,将算法理论和编程实践完美结合,能够在工程实际中灵活应用。因此不断改进课程设计的教学方法,提高教学质量是培养高素质软件人才的迫切要求。

1存在的普遍问题

1.1编程语言基础差

数据结构课程设计通常是在大二进行,算法是基于C/C++语言。虽然学生之前已先修过这些课程,但C++本身规则复杂,面向对象的思想不容易掌握,而学生又没有经过系统训练,普遍存在编程语言基础薄弱、对调试程序的方法不够熟练、程序结构设置不合理、代码编写可读性差等问题。不少同学反映算法能听懂,看教师演示一些实例也觉得简单,但轮到自己编程就无从下手。这种状况直接制约了学生完成课程设计的质量[1]。

1.2缺乏系统的软件开发思想

计算机专业的课程体系中,软件工程通常安排在数据结构课程设计之后,这样学生在进行课程设计时,尚不具备软件开发的思想。遇到问题时,只考虑怎么实现,没有进行整体软件开发的过程规划,忽视了软件的性能、质量、甚至于需求都不甚明确就急于动手编写程序。这样的做法使得课程设计的完成效率很低,经常需要返工。

1.3教师的指导“过多”或“过少”

课程设计中,教师的指导相当重要,但是目前存在两个极端,有的教师对每个课程设计都讲解得面面俱到,如何实现,用什么样的存储结构,所得结果等都作了交代,学生只是被动的接收者,这种“填鸭式”的教学方式制约了学生的创新能力。而另一个极端,有的教师认为课程设计是由学生上机完成的,教师督促学生,最后给出考评,对学生完成课程设计的过程关注太少,很多学生因此敷衍了事。教师如何把握指导的度,如何指导是学生能力能否得到提高的一个重要因素[2]。

1.4考评制度不合理

长期以来,课程设计报告被看成是评定学生成绩的一个重要依据,而对学生软件开发的过程关注不多,学生只要上交了报告就能获得成绩[3]。这样的做法导致学生过度追求报告的整洁度、实验结果的正确性等。甚至部分同学抄袭、直接从互联网上下载报告交差。一个学期下来,除了交了几份报告,学生的收获甚少,课程设计教学效果甚微。因此,必须改革考评制度,才能真正培养学生的动手能力、创新能力。

2提高课程设计教学效果的措施

2.1规范软件开发的过程,培养良好的编程习惯

在学生开始课程设计前,教师首先通过一个具体的实例,从需求分析、概要设计、详细设计、编程测试等各个方面出发,让学生了解完整的开发软件过程。在数据结构课程教学中,所有算法均用可运行程序讲解,避免出现懂算法不懂编程的现象。有意识地让学生强化编程的技巧、调试方法、面向对象思想等内容。

我院数据结构课程组教师采用面向对象的思想,将数据结构中基本算法全部用C++模板类实现,学生通过多看、多读这些规范的程序,取得了不小进步。

2.2梯度命题,循序渐进开展课程设计

课程设计以往是教师根据实验指导书布置课题后由学生完成,部分学生感到难度很大,无从下手。现阶段我们将课程设计改为验证型、验证设计型、设计应用型多种层次,针对各种基本数据结构,教师首先用模板类实现,学生在课程设计时先用实例验证程序,在此基础上,设计出预留的一些函数接口,实现该类的部分功能。最后再针对某一具体问题,由学生开发出完整的程序。这是一个由易入难的循序渐进的过程,学生通过验证型实验更加牢固掌握基本数据结构,再由验证设计型和设计应用型实验学会如何应用数据结构,如何在计算机中实现存储,实现各种需求的功能。

下面以二叉树部分内容为例,首先实现二叉树的模板类如下:

/*二叉树类*/

template

class BinaryTree

{

public:

BinaryTree():m_root(NULL){} /*构造函数*/

~BinaryTree()//析构函数

/*按以先序次序输入结点值的方式建立二叉树的接口函数*/

void Create1(ElemType ch[],const ElemType &endChar);

/*以二叉树的先序和中序次序建立二叉树的接口函数*/

void Create2(ElemType ch1[],ElemType ch2[],int );

/*先序递归遍历二叉树的接口函数*/

void PreorderTraverse (void (*visit)(const ElemType &));

/*中序递归遍历二叉树的接口函数*/

void InorderTraverse (void (*visit)(const ElemType &));

/*后序递归遍历二叉树的接口函数*/

void PostorderTraverse (void (*visit)(const ElemType &));

……

private:

BTNode *m_root;

/*按先序次序输入结点值的方式建立二叉树*/

void _Create1(BTNode* &,ElemType ch[],const ElemType &,int &);

/*已知二叉树的先序遍历次序及中序遍历次序,建立二叉树*/

void _Create2(BTNode * &,ElemType ch1[], ElemType ch2[],int ,int ,int &);

/*先序递归遍历二叉树*/

void _PreorderTraverse(BTNode* ,void (*visit) (const ElemType &e));

……

};

对于这样的模板类,设定的验证型实验为:给定一棵二叉树,验证其先序中序和后序遍历结果。在掌握了二叉树遍历的基础上,设计出模板类中预留的两个接口函数create1和create2。最后,安排设计型实验为创建表达式树;分别用三种遍历方式遍历该树,比较它与实际的波兰式、中缀式和逆波兰式之间的区别;完成给定表达式树的表达式求值运算。这样有梯度地安排课程设计,一方面强化了基本概念,另一方面引导学生完成更复杂的设计。对基础薄弱的同学来说,验证型实验难度不大,基本都能完成,大大增强了自信;对优秀学生来说,挑战设计型实验更能提高自身的能力。

2.3抽丝剥茧,层层深入启发

学生遇到复杂问题时,往往一筹莫展,不知如何下手。教师应教会学生如何从问题本身出发,层层分析,应采用哪种数据结构,用到什么样的操作,在这样的操作需求下应用何种存储方法比较合适,最后细化到具体的函数实现。

如教学计划编制问题[4],要求根据课程和课程之间的先修关系,得到合适的教学计划安排。首先分析这个问题是对有向图进行拓扑排序,课程和课程之间的先修关系可用有向图描述出来。数据结构为有向图,存储方式为邻接表,应用的操作是拓扑排序。拓扑排序的基本思想是先输出有向图中入度为零的顶点,再从图中删除该顶点和所有以它为尾的弧,重复执行,直至图中所有顶点均输出为止。要完成拓扑排序,首先要求出图中所有顶点的入度。拓扑排序算法中还用到了一个辅助的数据结构栈,因此还需要初始化栈、出栈,入栈,判定栈空等操作实现。这样层层分析下来,程序中需要的函数一一明了:创建有向图、邻接表的建立、求顶点入度、初始化栈、出栈、入栈、判定栈空、拓扑排序等。函数层次关系图示如图1所示。

图1函数层次关系图

通过这样的教学方式,学生学会了带着问题去思考,逐步学会将大的程序化解成若干小函数,最终经过整合完成整个设计开发。

2.4加强团队合作,调动每位同学积极性

在课程设计中,针对每一种数据结构安排了一个工程性综合实验,这个综合实验由几名同学组成小组合作完成。团队成员分工明确,一名同学担任组长,负责组织和控制组内的工作进程,强调任务落实到组内每一个同学。

教师布置任务后,每个团队将软件开发流程应用到课程设计中,实质性进行问题规划、模块划分、项目整合等工作。只有团队中每个成员都积极面对,整个团队才能获得优秀成绩,无形之中鞭笞每位同学认真对待。在一个团队中,大家集思广益,可以跟伙伴一起交流,互相学习,形成共同进步的良好局面。

最后在验收答辩时,团队中每个成员都应汇报自己所做工作,教师和其他团队可以提问,交流开发过程中的心得。

2.5改革考评制度,从多角度综合考虑成绩

合理的考评制度可以对课程设计过程进行有效的监控,通过考评体系可以反馈各阶段的进展情况,便于总结经验,找出不足,保证课程设计的质量和效果。课程设计考评有别于普通的课程评分,我分院数据结构课程设计的成绩由几个方面综合决定:课程设计的内容、课程设计的实现以及实验报告。各项考评指标均有一定的权重,能够比较客观公正地确定学生成绩。其中课程设计的内容主要考虑学生所选课题的难易度、工作量多少。实现过程主要考虑完成情况、软件代码规范化、文档规范化、答辩质量等,最后由学生提交设计报告进行总结和讨论。设计报告除了包括常规的系统需求分析,概要设计,详细设计,调试分析和实验结果外,还鼓励他们提出优化方案,对于每个课程设计再“多想一点”,即其他可能存在的求解方法,如已经使用了链式存储结构实现,那使用顺序存储结构如何实现?各种设计的优缺点是什么?如何提高时间空间性能?通过总结,学生对问题有了更加深入全面的理解,锻炼了扩散思维方式,培养了创新能力。同时教师对评价优秀的学生或团队给与奖励,促使学生之间形成你追我赶的良好学习氛围,整体提高教学质量。

3结语

数据结构作为计算机专业的重要基础课程之一,对学生软件开发习惯的培养至关重要。提高课程设计教学质量不仅可以巩固基本知识,还可以让学生适应快速发展的软件开发技术,激发学生学习和研究的兴趣。本文从五个方面讨论了提高课程设计教学质量的措施,通过一个学期的教学实践,从效果上来看,这届学生分析问题、解决问题的能力,综合创新能力,学习积极性都比前几届学生有了明显提高,绝大部分的同学都能顺利完成课程设计并获得较好成绩,这为他们后续的课程打下了坚实的基础。

参考文献:

[1] 庞晓琼. 案例驱动的数据结构课程设计教学改革实践[J]. 计算机教育,2009(1):53-64.

[2] 陈越,何钦铭,冯雁.“数据结构”综合性课程设计教学探索与实践[J]. 计算机教育,2008(8):54-55.

[3] 李群,赵玉霞,庄波.《数据结构》实验课程设计与探讨[J]. 中国现代教育装备,2007(3):27-28.

[4] 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社,2006:180-182.

Discussion and Practice on Improving Teaching Quality of Data Structure Course Design

XU Chong, WANG Libo, JIANG Juan

(College of Computer Science, Hangzhou Dianzi University, Hangzhou 310018, China)

Abstract: Data Structure course design is an important professional practice lesson for computer major in university or college. According to the current situation of the low teaching quality for course design, based on the experience in our college, the paper puts forward several steps on improving the teaching quality, and then have been analyzed and discuissed.

Key words:Data Structure; course design; teaching quality

上一篇:三维测量范文 下一篇:心理测验范文