开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇计算机程序设计论文,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
1计算机专业程序设计课程实践教学的主要范畴
2计算机专业程序设计课程实践教学的重要性
2.1加强实践教学是实现计算机专业程序设计课程教学目标的要求计算机程序设计课程的主要目的是培养学生的程序基本开发能力、程序代码编写能力和程序调试应用能力,重点培养学生的算法应用分析能力和数据综合处理能力。其主要任务是通过日常教学,使学生掌握程序设计的一般方法和程序设计的具体过程,掌握计算机程序设计语言的语言特征,具备程序设计师的基础应用能力。在教学过程中,任课教师应以人才培养为目标,侧重编程综合应用能力的培养,通过具体的实践教学来提高学生的职业技能。
综合编程能力的强弱是检验计算机专业程序设计课程教学质量的基本标准。
3成人教育业程序设计课程实践教学存在的问题
我国成人教育业程序设计课程的实践教学存在问题的体现在下述方面:①实践设施不足,教学条件不完善;②对教学认识不足,实践教学不受重视;③实践教学方法陈旧,考核方式单一。转贴于
4积极探索,构建合理的程序设计课程实践教学模式
4.1实践教学要符合教学目标的需要计算机专业程序设计课程实践教学必须紧紧围绕专业培养目标、人才培养规格进行。要结合专业特点更新教学内容,调整实践教学内容、方法和手段。实践教学内容的更新,要注重对学生编程综合能力的培养和创新能力的培养,要对已有的实践教学内容进行筛选、整合,改变单一的演示性、验证性实验,增加综合性、设计性、创新性实验,要充分利用计算机课程的教学特征,提高实践教学效果。
4.2以社会就业需求为主导,开展多种形式的实践教学程序设计课程实践教学主要有上机实验、课程章节综合练习、大作业、课程设计、软件项目实训、校外软件基地实习、软件合作企业顶岗实习、校内软件课题研发等。其中实训、实习和研发都是采用“真题真做”。通过上述这些实践过程,学生的程序设计综合应用能力和软件开发能力都能得到良好的锻炼。
4.4改变实践教学的考核方式学习程序设计课程的真正目的在于应用,是为了能正确编写出应用程序。因此,程序设计课程的考核要理论考核与实践操作考核并重,各占1/2,并要求理论考核与实践考核分离,只有理论考核和实践操作考核均合格后,整个课程成绩考核才算合格。实践教学考核主要考核学生综合运用所学知识解决实际问题的能力,不仅要考查学生的知识理解程度和基本操作技能,也要考查学生认知能力、动手能力、知识转化能力、再学习能力和创造能力,任课教师可以通过学生平时的学习情况和期末实践测验给出一个比较合理的综合成绩。这样,不仅可以对学生的学习情况给出一个客观的评价,还可以鼓励学生平时认真学习。
关键词:课程服务专业计算机基础课程计算机基础教学
中图分类号:G642.0文献标识码:A
引言
计算机基础课程是非计算机专业本科生必修的公共基础课,在公共基础教育平台和学生的基础教育中占有重要的地位。计算机基础教育课程包括《大学计算机基础》课程和《计算机程序设计基础》课程。为加强计算机基础教育的针对性,更好地服务于专业学习,建立了“1+X”的课程体系。《大学计算机基础》是“1+X”课程体系中的“1”,其教学内容丰富、受众面广、教学成效显著;《计算机程序设计基础》是“1+X”课程体系中的“X”,根据不同专业需求,开设不同的程序设计语言。然而如何能使不同专业的学生更好地学习和接受计算机能力,将“课程服务专业”的思想引入到教学当中,是教学改革的重点也是难点。
一、课程服务专业思想的引入
计算机基础教学的目标是为非计算机专业学生提供计算机知识、能力与素质方面的教育,培养非计算机专业的本科生掌握一定的计算机基础知识、技术与方法,能够利用计算机进行学习、工作和生活,适应信息化社会的发展,并在此基础上,培养学生利用计算机解决本专业领域中问题的意识与能力。
进入21世纪以来,互联网技术的发展和应用深度渗透到生活的各个领域,各个专业对信息处理的终生需求和计算机网络应用的终生需求,使得计算机基础教育的范围不断扩大,与之相对应的是如何将这些需求反映到计算机基础教育的课程中。
1.充分考虑各专业差别,开展计算机基础教学。根据各专业的不同需求和学生的自身发展需求以及国家信息化的要求,笔者所在的黑龙江科技大学为不同专业的学生开设了《计算机程序设计基础(VB)》课程和《计算机程序设计基础(C)》课程。例如,对电子信息类专业,开设《计算机程序设计基础(C)》课程;对信息管理类专业,开设《计算机程序设计基础(VB)》课程。
2.理念先进,服务人才培养定位,教学目标明确。以我校应用型人才培养为目标,在教学过程中,始终坚持“以学生为主体、以教师为主导”的教学理念,提倡“自主、合作、探究、创新”,不断改革教学方法和手段,鼓励学生进行研究式学习、自主式学习、资源式学习和协作式学习,注重对学生四个方面的能力培养:通过计算机、网络及信息技术基本原理、基本知识的讲授,掌握计算机分析问题、解决问题的基本方法,培养学生对计算机的认知能力;通过计算机数据处理、多媒体技术及程序设计知识的讲解,培养学生应用计算机解决问题的能力;通过熟练掌握与运用计算机与网络技术,有效地表达思想,掌握基于信息技术的团队协作方式,接受信息社会道德规范的约束,并自觉承担相应的社会责任,培养学生依托信息技术的共处能力;通过对信息的获取、分析、评价和吸收,培养学生的自我学习能力。
二、课程服务专业思想的实施
根据我们多年在计算机基础教育改革实践过程中积累的经验,改革的核心在于“以学生为主体,以教师为主导”和为专业服务的“计算机应用能力培养”的教学模式和方法。我校计算机基础教育与学生专业结合的做法是在教学手段和模式富有建设性成效的基础上积极主动思考,结合了我校办学的主导思想和特色并有了创新性发展。从几年的实践过程看,做法日渐科学,效果积极显著。
具体做法:“积累、实践、服务”相结合。
1.及时与专业负责人进行沟通,与专业对接。第一学期开学前,通过与学生所在院系教学负责人、专业建设负责人沟通等方式,实现课程内容与专业需要的对接,重新定位,按照专业需求调整教学内容,使课程内容满足专业培养目标的需要。即每学期在制定计算机基础课程授课计划时,请专业负责人或骨干教师参与,根据各专业需要提出合理的意见和建议,充分了解各专业学生对计算机应用技能的需求,从而对课程内容及时做出调整和修订。
2.提高课程组教师的计算机能力培训。课程组的教师积极参与实习、实训、毕业设计和实践锻炼等环节,不断提高自身的实践水平,实现教学水平与专业能力培养的需要对接。同时,课程组的多名教师通过到企业挂职锻炼及时了解社会对计算机能力的实际需要,也了解到学生将来的就业趋势,在提高自身能力的同时,也保持了计算机教育的实用性和先进性,为培养学生的计算机能力作出了充分的准备。
3.为学校各专业的大四学生,进行毕业论文排版指导,发挥服务作用。随着用人单位对大学毕业生计算机能力的要求有增无减,计算机水平高低已经成为衡量大学生业务素质与能力的突出标志之一。因此,我校计算机基础教育“课程服务专业”的理念和做法既符合教育部对普通本科院校提出的“应用型本科教育”的内涵所指,也符合我校的三大教育理念。作为我校的特色项目,必定对于促进学生终身学习和主动应用计算机起到积极的推动作用。
5.加大实践教学环节,提升学生实际操作能力,为专业服务奠定基础。计算机基础教学建立了相对独立的实践教学环节,加大了实践教学在教学计划中所占的比例,强调实践与实习,实验的目的不是为了验证理论,而是为了培养学生的技术应用和实际动手能力。同时,在授课计划中还安排了多项相对独立、逐步提升的阶段性技能与综合性实验与训练,不断提高学生的实践操作能力。
比如,会计专业是研究企业在一定的营业周期内如何确认收入和资产的学问。会计师除了准备财务报表以及记录企业交易行为外,更重要的是能够参与企业间的合并、质量管理、信息技术在财务方面的应用、税务战略以及很多企业的管理决策活动。因此一个现代高水平的会计人才,不仅仅要会收钱,会记账,会审计,更应该利用会计这个工具,学会管理,具备多方面的能力。美国一个权威职业评估机构分析得出:Computerliteracy是会计专业人才应具备的重要能力之一。同时,现代信息技术对会计工作也有着重大的影响作用,会计实务的重点将由原来的编制凭证、记账、结账、编制报表等转向收集信息、存储信息、加工信息、传递信息、查询信息等。因此,面对会计专业的学生进行《大学计算机基础》授课时,也要考虑以上因素,只有这样才能在提高学生学习兴趣的同时,增强学生的计算机会计能力。
7.开发了自主学习,课程服务专业的网站。为了提高学生的自主学习能力,课程组开发了计算机基础系列课程网站,网站中包括了课程的大纲、授课计划、课件、习题、名师视频等资料,方便了学生资料的获取。同时,网站还重点设置了“专业学习模块”,针对不同的专业,根据各个专业对计算机能力的需要设置了不同的模拟试题,极大地调动了学生的学习主动性,激发了学生的学习兴趣。
8.适应专业特点,精心设计案例。案例式教学方法的实施是提高计算机基础课程教学质量的有效途径之一。为了更好地做到课程服务专业,需要授课教师在案例设计之前需要与专业知识进行对接,对案例进行反复斟酌、思考与设计,好的案例可以帮助学生更好地记忆基本概念,理解所学知识,掌握基本技能。
如在对会计专业进行案例设计时,要尽可能将具有专业特色的案例融入教学过程中。在安排案例教学时有意识穿插更具会计专业特色的实例,在学习Word时,可以设计“财务报表”、“月份财务分析表”、“资产负债表”等案例,使学生在练习了表格排版的同时,了解了财务报表、财务分析表及资产负债表应包含的基本信息,与会计专业基础课有了更好的结合。
三、结论
实践证明,课程服务专业思想在高校公共计算机基础课程中的引入与实施,使得教师能够更加有针对性地进行教学与授课,使得原本枯燥的知识和课堂变得更加生动和引人入胜,充分调动了学生的学习积极性和主动性,激发了学生的学习兴趣,为学生今后利用计算机解决专业实际问题奠定了夯实的基础。
[本文为:1.黑龙江科技大学高层次引进人才科研启动基金(06-122);2.黑龙江省高等教育教学改革项目]
参考文献:
[1]金蓉,庄红,黄德生.面向能力培养的高校非计算机专业计算机基础教学改革与实践.计算机教育[J],2010(1)
[2]韩雪.浅析服务专业能力培养的高职《计算机基础》教学.科技信息[J],2011(6)
[3]孙丽娜.服务专业需求的高职计算机公共课教改研究.中国教育技术装备[J],2013(15)
关键词计算机教学考试改革能力培养
中图分类号:G424文献标识码:ADOI:10.16400/ki.kjdkx.2016.12.040
AbstractInordertoimprovethenoncomputerprofessionalstudentsofscienceandengineeringteachingqualitycoursesofcomputerapplication,thiskindofcurriculumreformoftraditionalteachingmethods,payattentiontothecultivationprocessandtheabilitytoadjusttheclassroomcomputerroom,teachingmethodsandreal-timeinteractionwiththescreenbroadcast,willlectureandexperimentalfusion,theteachingandexaminationfusion,usingavarietyofmeansofexaminationcoverageofthewholeteachingcourse,notonlytoachievethepurposeofmotivatingstudentstolearn,butalsomaketheclassroomlivelyandlively,goodteachingeffect.
Keywordscomputerteaching;examination;reform;abilitytraining
为了鼓励和督促学生通过课程真正掌握计算机程序设计及应用的技能,许多任课教师倾注了大量心血,提出了很多方法和措施,值得我们参考。①②③④笔者认为考试是教学的指挥棒,考试改革和教学改革必须同时进行才能取得好的教学效果。为此,在学院教务部门的支持下,笔者在讲授“Matlab语言及应用”课程中,对课程教学和考试方式进行了改革创新,现就有关教学实践的经历谈一下自己的看法。
1问题分析
1.1传统思想造成考试方式的固化
1.2社会环境影响学生的学习目的
当前“急功近利”的社会氛围下,获得学分、取得高分成为学生学习的第一目的,真正熟练掌握专业技能和专业知识被大家严重忽视。一个较为典型的例子就是,在我校本专业免试推荐研究生时,入围的资格是考试成绩,复试内容是专业操作技能和专业素质。在这一环节中,高分学生表现出较差的技能或专业素质的现象非常常见。在日常教学中,学校也往往过分重视分数的价值功能,特别是奖学金、评优等几乎完全看考试分数,使学生产生了“分数高于一切”,“考试分数高的才是好学生”等问题。客观上引导学生以考试成绩为第一,而并不关心是否真正掌握了专业知识和专业技能。
对于理工科学生来讲,上述做法严重削弱了学生参与实践教学的积极性。在类似计算机应用类课程的很多科目中,笔试分数并不能真正检验学生的学习效果,笔试成绩高也不能代表高的实践能力。理论上,切实开展专业教育、职业规划是解决这一问题的基本途径。让学生知道每门课程在未来职业中的用途,这需要由每一位任课教师渗透到所负责的专业课程中,需要结合课程知识点告诉学生本节课的技能在未来的工作或研究中有什么用途。实际教学中,还可通过改变传统教学模式、提高学习兴趣来督促鼓励学生,如本文的方法。
2教考综合改革实践
2.1考核方式
为避免学生平时疏于学习、期末恶补考试,使学习效果得到客观、公正评价,更为了鼓励学生真正学好技能,在“Matlab语言及应用”教学中取消原来的期末统一笔试,改为贯穿整个教学过程的全程考核,将考核点设计为作业、小实验、讨论和课程设计等,表现为“考教融合”。在本门课程中,将成绩构成分配为期末程序设计考试成绩占40%,平时实验成绩占30%,课后作业占20%,课堂讨论占10%的模式。
2.2教学方式
为了配合上述考核形式,需要深刻改革授课方式。在讲课风格上,尽量避免空洞的理论讲授,通过给学生提供生动、形象的演示,使他们了解直至理解每一个知识点,在实践中掌握。在上课地点上,抛弃了原有的讲台和黑板,将授课地点从教室改到计算机室,学生每人一台电脑,既能观看教师演示,又能动手实践,还能随时与老师交流。在授课方式上,不再划分讲课学时和实验学时,将授课与实验融合起来,边讲边练边讨论。
上述教学方式使得学生在没有压力的情况下轻松学习,增强学生的学习主动性,使学生觉得“每节课都在学习,每节课都是考试”。
2.3教学内容
3教学效果分析
多轮的“Matlab语言及应用”教学实践表明,本文提出的教学方法能够充分调动了学生的学习兴趣,所有选课学生都获得了学分,且都取得了良好以上的成绩,70%以上的学生在期末的程序设计考试中都能独立完成程序设计。与授课前相比,学生的编程能力、创新意识以及实践课程的学习主动性等方面均有所提高,两年的授课前与考试后问卷调查的结果表明,学生对程序设计类课程的有好感的比例都是从约30%上升到约70%。编程基础较好的约20%的同学经过本课程的学习后已经能够熟练掌握Matlab语言,在毕业论文和研究生阶段可以自由设计所需专业程序。考察2015、2016两年本专业本科毕业论文中数据处理环节,50%以上学生采用了Matlab软件设计程序,包括自主设计和改造他人程序两种情况。上述教学效果完全达到了本专业本科培养方案中设置本门课程的目的。
4结语
从计算机语言应用类课程教学中存在的问题出发,结合“Matlab语言及应用”课程的教学实践,探索了教学和考试改革的方法,取得了一定的成效,使得学生的素质得到较好发展,编程实践水平普遍提高,提高了学生的学习兴趣。需要指出的是,我们一直采用的是小于20人的小班教学方法。在这种师生比的情况下,教师的教学工作强度是可以承受的,学生发生抄袭现象也是容易被发现并制止的。非常明显,当学生人数增多时,这种教学方案会给任课教师带来很大负担。因此,不断完善教学和考试改革,使教学和考试体制更具科学性、合理性和适用性,以满足优秀人才培养的需求任重道远,我们仍需不断努力。
注释
①张贞贞,宋连公.非计算机专业计算机基础教学模式探析[J].华北水利水电学院学报:社科版,2009(5):111-113.
②金蓉,庄红,黄德生.面向能力培养的高校非计算机专业计算机基础教学改革与实践[J].计算机教育,2010(1):145-148.
③张居晓.提高高校非计算机专业计算机基础教学质量的策略[J].计算机教育,2011(2):54-57.
④吴春明,邹显春,杜云.高校非计算机专业学生计算机创新能力培养模式研究[J].西南师范大学学报:自然科学版,2011(5):240-243.
⑤刘智运.大学教学机制必须改革[J].教学研究,2011.34(3):9-11.
关键词:计算思维;VFP程序设计;计算机基础教育
1计算思维
计算思维是美国卡内基梅.隆大学计算机系主任周以真(JeannetteM.Wing)教授提出的。周教授认为:计算思维(ComputationalThinking)是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为,其本质是抽象和自动化。
计算思维是数学思维、逻辑思维和工程思维的综合,是与阅读能力、写作能力和算术思维并列的第四种能力,能够提升人类的能力。就像识字、做算术一样,是人人都必须具备的思维方式。
2VFP程序设计教学现状分析
VisualFoxPro(简称VFP)课程是面向高等学校非计算机专业学生开设的计算机基础教育课程。VFP作为计算机程序设计的一门基础课程,应注重学以致用。学习的重点不只是编写程序,而是学习算法思想与问题求解的思路,增强学生计算思维能力的培养。
但是,从目前VFP程序设计教学,尤其是非计算机专业现状来看,普遍存在以下问题。
2.1课程学时少
VFP的教学课时相对“大基”课时虽然要多些,但对于非计算机专业的学生来说,计算机语言底子更是薄弱,想在短期内掌握一门计算机语言,十分不易。对于授课教师而言,既要完成教学目标,又要学生掌握计算机语言使用方法,并且在教学中形成学生的计算思维能力是非常困难的事情。
2.2以语言知识为主,偏理论,轻实践
在实际教学中,很多老师以语言知识为主线,详细介绍语法规则等细节内容,上机操作多以验证为主,偏重考试内容而不是编程,这和课程的教学目的是相悖的。导致学生学习积极性不高,感到枯燥,学的不牢,编程能力和分析解决实际问题的能力没有得到提高,更谈不上运用计算机解决专业问题。
3以培养计算思维为核心的VFP程序设计教学方法
3.1以计算思维为主线,改进教学内容和教学方法
计算思维养成以计算能力的培养为基础,对教学内容的改革,不是完全改变原有的课程内容,而是内容的再组织与优化,突出核心内容和方法。
教师在上第一节课时可以介绍一个完整的系统,比如学生信息管理系统。在演示过程中告知学生,每项功能可由哪些知识实现,让学生对本门课程有一个系统开发的概念。并了解VFP数据库管理系统在各个领域的应用。学习本门课程的目的,不是为了顺利通过考试,而是能够独立开发一个完整的系统,并能解决自己的专业问题。
在实际的教学中,以培养学生计算思维能力为核心任务,采用“任务驱动”和“案例教学”的方法,针对不同的专业和不同层次的学生设计教学任务。按照“提出问题—分析问题—寻找解决问题的方法—介绍解决问题的方法和知识—方法和知识推广—课后作业和拓展”的教学片段设计思路,对学生进行计算思维的实践。
3.2注重程序设计思想和算法训练
计算思维的本质是抽象和自动化。在教学过程中,可将相同或相近的知识点整合,设计相应教学任务,让学生了解程序设计思想和程序设计过程。如求解方程、求阶层等任务,可先让学生用数学方法来求解,再引导学生用抽象的计算机语言来实现。
启发学生利用多种技术、多种算法解决同一问题,围绕问题求解和设计能力培养。例如求解“1+2+3+……+100”,可分别考虑用for循环、while循环来实现。采用有趣的案例,比如“猜数游戏”,“幸运7”,“测试体重”等,用多种思路设计与多种编程方法实现。
3.3以上机实践为重点
VFP是实践操作性很强的一门课程,学生只有亲自动手编写代码,调试程序,才能掌握和理解所学的知识,了解编程的思路和方法,训练思维能力。对此,教学过程中可以考虑以下方法:
3.3.1设计合理的实验内容
3.3.2实验任务具有趣味性和综合性
3.3.3安排课程设计实验
在程序设计课程的最后环节,安排课程设计。或结合实例,完成一个项目。为学生提供一个全面考查学生水平的机会,对所学知识进行融会贯通。
4结束语
计算思维的教育,是一种普适教育,对任何类型的学生都需要培养。什么是计算思维,如何去理解它,每一位教师都应该充分地认识到它的重要性。只有改变了教师的意识,才能把计算思维的培养贯彻到自己的教学中,才能培养学生的研究创新能力,提高学生的信息素养。面向计算思维的计算机基础教学改革任重而道远,还需要不断的探索和改革。
[1]何钦铭.计算机基础教学的核心任务是计算思维能力的培养[J].中国大学教学,2010(9).
[2]李丽新.任务驱动教学法在VisualFoxPro程序设计课程教学中的应用[J].吉林建筑工程学院学报,2011(6):75-77.
信息技术教育:历史的考察
中小学信息技术教育可以追溯到20世纪50年代的计算机辅助教育。20世纪90年代,随着计算机技术、网络技术的发展,以及人们对技术与社会关系认识的深入,它逐渐演变成为一个目标多元、内容丰富、方法多样的现代教育领域,成为许多国家中小学的基础教育课程。考察国内外信息技术教育的发展历程,它大体经历了计算机程序、计算机应用、信息素养、信息生态等四个教育阶段。
1.计算机程序教育
2.计算机应用教育
3.信息素养教育
4.信息生态教育
信息技术教育:现实的追问
伴随着信息技术革新和人们对信息社会认识的深入,信息技术教育的内涵得以不断丰富和发展。受技术特征和应用环境的影响,不同时期表现出不同的教育内容、教育方法和教育目标。尤其在信息爆炸的今天,教师该如何开展信息技术教学?家长又该如何帮助孩子合理应用信息技术?这还需要从我国的现实情况谈起。
1.信息技术教育是要学生“抵制”信息技术吗
2.信息技术教育等同于“操作技能”训练吗
3.学校信息技术课程是“鸡肋”吗
莉斯科芙领导了许多重要的项目,包括小型低成本交互式的分时操作系统设计范例Venus、第一个支持数据抽象的面向对象编程语言CLU的设计与实现、第一个支持分布式程序实现的高级语言Argus、面向对象数据库系统Thor,还有最近的Byzantine分布式容错系统。其中,CLU语言对现代主流语言,如C++/Java/Python/Ruby/C#都有比较深远的影响,而她从这些实际项目中提炼出来的程序模块化和数据抽象思想,已经成为软件工程中最重要的精髓之一。她的另一个在程序设计中广泛应用的成就,是与周以真(JeannetteWing)一起提出的Liskov替换原则,即“派生类(子类)对象能够替换其基类(超类)对象被使用”――这是面向对象最重要的原则之一。华裔女教授周以真现在是卡内基梅隆大学计算机系系主任。
莉斯科芙早期在计算机软件设计领域的成就已经被纳入到多种计算机编程语言中,她在程序模块和数据抽象上的研究成果帮助软件更加容易编写、修改和维护。莉斯科芙表示,她的工作和“模块化”有关系,将复杂的系统拆分成小的模块,使它们变得更简单。
关键词:游戏教学法;游戏案例;激励机制;案例教学
基金项目:国家自然科学基金项目(61171075);湖北省自然科学基金项目(2011CDB297);武汉市教育局重点科研项目(2011020);湖北省教研项目(鄂教(2011)32);湖北省教育厅科研项目(B20129003);湖北省教育厅科学研究项目(B2013254);校本重点研究项目(2013JZ06)
作者简介:周方(1982-),女,硕士,武汉生物工程学院计算机与信息工程系讲师,研究方向为分布式系统与软件工程。
0引言
人数比例不到25%,这与人才培养初衷出现了严重的不一致。针对该现象,汲取各程序设计类课程任课教师的经验,在现有教学学时的基础上,通过调整人才培养方案,寻找各类程序设计类课程教学方法、教学内容、考试方式、教学评价等的通用性研究,并构建知识共享平台,摸索出一套适合本校校情的程序设计人才培养模式,并争取向其它兄弟院校推广。
1游戏教学法定义及创新
所谓游戏教学法,就是在分析常规教学方法的基础上,结合在校大学生爱玩游戏的实际情况,采用学生普遍感兴趣的游戏案例作为载体,教学过程中,注重与学生平等、信任关系的建立,实现“寓教于乐”的最高境界。具体创新如下:
(2)该方法首次将软件产业中的角色定位和角色职能,引入高校计算机教学课堂,以便学生对该行业有所了解,更早、更好地涉及该领域,从而定位和充实自己的职业生涯。
(3)该方法在进行案例教学过程中,以小组协作方式进行学习,以提高学生的团队合作意识;依照“将课堂还给学生”以及“授人以鱼,不如授人以渔”的思想,让学生自己组合成小组,自己参与管理,摸索适合自己团队的激励机制,促使学生在提升程序设计能力的同时,也相应提升其管理能力,这样有助于培养技能和管理相结合的复合型人才,全面提高学生的综合素质,以适应我国软件产业迅猛发展的需要。
(4)本项目研究坚持强化学生的抽象思维能力和设计(动手)能力的培养,从教学过程的一点一滴入手,逐步引导学生建立创造性学习和创造性工作的意识,以达到培养创新人才的目的。
(5)本项目以游戏案例为载体,快乐学习为理念,通过寻找程序设计类课程教学的通用性并建立通用性案例库等方式,达到缩短能力培养周期的目的。
2游戏教学法具体内容
该教学方法以《C语言程序设计》、《C++语言程序设计》为主,《数据结构》和《数据库》为辅,通过对这4门计算机软件系列类课程立项进行研究,针对学生爱玩游戏的特点,通过对知识点进行提取、整合,构建核心知识体系,将其融入到游戏案例中,从教学计划、教学案例、教学方法、教学模式、教学内容、教学反思、评价体系、考核形式、激励机制等9个方面进行研究,具体内容如下:
2.1教学计划研究
虽然网络游戏已经盛行,但暂时还没有进入高校计算机专业的课堂教学,因此很难借鉴其它兄弟院校的教学计划,而培训机构和游戏公司却充当了先行者。可以借鉴其课程体系结构和人才培养方案,例如:开设游戏策划基础、游戏构架设计、Flash、Flex、Java、网络游戏程序设计、网络游戏算法设计、游戏数理概论、游戏渲染技术、游戏平台设计、游戏组建开发等课程。
2.2教学案例研究
建设程序设计专用案例库,以便复用。以游戏案例为切入点,结合当前计算机业内的热点,选取游戏中的某个片段,结合程序设计的理论知识,带领学生去实现,例如:人人网、腾讯网、雅虎网平台上的社区类游戏。案例收集过程中,兼具趣味性和实用性,例如:交通信号灯程序、打字程序、计算器、猜数程序等,以此来吸引学生,学生对其了解后,可进行适当的完善和修改,以培养其创新意识。
2.3教学方法研究
教学过程中,要综合考虑学生的知识水平、认知规律、学习特点和接受能力,同时也要清楚地意识到第一堂课的重要性。能否上好第一堂课,直接影响到整个课程的学习,在上第一堂课时,教师应帮助学生明确学习该门课程的目的和学习任务,建立一个完整的学习框架,使学生能树立为用而学的学习动机。在课前充分了解学生的基本情况,包括他们的入学起点、已学课程、对该门程序设计类课程的认识和需要、兴趣爱好和关心的话题等,还要对课堂上可能遇到的各种问题予以充分估计,并拟定多种相应的教学方案。
讲解知识点时,加入公司实际运作时岗位分工的介绍,例如:美工、前台程序员、后台程序员、游戏策划、运维等工作人员应具备的知识体系等,让学生依据自己的兴趣爱好,有针对性地培养和提高自己在该方面的能力,以便更早、更快地与工作接轨。
2.4教学模式研究
采用“以例激趣—以例说理—以例导行”的教学模式,激发学生的求知欲和表现欲,寓教于乐。心理学研究表明,良好的心境可以使思想活跃,思维敏捷,表达欲增强。游戏能激发学生的学习兴趣,能给课堂营造良好的氛围。游戏活动能激发学生的创新意识,针对青少年模仿能力强、好动、好玩、爱表现的天性,将游戏元素引入课堂,通过游戏案例对程序设计类课程教学方法进行改革,打破传统的“概念—命令—程序”一条线的教学安排,让学生能够轻松接受新知识,调动他们主动学习新知识、探索新方法的积极性,使得学习逐步进入一个良性循环的轨道[1]。
2.5教学内容研究
2.6教学反思研究
教学反思是教师进步的阶梯,是教师进步的重要途径,进行教学反思能够充分激发教师的教学积极性和创造性,并为其专业发展提供机会和条件。教学反思鼓励教师通过多种策略和方法审视、分析自身的教育观念及教学活动,充分尊重教师的主体地位,发挥教师的能动性、积极性和创造性。只有通过不断的教学反思,才能够逐渐提高教师的教学监控能力,提升教师的专业素质、综合水平等[2]。
2.7评价体系研究
要检测教学效果,必须有完善的评价体系,只有各个方面的评价指标都较高,才能真正做到教与学的完美结合,从而促进游戏案例教学在程序设计类课程教学中的发展。评价主要包括两个方面:对学生而言,应该从知识的掌握程度、理解程度和是否具备了独立设计管理软件的能力等指标来进行评价;对教师而言,主要从案例的选取、课堂实施效果以及教学艺术等方面进行评价。
2.8考核形式研究
计算机程序设计类课程的实践性决定了它不注重学生死记硬背各种语法规则,而看重学生利用程序设计解决实际问题的能力。因此,可以将考试形式多样化,采取闭卷、开卷、考查、免考、实验报告、口试(类似于毕业答辩)、现场操作、小论文、作品等方式,精心营造“创新”的浓厚氛围,通过全程考核来激发学生学习的主动性和积极性。
2.9激励机制研究
激励有两种对象:一种是游戏玩家,对游戏而言,激励就是游戏的可玩性,即如何使得玩家能够对某个游戏乐此不疲。从游戏的视觉效果、声音效果,到人物设计、剧情编制,乃至规则制定、操作设置等方面都充分发挥其激励作用。将玩家类型分为成就型玩家、探索型玩家、社交型玩家和杀手型玩家,研究其特点并制定相应的激励机制;另一种是学生,在项目的分工合作中,也需要构建健全的激励体系。
3结语
关键词:移动学习,C语言程序设计,教学
1移动学习
现阶段的移动学习受技术条件的制约,通常作为高校教学的一种辅助学习模式,主要应用于管理和为学习支持服务提供“交互”通道,学生和教师通过使用移动设备(如手机等)方便、灵活地实现交互式教学活动。高校移动学习的主要应用模式分为三大类:基于短信息的在线移动学习,基于连接的在线移动学习以及存储移动学习模式[3]。基于短信息的在线移动学习具有使用费用低,设备普遍支持等优点,主要应用于通信数据少并且可用简单文字描述的学习活动和学习服务,可用于向学习者发送课程安排、考试安排和考试成绩等信息,提供指导、激励和支持等作用。基于连接的在线移动学习和存储移动学习,需要建设WAP站点,提供能够支持移动设备访问和下载的学习资源,着重选取能够贴近学习者生活和工作同时又较为时尚和流行的主题作为学习内容。存储移动学习和基于短信息的在线移动学习将是目前在高校中最切实可行的移动学习应用模式[4][5]。
2C语言程序设计课程特点
C语言作为当今最为流行的程序设计语言之一毕业论文范文,不仅是计算机专业的必修课,也是很多
非计算机专业的学习课程。随着计算机的普及,学生运用计算机的能力越来越强,但计算机程序设计课程因其较复杂的语法、编程等知识,依然是众多学生学习上的“拦路虎”。
C语言程序课程知识点琐碎,概念繁多,理论不易掌握;概念抽象且复杂,包含的数据类型和运算符丰富,需预习与复习相结合才产生较好学习效果;对应的规则繁多且易混淆,使用较为灵活,容易出错,使得学生容易产生畏难、厌倦情绪;理论与实验教学学时分布不均衡,导致课堂教学中,对如何分析和解决问题讲得不够充分,学生编程思路不清楚;实验过程中,不能将理论知识应用自如,在处理实际问题时往往不知从何入手,需要在平时教学中注意培养学生动手能力[6][7]。
C语言程序课程的这种特点,适合采用移动学习作为其辅助教学方式。针对C语言理论性强的特点,可以在课前课后发送定时短信,提示预习摘要求较高,不好的缩进格式影响其呈现效果,结构化风格使得程序占用篇幅往往较长等等,这些因素均会制约移动设备的可读性。
3移动学习在课程教学中的应用
图1移动学习应用模式图
3.1功能模块介绍
移动学习做为一种辅助教学模式,能够参与到C语言课堂教学的课前准备,课后辅导以及实验指导等方面。
3.1.1短消息学习模块
(2)课堂内容回顾。对前面课程学习过的知识内容以短信形式发给学生,提醒其回顾。
(3)作业提示、阶段测试。也可仿照上述短信设置方式,定时群发给所有的学生。
3.1.2移动学习空间或论坛
(1)课堂内容延伸。可提供诸如:MSDN使用介绍,帮助学生自如设计C/C++程序等;CSDN论坛介绍,提供同资深程序员交流学习的平台。
(2)常见错误提示分析。提供调试程序基本步骤,常见错误解读及可能出错原因。
(4)测试空间。提供一些历年试题,可以帮助学生巩固理论学习。
(5)教育思考。定期对教学进行总结,寻求更好的教学方式,也可以一些高校精品课程网站链接。
(6)资料下载。课程内容的各种学习资源,如PPT课件、多媒体课件、部分课程的录音、录像等;有关课程的各种辅导资料,如各章节的知识要点、课程设计任务库、程序设计案例库、试题库等都可以作为下载的资料。
3.2移动学习内容设计
图2飞信基本内容设计
把课程内容按照“章-节-知识点”的层次模式进行组织,整理出每章每节的学习目标、重点、难点、学习指导、参考资料等内容毕业论文范文,并概要总结出每个知识点的核心内容和若干测试题目,学习者可以通过短信息随时随地自由学习、复习这些重要的知识点,并对学习的效果进行测试。设计短信内容时需考虑程序格式问题,屏幕显示行数,尽量控制在8行*5屏=40行,每行8字以内,不要以图片的形式发送(涉及彩信资费问题)。
4实验分析
借助中国移动飞信校园版,上述大部分移动学习方式都可以实现,从PC端到手机客户
端可以方便的实现短信群发,只要不超过一定数量,免费且易于操作。学生也分常乐意参与到这种形式的移动学习中来,非移动用户除了在接收短信受限之外,也可以加入飞信校园版PC端,可以共享资源。实验证明,使用移动学习方式作为程序设计课程的辅助教学方式能够大大调动学生学习的积极性。但是在学生中间出现了两级分化的现象,部分同学兴趣高涨,能够充分利用提供的学习资源,学习进度甚至出现超前现象,另外一部分同学上课时也在查看手机,学习不仅没有进步,反而沉迷于手机上网。这种现象提醒大家不仅应该注意实施移动学习的方式,同时还要加强大学生的思想教育,使其认识到网络资源的便利性和危害性,能够主动的去寻求有益的资源来提高自己。
移动学习对学习者也要有一定要求毕业论文范文,比如说需要一定的自学能力,自制能力,以及较强的学习动机等[8][9]。现阶段的移动学习在高校教学中应该起辅助作用,但不能排除其对研究生,博士生及在职人员充电的作用,所以还是要做好移动资源的建设工作,注意打上数字签名保护知识产权。
5结论
[1]德斯蒙德·基更.移动学习:下一代的学习[J].开放教育研究.2004
[2]刘豫钧,鬲淑芳.移动学习——国外研究现状之综述[J].现代教育技术.2004
[3]王建武.3G网络下基于彩信的被动式移动学习实践研究[D].西安:陕西师范大学.2009
[4]张珑,王建华,张军,邸佳奇.移动学习在高等学校教学改革中的应用[J].计算机教育.2010(6):34-37
[5]王伟,钟绍春,吕森林.大学生移动学习实证研究[J].开放教育研究,2009,15(2):22-27.
[6]张素芹,吴连生.独立学院“C语言程序设计”教学改革实践[J].计算机教育.2010
[7]顾钧.程序设计语言课程的概念体系及教学策略探讨[J].中国成人教育.2010
[8]李望秀.高校教学中的移动学习[D].长沙:湖南师范大学.2008
[9]徐楠.M_Learning在现代远程开放教育中的应用研究[D].南京:南京师范大学.2005
[10]efeixin.10086.cn/product/category_15.html
一、犯罪客体
本罪侵犯的直接客体是计算机信息系统安全保护管理秩序和计算机信息系统所有人的合法权利。本罪的行为对象是计算机病毒等破坏性程序。
为了更好地研究制作、传播计算机病毒等破坏性程序罪,我们首先要对计算机病毒等破坏性程序的概念及特征加以了解。
计算机病毒等破坏性程序的概念及特征:
1.计算机病毒的定义
关于计算机病毒的概念,国内外有许多看法:
(1)计算机病毒之父弗雷德·科恩博士(FredCohen)1984年把计算机病毒定义为:“计算机病毒是一种计算机程序,它通过修改其它程序把自身或其演化体插入它们中,从而感染它们。”(注:Cohen,F.,1984.“ComputerViruses-TheoryandExperiments”,IFIPTC-11Conference,Toronto,1984.)并于1988年著文强调:“计算机病毒不是利用操作系统的错误或缺陷的程序。它是正常的用户程序,它仅使用那些每天都使用的正常操作。”(注:Cohen,F.,1988.“OntheimplicationsofComputerVirusesandMethodsofDefense”《Computers&Security》7(1988)P167.)
(2)Hambung大学计算机病毒测试中心的VesselinBontchev认为:“计算机病毒是一种自我复制程序,它通过修改其它程序或它们的环境来‘感染’它们,使得一旦调用‘被感染’的程序就意味着(implies)调用‘病毒’的演化体,在多数情况下,意味着调用与‘病毒’功能相似的拷贝。”(注:VesselinBontchev,Are“Good”ComputerVirusesStillabadIdea?:Http://drsolomon.Com/ftp/papers.)
(3)美国CommandSoftwareSystems公司的安全专家认为:“计算机病毒是一种程序,在某环境下,在你未知或未经你同意,通过控制你的计算机系统,复制自身、修改执行代码,实施破坏。”(注:SarahGordon:《ComputerandSecuity》14(1995)391—402.)
(4)1994年2月18日《中华人民共和国计算机信息系统安全保护条例》第28条给计算机病毒所下的定义是:“计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。”
(5)我国有学者把计算机病毒定义为:“计算机病毒是一种程序,它用修改其它程序或与其它程序有关信息的方法,将自身的精确拷贝或者可能演化的拷贝放入或链入其他程序,从而感染其他程序。”(注:张汉亭:《计算机病毒与反病毒技术》,清华大学出版社,1996年版。)
上述(1)、(2)、(5)对计算机病毒的定义与(3)、(4)定义的区别是前种观点认为计算机病毒是具有感染性,但不一定具有破坏性的计算机程序,而后种观点认为计算机病毒是不仅具有感染性,还必须具有破坏性的计算机程序。是否具有破坏性是二者的根本区别。本文研究的计算机病毒是指《中华人民共和国计算机信息系统安全保护条例》第28条所规定:“计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。”很显然,上述规定的计算机病毒仅限于具有破坏性功能的程序。因此,这种定义下的计算机病毒具有以下主要特征:
(1)感染性:就是指计算机病毒具有把自身的拷贝放入其他程序的特性。
(2)潜伏性:入侵系统的病毒可能有一个“冬眠”期,其间病毒不做任何骚扰性示意动作,也不做任何破坏动作。病毒入侵后,不露声色,处于“静观待机”状态,人们很难发现它们。这种隐蔽自己使用权人难以发现的特性称为潜伏性。
(3)可触发性:病毒因某个事件或数值的出现,诱使病毒实施感染或进行攻击的特性称为可触发性。
(4)破坏性:病毒破坏文件或数据,扰乱系统正常工作的特性称为破坏性。
2.计算机病毒的分类
计算机病毒一般分为四类:
(1)文件型病毒(FileViruses):
文件型病毒感染宿主程序时,将病毒代码附加到其上,一般是附加到其头部或尾部。它通常感染任意。COM和或。EXE,文件,有些也感染。SYS,。OVL,。PRG和MNU等可执行文件。
文件型病毒可以是直接行动型或常驻内存型。直接行动病毒每当携带它的程序执行时就选择一个或多个程序去感染。常住内存病毒是,被其感染的程序第一次执行时,该病毒就隐藏于存储器中,其后,当其他程序执行时或当满足某些条件时就感染它们。Vienna(维也纳病毒)是直接行动病毒的例子,多数病毒是常驻型病毒。
(2)引导型病毒(SystemorBootSectorVirus):
感染磁盘系统区可执行代码。在DOS系统,有许多引导型病毒,它们攻击BOOT扇区和硬盘的主引导扇区。例如Michelangelo(米开郎基罗),Brain(巴基斯坦),Stoned(石头病毒)等就是引导型病毒。本类病毒总是常驻内存。
有少数病毒被称为混合型病毒(Multi-partiteViruses),它们既感染文件又感染扇区,同时具有文件型病毒和引导型病毒的功能。
(3)链式病毒(SYSTEMorCLUSTERVirus):
链式病毒的病毒代码不直接附着在宿主程序上,而是通过修改文件目录表使得在调用宿主程序时,首先执行病毒,然后再执行宿主程序。注意,宿主程序并没有被改动,而是文件目录表被改动。DIR-Ⅱ病毒是典型的链式病毒。也有人认为本类病毒是文件型病毒的子类。
(4)宏病毒(MacroVirus):
宏病毒是由一个或多个宏组成的能递归复制自身的集合。这里,“递归复制”是指:一染毒文件能将病毒传染给另一文件,而被传染的文件又继续传染其他文件,…。
宏病毒不是破坏执行文件,而是破坏数据文件。典型的宏病毒是WM/Concept.A.
3.其它破坏性计算机程序
因为计算机病毒只是破坏性程序的一种主要表现形式,破坏性计算机程序还有许多其他表现形式,常见的主要有以下几种:
(1)设备炸弹(DeviceBomb):一种程序,它由于某特定的设备(如COM端口、磁盘驱动器D等)的出现而运行,通常伴随着破坏性行为。
(5)蠕虫(Worm):计算机蠕虫是一个程序或程序系列,它采取截取口令字并在系统中试图做非法动作的方式直接攻击计算机。蠕虫与计算机病毒不同,它不采用将自身拷贝附加到其他程序中的方式来复制自己。蠕虫一般由许多代码模式块构成,欲将其隐藏在操作系统的文件中不太可能,因为它太大了。蠕虫与病毒的区别在于,病毒对计算机系统的攻击不依赖于操作系统设计中的错误和缺陷,而蠕虫是非法入侵者,它要窃取口令,特权,要借助于操作系统本身的错误和缺陷。
蠕虫通常造成的后果是当蠕虫的传播与系统所有者的期望相抵触,由于过多的拷贝使系统超载导致网络崩溃。
二、犯罪客观方面
本罪的客观方面表现为故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的行为。
这里,制作是指利用计算机编程技术编制计算机病毒等破坏性程序;传播是指将自己或者其他人制作的计算机病毒等破坏性程序置入计算机信息系统或者将携带计算机病毒等破坏性程序的计算机软件或数据文件加以散发或销售或者将计算机病毒等破坏性程序原代码予以公开等。
计算机病毒的传播方式主要有以下八种:
(1)软磁盘或光盘:计算机病毒主要通过软磁盘或光盘从一台计算机传播到另一台计算机(或系统)。
(2)E-mail:由于宏病毒的出现和因特网的迅猛发展,E-mail(电子邮件)已成为计算机病毒传播的主要方式之一。
(5)病毒分配站点(VirusDistributionsites)。随着因特网的迅猛发展,许多网站成了传播病毒的场所,例如常常会发现一些大学的网站成为病毒的传播站点。
(6)病毒分配“机器人”和文件“服务器”(VirusDistributionRobotsandfileservers)。使用被称为“机器人”和“服务器”的自动分配程序来传播计算机病毒。通过电子邮件与服务器相联系或向机器人索取文件,用户就可以匿名地通过因特网获取计算机病毒。
(7)书籍(VirusInstructionbooks)。关于如何编制计算机病毒的书籍也是传播病毒的一种方式。例如MarkLudwig1990年所著“TheLittleBlackBookofComputerViruses”一书就包含计算机病毒的原代码。
本罪是结果犯,要成立本罪必须有特定的犯罪结果,即行为人的制作、传播行为影响了计算机系统的正常运行,后果严重。如果行为人仅仅有制作、传播计算机病毒等破坏性程序的行为,但未造成严重后果的,不构成本罪。
三、犯罪主观方面
本罪的主观方面只能是故意,即明知自己制作、传播的是计算机病毒等破坏性程序,而且认识到计算机病毒等破坏性程序一旦输入计算机系统将会造成严重后果却仍故意制作或传播。过失不构成本罪。
制作、传播计算机病毒等破坏性程序的动机各异,目前主要有以下几种:
(1)为科学研究及防病毒:如计算机病毒之父F.Cohen就是为解决计算机理论问题则研制计算机病毒;许多防计算机病毒专家及厂商就是为防病毒而研制计算机病毒;
(2)显示个人能力:1988年11月2日,23岁的康乃尔大学的研究生RobertT.Morris就是为了显示个人能力而编制了著名的InternetWorm;
(3)防止非法拷贝:1987年10月攻击美国特拉华大学的巴基斯坦病毒,即Brain病毒(由巴基斯坦的巴锡特和阿姆杰德两兄弟编写)就是为了防止盗版而编制;
(4)出售(经济原因):当前西方有些人制作病毒是为了向政府机构及防病毒产品研制机构出售其编制的计算机病毒以获取经济利益;
(5)恶作剧:行为人编制计算机病毒等破坏性程序完全出于捉弄人,以获得刺激和乐趣。如苹果病毒就是出于恶作剧;
(6)报复:1996年9月大连市华鹰寻呼台的计算机管理员张某被解雇,为了报复,他离职前在计算机系统中设置了逻辑炸弹,造成重大经济损失;(注:陈兴实、付东阳:《计算机、计算机犯罪、计算机犯罪的对策》,中国检察出版社1998年版,第97页。)
(8)勒索:1989年12月美国的人类学博士鲍伯编制的含有计算机病毒的有关爱滋病信息的磁盘,将逾万片磁盘由巴拿马的西布格公司免费邮送世界各地,在说明书中要挟用户必须向西布格公司支付378美元,否则将破坏其应用程序。这就是以勒索为目的制作、传播计算机病毒等破坏性程序的例子;
(9)不正当竞争:即出于不正当竞争的目的制作、传播计算机病毒等破坏性程序。例如我国就有人将计算机病毒等破坏性程序置入防计算机病毒软件中,迫使用户继续购买其所制作或销售的更高版本的防病毒软件,以扩大其产品的市场占有率和销售额。(注:蒋浩、于志刚:“论制作、传播破坏性计算机程序罪”,载《法学家》1997年第5期,第18—24页。)
关键词:预算系统;工作流;系统集成
二、全面预算编制的组织结构、内容模式和流程
1.组织结构及内容模式
以企业为例,一般是在董事会下面直接设置预算管理委员会这一专职部门,对预算编制和审核起主要负责作用。会计部门负责具体的业务执行。所以企业管理层和企业财务部门的负责人一般是预算管理业务的领导者。全面预算管理也可以根据不同业务设置不同的预算部门,然后成立一个综合性质的预算管理办公室,负责协调组织个业务部门的预算管理工作,并最后交由财务部门统一协调。企业各层级都可以按照这个模式来设置预算管理组织机构。全面预算的内容模式可主要分为业务上的、财务上的、资本上的、筹资上的预算四个方面。
2.全面预算流程
一般流程是:预算编制与下达;预算编制审批与调整审批;预算滚动调整;执行跟踪分析与考核评价;建立科学的预算考评机制。
三、工作流在经费预算系统中的设计概论
1.工作流系统作为全面预算系统的主要支撑技术系统的优势:
技术相对较为成熟,可作为核心的信息技术作支撑,从而保证全面预算信息系统的可扩展性、稳定性和操作的高效;工作流技术由于与人工作业的高度仿真和分析方法上的一致,对预算编制过程中的不合理现象,能够有助于使用者的提前发现,并及时有效地改进,对完善预算计划十分有利,预防预算失控。工作流技术由于将各信息系统统一于预算管理的现实流程中,可以有助于使用该系统的经济体节省IT投资资金,也有效规避了系统更新上的风险。工作流技术如果应用在多级工作流层面上,那么基层工作流是全面预算管理各流程的有机组合;第二级工作流系统是其他信息系统与全面预算管理系统的流程、数据接口上的有机整合;第三级工作流系统可以整合各分系统的流程,使其更有益于整体框架的可扩展性。
2.工作流技术及其要素的简要分析
工作流技术从非IT专业的财务工作者看来,是原来人工完成的业务流程和整体或部分的内容的信息程序化,在设计计算机软件时,完全模仿人工业务流程和内容,计算机领域概念上的信息、文件、任务按照现实业务中所指定的规程来行动,这些信息文件在软件使用者之间传递。按照通俗的理解,工作流技术就是计算机程序严格按照原来人力进行的业务的流程和制度,用电子化信息化的方式来执行原来人力所执行的业务程序。
其中工作流理念设计的计算机程序引擎,对全面预算管理的基础程序要素进行定义、调用、安排执行顺序、控制实例、添加工作项目等。具体有过程定义的解释,应用工具的调用、程序执行顺序的安排、过程实例的控制、工作表中工作项目的添加等等。
从数据上看,工作流数据一般有控制数据、应用数据和信息数据。工作流技术设计的软件系统主要采用面向服务架构(SOA)的设计方法。面向服务的体系结构,可以理解为计算机程序设计上的一种组建模型,将程序的不同功能模块(也可视作服务)通过SOA定义好的接口和语法契约加以联系,计算机程序上的接口在程序设计上是比较中立的,独立于编程语言、操作系统和硬件平台。然而软件系统的各项程序模块和服务都要靠接口这种通用和统一的方式来执行交互。SOA将应用程序的不同服务通过这些服务之间良好定义的接口和契约联系起来,良好的面向服务架构能够使工作的运营效率得到显著提高。面向服务的体系结构一般要有粗粒度服务接口、松藕合、标准化接口、大数据量的低频访问、基于文本的消息传递、独立的功能实体等基本特征。
3.总体架构设计
一般来说,采用工作流技术设计的全面预算管理系统采用服务器/客户端的网络架构,在系统的底层用工作流系统做基础程序职称,SOA架构则是采用WCF技术来执行的,将全面预算管理系统设计为分布式的各个业务程序模块,方便远程调用。在全面预算管理系统的最直接面对使用者的是Web客户端子系统,通过Response/Request与web服务端进行交流。Web服务端子系统是以IIS6.0为主Web服务器,包括多个子模块与其他系统交互。
4.全面预算系统功能设计概述
4.1从模块上看主要包括四大模块,及各自下设的若干小模块,列举如下:
预算编制模块,其中包括:业务预算模块(及下设更细模块);财务和资金预算模块(及下设更细模块);资本预算模块;生产性投资支出预算模块。月度滚动计划编制模块,包括财务计划、业务计划和资金计划模块。全面预算管理的跟踪分析模块流程为:对要分析的项目进行选取、对所需要的业务数据进行采集、对预算和业务数据进行比较,并生成预算管理所需要的各种报表及分析表。
4.2基于工作流技术设计的全面预算管理信息系统的引擎设计
.NetFramework4.0的系统软件环境下,全面预算系统工作流引擎要用到很多公共核心服务,来对工作流程实例来进行管理。总体控制工作流引擎包含所有运行时服务对象.其中:WFMain服务程序是核心部件,对过程定义和控制过程实例进行解释和执行,然后按照过程定义己确定的业务逻辑调用各项活动和服务。除了WFMain服务程序外,还要有几个应用服务,负责对外部递交数据的所用工作进行控制。在出口处有包括邮件和用户通知服务。入口部分工作流用户通过工作流客户端进行预算数据编制或调整服务;
4.3系统集成设计简介
在逻辑上可以分为:工作流程序系统、全面预算管理系统、webservice程序系统、其他业务程序系统,在这个四个集成程序模块外部,在封装一个WEB服务程序,来实现这几个系统间及其与外部系统的相互调用。
简而言之用户使用基于工作流设计的全面预算管理信息系统时,首先用到的是预算管理的系统界面,呈现在用户面前的是预算管理的通用或特殊的业务和流程的进入界面。然后根据全面预算流程不同阶段和流程使用相应的系统程序,并通过互联网程序进行调用前述程序和结果等,并与其它管理信息系统进行整合,从而实现数据的通用和高效分析利用。
[1]魏春奇.构建以战略为导向的全面预算管理制度[J].会计之友,2007,7(28):10一11.
【关键词】循环程序设计;迭代法;高次方根
循环结构是结构化程序设计中三大基本结构之一,也是计算机程序设计语言教学的重点和难点之一[1]。循环结构通过重复执行一组操作,能够把复杂的、不易直接求解的问题变换为操作简单,易于处理的迭代求解问题。这也体现了解决数学问题时常常采用的化归思想。
本文基于数值计算中采用迭代法求解二次方根的实例,对相应的问题和求解方法进行拓展,并通过理论分析和C语言编程实现,让学生从深度和广度上对迭代方法及其应用有更加深刻的理解和认识。
1、基本案例
为了求解的值(2的算术平方根),数值计算[2]中采用经典的迭代方法:
令x=,则有,
.(1)
由式(1)知,x的值可通过迭代方式求解,即
.(2)
经过多次迭代,可以计算出的值。
计算科学的基本问题是能行性问题[3]。上述迭代方法具有可行性吗?分析如下:
首先,式(2)中x的计算需要一个初值,通过不断地迭代更新x的值。为了便于处理,不妨设初值为任意的正值。
情况1:当初值0
.(3)
不等式(3)说明,当0
进一步地,由代数不等式知,
.(4)
等号成立当且仅当x=。这说明小于的初值经一次迭代后,产生的新x必然大于。
情况2:当初值0时,由式(1)的推导过程知,
.(5)
不等式(5)说明,当x>时,式(2)的计算过程,即由更新x,会产生比初值更小的新的x值。再由式(4)知,当x>时,更新过程产生的x值不会小于;由于新的x值在逐渐缩小,说明最终会收敛至。
上述分析说明,当初值0时,更新过程使得x值逐渐变小,最终收敛于。
上述过程也可由图1进行可视化证明。当初值x<时,由于。假设,通过移项知,须。由图1知,此时曲线y=1/x的值大于直线y=x/2的上值。所以,假设成立,且产生了大于的新值。当初值x>时,类似的推导知,假设,须。由图1知,假设亦成立,且更新过程x总是不小于。当x=时,1/x+x/2=1/+/2=,得到最终的解x。证毕。
图1直线y=x/2和曲线y=1/x.
上述的证明过程说明,式(2)的迭代方法具有能行性,能够计算的值。
事实上,对于任意的正数p,令x=,由式(1)的推导过程知,
.(6)
通过与求解类似的推导过程知,式(7)能够计算任意正数p的算术平方根,方法同样具有能行性。
.(7)
教学意义:本节能够让学生加深理解由循环结构形成的迭代方法。采用迭代方法求解复杂的问题时,通过把问题分解为若干步骤,每步完成一个相对简单的问题。由于这种化归思想广泛存在于数值计算或者科学计算之中,通过引导,能够加深学生对迭代法的理解。
2、案例拓展
进一步地,对任意正数p的任意m(且为自然数)次方根,能够通过上述方式求解吗?
首先,可考虑m=3时的情况。令x=,则有x3=p。与式(1)类似,
.(8)
如何对式(8)进行类似于式(1)的改造,且使得产生的更新过程会收敛至,是构造相应迭代过程的关键。
事实上,代数不等式是式(9)的特例,
.(9)
求解的迭代过程最终会收敛到本身,这是由于式(9)(n=2时)中不等式右端产生的最小值正好为(也可参考图1)。因此,在构造求解的过程中,式(9)的右端需要直接产生。由式(9)知,此时需要构造式(10)的形式,
.(10)
进一步地,由式(8)知,
.(11)
显然,
.(12)
所以,式(13)可以用于迭代求解,
.(13)
相应的收敛性证明与的情况类似,不再累赘。
进而,对任意不小于2的自然数m,对应的问题是求解x=,则有xm=p。与式(1)和式(8)类似,
.(14)
由不等式(9)知,式(14)右端,即,具有最小值。在实际的更新过程中,可采用式(15)的简化形式,
.(15)
式(15)的收敛性证明如下:
.(16)
说明经一次迭代更新,产生的新值x大于。
情况2:当初值0时,由式(14),(15)和式(16)知,,说明此时由式(15)产生的新值x在逐渐变小,但不会小于。该更新过程使得x趋向于,当x=时,式(15)的迭代过程收敛。证毕。
上述推导过程说明,式(15)能够用于迭代计算。而且,平方根和立方根的求解是m=2和m=3时的特例。
教学意义:把求解平方根的问题,泛化到求解任意高次方根的问题,有助于引导学生深化思维。上节和本节的收敛性证明也能够锻炼学生运用数学知识解决问题的能力,提高理论水平;这一理论推导过程,也可以让学生更加清楚上述迭代过程能够求解高次方根的原因,有助于加深对计算科学中可行性问题的认识;本案例通过最基本的加减乘除运算解决了求高次方根的问题,从运算角度同样体现了化归思想;而且,该案例能够让学生更好地理解和运用循环结构解决实际问题。
在实际教学中,把求解平方根和立方根的情况推广至任意高次方根的问题,可以作为课外作业,让学生自行完成,以培养数学思维和动手能力。
3、程序实现
基于对,和的求解说明,本节给出相应的C语言算法(程序)描述。
求根的过程,不管p值大于1,或者小于1,根总有向1靠近的趋势。这说明x的值可以简单地初始化为1。为了加速程序的运行,我们也可以考虑其它的初始化方法。如,论文[4]给出了初始化的一个上界。
教学意义:通过程序实现,对于任意的正数p,Program1和Program2分别能够求解平方根和立方根,Program3能够直接求解任意的高次方根。对问题的深化思考有助于拓展学生的视野,激发学生的学习兴趣,培养通过编程解决问题的能力和成就感。
4、小结
本文把迭代法求解平方根的案例,拓展到求解任意正数的不小于2的正整数次方根问题,分析了迭代求解的理论基础,证明了迭代方法的收敛性,最终给出了C语言程序代码。本文设计的教学案例在提升学生的学习能力,拓展学生的知识面,丰富教学内容方面具有多个优点:1)理解和掌握循环结构,2)理解和运用数学不等式求解极值问题,3)锻炼数学思维能力,培养科研型人才,4)加深理解计算科学中的能行性问题。
[1]孙英,徐顺琼,李兴美.C语言中循环结构程序课的教学设计与探讨.计算机教育[J],2009,12:186-187.
[2]F.施依德[美]著,罗亮生包雪松王国英译.数值分析[M],第二版.第1章第1页.北京:科学出版社,2002.
[3]赵致琢.计算科学导论[M].第3章第69页.北京:科学出版社,2004.
[4]刘红超,陈惠汝.用迭代法计算预定精确度下的算术平方根[J].黄冈师范学院学报,2004,24(3):24-26.
基金项目:
中国博士后科学基金(2011M501189)。
关键词:数据结构;算法;C++语言;案例驱动
1研究背景
数据结构是一门关于非数值数据在计算机中表示、变换及处理的课程。这里的数据,实质是指计算机所能表示的各种不同数据对象(性质相同的数据元素的集合)的集合。对于每一具体的数据对象,数据元素之间的关系都不是孤立的。数据元素之间的内在联系被称之为结构。从数据元素之间的关系特征分析,各种数据对象的数据元素之间的关系仅呈以下四种结构之一:集合结构、线性结构、树形结构、图形结构。
数据结构课程的主要内容,是针对以上四种结构,先从逻辑层面讨论结构的关系特征及抽象操作;再讨论结构在计算机中的存储表示(映像);并在存储表示的基础上给出相应结构的基本操作及实现;最后讨论各种结构的应用。
已有教材编写的思路莫不如此。但许多教材过于抽象而甚少工程背景,原因在于那些教材描述算法所使用的语言工具常是伪代码指令[2-3],或在涉及数据结构转化于应用时往往不能完整地展开。因此,许多刚学完计算机高级语言、编程能力尚且不足的学生为此而深感困惑。
在长期的教学过程中,我们认为数据结构是一门兼具理论性与实践性的课程,也是在掌握程序设计语言后加强与提高学生程序设计能力的课程。因此,我们在编写数据结构教材时,以基本数据结构的主要内容为主线,在充分讨论结构的逻辑特征基础上给出结构在计算机中经典的存储表示(映像),并在存储表示的基础上,用C++语言实现结构下的各个基本操作(建立结构的顺序类或链式类)。我们强调数据结构的应用,以模板的形式给出各种不同数据对象应用数据结构(线性结构、树形结构、图形结构、集合结构)的多个实例。每一算法或程序的编写高效、易读,并遵循程序设计的规范,从而使学习者将数据结构与工程应用有机结合。
2教材编写的几个要点
2.1教学大纲及教材内容
我们编写的教材[5]共七章,内容如下。
1)第一章:绪论。
2)第二章:线性表。
内容包括线性表的基本概念和类型定义、线性表的顺序存储结构、线性表顺序类的实现、线性表的链接存储结构、线性表单链表类的实现、循环链表及双向链表的存储结构、线性表的应用等。
3)第三章:其他线性结构。
内容包括栈的存储及操作实现、栈的应用举例、递归、队列的定义和基本操作、字符串、数组及矩阵的存储压缩、广义表等。
4)第四章:树型结构。
内容包括树、森林的定义及基本术语、二叉树的结构定义、二叉树的存储结构、二叉树的遍历、二叉树基本操作的实现、树和森林的遍历、树型结构的应用(算术表达式求值、树与等价问题、赫夫曼树及赫夫曼编码)等。
5)第五章:图。
内容包括图的定义和术语、图的存储结构、图的基本操作、图的遍历、图的应用(最小生成树、最短路径、拓扑排序和关键路径、最短路径)等。
6)第六章:查找。
内容包括静态查找表(顺序查找、折半查找、分块查找),动态查找表(二叉排序树、平衡二叉树、B-树和B+树),哈希查找等。
7)第七章:排序。
内容包括插入类排序、分划类排序、选择类排序、归并类排序、基数排序、外部排序介绍等。
2.2选择C++语言描述算法
本教材的另一个特点是将面向对象的方法引入到数据结构领域。面向对象技术不仅是一种程序设计方法学,而且是一种认识方法学,数据结构讨论的正是数据的描述与处理,与面向对象的认知方法具有天然的联系。面向对象程序设计语言提供的封装、继承、多态和泛型程序设计等机制,为数据结构抽象数据类型的程序实现提供了很好的描述工具。
此外,面向对象的最大好处是复用、复用、再复用。数据结构中涉及的各类结构下的基本操作,在实际应用中也是常用的基本操作,而选择面向对象的高级语言C++作为描述算法的工具,既能将高级语言程序设计与数据结构紧密结合,又能通过数据结构进一步认识C++中的STL(标准模板库),从而为实际编程的复用带来方便。显然,在数据结构的学习过程中,面向对象的主流语言C++较伪码语言更值得推崇。
2.3典型案例设计及举例
基于案例驱动的教学模式设计是以兴趣引导出发、以培养学生的设计能力为宗旨的教学模式,即通过对具体实例的演示、讲解,引导学生利用已学的知识,学会分析问题的方法,培养学生解决问题的能力[6],以达到对问题更高层次的认知。在数据结构教材编写过程中,我们首先在存储表示的基础上,以类的方式实现相应结构的抽象数据类型,然后精心设计案例,通过模板的方式,使用类解决各个不同的应用问题,且对每一案例的解题都附有主函数,以确保应用的完整性。
例如,对于二叉树的学习,遍历是课程的重点,其重要性不仅在于遍历操作自身,更重要的是,它还是许多树形结构应用的基础。因此,我们设计了算术表达式求值这一案例。在这一案例中,使用二叉树的先序遍历次序和中序遍历次序建立二叉表达式树,使用二叉树后序遍历的思想对表达式求值,通过这一案例的学习,将二叉树三种重要的遍历融于一处。
图1是表达式用二叉树表示的例子。
图1算术表达式二叉树
在实现了用二叉链表结构定义的表达式类BinaryExpTree后,利用表达式的前缀式及中缀式建立二叉表达式树的函数如图2中的算法1所示。其中
ch1为表达式的前缀表示,ch2为表达式的中缀表示,low、high分别为中缀次序的起始和最终位置,本函数根据先序次序和中序次序的形成规律,运用先序递归遍历的思想逐个为先序次序中的第k个元素(k的初值为0)生成二叉链表中的结点。
在图3中,设在数组ch1中存有二叉表达式树的前缀表示,而在数组ch2中存有二叉表达式树的中缀表示。k指示了当前子树的根结点位置,在建立了根结点后,查找ch1[k]在ch2中的位置i,从而形成新的划分L(low――i-1)、D(i)、R(i+1――high)。
K加1,对左右两部分依次递归地建树,直至某一子序列出现low>high,则子树建毕。
voidBinaryExpTree::_Create(BTnode*&T,charch1,charch2,
intlow,inthigh,int&k)
//利用表达式的前缀式及中缀式建立二叉表达式树
inti;
if(low>high)
T=NULL;
else{
T=newBTnode;
T->data=ch1[k];
//查找k在中序中的位置,从而划分DLR
for(i=low;i
if(ch2[i]==ch1[k]){
k++;
_Create(T->Lchild,ch1,ch2,low,i-1,k);//建立左子树
_Create(T->Rchild,ch1,ch2,i+1,high,k);//建立左子树
}
图2算法1:建立二叉表达式树
图3先序次序和中序次序之间的关系
在建立了二叉算术表达式树后,用后序遍历的方式对表达式数求值,如图4中的算法2所示。
intBinaryExpTree::_Evaluate(BTnode*&T)
{//在建立了二叉算术表达式树后,用后序遍历的方式对表达式树求值
if(T){
if(!T->Lchild&&!T->Rchild)
returnT->dataC'0';//字符型转换成整型
return_Opreate(_Evaluate(T->Lchild),T->data,_Evaluate(T->Rchild));
return0;
图4算法2:对表达式树求值
限于篇幅,其他函数及主函数不一一列举。
需要说明的是,上述表达式求值的过程仅是二叉树遍历的应用举例,真正应用于算术表达式求值尚有许多问题,如该方法输入数据是表达式的前缀式及中缀式、仅限于二元运算符、操作数是字符类型、表达式中的运算符不能重复等。
我们在教材的附件(程序光盘)中另给出了用栈的方式建立二叉表达式树的方法。该方法可直接用任意的算术表达式做输入数据、支持单目运算、支持各种类型的操作数。解决同一个问题,采用不同的方案
实现,无疑起到了开拓学者视野、加深问题认知的作用。
教材是根据教学大纲(课程标准)编写的系统反映学科内容的教学用书,是人们按照一定的教学目标、遵循相应的教学规律,组织并发展的科学技术理论及知识系统。合适的教材将协助学者更好地达到学习目标,期待我们的新编教材能接受学习者的检验并受到欢迎。
[1]张乃孝.编写“数据结构”教材的几点体会[C]//中国计算机学会,全国高等学校教学研究中心,全国高等学校教学研究会.大学计算机课程报告论坛论文集.北京:高等教育出版社,2007:543-547.
[2]严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,1997.
[3]HorrowitzE,SahniS.FundamentalsofDataStructures[M].PitmenPublishingLimited,1976.
[4]教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M].北京:高等教育出版社,2006:233-234.
[5]万健,王立波.数据结构实用教程[M].北京:电子工业出版社,2011.
[6]陶影,张斌.数据结构实验教学应重视算法设计与分析能力的培养[J].实验室研究与探索,2008,27(12):119-122.
CompilingDataStructureTextbookbyCaseDriving
WANGLibo,WANJian
(SchoolofComputer,HangzhouDianziUniversity,Hangzhou310018,China)
Abstract:ThisarticleintroducesbasicconceptsofDataStructure,discussesunderstandingofDataStructurecourse.Mainpointsareputforwardintheprocessofcompiling,stressingtheimportanceofcasedrivingteachingmodeinteachingmaterialcompilation,formingcharacteristicsofthematerialitself.