林连南 刘嘉伟 许南鸿
摘要:针对软件工程专业中的人机交互课程体系设计问题,总结近4年的课程教学经验,调研和分析人机交互教育的国内外经验,分析课程教学目标体系,研究课程体系设计方案,包括课程理论知识体系和实践教学体系,以期此研究工作有助于教师在软件工程专业中开设该课程。
关键词:软件工程;人机交互;课程体系;理论知识体系;实践教学体系
0.引言
人机交互(human-computer interaction,HCI)是有关交互式计算机系统的设计、评估、实现以及与之相关现象的学科。它是一门交叉学科,涉及人体工程学、认知心理学、社会学、人种学、计算机科学、软件工程和工业设计等多门学科领域。虽然HCI在计算机科学技术中具有重要地位,但是权威的调研数据表明:计算科学从业者所接受到的HCI知识教育与其实际工作需要差距很大,从业者需要在工作中通过自我教育来提升,但仍然离实际工作要求有不小的差距。在技术发展和社会需求的驱动下,从20世纪90年代开始,全球越来越多的著名高校在计算科学相关的本科或硕士研究生课程中开设了HCI相关课程。最新的软件工程知识体系和计算机科学知识体系都将HCI列为一个独立的知识域。对国家示范性软件学院及全美排名前10的计算机专业的调研也表明:大部分学院和计算机专业都开设了HCI课程。这些工作为HCI课程设计提供了重要参考,但是没有一劳永逸、普遍适用或可照搬照抄的HCI课程设计。因此,进行HCI课程体系设计的研究与实践具有重要意义。
另外,HCI课程的新教师至少面临以下5个挑战:①跟踪和过滤最新的HCI知识和技术发展;②将最新的HCI知识和技术以有效的教育方式进行扩展和应用;③将已有的知识集成到已经设计好的课程教学大纲中;④如何在HCI教育过程中培养学生的创新能力;⑤如何收集课程资源和积累相关的项目实战经验。因此,在软件工程专业中开设人机交互课程,探索出具有良好定义和结构的理论知识体系以及具有具体可行教学过程的实践教学体系课程设计方案,是一个富有挑战性的工作。我们必须系统地研究国内外HCI教育同行的最佳实践经验,开展HCI课程的项目型和研究型教学实践,跟进最新的HCI发展成果,研究课程设计和教学的基本理论,将HCI与软件工程有机结合。
1.人机交互课程体系设计
1.1总体设计
通过总结近4年的HCI课程教学和实践经验,调研和分析HCI教育的国内外经验,基于Tyler课程与教学原理,我们提出HCI课程体系的总体设计方案,如图1所示。该方案的具体内容包括课程的教学目标体系,如通用目标和具体目标;课程理论知识体系,如定义清晰和结构良好的理论知识体系;具体可行的实践教学过程,如基于活动理论组织的教学活动;结合敏捷开发过程(Agile)和以用户为中心的设计过程(user centered design,UCD)建立的实践教学体系;课程教学成果和考核与评价体系等。
1.2课程教学目标体系设计
参照HCI教育组织的最新建议,我们提出HCI课程设计的通用目标,培养学生以下几方面的核心能力:①对于HCI新技术的评判;②管理与利益攸关方和用户的对话、协作和参与;③数据收集和分析;④问题解决;⑤评价或评估,执行和管理。另外也可参考CDIO大纲,在课程设计中引入更通用的工程人才培养目标。
根据HCI国际教育组织的课程设计经验、我们4年来的HCI课程实际教学和项目实践经验以及学生的课程教学反馈,我们制定具体课程目标:①理解HCI基础知识,了解HCI的简要历史和特点;②掌握HCI启发式规则,如HCI设计原则、方法、标准和指南等,增强对交互式系统可用性设计的评价能力;③理解认知心理学,尤其是信息处理理论和活动理论,增进对身边产品HCI设计的审美能力和对软件设计决策可用性效果的敏感度;④提高分析、综合、评价或应用HCI知识与技术的能力以及解决当前HCI常见问题的能力;⑤研究并掌握最新的HCI技术方案,掌握更加通用而严格的HCI方法、技术和工具,以改善软件产品的可用性或创造新的软件产品;⑥深刻理解可用性、可用性场景、用户角色和HCI任务等基本概念,掌握实现可用性的相关战术以及基于可用性场景的用户界面和软件架构原型的设计和规约方法;⑦掌握UCD设计过程以及UCD和Agile相互结合的方法,清晰理解HCI对于增强软件工程实践的具体作用;⑧掌握用户模型、任务模型和系统模型等形式化建模方法,有效管理交互式系统规约、设计和实现过程中的沟通问题,减少模棱两可和不必要的反复沟通;⑨对于在HCI学科上具有强烈学习动机的学生,基于上述基础主题提供研讨高级主题的机会,以应对未来交互式系统复杂应用环境和开发环境的挑战等。
1.3课程理论知识体系设计
课程理论知识体系的内容包含基础主题和高级主题。HCI教育界专家的调研结果表明:基础主题主要包括认知心理学、设计原则和过程、交互技术、可用性、任务分析、评价方法和系统开发方法与原型化等内容。此外,对HCI从业人员的调研可以根据使用的频率和重要性两个参量进行统计分析,最常用的HCI技术包括低保真原型技术、概念设计、用户的观察性研究、可用性专家评估、现场研究、角色扮演、快速迭代测试、实验室可用性测试、任务分析、基于GOMS的设计和人种学。我们通过网上公布的教学大纲,对HCI课程的基础主题进行统计分析并根据统计分析结果确定课程基础主题,支持课程设计,制订教学计划,防止教学内容选择的随意性和盲目性。HCI教育界专家一致认为对于这些基础主题的教学,HCI教育者应该处理好HCI知识深度和广度之间的关系。
对HCI课程具有强烈动机的学生或教师而言,除基础主题外,HCI具有范围广泛的高级主题。我们综合考虑学生的软件工程专业背景、企业需求以及教师的科研背景和项目实践经验等因素设定高级主题。对于高级主题,更多采用共同研读、小组实验和项目实践的方法,而不是课堂教学的方法组织教学。我们将在开学初期对学生分组,每组3~5人,然后为每个小组提供一些小型实验以及一个跨度为整个学期的课程大作业,并提供必要的参考文献。
我们借鉴软件工程课程内容的层级结构,如图2(a)所示,提出HCI课程理论知识体系的分层结构,并为每层课程内容指定Bloom认知级别,包括理解(C:comprehension)、分析(AN:analysis)/综合(s:synthesis)/评价(E:evaluation)、应用(AP:application)和了解(K:knowledge)4种类型,在此基础上,跟踪最新的HCI发展成果,扩展和应用最新的HCI发展成果,将HCI课程与软件工程课程有效集成,使课程内容组织具有良好的结构,如图2(b)所示。最后,我们提出教学计划并给定每个教学主题的Bloom认知级别,见表1。
1.4课程实践体系设计
在课程实践教学体系的设计上,我们更多地采用项目型教学。在项目执行过程中,教师更重要的是指导并监督学生对项目任务的完成情况,而不是采用传统的课堂型教学方法。我们让多组学生同时完成一个项目,这样可以让学生能够对同一个问题的不同解决方案进行比较。在项目执行过程中,让学生主动上网查阅、分析和使用各种资料以解决问题,而这些资料反映出来的观点常常是相互矛盾的,从而让学生理解HCI课程中的问题不存在简单的解决方案。在HCI的教学过程中,尤其要防止学生简单地认为教材提供了HCI所有问题的解决方案。这样,让学生在实践中感受到重要的是理解和应用课程的理论知识体系,而不是死记硬背或生搬硬套课程的理论知识。
我们使用基于Agile和UCD相结合的方法组织课程的实践教学,开展项目型教学;基于人机交互场景分析并结合用户界面和软件体系结构原型与人机交互模型,进行教学开发过程的管理。实践表明,采用这样的过程和方式将HCI与软件工程有机结合,能有效改进软件开发的效率、效果和用户满意度,是理想的组织HCI课程理论知识和实践教学的方法。此外,教师还可与企业合作,收集企业的信息化需求,提出目标产品的调研和设计任务,让学生以团队的形式进行头脑风暴,进行产品分析,理解项目目标产品的差异性,并在大量分析和调研的基础上提出概念性设计或用户界面设计原型,这有助于提升学生对产品HCI设计优劣的敏感度和判断能力,也有助于提升学生的创新能力。学生团队还应该严格基于Agile和UCD的敏捷用户界面原型开发过程组织开发活动,如信息架构、交互设计、视觉设计和UI原型设计与开发等,从而有效地进行分工合作,协调不同活动之间的时序关系。UCD用户界面原型开发过程如图3所示。
1.5情感领域教学设计
根据Tyler课程与教学原理,教师可进行具有针对性的情感领域教学设计,包括:①通过HCI的简史和学科特点提高学生对HCI的兴趣,激发学生在HCI学科方向进修的意愿;②通过HCI启发式的规则如HCI设计原则、方法、标准、指南和最佳实践等,培养学生对用户界面设计的审美能力,增强对可用性设计的评估能力;③通过认知心理学尤其是信息处理理论和活动理论,增进学生对身边产品尤其是软件产品可用性设计的评估能力,增强其对软件设计决策可用性效果的敏感度;④通过可用性设计、评估和实现的项目实践,增进学生未来从事HCI相关职业的自信,进行HCI相关职业规划。
2.教学实施与考核评价
根据活动理论,基于社会活动的基本结构,我们设计出课程活动的结构,如图4所示。该设计将教学过程的活动分为理论知识学习和实践学习两类,前者包括上课、考试和研读论文等,后者包括参与实验和团队项目等。
根据课程活动的结构设计,学生可在教师的教学、指导和监督下完成理论知识学习和课程实践学习活动。活动的具体成果包括实验报告、论文研读报告、项目成果报告和考试成绩等。与纯粹的笔试考核方式相比,该考核方式能更全方位地评价学生在这门课程上的学习成果。课程考核分类、课程活动、课程活动的形式及其在教学评价中所占的比例见表2。
课程结束时,学生要书写参加课程的个人心得体会,教师要对此进行调研分析,与部分学生进行面对面的沟通,获得完善课程设计的重要主观评价依据。
3.结语
近4年的实践证明,采用上述HCI课程体系设计方案能制定出具有良好定义和结构的理论知识体系以及在教学过程上具体可行的实践教学体系,能较好地满足软件工程专业学生在实际工作中对HCI知识与能力的需求。我们希望研究工作能为教师在软件工程专业中开设HCI课程提供有益参考。
(编辑:宋文婷)