摘 要: 根據程序設計類課程的知識特點和教學特點,提出了默會知識的分類,即分成物性、心性、人性和外性的默會知識。在此分類基礎上給出了一個適合教學設計的教學對策,從而為制訂教學方案,組織教學素材提供了理論指導,最終達到增強教學效果,提高教學質量之目的。
關鍵詞: 程序設計; 課程教學; 默會知識; 分類; 計算機教育
中圖分類號:G642.0 文獻標志碼:A 文章編號:1006-8228(2018)03-73-03
Study on the classification of tacit knowledge in programming courses
and the countermeasures of teaching
Hu Mingxiao
(College of Mathematics, Physics and Electronic Informatioin Engineering, Wenzhou University, Wenzhou, Zhejiang 325035, China)
Abstract: According to the knowledge pattern and pedagogical feature of computer programming courses, a classification of tacit knowledge is proposed for these courses. The tacit knowledge is classified into four categories: material-oriented, cognizance-oriented, member-oriented and environment-oriented. A strategy to design well-performed computer programming teaching based on the classification is given such that it can provide a theoretical guidance to make teaching plan, organize teaching material to improve the teaching effect.
Key words: programming; course teaching; tacit knowledge; classification; computer teaching
0 引言
程序設計是高等院校的計算機專業課和計算機公共課,程序設計的基本知識是現代化、信息化人才培養的重要知識。程序設計類課程門類多,如C語言、Java語言、C++語言、Python、VB、ASP、SQL、JSP等。這類課程的教學在高校的教學工作量中占有相當大的比重。由于程序設計類課程的基礎性強,覆蓋面廣,受益學生多,知識時效長,任何關于提高該類課程教學質量的研究都會是很有意義的。
在學習理論中,默會知識(Tacit Knowledge,亦稱隱性知識、內隱知識)是Polanyi首先提出的[1],他發現在諸如駕駛、數學的教學中有一種不可表達的知識。默會知識與顯性知識相對,顯性知識可以用語言(包括文字、公式、手勢等符號系統)來完整表達,而默會知識是傳授者不可意識的或者可以意識但不能表達出來的知識。程序設計類課程含有豐富而典型的默會知識,但難以對它進行面向教學對策、符合認知規律、易于應用的有效分類,研究默會知識的特點、種類和相應教學對策,有助于提高程序設計類課程的教學質量和教學效果。
1 國內外相關研究綜述
關于程序設計課程教學的研究一直是國內外計算機教學研究的重要內容。M. E. Caspersen(2007)在其博士論文中運用學習理論(如認知載荷理論、認知學徒制、精加工實例方法等)研究了程序設計課程的教學設計[2]。A. K. Lui等(2004)針對弱基礎學生提出一個建構主義的Perform教學方法,并給出一組C語言課件開發指導原則[3]。常珊,陳琰等(2010)討論了程序設計教學中的一般教育學原理的運用[4]。
Collins認為,認知學徒制是解決默會知識傳授問題的新型教學模式,并將認知學徒制分成四個教學步驟:建模、指導、骨架搭建和拆除[5],認知學徒制試圖讓默會知識可視化。S. Ryan等(2009)研究了軟件開發團隊中默會知識的測度問題[6]。李曉巖和陳曉燕(2005)從默會知識的視角分析了信息技術課程中信息素養的培養問題[7]。劉朝暉(2015)專門就一般工程應用型人才培養討論了默會知識的重要性[8]。姜君和呂艷嬌(2015)分析了默會知識與研究生創新能力培養的關系[9]。
關于默會知識的一般分類,D. Perkins將默會知識分為情感、言語理解、身體和社會習俗等幾個方面[10]。K. O'Hara等將它分為技能方面的默會知識、背景方面的默會知識和分散在組織中的默會知識[11]。江新、鄭蘭琴等(2005)將隱性知識分為基于身體的隱性知識、基于言語的隱性知識、基于元認知的隱性知識和基于社會文化的隱性知識等[12]。張東嬌(2017)對校園文化傳承中一類默會知識的作用進行了探討[13]。
2 默會知識的分類
2.1 課程特點
程序設計類課程有其知識特點和教學特點。
⑴ 技能性強,認知過程曲折。一個主題往往需要多步驟、多類型的認知單元的存儲與加工。
⑵ 層次化明顯,認知對象繁多。課程教學內容包含算法、方法學、語法和集成開發環境等多層次的知識內容[14]。
⑶ 元認知要求高。課程本身具有理論與實踐相結合的特點,認知過程需要各種各樣的元認知參與。尤其是在所授課程為學生的第一門程序設計課的時候,其元認知的形式和特點與高中課程存在明顯的差異。
⑷ 課程地位獨特。向前看,課程要求有一定的先修課程基礎,向后看,課程具有基礎性強的特點。而從左右看,又有多種同類課程。
2.2 默認知識分類
程序設計類課程包含的默會知識亦呈現不同的特點。根據教學實踐和理論研究,其默會知識可以按照客觀性、即時性兩個維度的強弱分成四種類型,分別稱之為:物性、心性、人性和外性的默會知識(如圖1)。
圖1 默會知識的分類
⑴ 物性的默會知識,該類默會知識與程序設計的集成開發環境(IDE)有關,主要包括操作方面的默會知識,如操作習慣、操作方式、問題查看的順序、經驗和技巧等。這是客觀性、即時性均強的一類。
⑵ 心性的默會知識,該類默會知識與認知和元認知關系密切,它與程序設計的步驟、結構設計、接口設計、調試有關,主要包括解決問題的知識和元認知,如文件組織習慣的養成、文件組織結構與程序功能關系的認識、對出錯的直覺反應模式的建立、查找錯誤的習慣等。心性默會知識客觀性弱。
⑶ 人性的默會知識,這是與他人有關的默會知識,該類默會知識涉及團隊合作、同學交流、師生交流等,主要包括合作意識、合作方式的建立與調整、合作效率效果、團隊的默契、溝通技術、表達能力等。即時性弱。
⑷ 外性的默會知識,主要與社會、環境和文化有關,也與校園文化、企業文化、組織生態、國民性格、地理環境和氣候等因素有關,具體如思維模式、心理特征、信念、價值觀等。
3 相應教學對策
在程序設計類課程默會知識分類的基礎上,按照默會知識顯性化、可視化、可遷移性的原則,教學對策亦分類設計,如表1所示。
表1 默會知識的教學對策
[默會知識 關聯對象 教學對策 物性 集成開發環境(IDE),操作方面 步驟分解,顯性化 心性 程序設計的步驟、結構設計、接口設計、調試 模式下沉,角色翻轉 人性 團隊合作、交流、合作態度、合作效率效果、溝通技術、表達能力 交流平臺,多輪磨合 外性 校園文化、企業文化、地域文化、國民性格等 品格養成,文化熏陶 ]
⑴ 物性的默會知識。由于它只與IDE有關,客觀性很強,只需將隱性部分顯性化。編程“高手”習慣性地操作演示往往對學生的學習效果不是很好,教學上強調操作的分步驟訓練和標準化訓練。通過步驟分解盡量顯性化,如演示創建工程的“標準”步驟,調試跟蹤的“慢鏡頭”演示。
標準化的操作雖然在一定程度上限制了學生的嘗試性操作的發揮,但對初學者的操作技能學習能起到立竿見影的作用。
⑵ 心性的默會知識。根據程序設計的特點,讓學生建立元認知能力,揭示認知規律。例如:對程序錯誤通常所隱藏方式的發現方法,指導學生做好方法總結歸類,學會如何學習,將如何習得知識的能力作為知識,實行認知模式下沉。對如何形成良好的文件組織方式、領悟C/C++語言#include命令的包含方式、優化類聲明的層次結構都需要此類認知。Debug的敏感性需要反復的代碼編寫、出錯、糾錯才有領會,教學中要角色翻轉,適當地故意讓學生遭遇錯誤,然后再指出錯誤原因。此類默會知識客觀性弱,需要模式下沉和角色翻轉。
⑶ 人性的默會知識。教學措施要提高與他人的溝通技術,更準確地說,是溝通技術在程序設計中的應用水平,關鍵要讓程序設計者培養一種意識,即自己的程序是給別人和一段時間后的自己閱讀或使用的,自己也要閱讀或使用別人的程序。只有在編寫程序時,時刻滲透這種意識,才能順利實施團隊合作。相應教學對策是互相評價程序,合作完成程序設計等。此類默會知識即時性弱,需要多輪磨合。
⑷ 外性的默會知識。它包括程序設計所需的思維模式、性格和地域文化,這類默會知識的覆蓋范圍最廣,影響最深遠,但是相應教學對策的設計最難,效率最低,需要長期的潛移默化。教學對策大體上可以采取在課堂上穿插先進的計算機文化,比如語言設計者及其實驗室的資料、計算機圖靈獎獲得者的生平介紹、IBM的“藍色”企業文化、德國人的嚴謹與工程成就等。
在程序設計類課程默會知識的上述分類和相應教學對策的指導下,教師可以結合實際情況有的放矢地制訂具體教學方案,選擇教學素材,制作相關課件。
4 結束語
本研究首先是給程序設計類課程的默會知識分類,然后在該分類的基礎上研究教學對策,克服默會知識在教學過程中帶來的困難。多年的教學實踐表明,基于默會知識的教學對策對學生學習程序設計的興趣培養具有積極作用,以溫州大學為例,可以從近幾年學生參加程序設計競賽(ACM、天梯團體賽、藍橋杯等)、軟件設計師考證等活動的報名積極性和獲獎人數的逐年提高中得到印證。
本文所及隱性知識的分類基于兩個維度,進一步研究方向是課程隱性知識的多維分類,以及隱性知識教學效果的定量評估機制。
參考文獻(References):
[1] Polanyi M.. The Tacit Dimension[M]. Peter Smith,
Gloucester, Mass, 1983. Chapter 1:Tacit Knowing
[2] Caspersen M. E., Bennedsen J.. Instructional design of a
programming course: a learning theoretic approach[C]. In: Proceedings of the third international workshop on Computing Education Research,2007:111-122
[3] Lui Andrew K., Kwan Reggie, Poon Maria, Cheung Yannie H. Y.. Saving weak programming students-applying
constructivism in a first programming course[J].ACM SIGCSE Bulletin,2004.36(2):2-76
[4] 常珊,陳琰,徐東風,田緒紅.教育學理論在C語言程序設計教
學中的應用.計算機教育,2010(24):108-111
[5] Collins A., Brown J. S., Newman S. E., (1987). Cognitive
apprenticeship: Teaching the craft of reading, writing and mathematics[R]. Technical report,1987.
[6] Ryan S., O'Connor R. V.. Development of a team measure
for tacit knowledge in software development teams[J]. The Journal of Systems and Software,2009.82:229-240
[7] 李曉巖,陳曉燕.從默會知識看信息技術課程的教學[J].中國
電化教育,2005.12:63-65
[8] 劉朝暉.工程應用型人才的默會知識及其養成教育[J].職業
技術教育,2015.31:40-43
[9] 姜君,呂艷嬌.默會知識與研究生創新能力培養[J].繼續教育
研究,2015.9:100-102
[10] Perkins D.. Types of TK[DB/OL]. http://gseweb.harvard.
edu/~t656_web/Basic_pages/ orientation.htm
[11] O'Hara K., Shadbolt N.. Managing Knowledge Capture:
Economic, Technological and Methodological Considerations[DB/OL]. http://eprints.aktors.org/44/01/valuation-methods.pdf
[12] 江新,鄭蘭琴,黃榮懷.關于隱形知識的分類研究.開放教育
研究,2005.11(1):28-31
[13] 張東嬌.看見與聽見:學校文化的意會與言傳——兼論波蘭
尼的默會知識觀及其啟示.教育研究,2017.9:28-36
[14] 胡明曉,劉海霞,勵龍昌.程序設計類課程的層次化教學模
式研究與實踐.計算機時代,2013.3:58-61