资源描述
计算机基础课程群及其教学内容的研究与实践
摘要:根据当前计算机基础教育的形势,本文提出了计算机基础教育的培养目标、课程体系、教学内容和教学方法以及教学质量评价机制等一系列建设性方案,并介绍了近几年我校计算机基础教育教学改革的有益尝试。<br> 关键词<br>本文来自:计算机毕业网 :计算机基础教育;课程群;教学内容<br> <br> 1计算机基础课程群<br> <br> 计算机基础教育是面向非计算机专业的计算机教学,所以它不同于计算机专业的计算机教学。计算机基础教学的总体要求是培养学生具有一定的计算机基础知识、方法和技能,以及利用计算机解决本专业领域中问题的基本能力。<br> 我校将计算机基础课程分为两种类型:一种是必修课,它是由教务处牵头,各专业院系与计算机系共同协商确定,学生必须选修并通过(具有强制性)。二是选修课,它是由计算机系根据当前计算机科学技术的发展和学生的普遍要求提出,学生可以根据专业导师或自己兴趣在多个学期内自由选择若干门课程。计算机基础课程群如表1所示。<br> <br> 根据课程的目标和教学内容,计算机基础教学大致可分为两个层面:一是作为大学公共基础课的计算机基础教学,也就是表1开设的课程群,学生一年级必修两门计算机基础课程,二年级根据专业方向或本人兴趣选修若干门计算机基础课程;二是结合专业课开设的计算机应用课程,笔者认为这些课程在学生高年级时由专业教师讲授比较合适,例如会计管理专业开设的“会计电算化”、艺术设计专业开设的“电脑美术与动画设计”等等。这样,就可以做到学生本科四年计算机“不断线”。<br> <br> 2典型课程的教学内容和教学方法<br> <br> 计算机基础课程的教学内容不针对特定专业,不包含或很少包含专业性的知识,而主要涉及计算机基础性和通用性的概念、技术及应用。计算机基础课程的教学内容应当根据计算机科学技术的发展而不断地进行调整和更新,教学大纲和教材也应体现出明显的时间性。从目前计算机科学技术的发展情况来看,选用计算机基础课程的教材最好是三年内出版的,因为计算机基础课程的教学内容必须跟上计算机发展主流。<br> 2.1 “计算机应用基础”课程<br> “计算机文化基础”是目前高校开设最为普遍的一门计算机基础课程,也是大学新生第一门计算机基础课程。面对非零起点的学生,第一门计算机基础课程的改革势在必行。笔者建议将现在的“计算机文化基础”更名为“计算机应用基础”或“大学计算机基础”,该课程的改革思路是:以讲解计算机基础和应用基础知识为主,而将工具性、操作性的内容放到实验课中。<br> 2.1.1调整教学内容<br> 改革后的“计算机应用基础”课程涉及到计算机基本知识、计算机硬件、计算机软件、数据库与信息系统、多媒体、通信与网络、信息安全等方面的基础性内容,前三项内容属于计算机基础知识,后四项内容属于计算机应用基础知识。这些知识不但可以拓展学生的视野,而且使他们能在一个较高的层次上认识计算机和应用计算机,并有助于提高学生在计算机与信息方面的基本素养。<br> “计算机应用基础”课程虽然涉及到计算机学科的众多领域,但也要力争做到广度优先,广而不细。它的主要教学内容及知识结构是:<br> <br> 根据上述教学内容,笔者在清华大学出版社出版了一套新教材,书名是《大学计算机应用基础》和《大学计算机应用基础题解与实验指导》。<br> 2.1.2加强实践教学<br> “计算机应用基础”课程是一门实践性很强的公共计算机基础课程,计算机知识的掌握与能力的培养在很大程度上有赖于学生上机的实践。加强实践教学环节的目的就是培养学生的上机动手能力、解决实际问题能力以及知识综合运用能力。此外,实践教学能够加深对课堂教学内容的理解,训练科学实验的基本技能,养成严谨的科学态度和工作作风。<br> 本课程实践教学的重点应放在熟悉各种操作系统环境(如Windows、Linux、Mac OS X等)以及数据库和网络实验环节上。由于学生来自不同地区,他们掌握计算机知识的程度可能相差很大。如果某些学生对Windows操作环境非常熟悉,并达到了教学要求,就可以让他们学习和使用Linux或Mac OS X操作环境。特别是针对某些专业(如艺术设计专业),直接学习Mac OS X操作环境可能对他们后续的专业课学习更为有利。<br> 计算机基础教学实验可以安排课堂教学的上机练习,也可以单独设课供学生选修。每个实验完成后,要求学生认真撰写并完成实验报告,期末通过上机考核后才能获得相应的学分。实验教学不能仅仅停留在验证性实验上,要积极开展设计性或综合性实验,有条件的地方要尝试开设研究性或创新性实验。<br> 2.1.3建设网络课程<br> 在计算机基础课程的教学中,集中授课和上机辅导是两个重要的教学环节。网络课程是在校园网支持下构建的现代化教学环境,教师可以调度网上的各种资源进行授课,学生课后也可以利用网络课程上的各种资源进行自主学习。<br> 目前,“计算机应用基础”网络课程包括课程介绍、网络课程、教师队伍、教学内容、教学条件、教学方法、教学效果、特色创新和政策支持等,如图1所示。本课程2005年被评为广东省精品课程(http://jingpin2007.szu. <br> 2.2 “多媒体技术及应用”课程<br> 多媒体技术所包含的知识非常广泛,比如多媒体数据压缩、多媒体功能板卡设计与开发、多媒体素材制作、多媒体视频会议、多媒体数据库以及基于内容的多媒体检索等等。那么,要向学生传授哪些多媒体知识呢?特别是针对不同层次教学对象(如计算机专业专科生、本科生和研究生以及非计算机专业本科生),怎样组织多媒体技术课程的教学内容和知识结构?其教学目标是否有所区别。<br> 2.2.1多媒体技术系列课程设置<br> 由于多媒体技术的知识丰富,为了适应不同层次对象的教学要求,将多媒体技术课程分成三门系列课程,即“多媒体技术及应用”、“多媒体技术”和“多媒体系统”。它们的教学目标、教学内容以及知识结构有着明显不同。<br> (1) 多媒体技术及应用<br> 本课程的主要教学对象是非计算机专业本科生或计算机专业专科生。其教学目标定位于了解多媒体技术的基本概念,学会使用多媒体硬件设备和软件环境,从应用的角度出发能够使用多媒体创作工具开发多媒体应用系统或创作多媒体作品。它的主要教学内容及知识结构是:<br> <br> 本课程的教学主要围绕如何开发和制作多媒体应用系统这一主题,着重介绍多媒体软件开发平台和实用工具软件,并详细地介绍典型的多媒体创作工具的使用。<br> (2) 多媒体技术<br> 本课程的主要教学对象是计算机专业本科生。其教学目标定位于理解多媒体技术的基本原理,掌握多媒体数据压缩技术,从技术的角度出发能够设计与开发多媒体硬件设备和软件环境。它的主要教学内容及知识结构是:<br> <br> (3) 多媒体系统<br> 本课程的主要教学对象是计算机专业研究生。其教学目标定位于掌握多媒体系统的基本原理和体系结构,从系统的角度出发能够研究多媒体系统的组成和特征,并能构建实现不同目的或用途的多媒体系统。它的主要教学内容及知识结构是:<br> <br> 以上粗略地将多媒体技术知识分为面向不同教学对象的多媒体技术三门系列课程,其基本想法是要避免多媒体技术本科教学内容越来越深,而有的研究生教学内容仍从最基本的问题谈起。因此,针对不同教学对象的要求,多媒体技术系列课程的教学内容以及相应的教材应有明显不同。比如,研究生教材与本科生教材在深度和难度不能相同,研究生教材可以有专著性质,而本科生教材就不应写成专著。<br> </p> <p> <p>2.2.2课程特色分析<br> “多媒体技术及应用”课程是面向非计算机专业本科生或计算机专业专科生的一门侧重于应用的计算机基础课程,其基本概念、分析方法和应用技术对启发学生独立思维以及提高学生创新能力都将起到重要作用。本课程具有以下特色:<br> ① 新颖性:多媒体技术发展迅速,各种新的标准、技术规范以及多媒体硬件设备和工具软件不断出现,版本也不断更新。这给任课教师讲授“多媒体技术及应用”课程提出更高的要求,即课程教学既要维护学科的系统性,又要体现多媒体应用技术的最新成果。<br> ② 实用性:在教学过程中要充分体现理论与实践相结合。本课程要求学生有较强的动手能力和创新意识,在上机实践过程中要求学生逐步掌握各种多媒体硬件设备的使用方法以及多媒体创作工具软件的使用技能。<br> ③ 全面性:本课程介绍了从各种媒体创作到多媒体应用软件制作所需用到的全部多媒体工具软件产品,比如音频编辑软件Audition、图像处理软件Photoshop、动画制作软件Flash或3ds max、视频编辑软件Premiere以及多媒体著作工具Authorware等,它们将为学生今后开发多媒体应用系统打好结实的基础。<br> 2.2.3加强实践环节<br> “多媒体技术及应用”课程实验对计算机硬件要求比较高,特别是音频、动画和视频制作部分,一般的PC机难以满足要求。下面是多媒体实验室的软硬件清单以及本课程应开设的各类实验名称。<br> <br> 实验名称后面的数字是建议上机学时数,教学上机总学时数不应低于36学时。在实践方面要求学生掌握音频、图像、动画和视频制作和编辑处理,并能够开发或集成多媒体应用系统或多媒体作品。因此,在每种媒体实验中都要布置一些创作任务,以提高学生实际动手能力和创新意识。例如,音频采集与编辑实验要求学生创作一段自己朗诵或对白的声音,加上背景音乐,然后再做一些音效处理。若计算机配备了光盘刻录机,那么学生就可以将自己制作的声音刻录到CD光盘。<br> 学生在掌握多媒体知识和基本技能后,可以进行综合应用能力的训练。它的教学过程是:首先学生根据自己的兴趣选择综合实验的题目,再进行总体规划和设计,并利用以前实验积累的各种素材,最后完成多媒体应用系统的制作。这样,不
<P>C语言程序设计课程教学设计探讨</P>
<P> 关键词:教学设计原理;教学目标;九步教学事件;教学测量与评估 <BR>摘要:本文针对C语言程序设计课程教学中难点多、语法知识点多、学生学习兴趣不高等问题,提出将加涅的教学设计原理应用于该课程的教学中,克服传统“填鸭”式教学模式的弊端,充分发挥学生的主观能动性。实践表明将加涅提出的教学设计原理应用于C语言程序设计课程的教学中,教学效果良好。 </P>
<P> <BR> C语言程序设计课程是很多高校理工科非计算机专业本科生必修的计算机基础课,C语言程序设计课程本身对教学要求比较高,学生不仅仅学习C语言程序设计的语法知识,更重要的是掌握程序设计方法。在以往的教学实践中,我们发现很多学生认为C语言程序设计课程是一门比较难的课程,特别对一些大学新生,C语言程序设计的先修课程为计算机基础,学生普遍认为跨度大,有畏难情绪,教师由于课时紧、内容多,而过多关注C语言语法知识的讲解,算法讲得比较少,且知识点比较分散,学生对知识的把握没有一个整体的概念。如何提高教学质量,如何能使学生尽快入门,激发学生的兴趣,如何培养学生的计算机逻辑思维能力,如何提高课堂效率,这都是教学中要思考的问题。在C语言程序设计课程教学中充分考虑大学生的学习心理,引入先进实用的教学设计思想是非常必要的。我们将美国著名教育心理学家加涅提出的教学设计原理应用于该课程的教学中,取得了良好的效果。 <BR> <BR> 1教学设计理论 <BR> <BR> 加涅是美国著名的教育心理学家,他的《教学设计原理》代表了20世纪末科学心理学与学校教育相结合的最高成就。他提出的核心思想是“为学习设计教学”[1],教是为了学,他认为教学应考虑影响学习的全部因素,即学习的发生要同时依赖内部条件和外部条件,教学就是要通过安排适当的外部条件来影响和促进学习者的内部心理过程,使之达到理想的学习效果。他提出教学设计的基本任务是阐明教学目标、教学过程、教学方法和教学结果的测量与评价。 <BR> 教学目标。把教学目标分为五种学习结果:言语信息、智慧技能、认知策略、动作技能和态度,这五种学习结果分为认知、情感和动作三个领域。教学目标应是面向学生预期的学习结果。 <BR> 教学过程。加涅将教学阶段分为九个教学事件:引起注意、告知目标、提示回忆先前的知识,呈现教材、提供学习指导、引出作业、提供反馈、评估作业、促进保持和迁移。 <BR> 教学方法包含教材呈现方式、师生的相互作用方式、教学媒体的选择运用。 <BR> 教学结果的测量和评价。教学是一种目标导向的活动,要求教师在实施教学活动前,对学习的预期结果做出陈述,教师在这个明确目标指导下,安排教学顺序,组织师生的双方活动,根据教学目标对学生的学习进行测量和评估,如果评估的结果表明教学目标已经达到,则教学进入下一个循环。 <BR> 这样的教学设计原理在教学活动中成为既能发挥教师主导作用,又能充分体现学生认知主体的教学模式。在此模式下,教师有时处于中心地位,起主导作用,在此期间,学生有时也处于传递-接受的学习状态,但更多的时候是在教师的帮助下进行主动思考、主动探索和主动发现。 <BR> <BR> 2C语言程序设计课程教学设计研究 <BR> <BR> 依照加涅的教学设计原理,根据C语言程序设计课程的特点,在教学实践中对C语言程序设计课程进行系统的教学设计,主要包括设计教学目标,教学过程的组织,教学方法的探讨,以及教学结果的测量与评估。 <BR> 2.1学生特征分析 <BR> 学生是学习的主体,只有了解学生,教师才能制定出符合学生实际能力的教学目标,学生特征信息的来源主要是一些问卷调查,它主要了解学生的编程基础和学习程序设计的愿望。调查分析显示,大约10%的学生在高中学过编程,50%左右接触过编程,40%左右从没有接触过编程,C语言程序设计的先修计算机课程为计算机基础,大部分同学对编程比较感兴趣。我校很多理工科专业的学生在工作中必须使用程序设计语言这个工具,这类学生学好程序设计语言的愿望非常强烈,而一些专业使用程序设计语言较少,学生的学习热情不高。 <BR> 2.2确定教学目标 <BR> 教学目标作为教学活动中学习者要预期达到的学习效果,对教学活动起着导向、激励、调节、检测和评价的作用,这有利于教学目的明确化、应用能力培养的具体化,是教学活动的出发点和归宿,其行为主体是学生,而不是教师。教学目标的陈述要从学生的角度出发。我们把C语言程序设计课程的教学目标分为“认知、理解、应用,综合”四级水平,每级水平又划分为若干子类,并为每一级水平的教学目标配置适当数量的有代表性的测试题。“认知”水平主要解决对C语言知识点的知与不知的问题,“理解”水平是指掌握概念、算法等知识,能用自己的算法语言和逻辑思想叙述和解释概念、算法等知识。“应用”水平是指在理解知识的基础上,通过练习,形成基本技能,能够用它去解决一些问题,主要考查学生将所学的C语言知识点和算法应用于实践中。“综合”水平是指能够综合运用知识解决问题,并达到熟练、灵活的程度,从而形成能力。教师首先研究教学大纲,然后再分析教材内容,在对学生的学习结果有了比较清晰的概念以后,对C语言程序设计课程的每个知识点列出学习水平的具体要求。 <BR> 2.3教学内容的组织 <BR> 为了达到上述教学目标,教师必须对传统的课程内容进行改进,传统的教材是以高级语言的自身体系的脉络来展开的,过于注重语句语法的细节,没有把编程解题思路放在主体地位[2],如何分析问题和解决问题的思路讲得少,部分学生学完后,往往还停留在纸上谈兵的阶段,遇到本专业领域的问题,也无法用学过的知识来解决实际问题,但教学内容的改进也要考虑学生的接受能力,非计算机专业的理工科学生不能按计算机专业的学生的要求来培养。 <BR> 2.3.1理论教学内容的改进 <BR> 改进的方法是对教学内容做一些精简和添加,精简的内容主要是一些过多过细的语法点,如输入输出函数中对格式控制符的介绍很详细,可精简一些不常用的格式控制符的讲解,留待学生在用到时再通过查资料去获得。增加一些算法实例,特别是增加一个或几个完整的项目设计的实例和对实例的分析,使学生对C语言的知识的运用有一个完整的知识体系,另外对重要知识点要精讲多练[3]。 <BR> 2.3.2实践教学内容的改进 <BR> 实践教学的改进除了常规的编程训练外,还要在实践期间分出两个星期,要求学生分小组完成一个小型项目的开发,开展讨论教学。学生在老师的指导下完成项目的分析、设计、实现,每一组都要交一个研究报告,老师对小组的实习进行考评。 <BR> 2.4教学方法探讨 <BR> 2.4.1分阶段组织教学,教学方法多样 <BR> 我们在教学实践中发现,程序设计的教学要循序渐进,该课程有自身的特点,学生听不会,也看不会,只能练会[4],在教学中我们按培养学生的阅读程序能力,再培养学生的编写简单程序的能力,到开发小项目能力三个阶段来组织教学。 <BR> 第一阶段培养学生的阅读程序能力。读程序能力的训练非常必要,它是学好程序设计的最好方法,与写作文类似,要写好作文,必须要有大量的阅读训练,程序设计的目的是根据实践应用的需求,用计算机编程来解决实际问题,但编程不可能一蹴而就,必须循序渐进[5],首先要进行一定量的阅读程序训练,特别对一些知识难点,如循环、数组、指针、函数、结构体等重要知识点。在训练中,学生不仅学习了程序设计语言的语法,更重要的是学会了编程者将数据的描述和算法结合起来的方法,学习了别人的经验和方法。在此阶段,教师主要是引导学生入门,教会学生分析问题的方法,学生能模拟程序在计算机内运行的状态,如学习循环时,教师请学生关注循环时变量的变化情况,教师可以先讲解循环前几次变量的值的变化,然后请学生讲述循环后几次变量的变化情况,这样学生能真正理解循环的执行过程。 </P>
<P> 第二阶段是编写一些简单程序的训练,阅读的程序多了,学生模仿能力很强,他们就能编写一些简单程序在计算机上练习,如果实习得出正确结果,学生就有成就感,对程序设计会越来越感兴趣,这是学生学好程序设计的条件,而兴趣是最好的老师。在这个阶段,教师要激发学生学习程序设计的兴趣,可安排讲解一些经典的算法,如查找(顺序查找、二分查找)、排序(冒泡法、选择法、插入法),归并算法、经典的数值算法等,并精选一些有趣的习题,如猴子分桃、鸡兔同笼、打印图形、数列求和等给学生作为上机题,使学生的编程能力在潜移默化中得到了提高。 <BR> 第三阶段是培养学生开发小项目的能力,上述两个阶段一般按高级语言的脉络来展开,学生只有一些分散的知识点,还不能把C语言的知识综合起来使用,所以进行一个课程设计很有必要,在这个阶段,教师可先用一个实例引导学生分析,进行数据设计和算法的设计,再给出具体的程序代码让学生学习,并了解如何在这个实例中将以前所学的数组、函数、指针、结构体、文件和各种流程控制语句等结合起来使用。然后,教师选择一些比较贴近学生生活的小项目,如学生成绩管理系统、图书管理系统,通信录等 ,学生以小组为单位,学生独立选题、分析、设计、实现,要求学生应用软件工程的思想和方法来开发这些项目,并写出研究报告。研究过程以学生为主体,教师为学生答疑解惑。在这些项目的实施过程中巩固和提高前面的知识,并将编程的技能技巧渗透其中。 <BR> 经过这样的训练,学生不但学会了从简单到复杂的程序编写,也养成了良好的编程风格,为以后的学习和研究打下扎实的基础[6]。 <BR> 2.4.2按九步教学事件组织课堂教学,提高效率 <BR> 课堂教学的目的在于培养学生分析问题、解决问题的能力,教是为了学,教师应在了解学生学习心理的基础上组织教学,而构成教学的每一个特定事件,其作用在于帮助或支持学习者对所学内容的获得和保持,使学习者取得适度的进步。各种教学事件都应与学生的内部事件活动有一定的明确关系。在很多情况下,教学事件必须由教学设计者做出审慎的安排,加涅提出了九步教学事件[1], 我们在教学中应用他的理论,取得了较好的教学效果。 <BR> 以循环嵌套知识点为例 ,循环嵌套是学生普遍认为
摘要:虚拟现实技术在教学中得到了广泛应用,具有巨大的应用前景。本文探讨了虚拟现实技术的概念、特征、优越性以及在高职计算机专业课教学中的作用。<br> 关键词<br>本文来自:计算机毕业网 :虚拟现实;高职教育;实践教育<br> <br> 1虚拟现实技术<br> <br> 虚拟现实技术VR(Virtual Reality)是利用计算机生成一个逼真的三维虚拟环境,并通过传感设备与之交互的新技术。它综合了计算机图形学、图像处理与模式识别、智能技术、传感技术、语音处理与音响技术、网络技术等多门科学,将计算机处理的数字化信息变为人所能感受的具有各种表现形式的多维信息。<br> 与传统计算机相比,虚拟现实技术具有3个基本特征(3I特征):强烈的“身临其境”的沉浸感(Immersion);友好亲切的人机交互性(Interaction);发人想像的构想性(Imagination)。<br> 以虚拟现实技术创建的虚拟环境,可以使人产生一种身临其境的近乎完全真实的感觉。同时人与虚拟环境之间可以进行多维信息的交互作用,参与者从定性和定量综合集成的虚拟环境中可以获得对客观世界中客观事物的感性和理性的认识,从而深化概念和建造新的构想和创意。<br> <br> 2虚拟现实技术在高职计算机专业课教学中的作用<br> <br> 目前高职学校计算机专业的实践教学环节大多是采用与企业联合,借助企业提供的
设备和环境对学生进行实践能力培养。限于各种现实条件,某些内容的实践教学环节往往不能得到较好地落实,极大地影响了学生动手能力的培养,抑制了学生的创造能力,以致学生毕业不能得到社会的认可。<br> 虚拟现实技术应用于教育是教育技术发展的一个飞跃。就教育理论而言,虚拟现实技术实现了人的临场化,参与者与虚拟环境是互相作用、互相影响的一个整体的两个方面,它营造了“自主学习”的环境,由传统的“以教促学”的学习方式代之为学习者通过自身与信息和环境的相互作用来得到知识、技能的新型学习方式。虚拟实验既可缩短训练的时间,又可获得直观、真实的效果,还能对那些不可视的结构原理和不可重组的精密设备作仿真实训,一方面培养学生操作、维护和检修的技能,另一方面培养学生自我训练的意识和创新能力。虚拟现实技术在高职计算机专业的实践教育中的作用主要体现在以下几个方面。<br> 2.1建设基于虚拟仪器的虚拟实验室<br> 走在科技前端的计算机专业的课程实践性非常强,设备仪器的升级换代速度非常快,特别是在当前创新教育引领学生发展的环境下,平均不到两年,设备的配置就已无法满足学生的创新实验需要。由于设备仪器的被动淘汰,必然产生大量的更新需求,因此高额的采购费用始终是高职院校实验教学大踏步发展和改革的瓶颈。相对于实际实训场所的建设,投资建立一套相应的虚拟现实系统的投资要小得多。通常虚拟现实系统的投资是实际系统投资的几十分之一,且面对设备更新换代,采用虚拟现实技术的实训基地在原有基础上改进、完善的投入更可以大幅度降低。因此,从科学技术上寻求一种新型的、实用的方法来建设基于虚拟仪器的虚拟实验室,也许是高职教育走出实验、实训困境的一条出路。<br> 由虚拟现实技术生成的适用于进行虚拟实验的实验系统包括相应的实验室环境、有关的实验仪器设备、实验对象以及实验信息资源等。虚拟实验室可以是某一现实实验室的真实再现,也可以是虚拟构想的实验室。例如,在城域网和广域网的网络建设过程中,不必真正把网络构建起来就可以亲身体验,犹如进行现场的操作。在数字电路的课程实验中,可以通过虚拟的电路器件来达到电路设计的目的,而没有器件问题所带来的麻烦。在电子商务课程实验中,可以虚拟商务环境,让学生进入这个虚拟环境,身临其境地体验现场交易的气氛和参与交易的过程。计算机操作系统的安装是比较基础但又是难做好的一个实验,由于在计算机上安装新的操作系统不可避免地会对原有的操作系统产生影响,而使用虚拟计算机来进行操作系统的安装实验就十分方便。创建的虚拟机有自己的CPU、内存、硬盘、光驱,在这个虚拟机上,可以安装Windows、Linux等真实的操作系统以及各种应用程序。<br> 通过虚拟的实验室进行实验,既可以缩短实验的时间,又可以获得直观、真实的效果,还能对那些不可见的结构原理和不可重组的精密设备进行仿真实训,避免真实实验操作带来的各种危险。并且,虚拟实验具有先进性和共享性,易扩充,易于改变教学项目,减少设备投入经费,使教学内容在虚拟的环境中不断更新,使实验实践及时跟上技术的发展。<br> 2.2激发学生的创造性思维<br> 虚拟现实技术具有强烈的“身临其境”的沉浸感和发人想象的刺激性,利用它进行实践教学可以给学生一种强烈的真实感,可为学生提供实际操作替代经验。例如在进行计算机组装的实验课程时,只要点击相应的按钮,就可以按相应的步骤进行安装,拖动鼠标或按钮可以随意地移动计算机组件到指定的位置进行安装,在安装完光驱后,点击光驱的开、关键时,盘盒会自动地弹缩并发出逼真的声音,使学习者能动态地观看到效果,有一种身临其境的感觉。同时,利用虚拟现实技术开展实践教学,学生可有更多的实践机会,高效大胆地进行多次尝试,其积极主动性增强,实践的趣味性较强,实践方式灵活多样。同时,通过VR技术,可将学生在学习过程中产生的假设进行虚拟,呈现相应的结果或效果。这样有利于激发学生的创造性思维,进行主动的探索性学习,培养学生的创造能力。<br> 2.3技能训练综合全面<br> 由于VR技术可实现在逼真的虚拟环境中以自然的方式进行交互,所以它非常适合技能培训。在实践过程中,学生的主要精力可放在原理的理解应用、实践设计及操作具体情境中,软件的帮助功能可以有效解决教师指导力度不够的弊端,有利于提高实践教学质量。例如“数据结构”课程中,对于常用的数据结构的算法思想,由于抽象程度高,学生很难理解,我们也可以通过虚拟技术将其制作成课件进行教学,将抽象的算法过程以浅显易懂、形象直观的形式展现出来。<br> <br> 3结束语<br> <br> 虚拟现实的沉浸性和交互性,使学生能够在虚拟的学习环境中扮演一个角色,全身心地投入到学习中去,这非常有利于学生的技能训练。利用沉浸型虚拟现实系统,可以做各种各样的技能训练,对高职的实训、技能性教学有着无比强大的推动作用。如何更好地运用虚拟现实技术来构造新型教育模式,体现高职教育的特色,将是我们高职教育工作者研究的重要课题。 <br> <br> 参考文献:<br>本文出自: 计算机毕业网<br> [1] 赵士斌,吴秋峰. 高校实训教学的虚拟现实技术研究[J]. 长沙电力学院学报(自然科学版),2001.<br> [2] 董武绍. 运用现代教育技术,探索实践教学的新模式[J]. 中国电化教育,2001.<br> </p> <p> </p> <p>
</p>
摘要:我院以传统的Online Judge系统为基础设计开发了针对在线程序设计实践和教学辅助的编程网格系统。本文首先介绍该系统的目标和总体功能结构,然后详细说明系统中的虚拟教学资源和教学活动,并阐述了系统在此过程中的教学辅助功能。<br> 关键词:程序设计类课程;Online Judge;教学辅助;编程网格;虚拟机<br> <br> 1引言<br> <br> 随着计算机和互联网技术的发展,网络教育与计算机辅助教学引发了一场深刻的教育模式和教育观念的变革。一方面计算机技术减轻了教育者的工作量,提供了更丰富的教育表现形式,并可在教育资源和教育对象之间建立联系;另一方面互联网技术使得更为广泛的群体可以远程接受到更高质量的教育。在这方面,人们已经有了不少的工作成就,MIT的开放课件系统OCW[1]和Moodle课程管理系统[2]即是其中的两个。<br> 在面向程序设计类课程的教学辅助方面,以PKU ACM JudgeOnline[3]为代表的Online Judge系统能够对用户提交的程序进行“黑盒判定”来自动生成判题结果。但从另一方面来说,传统的Online Judge系统针对的是解题训练,并不针对课程教学辅助的场景[4]。为了弥补这一不足,为程序设计类课程提供一定程度的网络教学辅助,我们基于Online Judge功能,开发了一个针对程序设计类课程的教学辅助系统——编程网格系统(Programming Grid,PG)。<br> PG利用Online Judge的功能提供了程序设计类课程对学生编程能力的锻炼,通过将现实中的教学中的资源、场景、活动引入系统,在虚拟教学活动中提供教学辅助功能,为使用该系统的师生展现了一个虚拟的程序设计类课程的编程训练、教学辅助、教学互动的平台。同时,为了方便各学校或者组织加入到此系统并充分利用其中的资源和功能,PG采用了分布式的系统结构,为系统未来的部署和发展奠定了很好的基础。<br> <br> 2PG系统概述<br> <br> PG面向的是程序设计类课程及其师生,以及网络上的编程爱好者和计算机相关课程的自学者。对于PG来说,主要的用户包括:一般用户、学生用户、教师用户以及管理员。显然,学生和教师用户是系统中主要活动的发起者与参与者。<br> PG以Online Judge为基础功能,为用户解决编程问题提供自动判别能力,同时针对程序设计类课程,引入了题目、题集、文摘、课程等教学资源,以这些教学资源为核心形成了众多的虚拟教学场景,利用这些虚拟教学场景中的教学活动为系统中的师生用户提供教学辅助,特别在这些教学活动中增加了师生之间教学互动的功能,为教学中的一对一辅导提供一定的支持。下面几节就分别概述一下系统的这几个方面。<br> 2.1Online Judge<br> Online Judge系统的最大特点是可以对用户提交的程序“在线判定”其对错。在Online Judge系统中,用户可以在线提交程序多种语言(如C、C++)源代码,系统对源代码进行编译和运行,并通过预先设计的输入/输出测试数据来检验程序源代码的正确性,并对代码生成的程序质量做一定的监控——譬如对程序运行时所使用的内存大小或运行时间进行限制。<br> 目前,这一功能的实现方式主要是“黑盒判定”。对于每一个算法,我们知道,它有0个到多个输入,1个到多个输出,并且具有穷性、确定性和可行性等特征,而每一个算法都是解决一类问题。Online Judge系统上有很多的编程题目,对于每一道题目,都存储了关于此题的多个输入输出对,这些输入输出对已经经过验证符合题意要求。当用户提交一道题目的源码之后,系统会把这个源码放入系统中编译运行,并针对题目的每一个输入输出对比较用户程序的输入输出。最后系统会根据结果返回给用户一个状态:通过(Accepted)、答案错误(Wrong Answer)、超时(Time Limit Exceed)、超内存(Memory Limit Exceed)、运行时错误(Runtime Error)、编译错误(Compile Error),并同时返回程序使用的内存、运行时间等数据信息。<br> Online Judge功能对于程序设计类课程的教学来说十分有用,它可以代替教师对学生的程序正确性和一定程度上的效率作出判断并自动给出结果,减轻了教师的工作量,教师可以在此基础之上从更高的角度对学生学习效果和课程教学成果作出评估[4][5]。<br> 2.2虚拟教学资源和场景<br> 一般Online Judge系统针对的是编程训练,更多看重的是用户的解题数、解题质量和解题效率,并不关注在程序设计类课程教学过程中所可能有的教学活动和教学辅助。PG以Online Judge系统为基础,但表现形式更为活泼多样,并提供与程序设计类课程相对应的虚拟教学资源和场景,帮助虚拟教学活动的展开。本节中我们介绍一下PG中所引入的虚拟教学资源和教学场景,第3节中将详细说明以这些教学资源和场景为中心,系统所提供的教学辅助功能,这是PG的特色所在。<br> PG中所包含的主要教学资源对象如图1所示。<br> <br> 既然系统以Online Judge为基础,那么PG中首先不可或缺的教学资源自然就是题目对象Problem。PG中的每道题目有它自己的描述,用户可以针对每道题目提交自己的源码,由Online Judge子系统来判定。PG中的题目都是由教师用户更新维护的,并提供给系统的每一个用户使用。题目有一个重要的属性就是“题目数据”。在2.1节中我们已经了解到Online Judge的基本实现原理是利用了算法的输入输出特性,题目数据就是预存的关于一道题目所描述问题的正确输入输出对,在用户提交源码时,系统就是根据它们来判定用户源码所编译生成的程序是否满足题意。<br> 与题目相关的资源对象还有解答对象Solution。所谓解答,就是PG所记录的用户针对一道题目的某一次提交结果,它的属性包括这次提交的结果、提交者、提交时间、程序运行时间、程序运行所用内存大小等等。通过解答对象,为用户——主要是学生的每次解题保留了历史记录,一方面便于教师针对指导,另一方面也方便学生自己自学复习。<br> PG针对题目和解答设置了相关的评论对象Comment。对于这些评论,系统做了严格的权限限制:只有教师(包括助教)才可以对题目和解答作出评论,这是为了促进教学辅导的开展——教师对于题目作出评论,可以方便出题者修改题目中的错误,促进更高质量题目的产生;教师对于解答作出评论,可以与此解答的学生进行互动,产生更好的教学辅导效果。<br> 利用PG中的题目和在线评测的功能,可以让用户很好地训练自己的编程能力,评价自己对于学习内容的掌握程度。但是,单纯的题目对象,对于提高学生的学习效果并不是最有效的。在学习时,用户可以采取多种方法选择题目。譬如可以按修改时间排序选择最新更新的题目,或者利用某个关键词检索一类题目,或者利用某些关键词分别检索出一些题目等等。但是,无论采取用户采取哪种方法来检索题目,对于教学来说,都是盲目且不理想的。也就是说,在仅仅有题目的概念下,系统所拥有的资源不过就是一个线性的题目集合。<br> 所以,为了达到更好的教学效果,我们将现实中的练习、作业、考试等概念平移到系统中,并设计了题集ProblemList这样一个对象来更好地管理和组织题目。题集是由教师用户根据一定的教学目的组织成的一些题目的有序集合,是练习、作业、考试等的一个抽象概念。在引入这样一个概念后,一些面向某种教学目的教学方案就在PG这个虚拟世界中有了承载体,教师可以创建这样的承载体以体现他的教学目标并布置给学生,而学生则可以利用这个承载体来更加系统地检验自己的某一方面的学习成果。<br> </p> <p> <p>关于题集的另一个重要对象是题集解答对象ProblemListSolut
展开阅读全文