李咏琪
(湖北广播电视大学 湖北 430073)
工程教育以工科教育模式为背景,经过多年的探讨、实践和检验,形成现行的CDIO工程教育模式。CDIO工程教育模式是跨国研究组合Knut and Alice Wallenberg基金会提供巨额资助,从2000年起,由麻省理工理工学院和瑞典皇家工学院等大学经四年探索后提出的,并成立了CDIO国际合作组织。它是模拟现代工业产品从构思研发到运行改良的生命全过程,把这个过程引入到教学过程中的一种教育模式。CDIO工程教育理念就是要以这个全过程为载体培养学生的工程能力,其能力不仅包括学科知识,而且包括学生的终身学习能力、团队交流能力和在企业和社会环境下的构思—设计—实施—运行能力。CDIO是构思(Conceive)、设计(Design)、实现(Implement)、运作(Operate)4个英文单词的缩写。它是“做中学”和“基于项目教育和学习”的集中概括和抽象表达。它以工程项目从研发到运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程。CDIO培养大纲将工程毕业生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力四个层面,大纲要求以综合的培养方式使学生在这四个层面达到预定目标。
《C#程序设计》是一门理论综合性高、应用实践性强的课程,在计算机相关专业的职业课程体系中属于专业核心课程,是一门专业必修课。根据市场对软件人才的需求,结合高职学生层次的能力特点,专业的岗位目标为:软件企业程序员、测试员、项目实施工程师、客户服务、软件产品销售员等五类岗位。而本课程所针对的第一目标岗位是程序员,也就是在软件企业中实现界面和编写代码的人。
C# 程序设计课程以程序员岗位的职业能力为主线,与软件行业合作开发基于项目的课程,在调研的基础上解构出关键职业岗位能力,并以培养职业能力为目标,以项目为中心设计开发课程,遵循“依岗位定项目、依项目定任务、依任务定课程、依能力选内容”的基本原则开发本课程。紧密结合市场需求,与企业合作共同开发课程;以职业岗位需求为导向,确定人才培养方案;以典型项目为依据,精选课程教学内容;以真实项目为依托,仿真工作过程,形成职业能力;营造基于项目的教学环境,培养学生的方法能力。在教学中实践“面向工程、项目驱动、能力培养、全面发展”的工程教育创新理念。
本课程以项目引领的方式,规范并系统地培养专业技术人才,为培养软件企业程序员及测试员奠定扎实的专业知识和规范的工作作风,为后续开发类课程打好基础,与此同时,训练学生逻辑思维能力,建立一个内容充实的职业技能教学体系。
在课程目标方面坚持能力、知识、素质三位一体的原则,在坚持能力本位的基础上力求构建相对完整的知识体系,同时贯穿以职业素质、职业规范为主的人才素质培养。
对学生的技术知识的要求包括,要求学生掌握本专业的基础科学知识,掌握核心工程基础知识。
对学生的个人能力和职业能力的要求包括,要求学生具备工程推理和解决问题的能力,能发现问题,并系统地表述问题,能对问题进行建模和分析,提出解决方法和建议;具备实验和发现知识的能力,能对问题进行实验性的探索;具备系统思维的能力,能对问题进行全方位的思索,确定主次与重点,具有解决问题时的判断和平衡能力。
对学生的职业素养和团队精神的培养,要求学生在岗位中有主动性,愿意并能够承担风险,在工作中协调执着与变通,具备创造性思维与批判性思维,有求知欲和终身学习的意识和能力;能适应团队工作,优秀的学生能具备团队领导能力;具备表达和人际交流的能力,能用多种方式与他人进行交流。
(1)课程有机联系的理念。C#课程要与数据库和ASP.NET等课程有机联系地组织教学。(2)一体化理念。以综合项目实训为载体,并将其分解成各子功能项目模块,将知识点按照“构思→设计→实现→运作”路线分解到各个能力培养的子项目模块中。最后再进行企业项目实践。(3)工程的理念,自主学习的理念。采用实际项目,模拟外部和社会、企业等实际环境,在项目中多加入一些实际问题,在学生探索解决的这些实际问题中,锻炼学生工程能力和解决实际问题的能力,提高学生自主学习能力。(4)团队成长理念。将学生分成小组形成项目团队,小组长为项目负责人,小组成员可以轮流担任负责人,以锻炼每位学生的领导与协调能力。小项目由学生单独完成,稍大些项目和综合项目由学生团队完成。
课程改革的第一步首先是根据教学内容选定项目,进行项目设计。教学内容的选取从实际工作岗位的需求、行业发展需求、学生职业发展需求等方面考虑。选取的教学内容应适应当前软件开发技术的发展趋势。根据选取的教学内容结合专业培养目标和课程培养目标,从企业收集、筛选实际项目或工程,选定项目。根据教学知识点,设计项目分为综合项目实训和企业项目实践。对于C#编程基础知识的学习,设计为综合项目实训。把C#编程与数据库相关知识相结合,设计企业项目实践。
在项目的设计中坚持以下几点原则:(1)采用工作分析技术对工作体系进行分解,获得典型化的工作项目;(2)充分考虑项目的典型性,达到让学生触类旁通的目的;(3)充分考虑项目的可实施性,能够适合学生的知识水平;(4)使项目基本覆盖课程的知识、能力、素质目标;(5)兼顾项目的趣味性,提高学生的学习兴趣,激发学生有积极投入的愿望。
课程改革的第二步,是以项目组织整个教学过程。整个C#课程的教学分为两个步骤,首先是C#基础知识的学习,然后是C#与数据库知识的结合,完成企业项目实践。综合项目实训主要是学习C#程序设计的基本知识点,在项目中不仅对单个知识点进行讲解和应用、演示、实践,还将知识点结合应用。在教学组织与具体实施过程中,把项目按照知识点进行分解,融合到课程的知识教学、素质培养、技能培养当中。项目实训要求教学班中除少数需要帮助同学外,其余同学都能独立完成。然后将所有的主要知识点应用到企业实践项目中,达到融会贯通的效果,从而也累积了学生的自信心。企业项目实践,会设计一些结合数据库的管理系统,让学生按照软件的开发流程来自行设计开发。比如学生信息管理系统、图书管理系统和商城管理系统等。在进行企业项目实践时,同学能自行分组,进行分工协作完成。整个教学组织与实施过程中,老师只是引导和指导学生完成一个个的学习环节和实训项目,在其中贯穿知识点的讲授,主要是要靠学生自己动手实践并领悟。
类的学习是C#程序设计语言的重难点。我们先以学习类的综合项目实训来介绍CDIO理念在课程中的应用。我们以贪吃蛇游戏项目来贯穿整个教学过程。该项目学习的知识点有类、对象和GDI+绘图。我们分四个步骤来完成此项目,依次是构思、设计、实现和运行。第一步构思,首先我们导入问题,如何设计贪吃蛇游戏?让学生试玩一些游戏,分析我们自己设计游戏时,游戏怎么进行?游戏要完成那些功能?第二步设计,让学生做出项目总体设计,包括对项目功能的描述,游戏窗体的布局,项目的总体结构,包含哪些类的设计,类应实现的功能,每个类包含哪些字段、属性和方法。在这个阶段中讲授类与对象的基本概念,类的定义、访问属性、字段、方法、属性、构造函数等等。第三步实现,给学生提出问题,怎么实现功能?指导学生完成类的实现,代码编写,其中讲授图形绘制基础、GDI+类与对象的使用。第四步运行。运行过程即项目的测试过程。学生的测试过程中,不断发现问题,再修改代码。在这个过程中,加强知识点的学习,锻炼学生发现问题,解决问题的能力。
下面再以企业项目实践为例,来说明CDIO理念在本课程中的应用。企业项目实践以图书馆管理信息系统为例。我们分四个步骤来完成此项目,依次是构思、设计、实现和运行。第一步构思,首先我们导入问题,如何设计一个图书馆管理系统?如何实现一个图书馆管理系统?接着采用案例分析法和角色扮演法,引导学生以不同角色登陆一些管理系统的案例,分析我们自己在实现系统时,系统要实现哪些功能?在实现的时候要做哪些准备?需不需要设计数据库来存放信息等等?第二步设计,带着第一步中的这些问题,进行需求分析,系统设计、数据库的设计和界面设计。需求分析的目的是回答系统将要“做什么”这个关键性的问题。通过对系统功能进行细致的分析,设计出一个合理的优化系统,确定系统的开发方向。在需求分析的基础上,进行系统设计,划分系统的功能模块,并完成数据库的设计和类的设计。在划分系统功能模块的基础上,设计系统各个模块的界面。在这个阶段,要求学生提交系统分析书。第三步实现。在编写代码实现功能之前,让学生带着问题,有着明确思路去写代码。如怎么连接数据库;如何对用户名和密码进行校验;登录成功如何处理;登录失败如何处理等等。这些问题并不是需要学生在一开始就弄清楚,只是告诉学生应该怎么发现问题。进而让学生带着问题思考,带着问题分析和解决。最后能把这个发现问题、分析问题、解决问题的过程变成学生自己的东西。在这个阶段完成项目的代码编写,实现系统的功能。第四步运行。程序的运行过程也是项目的测试过程。在教学中引入黑盒测试和白盒测试这两种常用的测试方法。引导学生输入各种测试数据,如不合法数据,边界值数据等等。学生在测试的过程中会发现实现过程中编写代码存在的问题,再思考如何解决问题。运行之后,学生才能体会整个教学单元要学习的内容有哪些,不足的地方在哪里,应该如何加强哪一部分的学习和训练。老师在这个阶段对项目进行总结,并给学生提出一些拔高性的问题,让学生所学的知识更接近实际应用,扩宽学生的知识面和应用面。
最后课程考核改变了强调卷面考试成绩的考核办法,将总成绩改为卷面成绩占30%、平时成绩占20%、实践教学项目成绩占 50%。卷面考核主要考核学生对 C#程序设计基本知识点的掌握。实践教学项目的考核,把综合项目实训和企业项目实践分解成多个子项目即任务。通过对每个子项目进行有效考核,最后汇总形成实践教学项目的成绩。通过这种考核方式,把评价重点放在学生在学习过程中表现出来的对问题的解决能力和对方法的理解上来,而不把问题解答结果作为唯一或最主要的评价指标。对学生积极主动参与探索和研究给予充分肯定,鼓励学生思考、提问、学以致用,鼓励学生注重实际能力的培养和提高,为今后解决类似或相关问题指明方向。
总的来说C#课程改革在教学过程中借鉴CDIO工程教育理念,围绕专业和课程培养目标,以实际项目从研发到运行的生命周期为载体,让学生以主动的、实践的、课程模块间及课程间有机联系地学习,来逐步培养学生的基础知识、个人能力、人际团队能力和工程系统能力。
[1]C#程序设计课程教学改革探索与实践 朱晓辉 《软件设计开发》 2010.10
[2]“CDIO”工程教学模式在实践教学中的实施方法研究 李善寿 重庆科技学院学报 2010.20