總結筆者近 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所示。根據斯金納行為強化理論,可以將獎勵定義為后援強化物,并分為活動類、擁有類和消費類。合理的獎勵分類與吸引兒童的視覺設計,都是為了增強獎勵的強化效果?;诙怕W卡理論,可以設計游戲來促進兒童的認知,達到益智的目的。
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.
(編輯:史志偉)