前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇数字图像处理实验报告范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
关键词:数字图像处理 教学改革 教学实践
中图分类号:G642 文献标识码:A 文章编号:1674-2117(2014)08-0012-02
1 前言
数字图像处理技术的应用非常广泛,已经渗透到计算机、通信、交通、物理、医学、化学、生物学、军事、经济等各个领域,与人们的生活密切相关。《数字图像处理》是信息技术领域中发展较快的一个热门领域,是模式识别、计算机视觉、多媒体技术、数据挖掘等学科的基础,也是一门涉及多领域的交叉学科。
该课程的理论性和实践性都很强,要求学生在掌握图像处理的基本概念、基础理论、典型算法的基础上,掌握一定的编程实践能力,能够利用计算机编程实现数字图像的各种处理,如图像变换、图像增强、图像恢复、图像重建、图像分割、图像编码和图像识别等,在学习图像专业知识的过程中增强学生的创新意识,培养学生独立获取知识和综合运用所学知识分析和解决实际问题的能力,提高学生的实际动手能力,为其今后深入地进行科学研究和独立工作奠定良好的基础。
2 创新教学理念
在《数字图像处理》课程的教学中,努力贯彻素质教育的先进理念,注重教与学的有机结合,坚持以学生为主体,教师为主导,最大限度地发挥学生的主观能动性,将培养学生的主动思维,鼓励学生的创新意识作为教学的重要目标之一。
对于教学内容的设计,以图像处理算法的理论作为授课的重点,以算法的产生、应用、改进为主线,突出知识的内在联系,揭示数字图像处理发展的内在规律(要求学生重点理解)。
掌握数字图像的基本概念和基本算法,关注图像应用的前沿动态,培养学生的创新思维能力,并根据课程需要,适当将数字图像处理领域中最新的技术手段,研究进展以及发展趋势纳入教学,并鼓励学生对新知识、新领域进行积极地探索。
在教学过程中,努力将复杂抽象的理论融入到形象直观的应用实例当中,将算法实现过程中的重难点问题分解细化为可展现的图像处理效果,在理论中渗透实践,在实践中穿插理论,注重理论联系实际,培养学生的工程实践能力,真正使学生乐学、易学并会学。
3 改革教学内容
数字图像处理技术在科学研究、工农业生产、军事技术和医疗卫生等许多领域中发挥着越来越重要的作用。图像技术的快速发展决定了《数字图像处理》课程的教学内容也需要不断更新,教材原则上选用专业内容全面新颖的教材,即图像专业基础知识相对稳定,并能够紧跟数字图像处理技术发展趋势。对于辅教材,可以根据图像课程的系统性和实用性,并考虑到扩充学生的视野,可以选一些国际上经典书籍如外文经典专著。目前我们以2012年清华大学出版社出版的,章毓晋编写的《图像工程(上册)――图像处理(第三版)》教材为主线,以美国Rafael C.Gonzalez 等编著的Digital Image Processing,阮秋琦编著的《数字图像处理学》等教材和中外科技期刊发表的最新图像技术为参考资料,并适当补充本领域中的一些新技术、新方法及新成果。
对图像处理教材内容进行整合,课内图像处理基础知识分为九大模块:图像与视觉基础、图像运算与变换、图像增强、图像恢复、图像重建、图像编码、图像分割、图像目标表达与描述、图像识别等内容。
在授课过程中,一般知识点进行自学,系统讲解重点难点内容,如直方图均衡等,而对于教材中未写进或无系统介绍的前沿性、创新性或跨学科的内容,则渗透到各个章节中。例如,将水果识别系统、车牌图像的自动识别、基于内容的图像检索等新技术渗透到图像增强、图像分割、图像目标表达与描述和图像识别等各个章节中,授课内容完成,那么自动识别系统模型建立,学生就完成了水果、车牌等图像的自动识别。通过这种方法强调基础,跟踪前沿,将基础理论与实践有机地结合起来,使学生不仅能够学到课程的基础知识,了解科学前沿的最新成果,加强学生的实践动手能力,而且与时俱进,增强了学生的好奇心,促进学生创新能力的培养。
4 改进教学方法
在数字图像处理教学中,综合运用课堂讲授法、研究法、讨论法和实验法等教学方法,发挥各种教学方法的优势,引导学生积极参与教学。
对于一般的重点难点内容,例如,图像增强中的直方图增强等模块,同时以课堂讲授和实验法为主,在讲解图像增强理论的同时进行图像直方图增强实验,在图像增强原理讲完之后直接出现直方图增强的前后对比图,可以激发学生的兴趣和动手能力。
对于图像边缘检测等一些难度相对较小的内容,首先以讲授法系统地讲解其中一种边缘检测算法,其他与之原理相似的算法则运用讨论法,以学生讨论、交流为主,教师引导、点评为辅进行。
对于课堂难度较大的内容如图像恢复与重建,则采取研究法为主,其他方法为辅。促使学生主动思维,成为真正的学习主体,教师根据学生反馈的信息及时把握学生思维过程,成为真正的主导。
另外,对于图像某一知识模块的引入,可以适当设置一些悬念或疑问,再引出讲授的主要内容,即将教学过程设计成一个“产生疑问―寻求解决方法―解决疑问―再产生疑问―再寻求解决方法一再解决疑问……”的过程。这样不仅有利于增强授课内容的逻辑性,还有利于启发学生的思维,激发学生的兴趣及创新能力。
5 丰富教学手段
鉴于数字图像理论知识比较丰富,实践性比较强,应用领域比较广的特点,以及现有教学设备、教学网络环境的改善,《数字图像处理》课程采用板书、多媒体课件、辅助教学软件以及教学网络平台等多元化的教学手段。充分活跃课堂气氛,提高教学效果,促进教学改革,提高学生的学习兴趣及实践动手能力,增强学生的信息素养,获得了良好的教学效果。
对于数字图像处理中典型算法的原理与推导等难度较大的内容,以板书为主,通过对公式的推理计算,体现出知识的逻辑性和严谨性。同时适当辅以多媒体课件对图像处理的结果进行演示,以加速学生对授课内容的理解,增强了学习的直观性、生动性和趣味性。
针对本课程的特点,开发了辅助教学软件,利用该软件在课堂教学中将图像处理算法的实际效果进行随堂演示,从而将枯燥的理论推导转化为立竿见影的实际操作。让学生充分感受到数字图像处理技术的巨大魅力,从而降低了理论知识学习的难度,增加了课堂的信息量、激发了学生的学习兴趣,实现了化静态为动态,化抽象为直观,化复杂为简洁,使课堂教学的效率大大提高。此外,又锻炼了学生的研究性学习能力,培养了学生的创造性思维。
根据课程教学标准,进一步改革教学实践,安排了实验教学,并将实验内容划分为验证性实验和设计型实验。验证型实验的设计,要求学生掌握数字图像处理、基本操作处理和简单的典型算法编程,从而实现对课堂上理论知识的学习巩固,增强了学生的编程能力和基本的项目开发能力。设计型实验需要学生对源代码进行分析研究、修改或补充,动手设计一些综合性或创新性的算法,分析实验结果,写出实验报告或论文。既培养了学生发现问题,分析问题和解决问题的能力,又提高了学生的动手能力和创新能力。
利用大学提供的教学网络平台,把图像处理课程的教学标准、授课教案、教学课件、习题、实验指导以及相关参考资料都上传到此教学网络平台。同时引导学生在网络上积极讨论关于图像处理方面的一些最新研究等话题,激发学生讨论及思考。另外,学生对于未消化的难点,也可以在网络平台上提出,教师及时通过教学平台进行回复,实现课后数字图像处理教学的互动,从而作为课堂学习的补充。教学网络平台实现了教学资源的共享,课后教学的互动,丰富了教学手段,为开展多种形式的教学奠定基础。
6 改革考核方法
课程考核对于加强学生对学习内容的掌握、实验技能的提高、创新能力的培养具有很大的促进作用。然而,传统的闭卷考试,主要考核学生对课堂教学内容的理解和掌握,容易使得学生将注意力放在背记考点及研究考试技巧上。《数字图像处理》课程是一门实践性很强的课程,仅采用这种评价方式将难以调动学生实践学习的积极性,达不到良好的效果。
在考核方法的改革上,对《数字图像处理》课程采用了综合性的考核方法。期末考试采用笔试开卷方式,主要强调学生对数字图像处理技术基础理论的宏观掌握。在考试题目设计上,重点强调学生知道如何去寻找解决问题的方案,考核学生发现问题,分析问题和解决问题的能力;同时增强实验成绩的比重,根据学生对实验内容的完成情况,以及创造性解决图像处理问题的能力,对实验成绩进行评分。另外,还将平时的听讲,回答问题,作业的情况列入平时成绩。因此《数字图像处理》课程最终的考核成绩包括三个部分:期末考试成绩(占50%),实验成绩(占30%)和平时成绩(占20%)。
通过课程考核方法的改革,不仅有效地检验了学生对《数字图像处理》课程的综合掌握程度,而且还能激发学生学习的积极主动性,提高了实践创新能力。
7 结语
随着信息技术不断发展和完善,数字图像处理技术也在不断发展,并且越来越多地应用于各个领域,相应地,数字图像处理课程的教学改革和实践也应与时俱进,结合国内外科研和教学成果,不断吸收新知识,丰富教学内容;根据教学内容灵活运用各种教学方法,使学生在掌握数字图像处理基本理论和方法的基础上,培养学生的实践动手能力,创新意识与综合设计能力,使学生的信息综合设计能力和科学研究能力有明显地提高。激发学生主动学习的兴趣,提高学生进行研究性学习的能力,同时进一步提高教学质量和教学水平,真正培养出具有开拓精神和创新意识的现代化新人。
参考文献:
[1]章毓晋.图像工程(上册)――图像处理(第三版)[M].北京:清华大学出版社,2012.
[2]冈萨雷斯.数字图像处理(第三版)[M].北京:电子工业出版社,2010.
[3]Rafael C.Gonzalez. Digital Image Processing using Matlab[M].北京:电子工业出版社,2003.
关键词:机器学习;教学方法;教学改革
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)53-0158-02
“机器学习”是现代信息技术科技领域中一门非常重要的学科,涉及概率论、统计学、脑科学、认知学等多门学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。“机器学习”是人工智能的核心,是使计算机具有智能的根本途径,具有重要的研究价值和广泛的应用价值。因此,要想成为高科技行业的高层次人才,就需要掌握与“机器学习”课程所相关的知识和技术。
一、课程安排和教学内容选择
“机器学习”课程是我院“智能科学与技术”专业的专业课程之一,与“人工智能”、“数学图像处理”、“机器视觉”构成了本科生培养的有机课程体系。按照我院“机器学习”教学大纲的要求,总学时数为32,其中理论教学24学时,实践教学8学时。我院选用的教材是由Tom Mitchell所著,曾华军、张银奎等译的“Machine Learning”,这是一本“机器学习”课程的经典教材,展示了机器学习中核心的算法和理论,并阐明了算法的运行过程。该书总共有十三章,有些内容如第七章的“计算学习理论”对于本科生来说理论性过强,不易理解;有些内容如第四章的“人工神经网络”和第九章的“遗传算法”与我们的另一门专业课“智能计算”在内容上有重叠。因此,要想在最短的时间内让本科生掌握最基本的“机器学习”的原理和方法,就需要对教学课程选择优化,激发起学生的学习兴趣,为进一步的深入学习打下坚实的基础。最终,我们选择了该书的第一、二、三、五、六、八、十三章作为教学的主要内容,同时结合教师自己的科研工作,时刻关注“机器学习”在国内、国际上的最新进展,在教学过程中以专题讲座的形式将“机器学习”的最新研究成果介绍给学生,达到使学生开阔眼界、增长见识的目的。
二、教学中存在的问题
笔者承担“机器学习”课程教学工作已有五年,在日常的教学活动中,发现该课程的教学问题主要体现在以下几个方面。
1.课程理论抽象,学生学习兴趣不高。“机器学习”理论性强,如按照传统的教学方法在课堂上讲解“机器学习”的各种理论和算法,必然涉及到大量的数学公式推导,这就要求学生要有较好的数学基础,从而使数学基础不好的学生学习起来比较困难,兴趣不高,教学效果不佳。
2.教学内容丰富,知识点分散。“机器学习”涉及的理论、算法很多,并且算法之间联系不大,教学内容易面面俱到,这就导致学生只掌握了分散的知识点,没有形成一条完整的知识链,不知道自己所学的算法有什么用、如何使用,从而失去了学习目标,影响了学生的学习热情。
3.实验课比例较小且难度较大。“机器学习”是一门实践性很强的学科,由于实验课时较少,仅提供8学时,使原本很重要的实践活动变成了搭配;同时,部分“机器学习”算法较复杂,编程实现难度较大,加上大部分学生本身的编程能力有限,很难在较短的时间内完成实验课的内容。最终导致学生对实验课的兴趣不高,消极应对,没有将学习到的理论知识应用到实践,学生的动手能力也没有得到充分锻炼。
针对以上问题,笔者在“机器学习”教学实践中注重理论教学与实践教学紧密相连,研究如何恰当组织教学内容,合理分配实验环节,激发学生的学习兴趣,加强学生实践动手能力的培养,达到知识传授和能力培养的有效结合。
三、教学方法改进
(一)理论教学
在一个完整的教学过程中,理论教学是尤为重要的一个环节,是学生获取知识的直接渠道。如何提高学生的学习积极性和激发学习兴趣;如何把枯燥无味的理论和算法讲解深入显出,易于理解,是理论教学问题中需要重要解决的问题。可以从以下几个方面入手。
1.上好绪论课,激发学生的学习兴趣。“兴趣是最好的老师”,兴趣是学生主动学习、积极思维、勇于探索的强大动力。因此在教学活动中,应该注重激发学生的学习兴趣,让学生自始至终主动参与学习,全身心地投入到学习活动中。因此,我们应该重视绪论课,通过查阅大量文献资料,将最新的“机器学习”的研究成果展现给学生,激发学生的学习兴趣。教材中列举了“机器学习”的一些成功应用,如学习识别人类的讲话、学习驾驶车辆、学习分类新的天文结构、学习以世界级的水平对弈西洋双陆棋等。但是,这些应用只有一些文字上的描述,很难给学生留下直观的印象,我们可以上网查找一些相关的视频资料,结合视频资料来讲解这些应用,这样会让学生更加直观的认识到“机器学习”的应用价值和远大的市场前景,从而对这门课程产生浓厚的兴趣。
2.结合实例讲解,注重理论联系实践。“机器学习”的很多算法理论性强、抽象、不易理解,单纯采用文字叙述和公式推导的教学手段,教学效果并不好。因此在理论教学中,可以结合实例讲解,注重理论联系实践。例如在讲解“贝叶斯学习”这章时,有一个朴素贝叶斯分类器的算法,实现该算法的难点在于估计给定目标值时各属性的概率。为了让学生更好的理解和掌握该算法,可以结合“识别手写阿拉伯数字”这一实例进行讲解。首先,将手写阿拉伯数字图像二值化,并分割成“4×4=16”个同等大小的子图像;然后,计算每一个子图像中黑色像素的个数,将该值作为数字图像的一个属性值;最后,从100张训练样本中统计出给定数字时各属性的概率。这样,学生通过实例,知道算法的应用场合和方法,学习兴趣和效率自然就会提高。
3.教师与学生互动,注重问答式教学。教师与学生互动是理论教学最基本的组织形式,是提高课堂效率、达成教学最优化的有效途径之一。因此,课堂教学模式应由传统传授“满堂灌”的方式转向“互动问答”的方式,通过提问引导学生去思考,激发学生的求知欲,充分调动学生的学习积极性和主观能动性。例如,在讲解“基于实例的学习”这一章时,首先给学生介绍了三种学习方法:k近邻算法、局部加权回归和基于案例的推理,这时可以问学生:这些方法有什么共同点?与前面学习的方法有什么不同?根据学生的回答,引导出积极学习和消极学习的概念,并指出这两种方法之间的重要差异。然后进一步问学生:归纳偏置方面积极和消极方法是否有实质性的差异?引导学生去思考引起这些差异的原因是什么,探求问题的本源。接着还可以问学生:这些差异会影响学习器的泛化精度吗?让学生去进一步思考这些差异会导致什么样的结果,从而对所学的算法有更加深入的了解和认识。
(二)实践教学
实践教学是理论教学的深化和补充,学生在实践环节将理论教学学到的理论算法应用于实践,有助于知识的理解和掌握,也有助于提高学生的动手能力。传统的实践教学内容大多为验证型实验,缺乏综合性实验,对学生综合应用能力和解决实际问题能力的培养不够。因此,教学过程中要加强实践教学,增加综合性实验,将理论教学与实践教学密切结合起来。可以从实验设计、实验要求和实验考核这三方面入手。
1.实验设计层次化。根据理论教学内容,结合学生的实际情况,按照由浅入深的原则安排了三个实验:候选消除算法、ID3决策树算法、和识别手写阿拉伯数字。前两个实验为验证型实验,要求学生实现相关算法,验证教材实例的正确性;后一个实验为综合性实验,要求学生综合运用数字图像处理、可视化编程技术、机器学习等课程知识,解决实际问题。实验的难度由易到难,层层深入,有利于学生动手能力的培养。
2.实验要求明确化。对于每一个实验,都有明确的要求,让学生明白实验要做什么,该输出怎样的实验结果。如在候选消除算法实验中,首先要求学生以读文件的方式读训练样例,并将样例显示在屏幕上;然后,实现极大特殊假设算法并将每一步的极大特殊边界输出到屏幕;最后,实现极大一般假设算法并将每一步的极大一般边界输出到屏幕。通过完成这个实验,学生对候选消除算法的过程有了一个清晰的认识,加深了对算法的理解。
3.实验考核常规化。为了保证实验的质量,加强对实验的管理,对每一次实验都要求学生签到,并完成相应的实验报告,交由教师批改。教师根据学生完成实验报告的情况,给出评分和评语,并计入学生的平时成绩中。学生的最终考试成绩为平时成绩与期末卷面成绩的加权和。通过常规化实验考核,学生会意识到实验环节的重要性,积极认真的对待实验。
四、结语
针对“机器学习”课程特点和我校的实际情况,我们积极开展教学改革研究,从理论教学和实践教学两方面进行了一些探索,并初步取得了令人满意的效果。“机器学习”是一门不断发展的交叉学科,要求“机器学习”课程的内容不断更新,教学方法也要不断改进。为了更好的讲授这门课,还需要在日后的教学实践中不断改进和完善。
参考文献:
[1]Tom M.Mitchell.Machine Learning[M].曾华军,等,译.北京:机械工业出版社,2003.
[2]袁鼎荣.浅谈《机器学习》的课程教学方法[J].广西经济管理干部学院学报,2010,(4):99-101.
[3]胡雪蕾,孙明明,孙廷凯,陆建峰.研究生“机器学习”课程教学改革实践与探讨[J].煤炭高等教育,2012,(1):118-121.
关键词:操作系统;实验教学;教学质量;应用型本科
1操作系统实验教学的重要性
“操作系统”课程是计算机科学与技术专业必修的一门专业基础课,本课程的学习目的是让学生掌握操作系统的基本概念、基本原理、设计方法和实现技术[1-2],为今后在相关领域的工作打下坚实基础。
实验教学是“操作系统”课程必不可少的环节,我们不仅要设置实验,而且还要重视实验,使其很好地辅助课堂教学。实验教学的质量直接影响学生的就业机会和工程实践能力[3]。德国教育家第斯多惠曾经说过:“教学的艺术不在于传授的本领,而在于激励、唤醒和鼓舞。”而实验教学的重点就是培养学生的好奇心和求知欲,帮助学生自主学习、独立思考,鼓励学生发现问题、提出问题,并通过实验过程找到解决问题的方法和途径。
2现状与存在的问题
操作系统实验教学的重要性使我们有足够的理由要教好这门课,但是在实际的实验教学活动中,学生要真正完成好操作系统的实验内容却并不是十分容易的事情。下面从专业培养方案的定位、前导课程
影响、选用操作系统以及实验教学质量监控等方面进行分析。
2.1应用型本科计算机专业培养方案的定位
长期以来,我国计算机专业教育带有浓厚的计算机系统研究型人才培养色彩,与应用型本科人才培养目标的“理论够用,注重实践”的特点不太相符。国家教育部强调对不同院校不同层次的学生要采取分类指导的原则,应用型本科计算机类学生的培养目标是培养既懂得计算机专业的理论知识,又掌握计算机应用技能的高级应用人才。对此问题的研究,我们课程组在文献[4-5]中已进行过论述,特别需要说明的是我们课程组负责人范辉教授参加了由教育部教学指导委员会组织的全国高校操作系统课程研究与资源建设项目,并在其中承担了应用型本科操作系统课程的部分研究与建设工作,使我校的应用型本科操作系统的课程建设起到了很好的示范作用。
2.2前导课程的影响
“操作系统”的前导课程有“程序设计语言”、“数据结构”、“计算机组成原理”和“汇编语言”等,它的后续课程包括“计算机网络”、“数据库原理”和“编译原理”等计算机学科的重要课程,如图1
作者简介:孙述和(1966-),男,山东烟台人,副教授,硕士,研究方向为计算机应用、图像处理;谢青松(1965-),男,副教授,硕士,研究方向为算法分析与设计、信息安全技术;董付国(1977-),男,山东聊城人,讲师,硕士,研究方向为数字图像处理、信息安全;杜萍(1981-),女,山东青岛人,讲师,硕士,研究方向为基于角色的访问控制。
所示。大部分学生在学任何一门课之初都比较认真,主观上有较强烈的学好这门课的愿望,但是随着课程的日益深入,课程特征不断显露,特别是“操作系统”这门课本身的理论性较强且实验内容对前导课的依赖性很大,从而打击了一部分学生的学习热情,甚至有一部分学生因前导课程学习较差而放弃了操作系统实验作业的完成,从而影响了课堂学习甚至包括后续课程的学习。
图1 “操作系统”的前导与后续课程
2.3选用的实验操作系统
由于操作系统课程本身的原因,使得操作系统实验环境较难选择。大部分教材以Unix系统为实例,而Unix的安装成本又较贵,不太适宜用于学生实验。而传统的Windows操作系统的大部分源代码未公开,具有一定的局限性和不透明性。所以,我们选用Linux作为主要的实验操作系统。但是,由于大部分学生之前都没有接触过Linux,并且还都非常熟悉Windows系统,思维定势难免会给Linux的认识与学习带来一定的难度。
2.4实验教学质量监控
从目前的实验教学情况来看,各个学校对评价工作都较为重视,但存在着只重结果而忽视过程以及考核方式不科学等问题。由于当前互联网技术的高速发展,网络资源不断丰富,在实验过程中,学生的实验报告或设计代码部分存在抄袭现象,这部分学生虽然提交了实验报告,成绩也不错,但实际上,却没有掌握相关的知识。如何在实验过程中进行教学质量监控,合理利用网络资源,避免抄袭,使学生能够既掌握知识又锻炼能力,这为我们的实验教学提出了新的难题。
3提高实验教学质量的对策与方法
笔者结合自己近几年的教学实践,就“操作系统”课程实验教学中遇到的上述问题,从以下3个方面谈谈自己的体会。
3.1化难为易,从主观和客观两方面进行引导
(1) 在学习的主动性方面,潜移默化地消除学生的畏难情绪。
① 在第一节实验课上多下功夫。通过实例告诉学生操作系统实验学习在现在的学习和今后工作中的重要性,使学生从纯粹学好课程的想法变为有目的性的学习。例如,从考研和就业的角度,强调编程能力和动手能力的重要性,并结合前导课程如“高级程序设计”中的线程等相关内容加以说明。
② 结合教师和前面学生的经验,介绍操作系统实验学习的方法和特征,以及可能遇到的困难,让学生针对自身的学习情况,提前准备和查阅前导课程的相关内容,做到心中有数。同时,把一些好的学习技巧传授给学生,让学生知道怎么学、怎么做。
③ 在后面的实验课上,单纯地强调操作系统实验内容重要性的意义已经不大,教师应在每一次布置实验作业的时候,有意识的从应用及工程实践角度,用案例的方式对实验内容加以多角度描述,从而使学生明确实验目的并激发学习兴趣。
(2) 在客观上,化难为易,有针对性地解决学生的学习难题。
① 分层次设计实验要求,如表1所示将学生粗略分为高中低3个层次。
表1学生层次分类
层次前导课程
掌握情况学习兴趣与
学习目的人数
第一层次基础知识
非常扎实学习兴趣非常强烈一小部分
(
第二层次基础知识稳固学习目的明确绝大部分
(>80%)
第三层次基础知识较差学习兴趣不高一小部分
(
对不同层次学生,有针对性地分析并提出解决方案,以帮助他们提高,如表2所示。
表2按层次设计实验要求
层次针对性分析及解决方案
第一层次多加鼓励及肯定,并结合其兴趣点推荐学习资料,引导自学,可在后面的团队实验任务中委以重任。
第二层次按照既定的实验要求和目的进行实验安排。
第三层次放弃部分选做实验,适量延长必做实验的学时,以弥补前导课程的不足并强化必做实验。
② 提供参考程序,帮助学生快速入门。这个方法主要是针对第三层次和第二层次的一小部分前导课程学习效果不好的学生而言的。我们以实验“进程调度模拟程序设计”为例进行说明。
例1:进程调度模拟程序设计
实验目的:加深对进程概念和进程调度算法的理解。
实验内容:(a)给出进程调度的动态优先级和时间片轮转调度算法描述;
(b) 用C语言设计一个对n个并发进程进行调度的程序,每个进程由一个进程控制块结构表示;
(c) 调度程序应当包含两种不同的调度算法,运行时可以任选一种,以利于分析和比较;
(d) 程序应能显示或打印各种进程状态和参数变化情况,便于观察。
实验参考方案:对于这个实验,首先要明确实验目的是通过编程加深对进程概念和算法的理解,对算法的理解是重点,而非编程本身。我们给编程确实有困难的学生,提供一个实验参考框架,并在此基础上基本实现动态优先算法,只留下一些涉及到该算法核心思想的代码让学生自己填空,最后重点考察学生在此框架基础上自己编写的时间片轮转调度算法的实现。当然,对于绝大部分基础较好的学生,我们还是建议程序框架也要自己搭建。
③ 我们还可以多鼓励学生充分合理利用网络资源,如果有某些疑问或未解决的问题可以自己到网络上寻找答案或到一些论坛上参与讨论,增加自己学习和丰富操作系统知识的途径。
3.2由浅入深,多角度多层次学习掌握Linux系统
我们选择Linux做为实验操作系统,由于大部分学生之前都没有接触过它,所以做实验时应该从易到难,一步步的来操作,如图2所示。
图2Linux系统学习阶段示意图
我们的方法是首先熟悉Linux简单操作的验证性实验,包括基本的应用级实验和系统管理级实验。在这一阶段,可以引导学生通过对熟悉的Windows操作系统的相关功能,对比学习Linux操作系统的功能,如表3所示。
表3操作系统验证性实验列表
序号实验内容LinuxWindows
1系统安装√√
2系统的用户接口和编程界面√√
3系统的界面认识(窗口系统、文件管理和系统管理工具等)√√
4使用U盘√√
5屏蔽Windows桌面上的“回收站”√
6观察注册表内容√
其次,在熟悉操作系统的基本操作与环境之后,进入设计性实验阶段,编程模拟实现操作系统的某些功能模块,如表4所示。
表4Linux系统设计性实验列表
序号实验内容(对应算法或命令)必做选做
1进程调度模拟程序设计(动态优先级算法、时间片轮转调度算法)√
2页面置换模拟程序设计(OPT、FIFO、LRU)√
3文件系统模拟设计(login、dir、read、open、close等)√
最后,进行实验内容难度较大,但很有意义,也很有意思的源代码阅读级实验,这部分内容建议学生分组协作完成。可选内容有很多,例如进程创建、内存分配、系统安全性、磁盘驱动、文件的读或写、虚拟文件系统、idle进程等,每组学生可自主选题,最后的实验报告,由团队统一提交。表5所示是我们2008~2009年度第二学期学生源代码阅读级实验分组情况汇总。
表5源代码阅读级实验分组情况列表
序号实验内容是否团队人数/组
1进程创建√9
2内存分配√10
3文件的读或写√8
4虚拟文件系统√10
5网络传输√10
6设备管理√10
3.3改进考核方式,加强实验教学质量的监控
要加强实验教学质量监控,保证操作系统课程的教学质量,我们对传统的只提交实验报告的实验考核方法从如下几个方面进行了改革与实践:
(1) 提高实验成绩在最终课程成绩中所占比例(如图3所示),引导学生重视实验教学。
图3 提高实验成绩比例示意图
(2) 对设计性实验和综合性实验的成绩评定,应
在实验报告的基础上,综合多种形式进行考核量化。我们的方法是在实验过程中,不定时抽查部分学生的程序,并有针对性的提问和讨论,保证一学期每个学生至少有一次提问的机会,按回答情况进行打分。团队形式的综合性实验还要求组长提交任务分配情况以及个人完成情况,将协作能力、资料分析能力等纳入考核指标。
4结束语
我校“操作系统”(应用型本科)从2004年被评为“校级精品课程”和2006年被评为“山东省省级精品课程”以来,在更新教学与实验内容、加强教学梯队建设与教材建设、改进教学方法和教学手段、加强素质教育、培养创新人才等方面不断进行探索与实践,已开始显现初步成效。近年来,我校计算机专业学生在山东省软件设计大赛、学生科研立项、考研录取率、毕业生就业率等诸多方面的成绩稳步攀升。总之,要让学生学好“操作系统”、做好操作系统实验、提高人才培养质量,还需要我们不断在教学实践中加以发现和总结。我们将不断努力,逐步完善操作系统实验教学体系,在改革中探索、提高,培养出更多适应社会需要的应用型人才。
参考文献:
[1] 谢青松,范辉. 操作系统课程教学之我见[J]. 计算机教育,2004(9):75.
[2] 王国华.《操作系统》实验课程的设置与实践[J]. 山西财经大学学报:高等教育版,2006(4):108.
[3] 郭观七,周细义,张舸. 应用型本科计算机专业实践教学改革探索[J]. 计算机教育,2009(12):85-87.
关键词:C语言;程序设计;工程实践;教学改革
中图分类号:G642.4;TB-4
C语言以其限制少、使用方便灵活、功能强、直接操纵硬件等诸多优点赢得众多程序设计人员的喜爱,它是程序设计的主要工具之一[1-2],是计算机及相关专业程序设计的基础课程,也是大部分学生学习程序设计的第一门课程。由于初学者缺乏计算机基础知识,同时由于初次接触程序设计,许多学生对类英文的C程序能实现特定的功能感到不可思议。学习过程中,C语言具有抽象、逻辑性强、使用灵活等特点[2-4],容易使得学生感觉这门课程枯燥无味,找不到编程的感觉,学生不能体会到它的实用性、艺术性,从而丧失对该课程学习的积极性,且遇到难以解决的编程问题(如:语法问题、编译问题、逻辑问题等)容易放弃。
同时,C语言作为一门实践性很强的课程,实践能力的培养是学好C语言的关键环节,而传统的方法只注重C语言语法知识(理论讲解)和基本案列的讲解的,上课时尽管学生听懂教师所讲解内容,但下课实践时对题目产生无法下手的感觉。因此,为了改善C语言教学效果和培养学生的工程实践能力,需要对现有的C语言教学进行改革,以符合C语言是人操作计算机的一个工具的特征。
1 明确教学目的
C语言的教学中,绝大多数教师认为C语言程序设计终极目的就是培养学生的编程能力。这种认知存在很大的偏差。使用计算机完成人们预先给定的任务,必须告诉计算机“做什么”以及“怎样做”(计算机其实是很“笨”的);反之,计算机完成任务时,要将计算得到的结果反馈给用户,因此,就产生了计算机和人之间通信的问题。人机通信需要信息的载体,这种信息的载体既要被计算机“理解”,也要被人所理解,而“语言”是最好的人机通信的工具。自然语言存在词汇量大、语法复杂、语义常出现二义性、语义的理解依赖上下文、以及某些语义不能用符号描述等问题,因而不能作为人机通信工具。这样一来,迫使人们不得不设计出词汇量较小、语法简单、语义明确的并且适用于计算机描述的语言,这样的语言称为“程序设计语言”(或人工语言)。人工语言有很多,如PASCAL、FORTRAN等,而C语言只是其中的一种人工语言(人工语言的本质是人机通信工具)。因此,从这个角度看,C语言教学目的重点不在C语言语法本身,而在于培养学生利用计算机这个工具为人类服务的工程实践能力,在这个大目的下,最重要的是培养学生利用计算机这种特殊的工具分析问题、解决问题、并最终将分析问题所得求解问题的精确步骤(即算法)用C语言的语法设计的程序进行验证的工程实践能力的培养。
2 教学内容改革
程序设计是一种具有创造性的工作,程序设计具有一定的抽象性,它用数学的方法去描述一些问题[5]。因此,在C语言课程教学中,必须打破旧有的教学模式和知识体系,从以前注重C语言语法知识(理论讲解)和基本案例的讲解的,转变为注重能力的培养,在教学的过程中不能单单满足于授予学生多少知识内容,而是要加强学生独立分析问题、解决问题能力的培养。教学中,在对每个案列讲解时都必须做如下的分析:首先分析程序将处理的数据以及处理之后的结果是什么:即哪些是给定的数据(显式/隐式,隐式数据必须充分分析给定案列才能得到)、哪些是需要输入的数据(包含数据的基本类型)、程序有无输出?若有,哪些需要输出。其次,确定求解问题的难点和关键点,对难点和关键点进行重点分析,分解到难点和关键点前一步需要做什么,中间过程做什么,最后做什么?当分析、难点和关键点问题解决后,就可给出解题思路,形成算法,直至最后代码的编写。
其次,是抽象能力的培养。将程序中出现的某些数据进行抽象,找出数据之间的相互关系,得到问题求解的一般化过程处理方法。
下面以求:1+2+…+100为例,给出分析问题、问题抽象等的过程。
第一步:分析,首先分析问题的功能:求和;再次分析问题的输入输出,输入:无;输出:1-100数之和。
第二步:重点分析如何求和?
解决方法:采用小学生初次拿到该题目时的做法,是多数学生能想到的办法(也是一种“笨”方法,而这种“笨”方法又特别适合找出问题求解的一般规律,特别适合用程序代码实现),具体过程如表1所示。
表1 求和问题过程描述
问题抽象:在表1所列步骤中,第1步加2,第2步加3,…,第99步加100,可看出其规律为:被加数是次数+1;其次:每次和的结果为:上一次的和+被加数,因此,根据C语言赋值语句特点,将上面得到的结论抽象为:和=和+被加数(这里的“=”是C语言中的赋值符号)。
变量的定义:大多数学生对一个程序中到底需要多少个变量很迷茫,一种简单有效的原则:需要变量时在变量定义部分增加即可;同时确定每个变量在整个程序设计中扮演的角色(一个变量可能扮演多个角色)。根据上面的分析,该程序所需的变量个数为2个:一个是次数(该变量还承担被加数的角色);一个是和值变量(承担中间结果、最终结果这2个角色)。
初始状况:和的初始情况:认为第1步之前还做了一步求和的操作,按照问题抽象步骤可写:和=和+被加数的形式,因此可得到:和+1=1,这个和就是和变量的初始情况,其值为0;其次:做的次数是从1开始,因此:次数的初始值为1。
结束和循环条件:最后被加的那个数是100,前面的被加数均小于100,因此结束条件就是被加数大于100,从而根据结束条件确定循环条件为被加数≤100。
算法描述:通过上面的分析很容易给出该问题的求解过程:初始化和及被加数的值、当被加数小等于100时不停求和及改变被加数、最后输出结果。
至此,很容易根据C语言的语法编写出相应的程序代码了。当学生对问题分析能力得到培养和锻炼后,面对更复杂的问题就能找解决问题的方法和切入点,而不至于拿到存在问题无法下手的感觉。
3 教学模式的改革
教学改革:一般的C语言教学中,都是语法规则的讲解,然后是例子讲解,最后是工程实践。到最后,语法规则讲完课程也结束了。这种教学固然严谨,但存在一些问题:一是方式比较枯燥,学生比较容易失去兴趣;二是容易学生上课听懂,下课实践时对题目无法下手的感觉。三是容易导致学生产生这样的误解,学习语法知识是为写程序而学,不是为解决问题学。因此面对实际问题就无从下手,不知所措。四是容易让产生恶性循环影响,使得教师在后续程序设计课程(如VC++、Java、C#等),仍然采用这样的方式、方法去讲解,使得学生始终不能用掌握到的编程工具解决实际工程项目问题。因此,改变传统的教学模式,直接在实验室进行教学,采用边教学边让学生亲自动手实践体会各个知识点;其次,改变传统教学中只关注正确格式的书写,采用正确格式+错误格式教学模式,教学过程中有意在程序代码中写成错误的格式或使用学生错误的程序代码进行教学,教学效果比全部使用正确代码教学的效果好许多。
考核改革:改变期末“笔试”这种单一的、“一考定终身”式的考核方式,重视对学生学习过程和工程实践能力的考核。变单一考核为复合考核,从多个方面对学生进行考核。改变课程总成绩构成,由平时成绩、实践(实验)成绩、阶段考核3个部分构成,每部分所占的比例为:25%、35%、40%。平时成绩考核包括出勤、随堂实训、课堂提问、作业等的考核。实践(实验)成绩针对课程的实验进行考核,要求每个实验均要提交实验报告;阶段考核将学习的内容分为5个模块(基础语法知识、程序设计结构、数组及自定义数据、函数和指针、文件操作),每个模块教学结束就分段考试,不再组织期末考试。
实践改革:C语言作为一门实践性很强的课程,实践能力的培养是学好C语言的关键环节。大实验+小实验方式,大实验根据需要设计3-5个;每次实验需要学生编写一个实践报告,报告的主要内容包括:算法或关键技术介绍、实验代码、实验过程(包括:编译过程中的代码出错、原因分析及修改;多组测试数据及对应的测试结果)、算法的改进、程序的实现、体会及编程心得(含多种方法实现该算法以及对算法执行时间进行改进等)。通过实践报告的撰写,进一步熟悉C语言的语法知识,深入了解该算法,培养高效、精炼的编程风格。
4 结论
本文针对C语言教学中存在的问题,分析了C语言的本质,并从教学目的的明确、教学内容、教学地点和方式、实践环节进行改革,以适应C语言一种人机通信工具本质。着重培养学生利用计算机这个工具为人类服务的工程实践能力,即:培养学生利用计算机这种特殊的工具分析问题、解决问题、并最终将分析问题所得求解问题的精确步骤用C语言的语法设计的程序进行验证的工程实践能力的培养。
参考文献:
[1]谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2012.
[2]Kernighan B W, Ritchie D M. The C Programming Language(2nd Edition)[M].Prentice Hall,2001.
[3]Peter Rinz,Tony Crawford.C:In a Nutshell[M].Reilly Media,2006.
[4]Donald E. Knuth. The Art of Computer Programming[M].Addison-Wesley,2002.
[5]雷学生,胡多.C语言程序设计教学方法探讨[J].计算机教育,2007(6):41-43.
作者简介:陈庆利(1975-),男,四川眉山人,副教授,博士,研究方向:数字图像处理。