林連南 劉嘉偉 許南鴻



摘要:針對軟件工程專業中的人機交互課程體系設計問題,總結近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課程提供有益參考。
(編輯:宋文婷)