林连南+叶丽清+张子伟+雷昶
摘 要:针对软件工程专业中人机交互课程体系的设计问题, 基于软件心理学的图式理论,分析和研究斯坦福大学人机交互课程体系,总结笔者近 6 年的课程教学经验,提出新的课程体系, 并阐述建立与之配套的课程体系的改革实践过程。
关键词:软件心理学;图式理论;人机交互;课程体系
1 背 景
人机交互(human-computer interaction, HCI)是有关交互式计算机系统设计、评估、实现以及与之相关现象的综合学科[1]。随着软件系统的普及,系统向用户展现出的“友好度”已成为衡量软件水平的重要标准,这就要求软件工程师不仅有开发出高可用性系统的技能,还需具备足够的关于人机交互学科的知识。实践证明,软件工程专业学生对人机交互课程的接受度一直不高,在原有软件工程培训机制下,人机交互课程的增加无疑还加重学生的学习负担。如何让学生更高效地学习人机交互的知识,是众多教学研究人员希望解决的问题。
图式是主体内部一种动态的、可变的认知结构单元,图式理论的核心思想是将主体过去的经历形成模式,在解决问题的时候无意识地匹配和调用与目前情况相符合的模式[2]。软件心理学则是指在20世纪70年代为解决软件可靠性难题、提高软件质量而提出的综合软件工程与心理学理论的一门交叉学科,主张对人在建立或使用软件系统时的行为进行科学研究、建模和测量[3]。软件心理学通过研究程序设计的认知机制,将程序设计认知活动图式化,提高程序员的编程效率,减轻其负担。
参照图式理论在软件心理学中成功融入的经验,在对软件工程专业学生进行人机交互体系教学时引入图式理论具有可行性。
根据笔者6年的人机交互课程教学经验,国内外人机交互课程主要有以下特点:国内的人机交互课程教学局限于HCI涉及软件工程及工业设计的领域,不能从宏观的角度全面地展现HCI学科的风采,且教学缺乏互动性,略显单薄;国外的人机交互课程体系,以斯坦福大学为例,采取跨学科的课程教学,让学生更全面、多元地理解HCI的内容和技术,同时采用项目型、研究型的方式,强调学习主动性,但具有学习体系庞杂的问题,难以被国内教学体系直接借鉴[4]。
笔者将对原有的课程体系进行精化,提出新的课程体系设计方案,并通过展示课程项目实践成果来证明其有效性。采用如下方法进行课程体系设计:①参考斯坦福大学和国内软件学院的HCI课程体系;②充分考虑现实情况下的教学资源局限,例如教学时间、学生实践环境、教师资源等;③结合课程的教学实践经验;④引入儿童人机交互的图式理论。
2 人机交互图式
人机交互图式是图式理论在人机交互上的应用。经典的人机交互图式可分为认知心理学图式和社会心理学图式,前者包括信息加工处理理论、GOMS认知模型、KLM认知模型,后者包括活动理论模型。
2.1 认知心理学图式
认知心理学图式关注用户个人与系统界面的交互体验,考虑用户在完成任务的过程中所需做的行为序列,并以完成效率来评估交互方式的优劣。认知心理学图式中,多利用心智处理(mental process)机制,以目标为驱动,采用分而治之的策略解决子目标来实现最终目的。例如,GOMS模型把用户的求解过程分为目标(goal)、操作符(operator)、方法(method)和选择(selection)四个组成部分,而KLM模型则是作为低阶已给出方法的GMOS模型,是将思考过程映射为一个操作符[5-10]。事实上,也有通过实验研究总结出的认知心理学图式——信息加工理论,其最主要的结论,就是通过对短时记忆能力进行定量研究,证明人类信息加工的限制:人类头脑能记忆7±2个组块[11]。
2.2 社会心理学图式
相比认知心理图式,社会心理图式更注重群体行为,如用户与用户的关系、用户与他人(非用户)的关系。软件系统是协同的,在一定程度上和使用它们的群体以及社会环境相互影响。社会心理图式对软件设计的影响,不仅体现在产品能否达到其设计目的和理念,还关系到潜在用户的发掘、软件对用户群体的影响或引起的社会效应,其深度比基于个人的认知心理图式更甚。软件工程师在考虑软件设计时,需要明确涉众在该软件中的角色定位,考量各方对软件作用的影响,并将社会结构和社会活动映射到软件的逻辑设计和界面划分上,而活动理论通过研究人类活动的过程,将人与自然环境和社会环境、社会群体与自然环境之间的交互进行分割,分成三个核心成分(主体、客体和共同体)以及三个次要部分(工具、规则和劳动分工),帮助软件工程师对涉众和活动进行精准把控[12-13]。
2.3 小 结
人机交互图式应用的难点在于,考虑到用户在教育背景、理解能力以及生活习惯上的千差万别,几乎没有一条放之四海而皆准的准则可供软件工程师遵守。在人机交互课程的教学上,也只能一概而论地阐述人机交互庞杂的理论体系,软件工程师只有完全消化才能在软件开发过程中对特定用户群进行图式的分析构建,这对软件工程师造成的学习负担是不合理的。因此,笔者提出以儿童用户的图式作教学示范,来帮助软件工程专业学生理解人机交互相关体系,并通过案例研究和项目实践梳理出儿童人机交互图式(见表1)。
3 课程体系设计精练
3.1 理论体系设计
新的课程理论体系可分為初级主题、中级主题和高级3个层次,以便学生循序渐进地理解人机交互学科(见表2),并为每层课程内容指定 Bloom 认知级别:理解(C: comprehension)、分析(AN: analysis)/ 综合(S: synthesis)/ 评价(E: evaluation)、应用(AP: application)和了解(K: knowledge)4 种类型[1]。
3.1.1 初级主题层次
初级主题层次将以课堂教学、案例教学和项目教学三位一体的方式进行。教师首先向学生阐述人机交互的概念与发展历史,使学生形成人机交互的认知;其次,以儿童为用户的人机交互作为案例,举出现有的儿童智能终端交互设备以及国外优秀儿童产品,如北欧著名儿童APP开发商Toca Boca的产品,让学生体会儿童人机交互的风格;再次,使用儿童人机交互图式理论,来分析解释其设计的合理性与不合理性;再次,介绍以用户为驱动的开发方法,并提供关于原型制作的方法、工具以及技术的说明;最后,组织学生以小组为单位,用Agile + UCD的方式设计一个涉及儿童人机交互的界面原型,并以翻转课堂的形式在课上展现成果和交流经验。
3.1.2 中级主题层次
中级主题层次则在初级主题层次的基础上,通过项目实践深化学生对儿童人机交互图式的理解。从中级主题开始,教师将继续深入介绍经典的儿童人机交互模型;其后给学生分发任务书、介绍几种典型的分层软件架构模式以供选择,再以初级主题中的界面原型做输入,学生需要运用人机交互图式对其进行UML可视化建模,并进行前端和服务器端开发以及用户界面管理系统的实现。
3.1.3 高级主题层次
高级主题层次将采用研究型教学方式进行,具体流程如图1所示。由教师提供会议和刊物清单(见表3和表4)。学生在课前需要阅读5篇人机交互与普适计算领域中A类或B类会议上发表的论文,论文研读方向见表5,并做出一个思维导图汇总;完成个人任务后,与小组成员相互交流,书写阅读报告;最后每组提交一个思维导图整合,并参与论文研读课堂交流会,汇报论文研读情况。学生可以通过论文的研讨交流,了解人机交互前沿知识,开阔视野,也能激励其对人机交互领域作更深入的研究。
3.2 实践体系设计
实践体系需要由开发技术基础做支撑(见表6),新的课程体系将向学生介绍Android/iOS应用开发基础和框架,J2EE、.NET以及PHP服务器端应用开发基础和框架,HTML5与Web APP开发技术。教师还需要为学生提供Demo级的代码运行展示,鼓励多样化的实现方案。学生可以选择自己感兴趣或擅长的技术方向进行开发,以便专注于人机交互学科本身。
实践体系将配合项目型教学,重点体现在实践方法上(见表7)。教学以Agile + UCD方法为用户界面原型开发过程指导,历经用户调研与信息架构、交互设计与视觉设计、原型开发和系统开发四个过程,如图2所示。学生需要通过用户调研来定义场景以及构建用例模型,再根据用例图进行表现信息架构的线框图设计;以线框图作输入,学生必须参考课上所学的儿童人机交互图式,考量交互体验和视觉体验,做出交互设计元素及其规约说明、UI视觉元素及其规约说明,以便做出符合设想的UI原型设计;最后通过反复的可用性评估和原型优化,提高学生的人机交互素养,再进行原型开发。
4 项目实践
基于儿童人机交互的图式理论,结合华南理工大学人机交互课程体系设计与教学实践,笔者带领学生项目团队完成了许多课程项目实践。这些项目实践的成果获得了软件著作权、发明专利,并且一些APP已经在苹果商店发布。能证实并展示儿童人机交互图式理论在人机交互课程的教学与实践中的重要意义,如智能牙刷系统,包括智能牙刷和APP。系统设计的关键问题包括智能硬件外观设计、结构设计、线路板设计、固件设计、APP设计以及APP与智能硬件的蓝牙連接接口设计。如何以儿童为中心,通过恰当的激励方式,将整个刷牙过程贯穿有趣的知识和益智游戏互动,帮助其养成科学刷牙习惯。这些人机交互学科相关的问题是产品设计取得成功的关键所在。
在儿童人机交互设计的信息架构方面,包括刷牙的区域、清洁度、粒度、速度等,还包括刷牙的时间、次数、区域、奖励情况等。
奖励的设计既展示儿童视觉设计方面,也展示了斯金纳行为强化理论的应用,如图3所示。根据斯金纳行为强化理论,可以将奖励定义为后援强化物,并分为活动类、拥有类和消费类。合理的奖励分类与吸引儿童的视觉设计,都是为了增强奖励的强化效果。基于杜曼闪卡理论,可以设计游戏来促进儿童的认知,达到益智的目的。
5 结 语
近6年来的教学与项目实践表明, 在软件工程专业中基于图式理论探索 HCI 课程体系具有重要意义:能帮助软件工程专业的学生更好地理解软件产品的开发过程,有利于促进用户界面设计与实现过程中跨学科沟通和理解,有利于精炼人机交互课程的课程体系,提高人机交互课程的教学质量和效率。笔者下一步将研究如何组织学生开展论文研读,进行翻转式课堂教学。
参考文献:
[1] Liannan L, Jiawei L, Nanhong X. The research of human computer interaction course system design[J]. Computer Education, 2015(1): 78-82.
[2] Fuqun H, Bin L, Yichen W. Survey of software psychology[J]. Computer Science, 2013, 40(3): 1-7.
[3] Jinghua Z. A brief history of modern western philosophy [M]. 2nd ed. Beijing: Peking University Press, 2014: 130-131.
[4] Liannan L, Chuan L, Wenda Q. The analysis and practice of the human-computer interaction course system in Stanford University[J]. Computer Education, 2015(21): 101-106.
[5] Alan D, Janet E F, Gregory D. Human-computer interaction[M]. 3rd ed. New Jersey: Prentice Hall, 2003: 226-281.
[6] Ben S, Catherine P, Maxine C,et al. Designing the user interface: Strategies for effective human-computer interaction[M]. 5th ed. Cambridge: Pearson, 2009.
[7] Adelson B, Soloway E. The role of domain experience in software design[J]. IEEE Transactions on Software Engineering, 1985, SE-11(11): 1351-1360.
[8] Adelson B. Cognitive research: Uncovering how designers design; cognitive modeling: explaining and predicting how designers design[J]. Research in Engineering Design, 1989, 1(1):35-42.
[9] Adelson B, Soloway E. A model of software design[J]. International Journal of Intelligent Systems, 2010, 1(3):195-213.
[10] F Détienne . Expert programming knowledge: A schema-based approach[J]. Psychology of Programming,1990: 205-222.
[11] George A. Miller. The magical number seven, plus or minus two: Some limits on our capacity for processing information[J].Psychological Review, 1956, 63(2): 81–97.
[12] Robert S. Feldman. Development across the life span[M]. 4th ed. New Jersey: Prentice Hall, 2005: 183-185.
[13] David R. Shaffer,Katherine Kipp. Developmental psychology: Childhood and adolescenc[M]. 8th ed. Belmont: Wadsworth Publishing Company, 2009: 267-270.
(編辑:史志伟)