1、基于基于 LinuxLinux 操作系统的操作系统的 ShellShell 程序设计程序设计实践教学研究实践教学研究 打开文本图片集 摘要:本文对基于 Linux 操作系统的 Shell 程序设计实践教学进行了研究,首先介绍了 shell 程序设计的教学基本情况,之后介绍了相应制订的教学目标,接下来详细介绍了针对任务展开的教学设计。本实践教学研究成果已经应用到实际的教学环境中,授课效果良好,能够达到预期的实践教学目的。关键词:Linux;shell;实践教学 中图分类号:TP316 文献标识码:A 文章编号:1007-9599(2012)22-0000-02 随着嵌入式技术的飞速发展,Linu
2、x 操作系统由于其具有免费开源、实时、多用户等特点,现在正被广泛的应用。而 shell 编程是 Linux 应用开发中的重要内容之一,同时是学习 Linux 编程开发、内核、高级编程的基础,通过学习shell 可以让学生对 Linux 的学习有初步的认识,并打下良好的基础。但 shell编程由于具备合并编程语言以控制进程和文件,以及启动和控制其它程序等操作的功能,对于初学者来说生涩难懂,因此对于 shell 的程序设计实践教学的研究非常重要。本文通过一个实际的教学案例,研究了如何解决 shell 程序设计实践教学中存在的问题。1 教学基本情况 Shell 编程位于嵌入式 Linux 开发相关课
3、程的初步阶段,应是在计算机多媒体教室讲授的理实一体课程。本教学采用项目化教学方法,基于实际的任务来传授技能,据此把 shell 程序设计部分设计成四个典型的工作任务,包括:任务1 单次获取歌曲列表、任务 2 循环输入选择歌曲列表、任务 3 随机选择歌曲列表、任务 4 综合歌曲列表选择播放。通过递进的四个工作任务,让学生由浅入深,由易到难的掌握 shell 程序设计相关技能。同时,本教学针对的学生是高校嵌入式专业二、三年级的学生,在此之前学生们应学习过C 语言、程序设计基础、嵌入式操作系统原理等相关课程,有了一定的相关知识和技能基础,以便于更好地掌握 shell 编程技能。2 教学目标 教学目标
4、对制订教学计划、明确教学方向、选择教学方法、落实教学大纲、组织教学内容、安排教学过程、确定教学重点等方面都有着至关重要的作用1。因此,合理的制订教学目标能够达到更好的教学效果,为了说明本课程对教学目标的制订,以任务 1 单次获取歌曲列表为例,预期达到的知识目标包括,第一掌握 Linux 常用命令:包括 echo、read、cat、grep 等的操作;第二掌握Linuxshell 的 case 选择分支语句的编程。预期达到的能力目标包括,第一掌握 Linux 的学习方法;第二掌握 Linuxshell 编程解决实际问题的能力。最终达到培养学生对嵌入式开发的浓厚兴趣并使其具备企业工程师的素养。3
5、教学过程设计 基于工作过程的课程设计是目前高等教育领域研究的重点及热点,其要解决的中心问题是将学科导向的课程体系转化为行动导向的课程体系2。下面以本课程的第一个任务,单次获取歌曲列表为例展示教学过程的设计,整体的教学设计流程如图 1 所示。3.1 新课引入 新课引入是一个至关重要的环节,其目的是使学生们明确要学习的内容和通过学习能够掌握哪些技能,让学生带着问题思考并寻找解决方法。因此设计一个好的新课引入,是一门好课成功的一半。由于工作任务 1 的目的是通过 shell 编程实现单次获取歌曲列表的功能,所以首先引导学生们联想到日常生活中熟悉的 MP3 播放器显示列表或者是歌曲网站的点播列表等等,
6、并在 PPT 中模仿出动态的动画效果,以达到更加形象展示的目的。其目的是让学生明确,本工作任务 1 是要通过 shell 编程实现什么样的功能,在学生的头脑中形成一个具体的展现,首先显示歌曲的总列表,之后当选择 CD1 或 CD2 专辑时,会分别以列表的形式显示其中存储的歌曲,如图 2 所示。3.2 案例分析 从简单的案例入手教学,把知识技能融入到实际的案例中,学生掌握一定的技能后,再过渡引申到复杂的任务。首先,播放一段音频文件,展示中国移动客户服务热线案例,每当拨打 10086 客户服务热线之后,系统给出的语音提示:本机服务按 1,其他手机服务按 2。展示这个案例的目的是引导学生寻找此案例和
7、任务 1 的共同点,并思考如何解决这一类相似的问题。通过先掌握如何实现小案例的功能,来由浅入深最后实现本工作任务。展示之后,教师引导学生针对案例进行分析,并集体思考提出解决问题的步骤。最后,由教师利用 Linux操作系统中的 shell 详细讲解编码的步骤、实现方法、生成可执行文件、测试并运行。3.3 理论支撑 理论支撑的作用是讲授实现任务所用到的 shell 编程的语法知识,例如本教学涉及到的案例和任务 1 都是基于给出的提示做出相应选择的问题,因此我们需要用到 shell 编程中多分支选择语句,即 case 语句。先从案例入手让学生先了解程序的设计流程和编程方法,之后再细致地讲解用到的语句
8、语法规则。这样做的目的是让学生首先对 shell 编程产生浓厚的学习兴趣,再来接触枯燥乏味的理论知识,实践表明教学效果明显,学生掌握技能更加扎实。3.4 学生实训 学生实训的目的是让学生在刚学习的理论知识基础上进行实际训练,意在锻炼学生的动手能力,在实践中应用并掌握技能。此部分要实现的就是获取歌曲列表任务,学生利用 shell-case 编程实现单次显示歌曲列表,教师在这个过程中的角色是解答指导。采用分组教学的方法,首先把学生 4 人分成一组,让其以小组为单位讨论并画出实现任务 1 的程序流程图,之后选出一名代表到黑板把画出程序流程粘贴并讲解,接下来集体对其流程的可行性进行讨论,老师点评并确定一个可行方案。之后,学生们动手按照流程图来编写程序,调试运行。并采取组内互评和组间评比的激励方式,促进学习兴趣。4 课程小结 教师应当重视课程小结,其不仅是对某些重点和知识结构的总结而且还是对学生学习情况和遇到问题的总结。同时,作为教师记录好每一次课的课堂经验和体会,也能更好地掌握教学流程及方法。参考文献:1荆学磊.国内外教学目标的对比研究J.教育与职业,2012(24):176-177.2娄锐,郭士义,李俊如.基于工作过程的高职课程教学过程设计J.天津职业院校联合学报,2008(10):46-48.作者简介王莹(1982-),籍贯:吉林长春,学历:硕士,职称:助教,研究方向:电子/计算机。