尚娜娜
软件技术专业课程长期以来依从于普通院校课程设计模式,以知识体系为导向,以学科为中心进行教学,造成知识模块化,不能有效地将知识体系与工作体系相结合。工作过程导向的软件技术专业课程是面向工作体系而设计的,体现了高等职业教育的类型特色。
2003 年,教育部等部委启动了“技能型紧缺人才培养培训工程”,首次在全国范围内引入“工作过程系统化”(亦称“基于工作过程”或“工作过程导向”)课程的理念,提出“让学生有机会经历完整工作过程、获得与实际工作有紧密联系的带有经验性质的工作过程知识”。[1]13工作过程导向的软件技术专业课程正是基于这一理念进行的课程设计,旨在让学生在工作过程中学习知识,形成技能,适应实际工作需要。
工作过程导向的软件技术专业课程通过完整的软件系统开发过程,培养学生分析和解决问题能力、沟通能力、语言表达能力、信息获取能力、团队合作能力等,形成符合社会需求的高素质综合型技能人才。职业教育是导向工作系统的教育,工作过程导向的软件技术专业课程直接将知识融入工作过程之中,在工作过程中根据工作需要来组织知识,形成课程。学生在真实的工作过程中将知识运用于解决实际问题,从而更容易获得成就感,增强自我效能,形成自信心,提高学习效果。
软件技术专业课程体系主要由“程序设计基础”、“网页设计基础”、“关系数据库基础”、“面向对象的可视化程序设计”、“数据库应用与开发”、“客户/服务器开发技术”、“软件工程”、“客户端编程”、“WEB 程序设计”、“WEB 开发技术”、“高级.NET 开发技术”、“嵌入式系统开发”、“数据结构”、“操作系统”、“虚拟现实技术(3D 游戏设计)”、“IT产品服务与营销”等课程构成。课程体系以软件开发为主线贯穿全程,将上述各门课程融于软件开发过程之中。根据工作过程的相关理论研究,软件技术专业课程的结构要素包括可行性分析、需求分析、系统设计(包括概要设计、详细设计)、编码、单元测试、系统测试、系统维护等七个阶段,即包括了德国联邦职教所六阶段理论所指的资讯、计划、决策、实施、检查、评估六个步骤。
工作过程导向的软件技术专业课程根据上述六个步骤七个阶段进行课程开发,以一个或几个包含可行性分析、需求分析、系统设计、编码、单元测试、系统测试、系统维护等七个阶段完整的工作过程的项目为载体,按照实际工作过程的需要,将程序设计、网页设计、数据库、面向对象的可视化程序设计、客户/服务器开发技术、软件工程、客户端编程、WEB 开发技术、高级.NET 开发技术、嵌入式系统开发、数据结构、操作系统等知识由浅入深逐步融入,螺旋上升完善项目,淡化各课程之间的界限,围绕工作过程来组织课程内容。
批评理论家认为,学校的任务是提高学生对未来工作场所的问题意识,包括歧视、收入的不平等、重复的、不具挑战性、甚至是危险的工作,以及对自己工作的控制权的掌握等。学生应该明白工作场所是人类创造的,而且是可以为人类,包括他们自己和他人来改变的。课程应该包括关于工作场所的安全、工会、同工同酬和多种可供选择的工作,如自谋职业和合作公司的知识。无论是否可能,学生应该得到在这些机构中应有的工作经验。[2]批评理论家的这一理论为工作过程导向的软件技术专业课程设计提供了坚实的理论基础。
传统的软件技术专业课程是以学科体系为起点组织知识,系统地学习理论知识,与工作系统缺乏联系,理论与实践脱节。这种学科体系越完善,知识越系统,就越容易造成知识体系与工作体系之间的封闭隔离。为了打破这种局面,加强工作系统和知识系统的联系,我们提出了以工作过程为起点的工作过程导向的软件技术专业课程。
根据软件技术专业面向的实际工作过程来开发软件技术专业课程,从理论上解决了长期以来困扰我们的“破”掉“学科系统化”课程体系后不知道“立”什么的矛盾。工作过程导向的软件技术专业课程是旨在提高学校对企业技术、服务和劳动组织发展快速响应能力的以培养职业行动能力为目标的(校本)课程方案,[3]实现知识体系与工作过程的紧密结合。学习主体真正参与可行性分析、需求分析、系统设计、编码、单元测试、系统测试、系统维护等七个阶段的完整的工作过程。工作过程导向的软件技术专业课程按照知识的螺旋上升模式来设计,以简单的工作过程为起点,逐渐增加工作过程的复杂性,从而使所需知识的难度,呈一个连续的螺旋上升的过程。工作过程导向的软件技术专业课程的设计,打破了传统线性分层独立的课程结构模式,形成了新的课程结构,更加符合社会和学生的需求。
职业教育作为一种教育类型,有其自身的特色,其课程组织原则是根据工作需要来组织知识,而不同于普通教育以学科体系来组织知识。职教课程传授知识以“适度、够用”为准,满足个人所从事的工作岗位的需求,为其今后的职业行动打好基础。这意味着,职教的教学目标应该注重“为了行动而学习”。从某种程度上可以说,职教学习的逻辑起点是行动,应尽可能促进学习主体自己行动,并能通过思考再现行动。要树立“行动即学习”的理念。这意味着教学原则应该注重“通过行动来学习”。[4]
职业教育课程要与工作体系相对接,首先应当依据工作岗位的任务设置课程体系。这是实现从工作组织到课程组织的第一步,是职业教育课程改革能否深入下去的关键环节。软件技术专业的毕业生面向的工作岗位为程序员、外包开发工程师、网站设计和开发工程师、数据库工程师、测试员和应用服务人员等,无论从事哪一个岗位,都需要对软件系统的开发过程有完整的工作经验,才能参与其中协调完成工作过程。(1)行动导向的软件技术专业课程设计要让学生时时参与软件的可行性讨论,判定软件系统的开发有无价值,在分析和讨论的过程中形成“系统开发计划书”,从而形成分析和评价信息的能力。(2)根据“系统开发计划书”内容进入需求分析阶段,让学生到软件的使用现场进行调研学习,对软件使用的系统环境和硬件设施有初步了解,以便实现软件的兼容性。同时,与用户进行沟通交流,了解用户的需求,提取软件开发所需要的信息,形成专业用语,编写“系统需求分析报告”,在这一过程中逐步培养学生的沟通交流能力以及信息提取能力。(3)在“系统需求分析报告”的基础上对软件进行系统设计,划分系统模块,对用户界面进行概要设计,对数据和报表进行设计,对文件和数据库进行物理设计,并且对各个子系统进行细化设计,形成程序设计的任务书,从而形成分析问题的能力。(4)在了解用户需求,明确系统功能的基础上,学生根据任务书的要求,运用合适的编程语言和合理的算法进行编码,训练解决问题的能力。上述这些过程要让面向对象程序设计的理念贯穿始终,不仅要实现用户对软件的功能要求,还要确保界面友好以及软件的互动性,从而真正实现面向对象,做到以人为本。软件系统的开发过程并不是在软件编程完成阶段就终止了,还要对软件进行单元测试、系统测试、系统维护,只有让学生参与完整的工作过程,才能使学生体会软件的经典理论——“二八理论”。其实,在软件完成编码测试之后,才相当于完成了软件的二成工作,而软件的八成工作是在软件的运行维护上。
在工作过程导向的软件技术专业课程设计过程中,必须提高学生的行动能力,让学生真正参与完整的工作过程,从而培养学生的实践动手能力,体现出职业教育的类型特色。
职业教育要有效地培养学生的职业能力,就必须让学生动态地与情境相联系地学习知识。当今社会的发展不仅要求学生具有很强的职业能力,而且要求其具有社会能力、方法能力等关键能力。英国学者认为:关键能力至少应包括六种能力:(1)交流的能力,即以多种多样的形式提取、呈现、分析和评价信息的能力;(2)解决问题的能力,即确定问题、提出解决问题的方案并付诸实施、检查其实施效果的能力;(3)个人的能力,即个人的认知能力和与他人交往、协作的能力;(4)计算的能力,即解释、呈现和应用数字材料的能力;(5)运用信息技术的能力,即应用信息技术从事一系列日常工作(如文字信息处理、模型设计等)的能力;(6)运用现代语言的能力,即以书面和口头的形式用外语进行交流的能力。这些关键能力很多是默会的工作过程知识,只有在具体的工作情景中才能形成,而非传统的课本知识可以达成。
工作过程知识(work process knowledge)是指有丰富经验的技术工人所特有的、与生产过程相关的知识。它不仅是在工作过程中直接需要的(区别于科学系统化的知识),而且是在工作过程中自我特定关系中产生的。工作过程知识多数是隐性的(默会知识),是生产经验与专业理论知识相结合的产物,其结合的紧密程度与共组个体和工作任务的复杂程度有关。[1]36工作过程导向的软件技术专业课程有效地将工作过程知识融入到各种工作情景中,针对不同的关键能力来设计不同的工作情景,让学生在具体的职业情景中领会社会需要的各种能力。
作为软件技术专业的毕业生,不仅仅要掌握几种编程语言,精通一项专门技术,而且要形成社会所需要的关键能力,这样,才能成为合格的职业人和社会人。为了培养学生个人的交流能力,在需求分析阶段设计不同的工作情景,逐渐从简单的软硬件系统和工作环境过渡到复杂的系统和工作环境,从与表达清晰目标明确的用户沟通到与思维模糊言语混乱的用户沟通,层层加压,以提高学生信息分析和提取能力;并且要求他们编写“系统需求分析报告”,与同学进行交流汇报,以培养其信息呈现的能力。工作的情景越复杂,就越有利于形成工作过程知识,而工作过程知识的积累是形成关键能力的基石。因此,工作情景是工作过程导向的软件技术专业课程设计的关键。
工作过程导向的软件技术专业课程评价要根据工作过程的特殊性,对学生的学习效果进行评价。在结构完整的工作过程中,让学生经历从明确任务、制定计划、实施检查到评价反馈的解决专业问题的全过程,获得工作过程知识(包括理论与实践知识)并掌握操作技能,在实践行动中通过完成学习任务获取专业知识并构建自己的知识体系,同时,获得处理信息、整体化思维和系统化思考等关键能力。[1]36工作过程导向的软件专业课程是一个动态的过程,是动态的知识与动态的工作过程相结合的相对独立的系统,该系统具有完整性、综合性和运动性。因此,工作过程导向的软件技术专业课程评价必须将工作过程的各要素完整地融入其中,才能对学生的学习进行真实有效的评价。
所谓完整性是指每一工作过程的活动顺序或工作程序是完整的,从明确任务获取信息,到任务完成取得工作成果并获得评定反馈,即完整包含资讯、计划、决策、实施、检查、评估六个步骤,形成一个完整的活动顺序链或工作程序链。工作过程不是由这几个工作环节简单组成的,而是一个完整的系统。这里所说的完整的步骤,是对职业岗位的工作过程抽象概括,其间并没有严格的界限,而是相互连通的贯穿于整个工作过程中。[5]工作过程导向的软件技术专业课程完整包含可行性分析、需求分析、系统设计、编码、单元测试、系统测试、系统维护等七个阶段,并且这七个阶段相互融合贯穿,在整个软件技术专业课程中,循环往复用于各个科目知识的学习过程中。
在工作过程这一系统中,既含有物的因素,又含有人的因素;既涉及职业技术方面,又涉及组织、管理方面;其结果既与工作内容有关,又与工作方法、使用工具和工作环境有关。它涵盖了通常所说的生产流程、工作环节所不具有的要素和内容,故将工作过程这一系统视为综合性系统。[6]它主要表现在三个能力维度上:专业能力、方法能力、社会能力。三种能力的培养并不是分别独立完成的,而是通过具有综合性的工作过程来完成。工作过程导向的软件技术专业课程始终秉承“做中学”的教学理念,将知识融入工作过程中,让学生在工作过程中形成过程性知识,习得各种社会能力和方法能力,以合格职业人和合格社会人为标准来要求每位学生,使学生成熟化、社会化,以便将来顺利进入社会,成功就业。
工作过程是时刻处于运动状态的,工作过程所涵盖的六要素,即工作的对象、内容、手段、组织、产品、环境处于不断变化之中。同一工作过程的不同阶段、不同工作过程,其本质区别就是工作要素或者要素的组合也不同,从而形成不同的工作过程特征。工作过程的各要素会随着时间、地点、人员、环境的变化而变,从而推动事物的发展。工作过程系统化课程要根据工作过程的运动性来设置学习情境开放性教学。
工作过程导向的软件技术专业课程是以工作为起点,以过程为导向,以知识为媒介不断螺旋上升的运动过程。课程的结构不是固定不变的,而是根据具体的工作过程需要动态组合,知识的学习也不是一体化的,而是一个动态循环加深的过程。运动性是工作过程导向的软件技术专业课程的特色所在,它打破了传统僵化的学习习惯,更加符合人类学习的规律。
由情境构成的以过程为中心的行动体系,强调工作过程与知识体系的紧密联系,并在工作过程中不断获取自我建构的隐性知识,即过程性知识。工作过程导向的软件技术专业课程正是建立在此基础之上,它突破了传统的课程模式,实现了课程改革的重大创新,充分凸显了职教特色。
[1]赵志群.职业教育工学结合一体化课程开发指南[M].北京:清华大学出版社,2009.
[2]徐国庆.职业教育课程目标开发的多因素分析[J].职教论坛,2004(17):15-20.
[3]赵丹丹,赵志群.我国职业教育课程改革综述[J].中国职业技术教育,2005(25):12-15.
[4]姜大源.学科体系的解构与行动体系的重构[J].中国职业技术教育,2006(7):14-17.
[5]姜大源.世界职业教育课程改革的基本走势及其启示[J].中国职业技术教育,2008(27):7-13.
[6]陈玉阁,丛丽娜.谈工作过程和典型工作任务的内涵[J].教育与职业,2009(23):179-180.