CDIO在Linux系统编程课程中的应用

时间:2022-06-27 09:32:33

CDIO在Linux系统编程课程中的应用

摘要:CDIO是“基于项目学习”的一种国际通用标准。该文以Linux系统编程课程为例,从大纲、项目教学、学习评估三个角度介绍了如何将这种通用标准本地化,从而使其符合工程人才培养规律。

关键词:CDIO;Linux系统编程;本地化

中图分类号:G642.3文献标识码:A文章编号:1009-3044(2011)25-6295-02

CDIO Application in Linux System Programming Course

DONG Xiang-qian

(Chengdu Neusoft University, Chengdu 611844, China)

Abstract: CDIO is a "project-based learning" as a common international standard. In this paper, Linux systems programming courses as an example, from the outline, project teaching, learning evaluation three common standards for this kind of localization, so that it meets the engineering talent cultivation.

Key words: CDIO; Linux system program; localization

CDIO工程教育模式是近年来国际工程教育改革的最新成果。它是由麻省理工学院和瑞典皇家工学院等四所大学组成的跨国研究组织在Knut and Alice Wallenberg基金的资助下,经过四年的探索研究,创立的工程教育理念,并成立了以 CDIO命名的国际合作组织。

CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),它以产品研发到产品运行的生命周期为载体,让学生以主动的、 实践的、 课程之间有机联系的方式学习工程。

CDIO教学模式本身具有与“实际产业需求、实际教学基础”天然密切关联。如何将CDIO通用标准与国内甚至是院校的具体实际相结合,是CDIO模式与实际工作进行平稳联接的关键。为此,我院借鉴兄弟院校大连东软信息学院TOPCARES-CDIO模式,组织CDIO开展运行。

Linux系统编程是嵌入式软件开发专业的一门专业课程,需要学习者有较强的综合理论知识和动手实践能力。该文以该课程为例,从三个不同的视角回答工程教育的两个核心问题:

1) 当工科学生毕业时,他们学到的全部知识、能力和态度应该有哪些?掌握的水平如何?

2) 如何能更好地保证学生学习到这些知识和能力。

1 Linux系统编程教学大纲

CDIO教学大纲,就是要建立一个清晰、完整、系统和详细的工程教育目标;它是一系列关于知识、能力及态度的主题内容,这些内容与当代工程实践标准是一致的;它是合理设计课程计划和进行评估的重要基础;它是由利益相关者(在校生、教职工、校友及工业界等与工程教育的直接相关者)对一系列教学效果提出的要求。

作为对CDIO能力指标的继承和创新,TOPCARES能力指标与CDIO能力大纲具有一致性。它包括8个一级能力指标,32个二级能力指标及110多个三级能力指标。

我院在各相关利益人的参与下制定了嵌入式软件开发方向专业以培养目标:即,培养嵌入式软件工程师。以TOPCARES为核心培养能力,采取“133”的模式,实施以嵌入式系统、嵌入式软件产品的构思、设计、实施、运行全生命周期为背景的工程教育。

在专业培养目标的指引下确定了本专业的一、二级项目,进而确定三级项目并形成专业鱼骨图,其中三级项目对应某门具体的课程。并将TOPCARES的能力指标分配到各个具体的项目中。Linux系统编程课程的培养目标是掌握Linux平台的文件、目录、进程(线程)、进程间通信、及网络与驱动程序设计相关的编程理论和方法。该课程对应的能力指标体系如表1所示(这里只列举一、二级能力指标)。其中编号保持与专业培养目标的能力体系编号一致。

2 教与学

CDIO是“做中学”和“基于项目教育和学习”的集中概括和抽象表达。在Linux系统编程课程教学中,把课程内容及各能力指标分布到项目的各个模块来完成。以“Linux网络数据传输”作为与课程对应的三级项目,该项目又由8个具体的4级项目组成,这些四级项目名称及内容如表2所示,对应课程的具体章节。

下面以“Linux网络数据传输”项目为例,探讨CDIO在Linux系统编程课程中的应用。

依据CDIO的标准,课程实践项目的实施主要分为以下几个阶段:

1) 明确项目任务,构思设计方案

教师首先提出项目的功能及参考设计方案。各项目组在明确相关理论知识的前提下,根据具体的要求提出自己的解决方案,并对方案进行细化以及任务分工,进而确定项目的进度安排。在这一阶段,教师主要担当项目客户及项目经理的角色,提出项目要求并对解决方案提出修改建议。

2) 学科体系知识的综合准备

根据三级项目分解的具体知识体系,并把这些知识体系分解成对应的四级项目。以递进的方式完成这些四级项目及相关理论知识的学习。在这一阶段教师主要担当指导者的角色,指导、组织学生学习及对解答疑难点。

3) 项目开发

在这一阶段主要是完成项目的编码及调试。项目组依据第一阶段的分工,各成员并不是独立完成各自的任务,他们之间根据角色的不同(在不同的项目中各个组员担当不同的角色)存在相互协调及沟通。在这一阶段,教师主要担当老板及指导者的角色,督促按计划完成,并指导相关内容。

4) 项目评估

项目完成后,项目组须提供相关的设计及使用文档,学生也须对自己的工作进行自我评估及总结。在这一阶段,教师主要担当一个苛刻的客户,对没按自己要求完成的地方提出质疑甚至要求重新开发。

3 学习评估

学习和评估是相辅相成的,许多同学都建议在课程早期设定一个评估任务以及定期在课程中设置评估任务、为评估建立明确的标准。CDIO教学模式的评估是以学习为中心的,也就是说,他是整个教学过程中的一个部分,在学生和教师共同学习的氛围中促进学习。为促进学生进行自我评估,我们在各个项目中都设有学生自我评估条目。如:

1) 阐述你对项目要求的认识。对项目中难于理解的问题,你是如何解决的?

2) 在本项目实践中,你运用了哪些知识,对于其中的新知识,你是如何进行学习的,与之前的学校方法相比有没有提高。

3) 你理解和编制了哪些项目文档,这些文档重要吗?为什么?在编码的过程中你是严格按照这些文档来编写代码的吗?

4) 你是如何制定计划的,在项目进行过程中,你有没有严格按照这一计划来执行。

等学生在完成具体的项目后,都要对这些问题进行交流及整理,并作为课程考核的一部分。

4 结束语

Linux系统编程课程是系统性、实践性较强的课程,要求学生有较强的代码编写能力及操作系统背景知识。通过在近年的教学中引入CDIO理念,采用“做中学”和“基于项目教育和学习”方式与学生实时的自我评价(包括知识和能力的评价)相结合。提高了学生的学习积极性,较好的完成了本课程的教学目标。不但培养了学生的理论知识,也培养了学生的实践能力,得到学生和专家的好评。

参考文献:

[1] 顾佩华,沈民奋,陆小华,译. 重新认识工程教育――国际CDIO培养模式与方法[M].北京:高等教育出版社,2009.

[2] 顾佩华,沈民奋,李升平,等. 从CDIO到EIP-CDIO:汕头大学工程教育与人才培养模式探索[J]. 高等工程教育研究,2008(1):12-20.

[3] 王旃. 基于约束条件的CDIO渐进部署模式研究[J]. 高等工程教育研究,2009(5).

[4] 万金华. 基于CDIO模式的综合训练项目的探索[J]. 现代企业教育, 2009(2):103-105.

[5] 孙斌,王凯, 等. Linux程序设计C语言[J]. 东软电子出版社, 2011(8).

上一篇:基于MPXA4115A传感器的小型无人机高度测量系统 下一篇:艺术专业机房软件安装与维护探讨