收藏 分销(赏)

权威讲解多核程序设计Intel技术专家倾力巨献.doc

上传人:xrp****65 文档编号:7695820 上传时间:2025-01-12 格式:DOC 页数:21 大小:111.50KB 下载积分:10 金币
下载 相关 举报
权威讲解多核程序设计Intel技术专家倾力巨献.doc_第1页
第1页 / 共21页
权威讲解多核程序设计Intel技术专家倾力巨献.doc_第2页
第2页 / 共21页


点击查看更多>>
资源描述
高等农业院校计算机基础教育改革的思考 摘要:通过了解学校教学体制、教师状况、学生现状及社会需求,结合易语言特性,我们提出,在普通农业高等院校计算机基础教育改革中,应该立足实际,大胆引入易语言,提高教学效果。<br>  关字键:计算机基础教育;易语言;改革<br>      <br>  随着社会信息化程度的提高和IT技术的迅猛发展,计算机技术在各行业、各领域的普及和渗透呈现多样化,一个大纲、一张试卷已不能涵盖社会对计算机的所有需求,高校计算机基础教学面临新的变革和挑战。北大、清华从实际出发,根据学生的现状和社会需求率先进行了计算机基础教育教学改革,并获得了巨大的成功,由此一场以需求为导向、立足各校现状、面向应用、服务于信息化社会建设的计算机基础教育改革悄然进行。<br>  作为普通农业高等院校,如何面对这场变革,适应需求改革计算机基础教育体系是我们亟待研究的课题,并“不是每个学校拿出来的教学计划看起来和清华、北大的差不多才算是合格的”[1],生源的固有素质、学生面向的就业市场、现有的办学基础与清华北大有着明显的差异。我认为,普通农业高等院校计算机基础教育改革必须“不唯权,不唯上”,要以需求为导向,立足现状,“面向实际,面向基层”[2],大胆引入易语言教学。<br>  <br>  1 我校非计算机专业计算机教育体系结构与教师状况<br>  <br>  1.1 非计算机专业计算机教育体系结构<br>  目前我校非计算机专业的计算机教育是二层体系结构:第一层次是计算机基础教育,面向全校本科生开设,由两个部分组成。第一部分主要由两门课程:“计算机应用基础”和“VB程序设计”,分一年进行开设,统一由信息科学技术学院专业计算机教师施教,虽然文科与理科稍有差异,但基本上是统一大纲、统一教材、统一参加计算机等级考试,为了保证教学效果,采取计算机等级证与学位证挂钩;第二部分是近年来增设的以Office为核心的“办公自动化”,作为公共选修课对全校本科学生开设,主要是深化办公软件的教学,所以仍然属于计算机基础教育,也由信息科学技术学院计算机专业教师施教。第二层次是计算机在专业上的应用教育,一般是一门课程(极少量专业开设两门课),如农学类专业开设计算机在农业上的应用、在草业科学上的应用、在兽医中的应用;工科类专业开设计算机辅助设计、机械制图及计算机绘图;文科类专业开设管理信息系统、计算机财务管理等,这类课程与专业结合紧密,一般由具有专业知识的教师施教。<br>  <br>  1.2承担非计算机专业计算机教育的教师结构及其变化<br>  我校非计算机专业计算机教育由计算机专业老师和非计算机专业老师承担,而计算机基础教育主要由计算机专业老师承担。由于计算机专业本身就是一个起步较晚的专业,计算机专业人才相对缺乏,因此我校计算机专业老师的学历、职称、年龄普遍偏低。计算机专业老师主要集中在信息科学技术学院,是一支平均年龄将近三十岁的年轻且可塑性大的教师队伍,近年来通过学历教育、人才引进,计算机专业教师的学历、职称正在不断提高;随着社会信息化程度的提高,社会复合型人才的需求增加,使得目前大多计算机专业教师在攻读博士、硕士学位时选择了生物信息学、管理学(信息管理方向)等专业,逐渐将信息技术与专业融合,计算机专业教师在提高自身学历的过程中也逐步实现了“专业化”。<br>  与此同时,随着信息技术的快速发展,专业学科与信息技术的融合明显提高了其教学与科研水平。有些学科,如艺术专业、机械制造、园林设计等没有计算机的介入甚至无法生存、发展,使得既懂专业又懂计算机技术的专业复合型年轻教师大量涌现,非计算机专业教师计算机应用能力也逐渐增强。<br>  <br>  2 当前我校计算机基础教育的现状与学生的需求<br>  <br>  我校本科生计算机基础教育由两部分组成:公共基础课和公共选修课。根据各方面的资料显示,无论是什么专业都应该掌握计算机的发展、使用与维护及计算机网络方面的常识,“计算机应用基础”内容结构基本合理,因此,我们重点放在“VB程序设计”和近年来增设的公选课程上。主要了解学生对知识获取的主观愿望和对VB课程的认知程度、了解VB课程的教学效果、了解学生在学习VB语言课时存在的主要障碍、在此基础上进一步了解学生对目前已增设课程的认可度和自身的需求,就这五个方面我们对非计算机专业进行了问卷调查。调查分本部和独立学院两组进行,调查对象为已完成公共基础课程的本科大一学生和已接触社会返校进行论文答辩的毕业生,每组按文科类专业和理工科类专业分别对大一和大四毕业生进行统计,结果显示:<br>  (1) 学生大都希望将来能用自己所学计算机知识来处理学习、生活或未来工作中的事务,两组数据有些差异,年级间几乎接近。非常希望的本部都在70%以上,独立学院的至少也达到49%,不希望的比例一般在3%以下。学生对计算机知识的求知欲相当高,有主观的愿望和能动性。学生对VB语言课程的认知程度也较高,认为该课程对今后工作非常有意义和有意义的在97%以上,毕业生和大一学生也几乎接近。<br>  (2)VB课程教学效果不佳,主要学习障碍来自语言与数学逻辑,学生期望开设一种全中文环境的语言。学生对VB课程掌握了所授内容20%~30%的占31%~39%,40%~50%的占42%~45%,理工科类学生比文科类学生稍强,但总体来说,80%以上的学生仅能掌握所授内容的一半不到。学生学习语言的障碍主要来自语言和数学逻辑,文科类与理工科类两者有差异,文科主要表现在数学逻辑,而理科则表现在语言上,但这两者之外的因素都低于4%,毕业生与大一学生间、本部与独立学院间几乎无差异。因而在是否期望开设一种全中文环境的语言时,认为非常希望和可以尝试开设的占95%以上,但态度谨慎。<br>  (3)学生从就业与工作的角度考虑,除了掌握计算机应用基础知识外,更多地关注办公软件与常用工具的学习,其次是专业相关的计算机技术的掌握、与网络和多媒体相关的知识的掌握,本部与独立学院的差异不大;理工科对程序设计与数据库更为关注;但大一学生与毕业生的需求差异显著,毕业生对计算机的需求明确,是社会信息化、网络化发展对人才需求的一种反映,同时也说明学生就业的社会层面不高,对计算机知识没有深层次的需求。<br>  <br>  3 立足实际,更新观念,勇于实践,改革计算机基础教育<br>  <br>  基于学生的求知欲望和学生自身需求及社会信息化、网络发展对人才的需求,调整计算机基础教育的课程结构,改革考试形式,提倡文科与理工科间差异教学,进一步淡化“公共”概念,促进“专业化”发展是我校计算机基础教育改革的方向,要根据不同专业组织差异化教学,提高计算机语言的教学效果,激发学生学习兴趣。<br>  3.1 破常规意识,大胆引入易语言,提高计算机语言教学效果。<br>  长期以来,计算机基础教育都是采用全英文的编程语言,而且计算机基础课程设置与教学都是由计算机专业教师承担,观念已根深蒂固。我们应该“不惟上、不惟外、不惟书,只惟实[2]”,正确面对生源现状和社会需求,更新观念,大胆改革计算机基础教育体系。在高校计算机基础教育中应用易语言,可以做到以下几点:<br>  (1)有利于培养学生的学习兴趣。易语言的简单、好学、功能强大、无需英文基础,降低了学习计算机语言的门槛,全可视化的编程环境可以帮助初级用户理顺程序设计思路、明确逻辑关系、提高解决编程问题的能力,从而有效地克服学生学习计算机语言的两大障碍,激发学生的学习兴趣。同时,由于易语言支持现有的先进编程理念和技术,与现有其他编程语言能够相互融合贯通,可以为部分学生进一步学习其他语言扫清理论障碍。<br> </p> <p> <p>(2)有利于增加学生就业机会,提高社会效率。“计算机基础教育的任务不是要把学生培养成为计算机专家,而是要把他们培养成为在各个领域中熟练使用计算机技术的人才[3]”。目前商业软件过于考虑通用性,不能满足各部门各领域的独特性,程序过大、费用昂贵且不适用。学生使用易语言能跨越语言障碍将自己的专业知识和行业中积累的经验通过软件形式表达出来,方便、快捷地编制相关行业或领域的应用软件,使之成为各行业各领域的计算机技术的应用者,也为大学生就业提供了更多的机会;同时也能使行业专家轻松投入软件开发,将计算机技术应用到专业领域的科学研究中,提高单位或个人的工作效率,最大限度地创造利润、节约经费,提高整个社会效率。 <br>  (3)符合信息化社会建设发展的要求。我国坚持“以信息化带动工业化”的方针,促进传统行业、骨干企业在结构调整和产品升级中积极应用信息技术。我国只有3.7%的企业信息化建设进入成熟阶段,企业信息化建设需要大量的非计算机专业人士的参与。虽说主宰计算机世界的语言是英文,但在中国大量使用计算机及其软件的却是讲中文的人,学习全中文环境的易语言更容易掌握语言的精髓,发挥自己严谨的逻辑思维优势,使学生迅速成为未来各个领域中IT技术推广应用的骨干,加快信息化社会的建设。<br>  虽然不同专业对计算机基础教学的需求有明显的差异,大部分文科专业更注重使用计算机与相关软件,但这也需要一定的编程理念作基础,而对部分非计算机理工科专业来说,还需要结合自己的专业以计算机为工具来开展工作,他们不仅要有编程的理念、编程的方法,还要掌握程序设计(会使用一门编程语言并不一定说明会进行程序设计[3])。因此,易语言是最佳的编程教育工具,不论什么专业都可考虑试行开设。<br>  3.2 依教师资源,调整体系结构,按专业需求实施差异教学<br>  非计算机专业学习计算机技术的目的很明确,不是把它作为纯理论的课程来学习,而是作为应用技术来掌握。不同专业不仅对计算机语言的需求程度是不同的,而且因为专业的不同对应用软件的需求也会不一样,如机械制造专业、园林设计专业,对绘图软件要求较高;管理类专业,尤其是财会专业对Excel有较高的要 摘要:高职教育的目的是培养生产活动需要的应用型人才,其专业方向划分要以职业岗位群为依据。本文依据国际公认的软件工程思想,对软件开发过程涉及的29种岗位加以分析,对高职软件专业方向的设置提出了相应的建议。<br>  关键词:软件;高职教育;专业方向<br>  <br>  我国的高等专科教育,从发展历史上可以分为本科压缩型、技术应用型和大众型三类[1]。所谓本科压缩型,是特定历史时期为了多快好省地培养急需的专业人才而设立的教育层次。其教学内容和专业设置完全仿照本科教育,但培养规格有所降低,学制也缩短一年。技术应用型专科是按照职业教育思路举办的教育形式,主要培养应用型人才。大众型专科教育主要包括各类成人教育和自学考试,具有宽进严出的特点。其产生的目的是为了在民众中普及高等教育。随着我国高等教育事业的发展,本科压缩型和大众型专科教育已经愈来愈不符合我国人才培养的需要。另一方面,由于经济的发展,应用型人才出现了严重的短缺。技术应用型专科教育呈现出旺盛的发展势头。这种技术应用型专科教育,就是今天我们所说的高等职业教育(简称高职)。<br>  高职教育不是本科的压缩,其实质是要培养区别于本科的不同规格或者种类的人才,也就是应用型人才。因此,高职院校的专业设置思想必须不同于本科教育。普通高校的专业设置是以学科建设为基础,以基础学科专业为依托,以社会需求为导向,以课程建设为核心;高职院校专业设置是以市场需求为导向,以职业岗位(群)为依据,以技术含量为参数,以学科专业的交叉复合来综合研究专业的设置。[2]本文通过对软件开发过程和软件生产职业岗位的分析,对高职院校软件专业方向的设置进行探讨。<br>  1软件生产过程及参与者角色<br>  软件生产是软件产品形成、交付使用、维护和退出使用的全过程(即生命周期)中所有活动的总称。尽管不同的组织或实践者对软件生命周期中的生产活动的执行方式、先后顺序有不同的观点和做法,但对这些活动种类的认识是完全一致的。这是美国Rational公司在20世纪90年代所提出的统一过程(Rational Unified Process, RUP)理论[3]。 RUP将软件生产活动分为:业务建模、需求、分析设计、实现、测试、部署、环境支撑、项目管理、配置及变更管理。上述活动中,业务建模的目的是分析和理解将要使用软件的组织机构的业务活动,进而导出对软件的需求;需求活动是将组织机构或者个人对软件的需求进行发掘、归纳、表达和管理;分析设计活动通过对软件需求的分析,给出对软件的设计;实现活动将软件的设计转化为可以执行的代码、文件等最终形式;部署是将已经实现的软件形式应用到实际的工作环境中;环境支撑的目标是为软件生产过程提供适当、足够的支撑环境,如软件的开发工具和管理工具就是基本的环境。项目管理的目的是在规定的成本、限定的时间内通过验收。配置和变更管理是软件生产特有的保证质量、提高效率的重要活动。RUP同时归纳出完成上述活动需要以下29种角色——即职业岗位。<br>   (1) 分析人员类:业务设计者、业务模型评审者、业务过程分析员、需求评审者、系统分析员、需求说明者、用户界面设计者。<br>  (2) 开发人员类:软件架构师、架构评审者、封装设计者、代码评审者、数据库设计者、设计评审者、设计者、实现者、集成者。<br>  (3) 测试人员类:测试设计者、测试员。<br>  (4) 管理人员类:变更控制经理、配置经理、部署经理、过程工程师、项目经理、项目评审者。<br>  (5) 其他角色:课程开发人员、图像艺术家、系统管理员、技术写作者、工具专员。<br>  RUP对上述职业岗位的职责、候选者的经验和知识背景给出了详细的建议,这里不再引述。上述职业岗位的划分考虑了一般意义上一个完整的软件开发过程客观存在的角色。在一个具体的软件开发组织或者一个具体的软件项目上,这些角色不一定同时存在。另外,在实际的组织机构中,参与人员的职位名称并不总是与此一致,而且一个参与者通常会同时担任多种角色。但无论如何,这些角色种类对人员素质的要求,对我们思考高职软件教育的专业方向设置具有重要的参考意义。<br>  2高职毕业生适合的软件生产角色<br>  软件生产是公认的知识密集型过程。上一节列举的许多职业岗位的担任者需要深厚而综合的知识背景和较长的实践 经验,属于软件生产中的高端人才。高职毕业生不适合担任这类角色。另一方面,尽管软件生产是高技术和知识密集型过程,高职毕业生也可以在其中发挥重要的作用,这是我们办高职软件学院解决软件生产人才缺乏问题的前提。那么,哪一些是高职学生可以担任的角色呢?通过对上一节所列各角色的分析和笔者的实践经验,可以得出最有可能使用高职毕业生的角色及其技能要求如下:<br>  (1) 分析类人员。需求说明者:参与需求发掘全过程,负责将需求以适当的方式描述出来,并与涉众进行沟通。要求具备软件工程基础知识,有良好的表达和沟通能力,包括写作能力;熟悉需求描述的专业技术和工具。用户界面设计者:根据用户需求建立界面原型,并对实际实现的界面给出评审和反馈意见。要求具备软件系统的操作使用知识,对需求的理解能力以及界面设计美术基础(不需要具备实现界面的能力)。<br>  (2) 开发人员。实现者:按照项目采用的标准和设计文档要求编写软件系统的构成组件以及对这些组件进行测试。要求能够理解设计文档和标准规范,有熟练的编程技巧和软件测试的知识。集成者:对实现者完成的系统组件进行集成,并对集成活动进行计划和管理。要求同实现者。<br>  (3) 测试人员。测试员:按照测试设计者提供的大纲设置和执行测试,评估测试执行情况,从测试错误中恢复过来。对初级测试者要求具备待测试的应用或系统的知识,具备测试和测试自动化方面的知识,具备诊断及解决问题的能力,当然最好也具有编程的技能。<br>  (4) 管理人员。项目经理:负责项目的资源分配,管理项目运作,负责与客户或用户的沟通,确保项目在规定的时间和预算内完成。项目经理要求具有相关应用领域的经验和软件开发的经验;具有项目管理的专业知识,有较强的沟通能力及领导能力。配置经理:配置经理为产品开发组提供总体的配置管理基础架构和环境,负责日常的配置管理工作。配置经理要懂得配置管理原理,并且最好具有使用配置管理工具的经验或者接受过有关培训。配置经理必须注重细节,讲求原则。部署经理:部署经理负责产品移交工作,并在相关文档中作记录。部署经理要求有部署系统的经验,具备沟通及协调能力,计划性和行动力强。<br>  (5) 其他人员。技术写作者:技术写作者产生最终用户支持材料,如用户指南,帮助文本,发行版本说明等。技术协作者应具备技术写作的经验或受过相应的培训。具备帮助系统开发和网站建设的经验或培训经历。最好具备所写作领域的背景知识。同时还要求有较强的沟通能力。图像艺术家:图像艺术家创建作为产品组成部分的艺术作品。图像艺术家必须有创新设计领域的历练。同时也必须具有相关产品生产过程的知识。相关领域的市场及公关经验对图像艺术家也很有帮助。系统管理员:系统管理员角色维护软硬件开发环境,进行系统管理、备份,等等。担任此角色的个人要求对项目所使用的特定硬件和软件组件以及他们之间可能存在的依赖关系有较深的认识。需要对开发平台的操作系统、网络以及如安全、分布等方面的内部机制有深入理解。解决问题及诊断故障也是此角色的关键技能。<br>  上述11种角色在全部角色中只占了约1/3,但在大型的软件生产组织中,这些角色在生产中的人数比例可能超过50%,在小型的开发组织中也不会少于30%。<br> </p> <p> <p>3高职软件学科专业方向划分<br>  上述11种角色,可以分为6个有内在关联的角色组。第1组:软件开发人员,主要担任实现者角色;第2组:软件测试人员,主要承担软件测试工作;第3组:系统集成与管理人员,主要包括系统集成者、项目经理、配置经理、部署经理等;第4组:文档写作人员。包括需求说明者、技术写作者;第5组:美工。包括用户界面设计者、图像艺术家;第6组:系统管理员。这六个组别,就是六种就业方向。我们在培养时可以有针对性地在这6个方向上组织教学。如果把培养这6个角色组的专业方向分别命名为软件开发、软件测试、软件管理、技术作家、软件美工、系统管理,根据上一节对角色的要求,我们可以对各专业方向的培养重点给出基本的描述。<br>  (1) 软件开发方向:重在培养学生程序设计的技能,并理解软件生产过程,要求掌握几种具体的软件开发工具(或环境)的使用。<br>  (2) 软件测试方向:重点培养学生的软件测试技能,并了解软件生产全过程,要求学生掌握集中具体的软件测试工具(或环境)的使用。<br>  (3) 软件管理方向:使学生具备软件开发的基本知识,重在培养学生的管理能力和通晓软件管理的知识,掌握管理工具的使用。<br>  (4) 技术作家方向:让学生理解软件和软件产品生产过程,同时具备技术写作技能,掌握有关工具的使用。<br>  (5) 软件美工方向:让学生理解软件和软件产品生产过程,同时具备程序界面和美术作品设计技能,掌握有关工具的使用。<br>  (6) 系统管理方向:重点在使学生对计算机系统硬件、操作系统、网络等方面有深入了解,能够熟练操作和管理相应的软硬件系统。<br>  上面列举的是技术方面的培养要求。实际上,在教学中还要将对学生非技术能力和基本素质的培养贯穿于始终。这包括沟通能力、团队精神、纪律、职业道德等。学生的素质实际上是技术和非技术两方面能力的综合。在制订教学计划时,要考虑既能让学生马上承担实际的工作,也要为他们进一步的学习打下基础。我们可以将用人单位的许多岗前技术培训落实在教学中,同时,也为每个专业的学生的职业发展,制定从初级到高级的路线图。<br>  上述6个专业方向的生源,(4)、(5)两个方向既可以招文科生,也可以招理科生。其他方向主要招收理科学生。课程设置时,如果将全部课程分为公共基础课、专业基础课、专业课三个模块,则全部专业方向共享公共基础课,(1)、(2)、(3)方向和(4)、(5)方向 摘要:本文介绍了北京航空航天大学计算机学院本科算法课程建设的现状,分析了目前教学中存在的问题,总结了教学方法上的实践经验,并对算法课程的建设提出了一些思考。<br>  关键词:算法;课程建设;实践<br>      <br>  1算法课程建设的现状<br>  <br>  1.1课程的定位<br>  《算法与数据结构(2)》主要讲述基本的算法设计方法以及对算法的时间、空间和其他方面进行度量分析。<br>  算法,是程序设计的灵魂。著名的PASCAL之父、结构化程序设计的首创者、1984年“图灵奖”获得者尼克劳斯·沃斯曾说过:“数据结构+算法=程序”。这一公式在结构化程序设计已相当成熟的今天仍被视为经典。由此可见,算法在计算机科学中具有不可替代的重要地位。<br>  据统计,美国2007年综合排名前50位的大学,欧洲名校如牛津、剑桥等均开设了算法课作为计算机专业的必修课。不仅如此,美国、欧洲一些普通高校的计算机专业也均开设了算法课。中国国家211工程重点建设的100所高等院校中有多于半数院校的计算机专业开设了算法课,国内的一流高校也将算法设计与分析作为计算机专业本科生培养的重要环节。<br>  算法课程是高等学校计算机专业重要的专业基础课程之一,是计算机程序设计的重要理论和实践基础,是目前国内计算机专业研究生招生考试的首选专业基础课程,其独特的应用价值也使其成为信息类专业的重要课程之一。<br>  算法课的先导课为离散数学、程序设计语言基础和数据结构。<br>  1.2课程的目标<br>  开设算法课的目标在于使学生通过该课程的学习,能够运用课程所讲授的概念和方法更好地进行算法设计,能够对已有的算法和新设计的算法进行一般的效能和性能上的分析,并进一步提高程序设计的能力。学好该课程的主要目的是打好专业基础,提高计算机理论和应用水平。<br>  因此,我们要求学生能够掌握各种基本的算法设计方法(包括归结法、分而治之法、贪心法、动态规划和概率法等),并能够掌握基本的算法分析方法(算法的时间复杂度与空间复杂度分析),并在学习已有知识的基础上,加强思考和实践。<br>  1.3课程的主要讲授内容<br>  根据北航学生的实际情况,算法课程目前分为18学时,以课堂讲授为主,辅以参考资料阅读以及每章的课后作业和练习题。授课内容分为七章,分别为:算法分析的基础知识、归结法和分而治之法、贪心算法、动态规划算法、概率算法、下界分析和求解NP完全问题的算法设计。重点讲授内容包括:算法的控制结构、算法的复杂性分析、归结法和分而治之法、贪心算法的基本思想及特点、设计动态规划算法需要具有的前提及一般设计思路、主要的下界计算方法、回溯法和局部搜索算法等。<br>  1.4课程的授课效果<br>  通过课堂上学生的听课情况、对问题的反应程度以及对小测验的完成情况,我们可以看出部分学生对该课的兴趣和重视程度较高、预习工作做得较好,能将老师当堂所讲的内容消化和掌握;大多数学生能够在课堂上对老师所讲解的内容加以理解,并能在课后加以复习并掌握;一些学生尽管没有在课堂上对内容理解和消化,但仍能通过下课向老师提问或课后发Email给老师的方式向老师询问未理解的问题来加以反馈。<br>  从课后作业的完成质量以及期末考试的卷面成绩来看,绝大多数学生能在学完算法课之后对计算机算法有一定的理解,并具备一定的算法设计与分析能力,达到该课程的基本要求,甚至有一些学生就此对算法产生了较浓厚的兴趣,并能在以后的学习时间里继续深入学习算法。课程达到了较好的授课效果。<br>  1.5教学过程中发现的问题<br>  在教学过程中,学生普遍暴露出不愿深入思考、不爱动手实践的问题。尽管这些原则在平时的授课过程中再三地被强调,但能按照老师建议去做的人并不多,仅限于少数对算法有较大兴趣的学生。<br>  从试卷情况来看,一些同学仍然缺乏将算法思想应用于同类问题求解中的能力,出现了同类问题不知道用同类算法求解的情况。究其原因在于未能将算法思想深入理解,做过的习题较少,对于同类问题无从下手。为应付考试而死记硬背某些算法,这是学习算法的大忌。<br>  另外,部分学生对先导知识的掌握还有欠扎实,对基础知识和概念的掌握程度成了一些算法内容理解的瓶颈。<br>  <br>  2教学方法上的一些实践经验<br>  <br>  2.1提高学生学习基础课程的兴趣<br>  从一定角度讲,兴趣是最好的老师,因此我们在讲述课程的过程中会经常从学生们感兴趣的问题入手,为他们创造易于理解问题、加深记忆的活跃的课堂气氛和环境。<br>  我们在介绍一个算法问题时,首先介绍问题的背景,如河内塔游戏、斐波那契数列等。在教学过程中,我们将本课程学科的发展历史、前沿知识和自己从事科研实践的体会与成果贯穿于教学中,例如蒙特卡洛概率算法与SAT问题等均是两位授课教师曾深入研究过的算法和问题。另外,我们还结合课程内容介绍了Google和Microsoft等知名IT公司的面试题目,激发学生对算法的兴趣,令学生积极思考并展开讨论。<br>  算法本身的概念与理论是抽象的,但具体问题又是实际的、易懂的、有趣的。在教学过程中,只有通过具体问题,引申出求解该问题的有效算法,同时有效借助多媒体教学灵活而快捷的特点,将抽象的算法具体化讲解,才能提高学生学习基础课程的兴趣。在每个问题的讲解过程中,我们尽量采用图文并茂的方式,将问题刻画得清楚明了,实践证明,该方法取得了较好的效果。<br>  2.2培养学生提出问题、分析问题和解决问题的能力<br>  在教学中,采用启发和探索式的教学方法,注重培养学生提出问题、分析问题和解决问题的能力。在教学中,我们本着一系列连贯的思路讲授学习内容,例如:当初某个算法问题是怎样提出来的;求解该问题的方法和策略是如何形成的;如何应用这些方法和策略来解决实际问题;对这些方法和策略做进一步的比较、分析和评价。<br>  2.3增强与学生的交流<br>  轻松活跃的课堂气氛是激发学生听课兴趣,进而达到良好听课效果的重要保证。在教学过程中,我们本着以学生为中心的原则,注重与学生的交流。通常一个问题、一个提示会达到良好的授课效果,实践证明,这种方式是有效的。<br>  为了对学生的基础知识掌握情况有全面的了解,我们会以调查问卷的方式获取每个学生的学习情况信息,通过一些简单易答的算法题,帮助学生巩固基础知识,使听课效果更佳。事实证明,通过调查问卷的开放性问题,我们了解了同学们大致的想法和对算法课的建议。另外,我们还鼓励学生课后通过Email等手段与老师展开交流,并听取学生的反馈意见,选取一些有代表性的问题在下一次课堂上讲述。<br>  2.4注重平时的考核方式<br>  算法课程的特点是逻辑思维性强。因此,必须通过典型例子强化一般性问题。同时,为避免同学中大量存在的“平时不学习,考试搞突击”现象的发生,我们注重对学生平时的考核,并主要采取课后作业的方式。为加强学生的动手实践能力,我们要求学生用某一种语言(C、C++、Java、Delphi等)对作业问题进行实现。通过适当调整课后作业在期末总成绩中的比重,督促鼓励同学自己动手进行编程实践,进而有效地指导基础理论知识的学习。从学生提交的课后作业程序来看,绝大多数同学理解了求解问题所使用的算法基本原理。<br>  <br>  3算法课程建设的一些思考<br>  <br>  3.1如何进一步提高学生学习算法的积极性<br>  在教学过程中,我们本着培养学生学习算法兴趣的原则,在授课过程中采用引导和鼓励等方式,提高学生学习算法的积极性,并取得了较好的效果。<br> </p> <p> <p>为了进一步提高学生学习算法的积极性,我们拟建设一个算法课程网站,并逐步向网站中添加在线求解问题(类似目前国内多所大学的ACM网站)和算法讨论区等诸多板块,加强与同学的交流。鼓励同学利用课余时间参加在线答题和算法讨论。<br>  通过平时与学生的交流我们发现,学生更愿意将理论知识实际化,在现实生活中寻找所学知识的应用。例如,在一次与学生的交流中,我们谈到在商场购物打折优惠卷的优化使用问题,之后一位学生便自己编写了一个针对商场搞优惠活动时不同折扣、返卷及优惠卷使用规则的购物优化算法程序,并在某商场进行了现场的咨询服务。这种勤于思考和实践的表现受到了教师的表扬和鼓励,毫无疑问,这种学以致用的学习方式是非常有益的。<br>  3.2是否需要介绍模拟退火和遗传算法等启发式算法<br>  在以往的教学中,我们主要为学生讲述求解问题的精确算法,如贪心策略、动态规划等。但随着当前算法理论的深入研究,众多学者越来越关注和研究难问题及启发式算法。因此,为了鼓励和启发学生深入学习算法,我们正在考虑是否在以后的授课中加入对模拟退火和遗传算法等启发式算法的介绍,为学生以后对算法的深入研究起到抛砖引玉的作用。<br>  3.3如何培养学生的研究能力<br>  我们认为,北航的学生与国内其他一流高校的计算机专业学生相比,普遍动手能力强,但具有研究能力的拔尖学生少,去国外一流高校深造和顶尖研究单位工作的学生则更少。如何培养学生的研究能力,是我们目前面临的问题之一。我们认为,培养学生的研究兴趣,激发学生的研究热情,为学生营造良好的学术研究氛围,鼓励学生参加竞赛,与国际接轨,是培养研究型人才的重要手段。因此,在教学工作中,我们试图采取有力有效的方法带动学生参与学术研究和项目工作,如:<br>  ●在教学中布置一些研究性的题目并介绍相关的背景知识(如SAT问题的求解算法);<br>  ●将学生分成若干小组,每组有一个负责人,要求学生利用互联网等手段去查找相关资料,以培养发现信息和处理信息的能力;<br>  ●鼓励学生提出自己的求解算法进行计算实验分析,最后撰写技术报告,并进行组内排名,从中挑一些优秀的算法参加国际算法竞赛。<br>  3.4如何将教学与目前算法研究的发展相结合<br>  近些年 摘要:密码技术作为信息安全的核心技术之一,能有效保障信息的机密性、认证性、完整性和不可否认性。本文根据笔者在日本公立函馆未来大学从事博士后研究的亲身经历,介绍该校面向计算机专业硕士生开设的密码学课程的内容设置与教学方法。<br>  关键词:密码学;课程设置;教学方法<br>      <br>  1引言<br>  <br>  密码学能有效保障信息的机密性、认证性、完整性和不可否认性,是信息安全的核心技术之一,为信息安全提供了深刻的理论依据和丰富的应用实践基础。目前各大高校已为信息安全专业、计算机科学与技术、通信工程和信息与计算科学专业的本科生或研究生开设了密码学课程,如北京大学、上海交通大学、哈尔滨工业大学、武汉大学、西安电子科技大学、电子科技大学等,也有一些教研论文发表[1-4]。然而,对于更多的高校,密码学课程的教学却处于探索阶段。<br>  公立函馆未来大学(Future University-Hakodate)位于日本北海道函馆市龟田中野町,始建于2000年,是一所以信息科学为特色的公立大学。该校有两大学院(系统信息科学研究科和系统信息科学专业)和三学部(信息建筑学科、复杂系统学科和系统信息科学部)。学校研究与教育涵盖了以硬件为中心的计算机科学、认知科学、信息系统设计与复杂系统。虽建校不久,但该校的密码学学科却取得了骄人的成绩,在高木刚(Tsuyoshi Takagi)教授的带领下,在双线性配对运算方向已到达国际先进水平。笔者在公立函馆未来大学从事博士后研究期间,旁听了高木刚教授面向计算机专业硕士生开始的密码学课程,并和他交流了教学经验及学术思想,感触颇深。本文就该校密码学课程设置与教学方法进行了描述和讨论。<br>  <br>  2密码学课程的特点<br>  <br>  作为信息安全和其他信息科学类专业的一门专业基础课,密码学课程具有以下特点[4]:<br>  (1) 作用和地位十分重要。密码学是实现保密通信和信息系统安全的主要技术手段和工具,信息安全的保密性、认证性、完整性和不可否认性等属性都需要用密码学的工具来完成。随着计算机和计算机网络在军事、政务、金融、商业等部门的广泛应用,社会对计算机的依赖越来越大,如果计算机系统的安全受到破坏,将导致社会的混乱并造成巨大损失。因此,确保计算机系统的安全已成为世人关注的社会问题并成为信息科学的热点研究领域。密码技术是信息安全的关键技术之一,几乎所有的信息安全技术都应用到密码技术。<br>  (2) 覆盖的内容多,涉及的数学知识多。由于发展历史较长和研究问题的特殊性质,密码学从基础理论到实用算法,形成的内容和分支较多。例如,数字签名体制就分为代理签名体制、盲签名体制、环签名体制、群签名体制等10余种签名体制。同时,密码学还涉及较多的数学知识,如数论、抽象代数、概率论、组合数学、计算复杂性和信息论等方面的知识。<br>  (3) 与其他学科联系广泛。密码学与其他学科具有广泛联系,这些学科包括应用数学、通信、计算机科学、信息处理等。从应用数学的角度看,密码学是数论、抽象代数等理论的一种应用;从通信的角度看,密码学是实现保密通信的一种技术手段;从计算机科学的角度看,密码学是数据安全、计算机安全和网络安全的研究内容;从信息处理的角度看,密码是信息处理的一种形式。密码学的研究内容决定了它的交叉性和广泛性,这使得人们能从不同方面去研究密码学,从而推动密码学学科的不断发展。各种数学和其他学科研究的新成果也会很快地应用于密码学当中,例如基于椭圆曲线的加密和签名方法、量子密码和数字水印等。<br>  (4) 实践性很强。密码学的研究目的就是解决实际生活当中的信息安全问题,例如提供保密性、认证性、完整性和不可否认性,这些属性是信息社会中不可或缺的重要属性,它们随着计算机的普及,借助于密码学的各种算法得以实现。因此,密码学是一门实践性很强的课程。只有理论联系实际,才能把这门课程学好。<br>  <br>  3密码学课程教学内容的设置<br>  <br>  公立函馆未来大学的密码学课程分为以下几部分:<br>  (1) 数学基础:该部分讲述整除、同余、模运算、欧几里得算法、扩展的欧几里得算法、欧拉函数、群、环、域和概率论等的基本概念。该部分的教学目的是使学生对密码学所需的数学知识有个大概的了解,为以后的学习打下基础。<br>  (2) 密码学基本概念:该部分讲述密码学的历史、加密和隐私概念、密码学的目标、攻击模型、密码协议和可证明安全性等。该部分的教学目的是使学生对密码学有个总体的认识,为以后的学习打下基础。<br>  (3) 对称密码体制:该部分讲述了流密码和分组密码体制。流密码只是介绍了一些基本概念。分组密码是本章的重点,主要讲述了DES、AES和分组密码的工作模式。该部分的教学目的是使学生对对称密码体制,尤其是分组密码体制有深刻的认识,了解分组密码设计原理和特点。<br>  (4) 公钥密码体制:该部分讲述公钥密码体制的概念、RSA公钥密码体制、ElGamal公钥密码体制、Rabin公钥密码体制、基于椭圆曲线的密码体制和基于身份的密码体制。该部分的教学目的是使学生对公钥密码体制有个深刻的理解,了解公钥密码体制与对称密码体制的区别。<br>  (5) 数字签名:该部分讲述数字签名的基本
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服