公务员期刊网 精选范文 程序设计报告范文

程序设计报告精选(九篇)

前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的程序设计报告主题范文,仅供参考,欢迎阅读并收藏。

程序设计报告

第1篇:程序设计报告范文

【关键词】社会调查;证据性;鉴定意见

近年来,我国未成年人刑事审判已将社会调查报告制度纳入其中。但在司法实践中还存在调查主体多样、关联性较弱、内容专业性不强、相关诉讼程序不规范等问题。为此,应在肯认该制度价值的前提下,明确社会调查报告的证据属性,提升其证明力,以诉讼证据程序规范运作。

一、社会调查报告存在的问题

《刑事诉讼法》第268条规定倡导未成年人刑事案件的审前调查工作制度。人民检察院、公安机关也对该项工作进行了类似的相应规定。[1]不过,当前的该制度规定较为粗糙,缺乏可操作性。

(一)调查主体问题

根据相关规定,公、检、法都可以成为社会调查主体,但控、辩、审任何一方都难以保证相关事实及分析评价的全面性和客观性。控方指控犯罪的职能很可能影响调查报告内容的客观中立性。尤其对自诉案件而言,问题更为明显。法院过多介入调查既做“裁判员”又做“运动员”,被置于利益博弈的一极。辩护方能控制的社会资源相对有限,能否顺利地开展社会调查存在一定障碍。

(二)报告内容问题

以重庆市沙坪坝区人民法院制作的社会调查报告为例[2],调查报告分为涉案人基本情况、家庭情况、平时表现、涉罪后表现以及管教条件及措施五大部分。内容包含了对未成年被告人有利和不利的内容,不同内容对犯罪事实认定、量刑判断具有不同影响。报告内容主要由未成年被告人的近亲属、社区组织人员等提供,缺乏人身危险性因素的专业性评价,不符合量刑的规范化目标。

(三)诉讼程序问题

现行相关规定仅为缺少可操作性的倡导性规定,对调查报告的采信、质证等核心制度处于真空状态。更重要的是,相关规定未将调查报告列为法定证据,容易令其成为法官恣意的工具。

二、社会调查报告的证据性分析

案件审理时,一般仅将调查报告作为参考依据。而事实上,其作用有所超越,这不仅存在于量刑阶段,甚至在定罪阶段。有鉴于此,笔者认为益将其作为证据之一种在审判程序中予以规范。

(一)证据关联性分析

一个具有关联性的证据材料,应具备实质性和逻辑上的证明力。[3]判断证据是否具有关联性,需要三个连续的推论:一是从证据性事实(证据提出者主张的证据事实)得出推断性事实(依据证据事实进行推断得出的事实)。二是提炼出要素性事实。三是符合法定要件事实。[4]未成年人刑事审判价值定位在于坚持教育为主、惩罚为辅的原则,对未成年犯实现教育、感化、挽救。确有必要对其家庭环境、平时表现等情况(证据性事实)进行全面调查,据此得出关于犯罪原因、人身危害性以及社会危害性的意见(推断性事实),进而提炼出符合法律规定的要素性事实,为从轻或减轻处罚提供依据。由此可见,调查报告与案件具有关联性。

(二)社会调查报告的科学专业性分析

对报告的认定可分为三个层次。首先,将对未成年人生活环境、社会活动等各方面事实的考察,作为判断未成年人人身危害性等因素的第一层次。然后,专业人士运用心理学知识或其他类似的方法,对未成年人心理进行诊断,做出未成年人人身、社会危害性的专业性评价。最后,由法官从报告中提炼出符合法律规定要件事实的相关要素。

而司法中往往将上述有机统一的完整体系予以割裂,一种倾向于用社会学的方法进行调查;一种倾向于运用医学、心理学等知识,弄清楚未成年被告人犯罪行为与生理精神状况之间的因果关系。[5]实践中,往往将前者用于对过往经历的调查,而将后者用于对未来行为的影响。社会调查与心理干预两种制度被人为区分,不符合事物发展的客观规律,不利于对调查报告法律属性的定位。融入心理干预能提高调查报告的专业性,可将调查报告归为“鉴定意见”这一证据类型。

三、社会调查报告在审判中的程序完善

由于调查报告内容大多涉及个人品格,容易对他人产生晕轮效应,影响裁判公正。所以规范调查主体和质证程序既能降低司法成本,又能防止不公。

(一)规范报告制作和评判两个方面。制作方面,公、检、法应限于报告制作发起人的身份,由社会团体组织或社区基层组织具体负责形成报告中的事实主体部分。评判方面,不宜由审判机关直接进行法律评价。应整合心理干预制度[6],引入专家评价,增强调查报告的证明力。

(二)消除影响公正裁判的“晕轮效应”。一是区别对待报告内容。因报告内容涉及个人品格、性格特征等不具有直接证明力的事实,采纳该类证据易产生偏见,特别是针对被告人的不利证据。因此可通过以下方法修正:(1)用以证明犯罪的不利证据,如仅以被告人的个人品格、性格特征等不具有直接证明力的事实为内容,则不得采信。(2)差别对待有利和不利证据的证明标准。如良好的品格证据,证明标准只要达到“优势证据”即可,而不利的品格证据,则应达到“排除合理怀疑”的程度。[7](3)限制调查报告中对未成年被告人不利证据的提出时间。将其严格限制在量刑阶段提出。相反,放宽反映未成年被告人品格良好内容的提出时间,在定罪、量刑两个阶段均可提出。

(三)完善庭审质证和证据采信程序。量刑阶段,可由得出报告结论的专业人员宣读社会调查报告,双方对报告进行质证。证据采信上,若其证明会导致不公正偏见、混淆争议时,则法官应不采信该证据。

四、结语

未成年审判中引入社会调查报告制度,实质上是在量刑时考虑罪犯的品格,帮助法官准确认识罪犯的人身危险性,从而对罪犯科以合适的刑罚。司法实践中已有运用之实,但规范笼统难以确保该制度的功能发挥。当务之急在于尽快明确调查报告的证据性,通过规范证据程序来将该项制度导入正途。

参考文献:

[1]参加《人民检察院办理未成年人刑事案件的规定》第16条、《公安机关办理未成年人违法犯罪案件的规定》第10条.

[2]重庆市沙坪坝区人民法院率先在未成年刑事审判中探索社会调查制度的运用,在全国范围内具有较大影响,受到社会各界的广泛关注.

[3]【美】乔恩・R・华尔兹著:《刑事证据大全》(第二版),何家弘等译,中国人民公安大学出版社,第19页.

[4]【美】罗纳德・艾伦等著:《证据法:文本、问题和案例》,张保生、王进喜、赵滢等译,高等教育出版社2006年版,第146-158页.

[5]罗芳芳:《的证据学分析》,“证据科学与理论”国际研讨会论文.

第2篇:程序设计报告范文

【关键词】开放式实验教学 程序设计 教学改革

【中图分类号】G 【文献标识码】A

【文章编号】0450-9889(2016)09C-0048-02

现阶段高职院校学生程序设计能力还相对较低,这主要是由实验教学模式存在问题所致,传统教学模式仍在程序设计教学中沿用,这在很大程度上抑制了教学成效的提升。开放式实验教学是一种先进的实验教学模式,它以培养学生创新意识和创新思维为目标,在运用科学思维方法的基础上大胆设计解决某个领域的相关问题,作为一种教学模式具有高度开放的特征。开放式实验教学能够实现对学生创新精神和实践动手能力的有效培养,是推动高校人才培养目标实现的核心途径。相对于其他教学模式,开放式实验教学在巩固相关知识、培养工作能力、养成科学作风方面具有明显的优势,它能够在提升教学成效的同时有效培养学生的程序设计能力,对于教学目标的完成更加有利。因此,高职院校教师应当进一步强化开放式实验教学,进而培养出更多具备较高程序设计能力的人才。本文试分析程序设计类课程实验教学现状,探讨开放式实验教学中提高学生程序设计能力的有效策略,从而为教学改革提供理论依据,推动教学水平的提升。

一、程序设计类课程实验教学现状

传统实验教学围绕教师开展,教师依据实验大纲和教学大纲进行实验任务的布置,学生被动执行实验任务。这种传统实验教学模式应用于计算机程序设计类课程JAVA、C++中,会使得学生实际动手能力难以得到有效培养,最终造成理论与实践相脱节。由于实验教学中学生缺乏明确目标,学生无法对实验课程产生强烈兴趣,他们机械化完成实验任务时创造性思维发展会受到抑制,其程序设计能力很难得到实质上的提升。指导教师的辅导对象往往是个别有兴趣的学生,很难提升整体实验教学效果。通过对多年程序设计类课程实验教学进行了解不难发现,传统实验教学模式通常带来以下问题:

(一)实验教学形式僵化,学生思维难以发散

教师开展一段时间理论课程后就会安排实验课程,并依据教材配套实验任务演示讲解,然后给学生预留一定时间完成实验任务。配套实验任务设计通常能够较好地实践和验证阶段性理论知识,但是这种设计形式下的实验教学也具有形式僵化、内容陈旧等问题,教师依据实验步骤进行正确结果的演示,学生模仿教师进行实验步骤的重复。这种情况下学生思维很难得到锻炼,如果完全依据教师演示就会获得相应的实验结果,但是一旦出现偏差学生就不知道怎样处理。一旦出现问题学生通常会直接请教教师,或者重新进行实验步骤,对于为什么会出现这些问题学生很少会去思考,实验结束后收获很少。

(二)实验过程被动,实验结果唯一

传统实验教学模式中学生始终被动地进行实验,他们机械地进行实验操作,只是简单重复一遍实验指导书,这样就能够获得合格的实验结果,很多学生完成试验后很难产生深刻的理解和记忆。另外,还有一部分学生没有进行实际的实验操作,只是简单地抄写同学的实验报告,他们连实验的内容都没有掌握。当前,很多高校学生实验报告的内容都基本相同,这种情况下学生不会对实验进行探索和研究,实验教学很难发挥出应有的作用。

(三)设计和实际相脱离,程序和问题相脱离

传统实验任务通常将相应理论知识验证作为重点,一些实验任务的设计目的正是验证理论。这种情况下学生即使很好地完成实验任务也无法做到理论联系实际,虽然能够正确运行所写程序但却无法达到解决问题的目的。例如,在累加阶乘计算中,学生编写的从1加到100程序虽然能够正常运行并获得正确结果,但从1乘到100通常程序就无法获得预期的运行结果。由此可见在设计好的实验任务中很难会去到某些实际问题,而学生一旦遇到这些实际问题就会束手无策,不知道怎样处理和解决。

二、开放式实验教学中提高学生程序设计能力的有效策略

作为一个新型教学改革项目,开放式教学与传统教学模式存在显著区别,它通过创新实验方式实现学生创新精神和实践动手能力的培养,最终推动高校人才培养目标的实现。在开放性实验教学中学生不仅能够对所学知识进行巩固,还能够形成严谨认真的作风和较强的工作能力,对于完成教学目标具有推动作用,培养出的应用型人才更加具备创新素质。

在具体开放式实验教学中,教师在实验任务设计中不应当设定具体指标,只需将要体现的理论知识罗列出来,这样学生就能够自由发挥,通过自主设计提出自己的实验报告。在实验过程不固定、实验结果不统一的情况下,学生就不会提交相似的实验报告,这样他们不仅会产生更大的实验热情,还会将自身的创新精神最大限度发挥出来,同时和教师充分交流实验过程中遇到的问题。这种方式对于那些过去不进行实验、抄袭实验报告的学生也会产生影响,由于和其他学生的实验任务不同,他们无法抄袭别人的实验报告,只能根据教师的指导设计和完成简单的实验任务。

(一)开放实验教学,鼓励学生自主创新

实验教学应当改变教师单纯演示、布置实验任务的做法,而是由教师从理论课出发针对某个问题引导学生进行实验任务的自主设计,然后在设计实验过程中进行相关理论知识的运用和验证。这样学生创新意识就能够充分发挥出来,实验创新能力和动手能力才能够得到有效培养,进而推动学生科研工作方法和科研思维方式的形成,使得学生能够在实验中解决问题,进而更好地进行程序设计和项目开发。例如,教师在指导学生进行火车售票模拟系统设计时,应当先将其中会应用到的理论和知识传授给学生,并让学生归纳程序设计中应当注意的问题和需要解决的问题,再在此基础上进行自主设计,对于学生难以解决的问题教师可以给予相应的指导。在这个过程中不仅能够培养学生的创新意识,还能够锻炼他们的动手能力和科学思维方式。

(二)学生掌控实验过程,产生多样化实验结果

在提出问题、形成概念、解决问题等过程中,学生应当独立思考、积极探索,这样他们才能够处于教学活动的中心,开放式实验模式才能够在教师的引导下有序运行。在开放式实验教学中学生应当获得更加广阔的空间发挥能动性和创造性,通过贯彻因材施教、发展个性的原则,为学生创造出良好的发展成长氛围。让学生主导实验过程,不仅能够将学生主体作用充分发挥出来,还能够使他们产生更大的参与热情,用主动学习代替被动学习。另外,教师还应当引导学生产生多样化的实验结果,这样学生探索创新的欲望才能够被有效激发出来,进而更加积极地投入到实验当中去,多样化实验结果还能够引发学生进行更加深入且广泛的思考,进而实现自身设计能力的提升。例如,在程序设计教学中,教师往往会规定程序设计步骤,告诉学生在哪个阶段应当进行什么内容的设计,在开放式实验教学中教师应当让学生自主进行程序设计步骤的安排,然后根据自身的思路和想法进行实验,同时不定时了解学生实验进度,并给予必要的指导。

(三)问题驱动设计,程序贴近实际

对学生掌握理解计算机逻辑设计进行训练是计算机程序设计课程的主要目的,学生能够通过程序设计对计算机解决实际问题的过程进行控制。所以在学习过程中学生应当实现问题驱动设计,设计目的来源于问题、设计结果回归到问题。研究问题是学生进行不断学习的目的,这样学生能够在问题解决过程中获得成就感,进而更好地培养相应实践能力。实际当中程序设计应当和实际生活应用紧密结合,而不能局限于课堂上构建的理想环境。例如学生设计火车售票模拟系统时,教师可以首先提出实际中经常遇到的问题,包括一个人一次可以买几张,多个窗口同时购票情况下的先后顺序。

三、结语

在计算机得到普遍应用的今天,程序设计已经成为日常工作中的重要技能。然而,当前高职院校学生程序设计能力还存在较多问题,这主要是由于教学模式陈旧、落后造成的。因此,高职院校应当对程序设计实验教学进行强化,用开放式实验教学替代传统教学,进而实现对应用型人才的有效培养,以满足信息化社会发展的需求。由于程序设计需要学生具有较强的实践能力和创造能力,所以高职院校应当有效提升实验教学的开放程度,同时在实验教学过程中充分贯彻开放性教学思想,通过相互衔接、多种形式的开放模式有效提升学生程序设计能力。本文分析了程序设计类课程实验教学现状,并在此基础上探讨了开放式实验教学改革策略,希望高职院校教师能够加强对开放式实验教学的重视,有效提升实验教学成效,最终为社会培养出更多的合格人才。

【参考文献】

[1]张永梅,马礼,孙晶静,等.培养学生程序设计、实践与创新能力的探索[J].电脑知识与技术(社会科学版),2016(1)

[2]张野,宋微,冯冬茹,等.程序设计实验课堂错误转化提升策略研究[J].赤峰学院学报(自然科学版),2016(4)

[3]任长普,何炎明,张兆梁,等.远程开放教育VB程序设计课程教学实践――以克拉玛依电大教学为例[J].开封教育学院学报(社会科学版),2015(3)

[4]王晓东,朱华,王金发,等.加强实验教学示范中心建设 促进实验教学改革[J].实验室研究与探索(自然科学版),2015(1)

第3篇:程序设计报告范文

关键词:计算机专业;程序设计;基础课程;教学改革

程序设计课程与计算机学科的基础教学密切相关,学生要想学好计算机基础课首先就要明确程序设计的基本思路及其原理。通过学习程序设计的基本原理,学生可以掌握程序设计的流程与思路,在此基础上尝试创新程序设计。相比于传统教学,新时期的计算机程序设计课程致力于培育创新能力,通过课堂创新的方式来激发同学们的兴趣[1]。为此在改革程序设计的基础课程时,师生有必要做到密切配合,共同探求更适合程序设计课堂的新型教学思路。在日常教学中,教师也应当尊重同学们的主体地位,为学员提供自主探究的空间。只有不断改进程序设计的教学思路,才能确保符合新形势下的计算机学科课改方向,从而提高学员的实践素养。

1程序设计基础课的现状

从现状来看,程序设计构成了很多学科的基础课程,计算机专业尤其不能缺少程序设计作为保障。然而从目前现状来看,程序设计的基础课并没有实现完善。受到应试压力影响,计算机专业课堂仍充满压抑和枯燥的氛围。通常情况下,教师负责为同学们讲解程序设计基础的相关知识点,然后选择适当的习题让同学们演练。这样做固然有助于提高同学们的学科成绩,然而却背离了新课改的根本前提,长期以来很多学生就会对程序设计基础产生畏难和厌倦的感觉,因而无法激发对于这门学科的浓厚兴趣[2]。从目前来看,程序设计基础在日常教学中仍体现了如下缺陷:首先,程序设计基础仍缺乏最基本的任务驱动,过于重视程序设计语法。实质上,程序设计基础不仅包含了语法知识,同时还应当设置任务驱动。在任务驱动的前提下,学生才会感觉到程序设计基础课堂是充满趣味的,而并非单调和枯燥的。然而目前在这门学科的日常教学中,很多教师仍忽视任务驱动,师生觉得只要明确了程序设计相应的语法规则,那么就可以应对这门学科的考试。缺乏任务驱动的课堂压抑了同学们的自主探究热情,同时也背离了实践导向的课堂改革。长期以来,很多学生虽然获得了较高的成绩和分数,但却并不符合真正的编程操作要求[3]。其次,程式化的程序设计课堂内容经常脱离实践,不利于学员综合素养的全面提高。长期以来,程序设计基础都是依照既定的模块来展开课堂的。这种状态下,程序设计基础课堂就会十分枯燥,师生过于重视描述性和验证性的程序设计知识,同时也忽视了综合与创新性的编程知识。此外,程序设计中的某些知识点也没有密切结合软件工程的编程实践,因而很难从根源上确保良好的实践效果[4]。通常在程序设计的课堂上,学员只要依照教师的思路来填写报告并且描述既定的编程步骤就可以了,而不必深入探究程序设计的深层知识。这种课堂模式体现了较强的随意性特征,缺乏必要的课堂监督。情况严重时,某些学生甚至会抄袭其他同学的实验报告。第三,程序设计基础没有体现全方位的考核指标,通常停留于笔试形式。如果运用单一的笔试来考核学员的编程水平,则无法明确程序设计的真实水平。同时,现阶段的程序设计考试题目也相对单一,没有做到紧密结合编程实践与基本原理。在这种状况下,学员一旦面对上机操作,经常会感觉到无所适从,无法发挥程序设计方面的创新潜能。由此可见,单一的课程考核指标压抑了学员学习程序设计的热情与积极性,从长期的角度来看也不利于程序设计综合水平的提高。

2改革课程教学的具体思路

计算机专业中的程序设计基础具有较强的复杂性特征,因而在课改过程中也需要不断尝试新思路。师生在课堂上应当做好密切配合,在此基础上致力于降低程序设计的整体难度,确保同学们对于程序设计具有兴趣与热情[5]。为了改进课堂现状,应当依照如下思路来完成课程改革。

2.1做好先期的课堂预备

在进入系统化学习之前,教师先要指引同学们做好先期的课堂预备。很多选择了计算机专业的学员,都是初步接触程序设计。为此,教师应当对于新入学的学生予以全面的指引,做好充足的先期预备。在进入课堂讲解前,教师需要确保同学们明确程序设计的具体运行机制,这样做有助于打好程序设计的基础。学生如果能透彻理解计算机的基本运行原理、程序代码与指令的特征、各种数值的换算方式等,那么就可以迅速进入编程基础的学习中。此外,计算机内存分配的知识也应当构成程序设计的基础。在理解相关概念的前提下,学员将会迅速进入后期的编程实践。例如:内存分配与程序设计之间具有直接性的联系。学生在掌握内存分配问题的基础上,就可以透彻理解不同类型的变量定义。这是由于,对于不同类型的变量而言,在计算机内部占据的存储空间也并不相同[6]。从系统化角度来讲,如果超出了限定的数值范围则容易导致溢出的现象发生。因此,在学习程序设计的前期就有必要了解内存分配的相关问题,通过这种方式为后期的程序设计创新提供必要条件。

2.2激发创新意识与创造潜能

在程序设计领域中,对于不同类型的例题通常可以选择不同的解答方式。通过寻求一题多解的方法,有助于激发同学们在程序设计领域的创新潜能。在程序设计课堂上,教师应当给予学员必要的思维启发,鼓励同学们尝试多样的编程与设计方法。实际上,计算机学科的很多题目都具有多种解答思路,与之相应的解题结果也可以划分为多种类型。如果能尝试运用多样的算法来实现,那么就可以体会到程序设计的趣味性。通过对比各类算法的基本原理,师生就可以归纳得到最简便的一类程序算法,从而省略了程序设计中的繁琐操作流程。例如:教师在讲解关于字符串排序的基础知识时,可以运用字符指针或者字符数组的方式来实现简便的排序。这是因为,运用数组的基本原理可以解决多样化的字符串排序问题,这种方式简化了繁杂的编程步骤。经过分析与对比,同学们就能找出各类算法的差异与相似处,这样做有利于活跃思维,逐步培养同学们在编程操作中的创新意识。再如:对于程序设计中的封装概念,教师可以让同学们联想共性与个性之间的联系,在此基础上透彻了解封装的原理[7]。

2.3密切结合基础原理与实践

相比于其他学科,程序设计基础本身就具有显著的实践性特征。在课堂教学中,教师应当从全面的角度入手,确保把课堂所学的编程原理与编程实践紧密结合在一起。在程序设计基础的课堂教学中,师生可以共同尝试多样的教学流程与方法,例如互动式与启发式的程序设计教学。只有综合运用多样的程序设计模式,才能开阔视野并且启发思维,让学生真正体会到程序设计的趣味性。对于程序设计的实验教学而言,教师先要设计明确的课堂实验目标,然后运用小组协作的方式来启发实践思维。为了增强互动,师生还可以构建QQ群或者微信群,分享程序设计课堂的体验。

3结语

对于计算机专业来讲,程序设计的基础课程包含了多层次的内容。在新的形势下,各行业都面临激烈的竞争。对于计算机专业毕业的学员而言,如果能做到灵活应用在校期间所学的程序设计流程,那么就能迅速适应岗位实践,这样做也符合新课改的根本目标。因此,计算机专业的学员应当能灵活运用程序设计的基本原理,在此基础上突显程序设计课程教学的创新性。然而截至目前,计算机专业体系中的程序设计基础教学并没有真正完善,仍存在需要改进的地方。在未来的课改实践中,师生还需要紧密配合,共同探索适合程序设计基础课程改革的新思路,从而全面确保程序设计基础教学的完善和提高。

[参考文献]

[1]王晓勇,方跃峰,肖四友,等.以专业应用为导向的计算机基础课程教学改革与实践[J].中国大学教学,2012(7):39-42.

[2]郭艳燕,张树粹,胡潇琨,等.计算机专业程序设计基础课程教学改革探索[J].计算机教育,2012(8):72-75.

[3]丁海燕.计算机专业高级语言程序设计课程改革方案[J].云南大学学报(自然科学版),2012(S1):387-390.

[4]许丽娟,黄冬梅,王爱继.以计算思维为导向的非计算机专业程序设计课程创新教学[J].计算机教育,2015(12):31-34.

[5]张艳.“互联网+”背景下计算机专业程序设计课程教学改革初探[J].北华航天工业学院学报,2015(5):39-41.

[6]黄云,洪佳明,覃遵跃,等.基于云平台的“程序设计基础”课程实验教学改革[J].实验室研究与探索,2016(2):191-195,223.

第4篇:程序设计报告范文

关键词:PAR方法;PAR平台;形式化推导;算法

中图分类号:G623 文献标示码:A文章编号:1009-3044(2010)07-1641-04

The Applied of PAR Method in Mathematics Algorithm

YANG Chen

(School of Computer Information & Engineering, Jiangxi Nomal University, Nanchang 330022, China)

Abstract: Algorithm already into the high school textbook, the use of PAR as the primary platform in high school learning algorithm. Through the formal PAR derived polynomials and prime numbers to achieve the two classical mathematical problem, Show that the PAR has a good math and programming language transparency, to be brief algorithm is also easy to understand at the same time guarantee the correctness of algorithm, Theoretical analysis and experiments show that the learning algorithm PAR is an effective platform for Learning algorithm.

Key words: PAR approach; PAR platform; formal derivation; algorithm

20世纪数学发生了很大的变化就是数学与计算机科学的同步发展。计算机的飞速发展对数学的发展起了极大的推动作用,加强了数学与其他学科的联系,拓展了数学的应用范围。所有这一切,算法起了重要的作用。

1 PAR方法

PAR[1-5]方法是薛锦云教授提出了基本分划和递推(Partition-And-Recur)的算法程序设计方法。PAR方法是一种简单实用的支持算法程序开发全过程的形式化方法。PAR方法进行算法程序设计有两种方法:对于一个给定的算法程序设计问题,先用符号化的规范描述语言,写出这个问题的形式化规范,然后采用变换方法,将问题的形式规范变换成可执行的程序。另一种形式方法是对于给定算法程序设计问题,先写出该问题的形式化规范,然后使用形式化和非形式化相结合的方法,开发或证明算法程序正确。

PAR方法/PAR生成系统由自定义泛型算法程序设计语言Radl及相关规约转换规则库;泛型抽象程序设计语言Apla;系列Radl到Apla,Apla到Java、C++、C#、Delphi、等可执行语言程序自动生成系统组成。

Radl语言[6]是为实现算法程序形式化和半自动化开发而定义的一种基于递推关系的算法设计语言,它是PAR方法/PAR平台的重要组成部分,其主要功能是描述问题的规约、规约变换规则和算法,它使用统一格式(Qi : r(i) : f(i)) Q代表量词,i表示约束于量词Q的变量集合,简称为约束变量集,r(i)为一逻辑表达式,表示i的变化范围,f(i)为一个函数或表达式,其类型随着量词Q的不同而有所不同。Q可以是?坌(全称量词),?埚(存在量词),MIN(求最小值量词),MAX(求最大值量词),∑(求和量词),∏(求积量词)等,分别对应的 q 运算是 ∧,∨,min, max , + , ×,等1利用这些量词的性质可以进行规约变换,本文使用到的变换规则主要有:单点分裂(Qi:i=k:f(i)) = f(k),范围分裂(Qi:r(i):f(i)) = (Qi:r(i)∧b(i):f(i))q(Q i:r(i)∧b(i):f(i))。

Apla语言[7]是Radl算法到Apla程序生成系统的目标语言,又是Apla到VB、Delphi、Java, C++等可执行语言程序生成系统的源语言。下面举出两个数学例题分别采用PAR的两种开发算法的方法实现。

2 实例

2.1 求给定多项式的值

第一步:描述求解问题的形式规约:

前置断言:n≥0

后置断言:

第二步:构建递推序列寻找递推关系

{i量词范围分裂}

{i量词单点分裂}

{j范围分裂}

(j单点分裂和量词演算}

{函数一般分配律 }

{简单数学性质 }

{简单数学化简}

{根据f(n)的定义}

得到一个关系式f( j )=f( j-1 )x+α0,然后在求f( j-1 ),同理可得到f( j-1 )=f ( j-2 )x+a1依次对f(j-i)

第三步:构造循环不变式[8-9]

ρ=f(x)∧(0≤i≤n)

第四步:写出对应的Radl算法程序

APGOITHM:ploysum

{[n,i:integer;a,v,x:real]}

{Q∧R}

BEGIN: v:=a;i:=n-1;

TREMINATION:i=0

RECUR: v:=v*x+a;

END

第五步:将算法转换成对应的APLA程序

program ploysum;

var

n:integer;

i:integer;

a:real;

v:real;

x:real;

begin

writeln("输入多项式系数n,最高次系数a,和x的值");

read(n,a,x);

v:=a;i:=n-1;

do i≥0writeln("输入i次项及其系数ai");read(i,a);v:=v*x+a;i:=i-1;od;

end.

第六步:通过PAR平台装换成C++语言(略)

2.2 判断一个大于1的数是否是素数

第一步:构造问题的规约

|[ in n: interger; out prime:Boolean; aux k:interger ]|

规约:Q: n≥2 ∧ k=sqrt(n)+1

R: prime=(i: 2≤i

第二步:构造循环不变式

使用传统的循环不变式开发策略:用变量置换后置断言R中的常量,并给出变量的变化范围即可得到循环不变式。

I: prime=(i: 2≤i

第三步:写出对应的算法程序

参数说明:|[ in n: interger; out prime:Boolean; aux k:interger ]|

规约:Q: n≥2 ∧ k=sqrt(n)+1

R: prime=(i: 2≤i

循环不变式:I:prime=(i: 2≤i

界函数:T:k-j

算法:begin

j, prime := 2,true;

do j≠k∧prime=true if mod(n,j)=0 prime := falsefi

j :=j+1;

od

end;

第四步:算法程序的正确性证明

1)Q => wp(“j,prime := 2,true”, I)

n≥2 ∧ k=sqrt(n)+1 => (prime=(i: 2≤i

n≥2 ∧ k=sqrt(n)+1 => true

true

2)I∧c => wp(“if, j :=j+1, I)

prime=(i: 2≤i wp(“if”, prime=(i: 2≤i

prime=(i: 2≤i false=(i: 2≤i

(性质:A=>B=>C A∧B=>C)

ture=(i: 2≤i

ture=(i: 2≤i

true

3) I∧┒c => Q

prime=(i: 2≤i

?陴 prime=(i: 2≤i

(性质:A∧(B∨C) (A∧B)∨(A∧C))

prime=(i: 2≤i

true

4)I∧c => T>0

prime=(i: 2≤i0

true

5)I∧c => wp(“T0:=k-j; s”, k-j

true=(i: 2≤i

true

由1)2)3)4)5)的证明可知,原程序是完全正确的。

第五步:根据算法程序写出具体APLA程序

program sushu;

var j,k,n:integer;

prime:boolean;

begin

j,prime:=2,true;

writeln("求n的m次方的末p位数--请输入n:");

readln(n);

k:=sqrt(n)+1;

do (j≠k)∧(prime=true) if mod(n,j)=0prime:=false; fi ;

j:=j+1;

od;

if(prime=true)writeln("此数是素数");fi;

if(prime=false)writeln("此数不是素数");fi;

end.

3 结论

PAR方法蕴含了许多的数学思想,在Radl中给出的量词都是数学常用的一般量词,这对于一个数学工作者来说非常重要,即使他不懂程序设计语言也可以写出算法程序来。做到了将算法设计从程序设计中分离出来,可以使得程序员跳出程序设计语言的缚束将注意力集中在算法本身上来,有助于掌握和理解算法的本质。PAR方法又是一种形式化的算法开发方法,在PAR平台下写出的算法保证可以保证其正确性,PAR方法已经解决了大量的数值问题[10-12],PAR方法这些突出的优点一定会在我国新时代的高中数学教学中发挥其独特的作用。

参考文献:

[1] Xue Jinyun.A Unified Approach for Developing Efficient algorithmic programs[J].Journal of Computer Science and Technology,1997,12(4):314-329.

[2] Xue Jinyun.Formal Derivation of Graph Algorithmic Programs Using Partition-and-Recur[J].Journal of Computer Science and Technology,1997,13(6):553-561.

[3] Xue Jinyun.Developing the Generic Path Algorithmic Program and Its instantiations Using PAR Method[R].Proceedings of The Second Asian Workshop on Programming Languages, KAIST,Korea,2001.

[4] Xue Jinyun.PAR Method and its Supporting Platform[R].Proceedings of AWCVS'2006,Macao,OCT,2006:29-31.

[5] 薛锦云.算法程序形式化开发研究[J].云南大学学报,1997(19):283-288.

[6] 薛锦云.抽象程序设计语言Radl报告[R].江西师范大学省高性能计算技术重点实验室技术报告,2001.

[7] 薛锦云.抽象程序设计语言Apla报告[R].江西师范人学计算机软件研究所技术报告,2001.

[8] Xue Jinyun.Two new strategies for developing loop invariants and their applications[J].Journal of Computer Science and Technology,1993,8(2):147-154.

[9] Xue Jinyun.The Discussion of Loop Invariant and Developing Technology[C].Beijing:The Fourth Convention of Software Engineering,1991.

[10] 石海鹤,石海鹏,薛锦云.形式化开发若干组合数学问题的算法[J].江西师范大学学报,2006(5):424-427.

[11] 胡启敏,薛锦云.若干算法程序的形式化推导与生成技术研究[J].计算机研究与发展,2008(S1):148-153.

第5篇:程序设计报告范文

关键词:程序设计竞赛;在线评测;计算机算法;教学改革

中图分类号:G642 文献标识码:A

1程序设计竞赛

近年来,针对大学生的程序设计竞赛开展得越来越多,比较常见的有ACM-ICPC、TopCoder、百度之星、Google挑战赛等。其中ACM-ICPC (ACM International Collegiate Programming Contest)即ACM国际大学生程序设计竞赛,是历史最悠久、规模最大的竞赛。

由于程序设计竞赛具有开放性、综合性和评判的客观性特征,可以有效检验参赛选手综合应用知识分析和解决问题的能力,因此它不仅培养参赛选手的创造力和团队合作精神,而且也检测选手们在压力下进行创新思维和理性实践的能力。通过参与比赛,学生提高了利用计算机求解问题和程序设计的能力,形成积极向上的自主学习氛围。

在程序设计竞赛中,在线评测系统是开展竞赛的核心。它是一个在线程序与算法设计的练习和竞赛平台,提供大量程序和算法设计的题目,供学生练习或竞赛,学生可以使用自己熟悉的语言提交程序代码,系统编译提交代码,如果没有错误,则生成可执行文件,并利用系统的测试用例来测试,如果输出结果正确,则返回程序消耗的内存空间和时间。对于竞赛题目,系统可以从程序正确性、运行总时间、消耗内存空间、返回结果等方面来考察学生提交的代码,且支持多种语言。系统可以实现在制定的时间段提供竞赛的功能,根据学生解题数目和时间进行排名,也可以批量导出学生代码,进行分析。在线评测系统除了能用于程序设计竞赛外,还可以广泛用于辅助程序设计类课程的教学,为学生提供一个开放的、自主学习的实验环境。

2基于竞赛模式的算法分析与教学设计

2.1 “算法分析与设计”课程的特点

计算机专业要培养具备较强程序设计能力的程序员,需要掌握高级程序设计语言及数据结构、算法设计策略及设计模式、软件体系结构及开发方法等知识。“算法分析与设计”是面向设计的核心课程,主要通过介绍常见的算法设计策略及复杂性分析方法,培养学生分析和解决问题的能力,为开发高效的软件系统奠定坚实的基础。该课程理论与实践并重,内容具有综合性、广泛性和系统性,是一门集应用性、创造性及实践性融为一体的课程。主要内容包括算法效率分析基础、分治法、贪心法、动态规划、分支限界、回溯、近似算法、概率算法等常见的算法设计策略,也覆盖了排序、搜索、图论、几何、组合、数值计算等问题,这也是程序设计竞赛中常见的核心问题。因此,该课程在强调算法的设计思想和方法的同时,需要更加注重算法的应用和实现,教会学生如何利用计算机创造性地解决问题,培养学生独立分析和解决问题的能力。

目前,该课程的教学方法还是以传统的讲解为主,教师通常只是将已有的经典算法在已有的数学模型和数据结构上片面地解释给学生;在实践环节只是盲目的验证算法,而对该算法的运行效率、测试数据规模以及实际的应用场景则很少考虑。学生的学习则主要以理解和记忆为主,没有“理解”和“消化”,不能灵活运用算法;在实践环节,学生代码抄袭严重,很难达到训练的效果。这种教学模式下,学生缺乏问题抽象能力,在遇到实际问题时无从下手,思维创新能力和实践能力难以得到有效的提高。

针对以上问题,笔者利用程序设计竞赛模式和在线评测系统的特点,来弥补课程教学中的不足,探讨“算法分析与设计”的课程教学改革,培养高水平的创新型IT人才。

2.2基于程序设计竞赛的算法分析与设计教学模式

程序设计竞赛具有一定的时效性、开放性和评判的客观性,学生通过竞赛可以有效提高问题求解和程序设计能力。“算法分析与设计”课程通过介绍一些具体问题(如排序问题、检索问题、路径问题、组合问题等)的解决策略,让学生掌握算法的设计策略和分析方法。把这些问题编制成在线评测系统上的竞赛题目,在指定的时间内以竞赛方式开展实验或考核,让学生提交解决问题的程序代码,最后再导出学生代码进行分析。为了避免学生大规模的代码抄袭,可以使用代码甄别系统,该系统可判断代码的雷同率,有效分析学生代码的抄袭程度。教学基本模式(图1)以“竞赛题目”为中心,通过课堂教学和课后实践两个环节,让学生掌握算法分析方法和常见的算法设计方法,并应用到实际问题中,训练学生的程序设计能力。

竞赛题目的设计是课程教学的核心。题目设计应注意难度适中、内容新颖、能有效激发学生的学习兴趣,更重要的是要融入一种或多种算法设计策略,创造一种与现实应用紧密结合的环境;同时提供具有一定规模的一组或多组测试数据,以测试算法的效率。另外,设计题目时还应考虑学生水平的差异,对于能力强的学生,在完成基本要求的基础上,再增加一些有难度的问题,并引导学生自主研究新的问题解决方法,激发学生的创新能力。在具体实施时,考虑提供多个难易程度不一样的题目,如可分为基本算法的验证、基本应用、综合应用三个层次,一些为必选,一些为可选,让学生选择完成,因材施教。如合并排序、快速排序可作为基本算法的验证,最近点对和凸包问题可作为分治法的基本应用,而挑棒游戏可作为动态规划策略中求解有向图传递闭包的Warshall算法的综合应用。

课堂教学重点应放在指导学习方法,根据任务引导学生理解算法设计的基本策略与分析的基本思路;通过具体实例解析一些经典算法,让学生讨论算法在求解该任务时的效率,分析方法的优劣及适用场景;注意对问题进行归类,揭示算法设计策略的规律,使学生触类旁通;采用启发式提问,运用富有思考性的问题,引导学生自己去分析、解决问题。在题目求解方案找到后,适时地开展课堂讨论,引导学生对方案提出疑问,讨论算法的效率及实际应用场景,激发学生探求新的解决思路,让学生对各种方法加以评价;启发学生的思维,加深对问题的理解。

2.3基于程序设计竞赛的教学模式的优势

(1) 提供了开放的、自主学习的实验环境。通过网络使用,学生可以随时提交程序代码,并可在丰富的程序与算法设计题库中寻找合适的题目,训练程序设计能力。

(2) 有效训练了学生的程序设计能力,培养创新型IT人才。“算法分析与设计”的学习难点在于如何将常见的算法策略应用到实际环境中。通过三个层次(算法验证、基本应用、综合应用)的实践训练,让学生熟练掌握常见的算法设计策略,加深对各种算法设计策略的认识,理解算法的意义及精髓,达到学以致用。

(3) 形成良好的学习氛围,加强学生之间的交流。使用在线评测系统进行课程考核并举办程序与算法设计竞赛,以团队方式参与,可以形成良好的校园竞争和交流的学习氛围;学生有了在课余时间自主进行本学科知识钻研的机会和环境;也让学生体验团队协作的重要性,为软件项目团队化的合作要求做好准备。

3教学实践及实效

在笔者的教学实践中,采用了北京大学的POJ搭建了程序在线评测平台,并在近两年的算法分析与设计课程中利用该教学模式进行了改革,取得了很好的效果。为了更全面的训练学生的程序设计能力,课程考核采用了过程考核、课程报告、出勤三部分综合考查的考核方案,三部分分别占总成绩的70%、20%、10%。过程考核考察学生对算法设计策略的掌握程度,一共安排4次,每次以竞赛的方式进行,共计24道试题,每次选做3~5道,共计选做15道,每次考核中均有1~2道稍有难度的试题,内容覆盖了简单算法、分治法、减治法、变治法、时空权衡、动态规划、贪婪策略、回溯和分支限界等。课程报告考察学生综合应用算法分析和设计方法的能力,为9选1,根据所选题目撰写详细的解题报告。

在最近的一次教学中,笔者对教学班上66名同学进行了问卷调查,调查学生对教学改革的满意度、可取之处和不足。调查结果如表1、表2、表3所示:

从调查结果可以看出,学生的满意度很高,表明学生对此教学模式的认同度较高。从每次考核代码雷同甄别情况看,代码雷同率90%以上的低于10%,学生在POJ上做题的积极性也很高,常常会有1/3的非教学班同学参与每次考核。可见这种注重过程的考核方式在教学中取得了很好的教学效果。

4结论

基于在线评测系统的程序设计竞赛具开放性和评判客观性的特点,教师结合“算法分析与设计”课程的特点,将程序竞赛模式应用到课程的教学中,可以有效训练和考察学生的程序设计能力,还可以激发学生的学习兴趣。当然,在该教学模式的实践中,应注意每次考核或实验题目的选择要紧密结合课程知识点和实际应用;在实践过程中注重与学生的交流,激发学生学习热情,注重教学过程,促进学生掌握算法的精髓。

参考文献:

[1] 王卓威,尹宝林. 一个基于网络的程序自动评测系统[J]. 北京航空航天大学学报,2004,30(6):502-505.

[2] 武建华. 基于 ACM 模式的数据结构实践教学改革与探索[J]. 计算机教育,2007(12):114-116.

[3] 王素立,白首华. 算法分析与设计教学方法[J]. 湘潭师范学院学报:自然科学版,2005(9):124-127.

[4] Alex Aiken. A System for Detecting Software Plagiarism[EB/OL]. theory.stanford.edu/~aiken/moss/.

[5] Anany Levitin. 算法设计与分析基础[M]. 潘彦,译. 2版. 北京: 清华大学出版社,2007.

[6] 李文新,郭炜. 北京大学程序在线评测系统及其应用[J]. 吉林大学学报:信息科学版,2005,23(8):170-177.

The Teaching Exploration and Practice of Algorithm Analysis and Design base on Programming Contest

YANG Chun-ming, CHEN Nian-nian

(School of Computer Science and Technology, Southwest University of Science and Technology, Mianyang 621010, China)

第6篇:程序设计报告范文

[关键词]游戏开发;Windows程序设计;程序设计实验;教学改革

[中图分类号]G642.0 [文献标识码]A [文章编号]1005-4634(2012)02-0092-04

0 引言

Windows程序设计课程由于具备极强的工程应用背景以及明确的能力培养目标而成为国内各理工类院校计算机软件类专业普遍设立的重要课程。大多数院校通常在高级程序设计语言课程(C语言程序设计或C++语言程序设计)以及软件理论基础课程(数据结构或算法设计基础)之后,开设Windows程序设计课程。该课程的教学目的在于培养学生能够综合运用已掌握的初步程序设计方法以及软件理论知识,在深刻理解面向对象设计本质基础上,能够基于可视化开发工具(如Visual C++)在Windows平台下进行基本的程序设计。学生经过这门课程的学习之后,不但应该具备在特定开发工具和平台环境下进行熟练的程序设计和实现技能,而且通过该门课程综合性实践练习之后,还应该初步具备软件工程的初步思想,具备实施综合性复杂性较高的软件开发项目所需的基本专业技能,为后续本科高年级课程做好知识储备。该课程的设置与国家在计算机科学教育方面制定的“提高学生素质,注重创新精神和实践能力”的教学目标是高度一致的。

然而在教学实践中,这门课却普遍存在教师难讲、学生难学的情况。很多教师反映课程知识点太多太散,很难确立学习主线;而学生则普遍感觉这门课程门槛较高,知识点比较密集,不易把握学习重点,实际编程中往往感觉学习目标不明确,无从下手,在不断遭遇困难挫折后逐渐对Windows编程产生了畏难情绪。针对这一不利状况,很多院校采取了一系列的措施,兰红和李淑芝提出“以学生为中心”教学理念的课程改革思想;虞芬、邹睿娟也提出“以学生为学习中心”的改革思想;徐宏和聂影等人提出“在教学的过程中利用信息化技术,力求激发学生对课程的学习热情,培养学生动手实践的能力,创造性思维培养”的方法。上述方法虽都有较强的理论依据,但将其运用于Win-dows程序设计课程进行教学,实际效果均不甚理想。

董晓莹通过教学实践和分析,结合计算机语言类课程的特点,阐述了计算机语言类课程改革的三个方面:课程内容的改革,教学方法、教学手段的改革,实验室建设。面对这些方法和措施,笔者在对Windows程序设计课程教学的实践过程中,大胆突破传统教学思路,将课堂授课式教学与项目案例实践活动相结合,探索出以游戏项目驱动、团队协作的程序设计教学模式,同时采用新颖的过程和结果并重考核方式,激发了学生的学习兴趣,实践表明,这一做法取得了良好的教学效果。

1 课程教学改革思路

当前各个院校在Windows程序设计这门课程上设置的学时数各不相同,但基本的布局思路是相似的,即尽量将实践教学实验课的学时数比例适当加大,给学生提供更多的动手编程机会。蔡学森等人通过类似的实验教学改革方法,在实验课内容的改革方面,通过增加设计性、综合性,很好的培养了学生科学实验的素质。实验及课程设计在授课内容上则一般是采取“理论课+实验课”的模式进行。具体授课时,一般的模式是理论课紧扣大纲知识点编排、讲授,实验课在时间和内容上又与理论课相呼应。这种以课程大纲知识点为中心的教学方式虽然有一条主线,但对于程序设计能力培养来说,知识点通常显得过于分散,各个知识点之间欠缺内在逻辑联系性,教师通常针对单个知识点举出案例代码讲解,示例通常抽离了应用背景与场合;实验课内容也是遵照传统模式开展,与理论课内容对应的若干次实验练习构成实验课主体内容,训练要求以实验指导书的方式规定;课程考核一般也按照闭卷打分的方式进行;学生在学习时按这种方式对各知识点依次掌握,普遍反映知识点零乱,不能理解一些被强调为重点的知识的实际应用价值,对各部分内容的内在逻辑性条理不清晰,也不知道在实际软件项目中如何去应用这些知识。此外,示例代码普遍缺乏趣味性,内容枯燥,很难让学生有持久的编程学习热情。

针对这种情况,对教师和学生的教学/学习背景作了一番调查分析,认为传统的授课方式虽有一定价值,但整体而言比较脱离实际,而且形式比较僵化乏味,考核考察方式也不能很好地真实体现学生对具体编程知识与技能的掌握状况;而当今的软件行业对于培养软件专业人才,尤其培养具备较强的工程问题解决能力的从业人员,提出了较高的要求,现有的授课理念与内容和这种需求存在脱节现象;当代青年大学生思维普遍比较活跃,其思维习惯和生活体验决定了他们对于既有趣味性又有挑战性的游戏娱乐类的软件应用程序比较感兴趣。在这样的调查结果基础之上,决定对Windows程序设计课程的教学方法进行大胆的调整改革,引入一种新的教学模式,即以规模适中的小游戏项目开发作为Windows程序设计课程学习的主体学习活动内容,通过全程的“知识讲解+项目实施”方式完成对整个课程的教学与学习,将Windows编程知识与软件工程的基本理念结合起来,以解决实际问题为推动教学/学习活动的中心点,在不脱离教学大纲的基本要求之下,以激发学生持久的编程热情、养成学生规范的编程习惯作为培养目的,真正使学生经过课程学习之后具备相当的实际软件开发能力,成为行业真正所需的人才。这样的改进既高度符合建构主义以学生为中心,强调学生对知识的主动探索的理念,也为产学研相结合培养社会可用人才提供了一条新思路。经过几个学期的实践,事实证明教学效果良好。

2 课程实验教学方案设计

2.1 分阶段软件版本升级式的项目驱动式教学法

以游戏项目开发方式驱动的Windows程序设计课程一般按照如下方式开展。

1)实验内容(题目设计)。在每学期开始之前,课程组教师集体讨论分析,设计出一种或几种新学期课程项目的题目。选题原则:题目内容必须涵盖教学主要内容,而且能够最大程度调动学生编程兴趣和热情,题目设立的背景创意均源于实际生活或游戏。笔者认为兴趣是学好一门知识的必要前提,实验题目的设计内容尽可能要让青年大学生喜闻乐见,如要求学生设计实现一款游戏软件(如山寨版的QQ农场、泡泡龙、俄罗斯方块、连连看等)。

2)项目驱动(阶段性目标和要求)。具体项目推进按照分阶段版本升级式进行,每阶段具有明确的实践和学习目标,对应学生在本门课程中必须掌握的知识、必须具备的能力要求。以“山寨版QQ

农场”这个题目为例,某一学期的题目要求如下。

设计实现一个山寨版的QQ农场,单机版实现即可,要求用本学期学过的Windows程序课程知识进行设计,分3个版本多次提交,每一个版本均有必作内容和选作内容,确定的提交时限,严禁代码抄袭,每个版本均要求内容格式规范的实验报告(设计开发技术文档)伴随提交。各次大作业提交的成绩形成平时成绩,平时成绩占总成绩比例的70%。

版本1.0:要求在客户区窗口实现农场耕地的静态绘制,农场附近装饰物(农舍、狗栏、风车等)的静态绘制,能实现对耕地的操作,耕地能改变显示状态、体现这种操作结果,耕地上作物的几个生长阶段能表现出来。

对应教学大纲知识点内容为:MFC/SDK程序框架的建立;GDI对象绘图;位图的绘制;窗口客户区的坐标计算与变换;定时器。

版本2.0:增加仓库,商店的交互界面,增加必要动画(如猎狗的行走),增强系统的趣味性,纳入游戏积分规则。扩充浇水、除虫、锄草、施肥等扩展功能。

对应教学大纲知识点内容为:菜单;加速键;对话框;控件;对话框与视图的交互。

版本3.0:增加系统数据管理能力,能对系统进行状态保存和重新载入,加入声音音乐效果,编写用户手册。完善设计文档,特别是在文档中要给出各类关键系统结构图,数据流图和算法流程图,对于关键技术的解决要有简要文字分析说明。

对应教学大纲知识点内容为:文档一视图结构;文件的读写;数据库编程基础。

这个题目引起了学生们极大的兴趣,而分阶段推进实现设计的好处在于:每一阶段设计目标明确,知识点紧扣教学大纲,各个知识点在运用时体现彼此内在关联性和统一性,无论理论课还是实验课的知识点讲解,都将做到有的放矢。学生学习时不断思考“这个讲解的内容是否能用来解决现在要实现的游戏软件的某个功能”,思维积极性被充分调动起来,课堂气氛显得热烈而生动。教师以解决游戏项目中存在的实际编程问题为导向,抓住学生的关注点和注意力,将各个知识点有机地结合起来,给予学生启发式讲解;学生经过一番钻研分析、查阅资料、编码调试的学习活动,踊跃参与项目的推进,每达到一个版本的设计目标,既掌握了教学大纲所规定的知识内容,也提升了编程技能。

2.2 过程管理

通过实践笔者认识到,在改善教学效果、活跃学习气氛上虽可以把宽松活泼作为基调,然而对于课程过程化管理却不能放松,相反在这方面还要提高要求,加强管理。

传统的作业尤其实验报告提交制,以一种高频度的方式(如每周一次实验均要提交一次实验报告)进行,通过调查,笔者觉得该方式比较不可取,这样做造成文档工作量过大,学生很难再有时间精力对代码进行质量改进,进而导致不少学生逐渐形成应付敷衍提交实验报告的心态和习惯,这丧失了通过实验报告对学生编程活动过程规范化管理的考察目的。与之相反,笔者一方面决定将实验报告提交频度降为项目大作业软件版本的提交次数,但另一方面向学生强调:必须高度重视软件技术文档的质量,新版本的实验报告的内容做了重大调整,要求按照:“(1)设计目标;(2)总体设计思路(必须附有系统结构示意图);(3)系统详细设计;(4)关键算法分析(必须附有算法流程图);(5)测试结果分析;(6)总结”这样的结构进行编写,杜绝文档编写中的马虎和不认真现象,通过此举向学生强化:好的软件首先是好的设计,而好的设计首先通过包含高质量设计图的设计文档体现出来;优质规范的技术文档和优质规范的代码对于程序员来说是同等重要。

通过教师的强化管理以及严抓按期回收代码文档制度,学生们普遍扭转了把编程序看作是某种个人兴趣支撑下的个人行为的肤浅观念,认识到程序设计是一种体现科学性规范性的严谨的科研生产活动,必须周到细致,刻苦认真。经过一学期的锤炼,学生无论是在编程技术水平还是团队协作能力方面,都得到了极大的提升和增强。

2.3 突破传统的课程考核方式

教学课程改革的一个重要环节就是对课程的考核方式做调整。对于Windows程序设计这样一门强调运用多方面知识技能进行相对复杂的软件系统的设计与开发的课程,传统的试卷闭卷打分制很难客观反映学生真实水平,学生成绩会被偶然性因素影响以及放大,并且这样的考核方式也容易造成学生前紧后松的学习心态,而编程技能的提升效果,是需要在一段较长时间内持续专注的努力才可能体现出来。采用游戏项目驱动式的教学模式之后,很快对这种考核方式作了调整,最终的考核方式确定如下:学生成绩由两部分构成:平时成绩(占70%),由各次不同版本软件提交的代码和文档结果打分累计得到;最终答辩成绩(占30%),课程结束不采用试卷闭卷式答题,而采取学生现场答辩方式对实现的游戏项目的设计思想与关键算法进行讲解,教师当场给出成绩。两项内容相加得到学生Windows程序设计课程的总成绩。

新的考核方式具有如下优点:(1)注重学生在一段时间内能力的持续增长而非一时的表现。既能充分体现每位学生的真实技能水平,也能使学生树立起对待科学知识的认真严谨的治学态度,最终成绩体现了更多的真实公正性。(2)教师也可以根据不同阶段版本的作业批改情况,对发现的普遍性问题做及时讲解以及研究方向的调整,对于学生学习状况处于随时把握之中。

然而这种考核方式也有不利之处,会造成教师作业批改量相对过大,教学负担增加。

3 课程教学效果剖析

经过几个学期的实践,游戏开发驱动式的Windows程序设计课程教学改革取得了比较明显的成效(见表1),主要表现在以下几方面。

3.1 教学实践内容有了具体针对性,与社会生产需求结合更加紧密

程序设计教学的内容不应该脱离实际的社会生产具体需求,否则就有闭门造车之嫌。当前,各类游戏类软件(手机游戏、网络游戏等)开发无疑已成为应用软件开发领域的热点之一,Windows环境下的许多重要的通用编程技术(GUI界面、数据库、网络、3D动画)均毫无例外地在这一领域内得到了充分的运用和展现,这些知识的基础部分正是Windows程序设计课程教学大纲之中所要求的掌握重点。新的教学方法设定的游戏项目,一般其提出背景都来自于实际软件开发过程当中(如有一些技术问题是一些软件开发类论坛上经常会讨论的),学生通过一个要求比较全面的游戏项目研发的锻炼,很好地对课程知识点进行了综合运用,充分体现了学以致用的务实精神。由于编程技术的通用性,课程学习过程掌握的知识与技能也能很快地被运用到其他一些软件开发领域(如信息系统、虚拟现实、嵌入式软件)当中。通过这样的课程锻炼培养出的软件开发类人才无疑更能满足各类机构和企业的实际需求。

3.2 在新的高度理解和开展程序设计开发活动

Windows程序设计作为一门建立在低年级基础软件开发类课程之上的软件开发“高级”课程,

无论在编程思路的讲解还是编程思想的阐释,都不能也不应该停留在仅仅对某些局部的知识语法细节进行低层次的强化灌输的层面上。通过一个类似于真实软件产品的游戏项目开发过程,教师要让学生明白,应该更多地从整体系统的角度对实际问题进行抽象建模,也应该更多地从框架的层次而不是代码的角度去看待软件,应该更多地关注软件的结构是否具备良好的可扩展性和可复用性,要使学生明白,决定软件产品是否成功更多地取决于系统设计过程而非代码编写过程;通过将软件工程的开发过程具体地与实际项目结合起来,让学生充分体会到软件工程的许多概念和步骤不再抽象;规范的代码文档管理以及有效的团队人员交流,使学生对实际开发团队的活动有了比较直观的认识和理解。经过这样的理念熏陶和实践锻炼,学生对于软件开发有了全新的体验和认识,也更能符合当今软件开发领域对于高层次软件开发人才的培育需求。

3.3 有力激发学生对程序设计学习的兴趣和热情

Windows程序设计课程无疑是存在不少的知识点和学习难点,能让学生持续持久地在这方面投入热情和精力,兴趣是极其关键的。通过分析当代青年大学生自身特点,游戏项目驱动式的教学无疑是深得人心的,学生在这样的学习过程中既能感受到编程带来的挑战性,也能体验到研制游戏的趣味性,将学和玩有效地结合一体,最终对程序设计和软件开发产生了极大兴趣,不少同学甚至决定今后将从事实际的游戏产品开发。课程学习结束之后,大部分同学要求教师继续推荐一些Windows程序设计开发方面深入的高级著作,明确表示将在这方面进行持续深入的探索学习。

3.4 增强学生自主解决问题的意识和能力

在游戏驱动式教学当中提出的很多技术问题都是既具有趣味性也具有相当的挑战性的,促使学生为解决具体问题进行了多方面的努力。一般经过第一阶段的学习,学生普遍都意识到需要综合运用多种手段(联机文档、网络查询、文献查阅、教师答疑等)才能解决问题,而严格的代码抄袭审查制度,使学生们普遍觉得应该尽可能依靠自身力量解决问题。通过学习,学生在运用编程技巧解决综合性编程方面的能力有了大的提高,抄袭现象得到很好的扼制,自我学习能力普遍得到较大的提升。

3.5 有力促进学生课外科技活动的开展游戏驱动式的Windows程序设计课程教学法的成功,为学生课外科技活动提供了直接的模版参考借鉴作用。通过在实验中心开展教学经验推广活动,许多在实验中心立项的学生科技项目直接采用这种游戏项目开发驱动式进行管理,这类项目一般侧重对某一具体技术点的深入研究与探索,也取得了很好的实践效果。目前实验中心投身于学生课外教学科技活动的学生数目逐年增多,队伍不断壮大,证明了教学改革思路的正确性。

第7篇:程序设计报告范文

【关键词】基于工作过程,项目导向,课程开发,程序设计

一、引言

面向对象程序设计语言是高职软件专业学生的必修专业课程,在此类课程的教学中虽然比较重视实践教学环节,但在教学中理论与实践脱节现象时常发生,老师感觉教学实施困难,学生感觉不能理解所教内容,没法独立完成简单程序的的编码任务。要从根本上解决以上问题,必须从课程的学习做起,让学生针对工作而学习,以工作任务引领知识、技能和态度,让学生在完成工作任务的过程中学习相关知识,发展学生的应用能力。对此,将具有实际生产意义的工作任务引入教学,采用工作过程导向的课程设计方法,在教学中以项目导向、任务驱动等有利于增强学生能力的教学模式,将“教学做”融为一体,将工作过程和教学过程融为一体,实现理论与实践的一体化。

二、基于工作过程的程序设计语言课程开发与实施

软件企业的岗位能力要求是课程开发的目标,以岗位和工作任务为导向,以实际的系统开发项目为载体,根据典型程序开发过程及岗位能力要求,重构课程结构,课程教学转变为以工作任务为中心组织课程内容,以工作任务为中心整合理论与实践,以学生直接经验的形成来掌握融合于各项实践行动中的知识、技能和技巧。

1.工作过程分解及项目构建。程序设计语言课程教学的任务将工作过程分解,将项目按工作过程构建起来,针对每一个工作环节来传授相关的课程内容,各项目间层层递进,体现了“项目导向、任务驱动”的课程设计思路,实现课程的学习内容与实际项目进行整合,使课程体系大将地反映了知识、技能、素质的紧密结合。 结合软件企业系统开发的过程,将工作过程的教学分为分析、设计、编码、测试和几个子过程。

2.基于教学过程的程序设计语言课程开发

2.1教学内容的选取。以软件企业工作岗位的实际工作任务为依据,采取递进式设计的学习项目和学习任务,明确所需知识、能力和素质要求,进行教学内容选取。基于软件开发的工作过程划分教学情境,以企业真实项目为载体,坚持理论够用原则,将相关知识分解到实际项目中,通过分析和实现项目,让学生掌握相关知识和技能。尽量选用技术实用性强、知识拓展性强的项目,同时在教学实施过程中引入软件项目开发与管理规范。

2.2教学过程设计。在工作过程导向设计原则的指导下,结合软件行业的岗位需求,通过分析完成软件开发需要完成的工作任务,设计教学流程。该流程以一个软件项目贯穿始终,将一个软件开发过程分解递进的教学情境,在每个教学情境中要求学生完成独立的工作任务,当所有的情境完成时整个软件项目的开发也相应完成,整个教学任务也完成了基于工作过程的面向对象程序设计教学,由6个教学情境构成,它们对应的工作任务依次为“需求分析”、“搭建开发环境”、“设计”、“编写程序代码”、“集成和测试”、“项目”。

学习情境1:需求分析。本情境的工作任务是撰写详细的需求分析报告。教师对实训项目提出业务需求,讲解应用的环境、功能要求、技术要求。学生根据具体项目撰写需求分析报告。

学习情境2:搭建开发环境。首先老师讲解开发环境,然后学生在自己的电脑上完成环境的安装及搭建和测试。

学习情境3:模块设计。在本情境中老师对需求分析报告进行点评,并对存在的问题提出修正意见;然后讲解完成模块所需的技术及数据库设计。学生要完成的任务是对需求分析报告加以修改完善,对模块中的类的属性和行为、对类间的关系接口,对模块的时序加以描述;对数据库中各数据库表设计及表间的关系,数据库的连接技术详细描述。

学习情境4:编写程序代码。本情境的典型工作任务是依照设计进行程序代码编写。教师对学生的模块设计和数据库表设计点评,并对存在的问题提出修正意见。老师帮助学生解决编码中出现的问题,学生要完成详细模块设计和数据库表设计的修订,制定编码进度;对数据库进行连接及操纵。

学习情境5:系统集成和测试。本情境的典型工作任务是完成各功能模块集成和系统测试。教师讲解系统集成的注意事项,学生要完成系统集成,撰写测试用例,进行功能测试,并提交测试报告。

学习情境6:项目。在本情境中学生将实训成果演示、提交完成系统的源代码和文档资料;教师对学生的成果进行考评和点评。

3.基于工作过程的程序设计语言课程实施

在每个学习情境中,给学生布置任务后,教师先简要介绍本任务中需要学生掌握的知识点,然后由学生完成。学生在收集信息,设计方案、实施方案、完成任务中学习和掌握知识,形成技能。工作完成后,先由学生自我评估,再由教学做出评价。在教学中,通过6个学习情境将任务交给学生,学生以学习小组的形式完成工作任务。首先将学生分成若干个小组,每个小组选出正、副组长,小组成员在组长的带领下完成项目的分工与协作。

教学的组织形式上,要以学生为主体,以教师为引导,以具体工作任务为载体组织学习。学习情境设计有利于发挥学生的团队合作精神,培养学生的沟通交流能力,增强学生职业意识。教师所起的作用只是确定任务,在任务过程中及时地指导学生,指导学生自我设计、自我实施个体行动和学习过程,在任务完成后,对每组给出适当的修改建议和恰当的评价。从根本上改变“以教师为中心,以课程为中心,以课堂为中心”的传统教学模式。

三、结语

基于工作过程的程序设计语言课程教学通过典型工作任务,增加了师生互动,通过学生学习兴趣和主动性,学生自主学习能力和创新能力有了明显改观。通过企业真实项目的实践,学生真实感受到了就业岗位的技能要求,学习态度和积极性有了很大的改善。通过真实项目的开发,学生实践技能得以提高,为后续课程的学习和就业打下了良好的基础。

参考文献:

[1]姜大源.“学习领域”——工作过程导向的课程模式[J].职教论坛,2004,(8).

第8篇:程序设计报告范文

关键词: 非计算机专业 C语言程序设计 邵阳学院

目前,C语言程序设计课程已成为计算机专业及其他相关专业的基础课,目的是通过C语言程序设计课程的学习,使学生掌握用计算机解决问题的方法,学习常用的各种算法,掌握程序设计的基本思想。程序设计思想贯穿相关专业的后续课程,是最基础的内容。教学实践证明:程序设计课的教学质量对相关后续课程的教学与实践有很大的影响。

1.C语言程序设计前期教学中存在的问题

C语言程序设计是一门逻辑性较强的语言类课程,对于初学程序设计的大学生来说,面临大量的基本语法和程序结构理论性的学习,某些学生认为教师讲的这些知识理论性较强而实用性不强,因而会对这门课程的学习产生不重视甚至是抵触的心理。还有的学生虽然认识到该课程的重要性,也很想学好,但由于教材缺乏较容易理解和生动有趣的范例,感觉学习过程缺少乐趣与兴趣,渐渐地就失去学好这门课程的自信心。同时在实践考察环节中由于实验内容设置欠合理,大部分学生即使到期末也很难对本门课程有一个整体框架式的认识,课程教学效果无法保证。

2.原因的剖析

(1)学生的基础薄弱,特别是英语、数学比较差是一个主要原因,也是阻碍他们学习该门课程的最大障碍。英文版的VC++系统是大部分学生拦路虎,程序算法问题的处理更让他们望而却步,要真正解决问题,就要想办法提高他们的学习兴趣,让他们不断地练习,积累经验,寻找解决问题的突破点,探索适合学生发展的教学方法和教学内容,以充分调动他们的学生积极性和主观能动性。

(2)有的教材内容过多过难,不符合非计算机专业学生的实际。首先我们先对C教材进行分析,目前使用的C语言教材涉及太多的数学知识,这使得学生一看到教材就感到头昏脑涨,培养兴趣就更无从谈起,使得老师在讲授例题和练习时首先必须先解释数学知识,然后学生才能勉强接受。当前常用的编程系统是TruboC,其特点是:①界面是单任务的DOS界面;②菜单、命令、帮助等都是英语;③当程序出现错误时,也都是英语提示信息,学生感觉无从下手,而且操作麻烦,为了与计算机等级考试相适应,因此我们使用汉化的VC编译系统替代TurboC。

3.非计算机专业C语言程序设计教学的特点

与计算机专业相比,非计算机专业的C语言程序设计教学有其自身的特点,主要表现如下:

(1)教学目标不同。

计算机专业的学生学习C语言是为了增强逻辑思维能力,为学习其他的编程语言和以后从事软件开发工作打下基础;而对于非计算机专业的学生来说,掌握计算机知识主要为以后就业提供保障,因此,通过这门课程的学习,使学生顺利通过国家计算机二级考试,获得一份二级证书无疑是每位教师努力的方向。

(2)教学重点不同。

计算机专业的教学主要为了提高学生的编程技能,因此所教授的内容无论是从难度、深度和广度都远比非计算机专业要大;而非计算机专业的教学重点是依据二级考试大纲,学生只需要掌握大纲要求的知识点,牢固基础知识,具备一定的编程能力即可。

(3)教学手段不同。

计算机专业的C语言教学理论和实验学时都很充足,可以将重点难点知识深入展开讲解,除了实验课外,还可以安排实习让学生动手编写一个完整的应用程序,为后续的学习打下基础;而非计算机专业受学时所限,需要教师在理论课上利用有效的教学方法,高效地把重点难点内容讲透彻,在实验课上尽量激发学生的学习兴趣,引导学生自主学习,使学生逐步学会编程。

4.C语言程序设计课程教学改革

邵阳学院非计算机专业的C语言程序设计课程都安排在大一的下学期,均为理工科学生开设,由于这一阶段课程多,课时长,而C语言程序设计课程侧重于应用,需要大量的上机实践。而且C语言课程中存在较多新的概念,较为抽象、复杂,对于一年级学生尤其是非计算机专业的学生来说还存在很大的难度。针对这一问题,我们在多年的教学实践当中对于教学方法进行了一系列的改进和探索,取得了较好的教学效果。在这里进行简单的总结和分析,主要从教学目标、教学内容、教学模式、教学评价及师资队伍优化等方面提出多项教学改革措施。

(1)明确教学目标,优化教学内容的组织结构。

教学目标是指教学活动实施的方向和预期达到的结果,是一切教学活动的出发点和最终归宿[1]。C语言程序设计的课程教学目标要求学生掌握C语言的基本概念、语法和程序设计的常用方法,领会结构化、模块化程序设计的基本思想;通过编程训练,熟练地使用编程工具编写和调试程序;在课程学习的过程中,形成良好的编程风格和程序设计思维方式,提高分析问题及通过设计程序解决实际问题的能力,为专业课程体系中后续课程的学习打下基础。教学内容是实现教学目标的基础,合理地组织教学内容是实现教学目标的保证。只有通过分析和研究C语言程序设计的前导、后续课程才能更好地优化教学内容的组织结构。C语言程序设计的后续课程可以分为直接后续课程和间接后续课程,其课程内容的组织优化要以服务后续课程的学习为目的,充分考虑课程内容之间的内在联系。例如C语言中的单向链表属于数据结构中的链表部分;C语言中的文件读写函数是操作系统中文件处理的具体实现;C语言中的结构体可以看成面向对象程序设计中的类;C语言是学习编译原理的载体和媒介。总之,任课教师要认清C语言程序设计课程在整个专业课程体系中的地位,讲解内容时要有的放矢,不但要告诉学生学什么,还要告诉学生学有何用。

(2)采用师生互动式教学与任务驱动式教学相结合模式,提高学生的学习积极性。

邵阳学院C语言程序设计理论授课46课时,授课过程中要求教师同时应用PowerPoint和VC++两个软件,课件制作要求高质量,当讲解到程序示例时,适时切换到VC环境中演示C程序运行,例如有这样一个程序:假设有一张足够大的纸,厚度为0.0001米,问将这张纸对折多少次超过珠穆朗玛峰高度。程序代码如下:

main()

{floath=0.0001;

intn=0;

while(h

{h=2*h;n++;}

printf(“n=%d次”,n);}

此题让学生感觉很有意思,当程序结果打印出来是27次时,学生顿时目瞪口呆,在脑海里产生深刻的印象,接着修改程序的部分语句再次运行,显示每一次变化的数值,让学生立即看到修改之后的结果,帮助学生彻底搞清楚程序每个部分的功能,让学生直接看到程序的真实运行结果,大大调动学生的学习C语言的积极性。VC环境中字体较小,后排的学生往往看不清楚,可以打开Windows辅助工具中的放大镜功能,对局部区域进行放大,增强显示效果。我们还结合VisualC++集成开发环境进行示错教学的尝试。给出一些例子和程序,让学生进行分析,哪些是对的,哪些是错的,错误的原因是什么,应该怎样修改。然后立即在VC中演示,先演示未作修改之前的运行情况,提示学生注意VC报告的错误信息及相关位置,接着在修改后再次运行程序。这样可以使学生对于相关知识点掌握得更加牢固。同时,我们针对某些比较复杂、学生理解起来有一定困难的算法制作生动有趣的FLASH动画。如排序算法中的冒泡排序、选择排序。函数调用中的递归调用(以汉诺塔问题为例)等。讲解具体算法时结合动画演示,将抽象问题形象化、枯燥问题生动化,使学生较快地理解相关算法的思想实质。

在基本语法知识互动式讲解完成后,可以引入任务驱动教学法穿插于教学过程中[2],以完成一个个具体任务为线索,由教师巧妙设置任务,任务中含有知识点,把教学内容融于实际任务中。任务开始时向学生介绍需要用到的概念、思想和方法,学生经过思考和教师的点拨,自己解决问题。在完成任务的同时,可以培养学生的创新意识、创新能力及自学的习惯,学会如何发现问题、思考问题及寻找解决问题的方法,从而极大地提高学生的主观能动性。在这个过程中,教师的任务则是对学生如何完成任务进行引导和指导,并加以鼓励和评价。

(3)加强实践环节,增强学生动手能力。

我们精心制定12次(24课时)上机实验内容,其中包含11次设计性实验和1次综合性实验,设计性实验内容按最新大纲要求所订,综合性实验锻炼学生的综合应用能力,实验内容统筹语法掌握与能力的培养。上机实验是学生掌握C语言的语法、语义、程序结构的重要过程,能提高学生的动手能力,加深学生对基础知识和算法的理解,是提高学生程序设计能力的重要环节,实验教学和理论教学同样重要。上机实验前要求教师课前做好充分的准备,必须精心设计每一次实验课,同时要对学生提出具体要求。要求学生根据教师的实验题目在上机实验前完成相关程序设计,并形成实验报告,最后完成上机实验,并提交实验报告待老师检查。实验任务可以给学生以压力,在规定的时间让学生充分动脑,争取在短时间内完成任务。这样做有利于提高学生自身运用C语言的能力,展示平时学习的效果。较高的实验分数能给学生一种荣誉感及成就感,更有利于调动学生学习的主动性、创造性,充分展示学生的学习能力。对于成绩好的学生出现“吃不饱”的问题,我们特意组织有经验老师像搞课程设计一样,另外为他们加题,指导他们完成任务。

(4)加强课外辅导,及时了解学生的学习情况。

课外答疑和习题课是课外辅导的一种形式,是完善教学的一种补充,每章内容教学完成后,给学生布置一定量的作业,安排一次答疑或一次习题课,往往可以达到事半功倍的效果,由于时间关系,习题课上由教师详细挑选有一定代表性习题进行详细讲解,对编程思路及程序结构进行解析并演示运行结果。答疑则通过课后实现,为此要求老师与所任班级学生始终保持通讯畅通,采用面授、邮件、QQ工具等方式实现。这样可及时掌握学生的学习情况,真正做到为学生服务。

(5)使用多种评价形式,优化师资教学团队,提高服务水准。

课程评价既检验学生对基本概念、语法知识的掌握,更检验学生使用程序设计解决实际问题的能力;评价一般应采用笔试、上机考试两种形式,具体有学校课程考试、湖南省计算机等级考试、全国计算机等级考试等。笔试题目的题型丰富多样,利用选择题、填空题考查学生对基本知识的把握,利用阅读题、编程题考查学生读、写程序的能力。上机考试可以使用随机抽题自动评分系统,对学生的动手能力进行客观、公正的评价。在对学生学习情况评价的同时,学校应组织学生评教和教师互评活动,通过对教师的多方位评价衡量教师教学的质量。教师队伍的优化是有效实施教学改革、稳步提升课程教学质量的重要保证。C语言程序设计教学队伍要依托课程质量工程建设,在课程负责人的带领下积极申报教研项目,定期开展教研活动,重点培养一批中青年教师,逐渐形成一个教学水平高、科研能力强、年龄层次合理的优秀教学团队。

5.结语

通过对非计算机专业C语言程序设计课程的教学实践,我们深深体会到教材的选择、课程内容的安排、教学方法的运用不但要符合教学的目标,更要适合学生的思维特点。在C语言教学中,注重学生的思维训练,增强学生的实际动手能力,激发学生的学习兴趣,提高学生分析问题和解决问题的能力,将学生引进计算机应用领域,使其在更高的层次上理解计算机和应用计算机,使C语言真正成为非计算机专业学生运用计算机解决本专业应用问题的工具,这才是我们的目的。

参考文献:

第9篇:程序设计报告范文

关键词:ACCESS程序设计;课程改革;教学实践

中图分类号:G642文献标识码:A文章编号:1671—1580(2013)08—0084—03

ACCESS的编程机制具有可视化、面向对象及事件驱动等特点,数据库应用系统的开发如果采用ACCESS程序的话,几乎可以不用编写程序代码就能将其实现,开发出来的数据库应用系统不仅非常专业而且具有强大功能[1]。如此看来,“ACCESS程序”具有非常强大的编程功能,而且实践证明,ACCESS程序的学习也非常简易,现如今,对于“ACCESS程序”的学习,很多高等教育学校都将其列入非计算机专业学生所要学的第一门程序设计课程。目前,ACCESS语言也被教育部考试中心列入全国计算机等级考试大纲中可供选择的语种范围内。怎样才能在紧张的学习当中将课程的教学质量及教学效果提高,怎样才能让学生真正学习到这门课程,并把课程的知识应用于实际的生活当中,这是每个学校、每个老师都在考虑及研究的问题。

一、“ACCESS程序设计”课程的教学现状及问题

(一)教学现状

ACCESS程序因其具有功能强大、学习简易的特点而受到许多高等教育学校的关注,加上现在ACCESS语言已经被列入全国计算机等级考试二级考试可选的语种范围内之后,各大高校为让更多的非计算机专业的学生通过二级考试,纷纷将“ACCESS程序设计”列入非计算机专业学生的程序设计课程当中。因此,也导致了老师在平时的教学过程当中只注重学习之后的“考”,对于ACCESS程序设计的教学只是简单介绍概念及相关编程语法,然后为了应付考试就开始给学生讲习题,不断将习题灌输到学生的脑海之中。而学生为了能通过之后的考试也不去深究ACCESS程序设计的具体方法,只是单纯采用题海战术,有些甚至采取死记硬背的方法来记住题目和答案。

将ACCESS语言列入全国计算机等级考试的目的本来是想让ACCESS数据库的应用得到广泛的推广[2],但是照现在的教学方法及学习方法来看,“教”与“学”已经脱节了,教育只是“填鸭式”的,学生学习只是被动接受,对于学生的动手操作能力及综合分析能力从不考虑,更别说加强学生的创新能力了,因此,要实现ACCESS语言的广泛应用这个目的也就无从谈起了。另外,传统的教学方式也让学生提不起对这门课程的学习兴趣。虽然很多学校现在的教学方式是采用多媒体来进行教学,但是老师在讲课时通常都是按书上所安排的所有章节依次讲解,导致学生对于课程的学习感觉淡然无味。再一个,学生自身的素质参差不齐,对ACCESS程序设计学习之后的效果也不一样。

(二)存在的问题

“ACCESS程序设计”课程的教学现状就是如此,因此,在教学的过程当中避免不了很多问题的产生。其主要表现在以下几个方面。

1.从学生角度来看

对于非计算机专业的学生来说,其计算机基础较差,对于很多计算机方面的专业术语更是一知半解,更别说让其动手进行上机操作了。这样自然会导致在学习的过程当中跟不上老师及其他同学的步伐。

2.从教学方法上看

传统的教学方法是老师先将有关概念提出来,然后针对概念进行讲解,随后再展开理论部分,最后是有关应用部分。由于每个学期的学时有限,学生在上课的时候很少有时间能让其自主练习,导致老师所讲的很多知识学生都很难消化。虽然大多数学生在课堂上跟着老师的步调可以将实例演示并将结果算出来,但是学不会“举一反三”,一旦题目有点变化或所要求的量发生改变,学生就不知该从何着手了。另外,在ACCESS程序设计当中存在“模块”部分,在这方面,学生表现出来的问题尤其突出,其中主要问题是对算法不了解,关于编程的语法和语句虽然学过,但不会学以致用。

3.从实践上看

与计算机专业的学生相比,非计算机专业学生学习数据库课程所需要的时间更长,而且见效也更慢。而老师的任务是不仅要完成本职的教学工作,还要使学生通过对课程的学习而实际地了解并学会真正使用数据库软件,对于老师来说,这确实是一件很不简单的事情。

二、以能力为导向,分析课程改革与教学实践

对于“ACCESS程序设计”这门课程,无论是学生还是老师,其学习方法与教学方式都存在一定问题。传统的教学方式明显不适用于对“ACCESS程序设计”课程的教学,理论知识不能使学生真正了解课程的实质内容,同时也让学生感到课程枯燥乏味。因此,在这方面,我们主要要做的就是想办法把学生的学习积极性及主动性调动起来。通过教学实践,笔者认为可从以下五方面进行改革,从而有效地提高“ACCESS程序设计”的教学效果。

1.结合专业特点,巧设导入案例

子曰:“知之者不如好知者,好之者不如乐之者。”在导入新课时,教者结合学生专业特点,精心设计导入案例,巧设悬念,为学生创造一种良好的学习情境,激发其强烈的求知欲望。课程开课的第一节运用这种方法尤为必要,它将为课程的整体学习打下一个良好的开端。例如:电子商务网页设计是电子商务专业的专业核心课程,针对电子商务专业学生,在“ACCESS程序设计”课程开课的第一节,可通过展示一个带有会员注册登录、留言板、在线调查系统等功能的商务站点,并将站点动态网页部分功能进行详细分析,讲解其与ACCESS程序设计的关联。可就某个具体功能设疑让学生展开讨论,如商务网站如何存储和管理用户留言信息?让学生思考要完成这些功能需要具备哪些数据,然后引导学生建立数据库及表对象,再针对学生的设计可行性进行讨论,此时,就可将基础的理论知识穿去,将学生的疑惑一个个进行解答。

2.以实践项目为主线,强调“做中学”

ACCESS程序设计概念多、理论性强,掌握不同的程序结构是课程的重点,若采用传统的教学方法,学生容易产生畏难情绪。笔者认为可选择一个难度适中、与社会行业相关、知识拓展性强的实践项目案例贯穿整个课程,教师在课程教学时可演示事先已设计好的项目系统,让学生体会到程序设计的实用性,从而激发学生的学习热情[3]。在整个课程学习过程中,可根据各章节内容,把实践项目案例分解成若干个子项目,从而使课程内容有机、系统地联系起来。

例如,我们可以选择“产品销售管理系统”作为电子商务专业的实践项目案例,针对各章节内容把项目划分为8个子项目,具体如下:

3.坚持“理论与实践一体化”的教学模式

所谓“理论与实践一体化”的教学,是强调以学生为主体,将理论学习与实际训练紧密结合起来。在这种教学模式中,将课程学习的教学场所从纯理论学习的教室转换到多媒体计算机实验室,让学生围绕各子项目的任务要求自主去探索、分析和实践,教师从旁巡视和引导,随后,教师针对存在问题集中理论讲解,再让学生通过实践解决之前还没解决的问题。教师通过“实践—理论—再实践”的教学形式,让学生带着问题,边做项目,边学理论,不但为学生提供了更大的思考、质疑、技能训练的空间,而且更能激发学生学习兴趣和积极性,使其分解问题、解决问题的能力和团队合作意识得到提升。

4.设计“阶梯式”的实训教学内容

对“ACCESS程序设计”课程设置实训教学,是为了学生不仅能学到理论知识,而且能锻炼实际操作能力,使学生能够得到全面的成长。实训的过程是让学生主动发挥思考的过程,学生通过不断思考和发现,就能将系统设计的思想慢慢形成。基于这个过程的考虑,我们在进行“ACCESS程序设计”实训教学过程当中也应做到循序渐进,由基础实训开始,慢慢发展到综合性实训,再完成系统开发。首先是针对每个章节或是某一小部分内容,在学习完成后要进行强化练习,然后在多个章节完成后再综合性地进行练习,最后通过前期打下的坚实基础开始尝试进行系统的开发。

考核环节考核内容分值比重过程考核主要考核学生出勤、课后作业、课堂提问、课堂表现等。20%实践教学主要通过学生完成课程实践项目情况,来考核学生的技能应用能力(含每次实训报告总结)。25%团队合作主要考核学生团队合作意识和沟通协调能力。15%期末考试分笔试(30%)和综合实践项目设计(70%)两部分,主要考核学生掌握基础知识和实践技能应用能力等。其中,综合实践项目设计部分又细分:项目效果解说(30%)、答疑(20%)、创新设计(20%)、团队(10%)、报告编写(20%)。40%社会实践该项主要用于学生参加社会调研、社会技能实践活动、学科竞赛等方面的加分项目。最高10分5.以职业教育特点为依据,改革课程考核评价标准

职业教育是以市场为导向,注重学生实践应用技能、创新能力和团队合作意识的培养。传统的课程考核方式常常采用期末考试一个环节,偏重理论知识考核,难以考查学生实践能力,改革课程考核评价标准势在必行。笔者以职业教育特点为依据,制定了突出综合实践技能、注重过程学习和职业素养的课程考核评价体系,有效促进了学生注重实践、积极参与的精神。课程考核主要分左侧表中的几部分内容。

三、结语

“ACCESS程序设计”是理论与实践相结合的一门综合性课程,因此,在平时的教学及学习当中,不仅要注重在课堂上进行理论知识的教育,对于课程的实验环节也要加强对学生的教学[4]。“ACCESS程序设计”的教学目的不仅仅是计算机等级考试,最重要的是让学生真正将这门学科掌握起来,所以,在进行教学时不单要针对考试中所出现的问题,还要兼顾到对系统开发能力的培养[5]。在以往的教学过程当中,因为语言程序设计课程的特殊性,无论是学生还是老师,都只是为了应付考试而勉强教学和学习,但是我国教育部门将ACCESS加入到计算机等考试当中的最主要目的是为了推广ACCESS语言的应用,因此,对于以往“填鸭式”的教学方法必须进行改革。在改革的过程中,老师应该注意改革现在的教学模式,课程教学的教学方法要根据学生的具体情况进行变化和创新,以总结出最适合学生的教学方法。

[参考文献]

[1]梁华,陈振,张波.案例驱动的ACCESS程序设计教学改革[J].计算机教育,2011(02).

[2]侯松鹂.《Access程序设计》课程的教学改革与探索[J].计算机教育,2011(02).

[3]刘欣荣,杜玫芳.CDIO指导下的财经类院校VB教学改革[J].计算机教育,2012(06).

相关热门标签