楊曉春,張 錦
(1.上海成趣信息科技有限公司,上海 200001;2.湖南師范大學(xué) 信息科學(xué)與工程學(xué)院,湖南長沙 410081)
大學(xué)科學(xué)和工程教育的一個目的是培養(yǎng)學(xué)生科學(xué)思維和工程思維[1—2]。隨著當(dāng)今科學(xué)和技術(shù)的快速發(fā)展,工程、技術(shù)和科學(xué)應(yīng)用越來越緊密地結(jié)合,高校教師在某種程度上難以提供相應(yīng)的實踐課程以發(fā)展學(xué)生的科學(xué)思維和工程思維能力。本文提出,高校教師可以與具備正確教育理念和教育方法的業(yè)界專業(yè)人士協(xié)作,共同開發(fā)科學(xué)和工程課程和實踐活動。本文將介紹在計算領(lǐng)域培養(yǎng)科學(xué)思維和工程思維的相關(guān)課程的實踐情況,針對智能類專業(yè)提出相應(yīng)的培養(yǎng)建議。
科學(xué)思維的通用認(rèn)知過程涉及歸納、演繹、類比、問題解決和因果推理,人類也將其應(yīng)用于非科學(xué)領(lǐng)域[1]。工程師使“事物”(更好地)發(fā)揮作用,通常采用六種思考和行動方式[2]3,第一,系統(tǒng)思考;第二,適應(yīng);第三,發(fā)現(xiàn)問題;第四,創(chuàng)造性地解決問題;第五,可視化;第六,改進(jìn)。
科學(xué)思維和工程思維有相同性也有不同性??茖W(xué)思維和工程思維在大學(xué)階段的培養(yǎng)可以通過科學(xué)和工程核心概念以及科學(xué)和工程實踐活動來進(jìn)行。本文著重從科學(xué)和工程實踐活動來闡述如何培養(yǎng)兩種思維能力。
科學(xué)家和工程師的工作領(lǐng)域(圖1)涉及的過程較為相似,均包括三個活動領(lǐng)域:①調(diào)查和實證調(diào)查;②模型的構(gòu)建(如科學(xué)概念/理論或工程設(shè)計)使用推理和創(chuàng)造性思維;③評估模型的有效性(對科學(xué)而言)或適應(yīng)性/有用性(對工程而言)[3]44。
圖1 科學(xué)家和工程師的三個活動領(lǐng)域
具體說來,包括以下步驟[3]42:①提出問題(對于科學(xué)而言)和定義問題(對于工程而言);②開發(fā)和使用模型;③計劃和執(zhí)行調(diào)查;④分析和解釋數(shù)據(jù);⑤使用數(shù)學(xué)和計算思維;⑥構(gòu)建解釋(對于科學(xué)而言)和設(shè)計解決(對于工程而言)方案;⑦參與論證;⑧獲取、評估和交流信息。
從以上步驟可以看出,除了第①和第⑥步之外,其他基本相同。特別地,兩者都包括模型的構(gòu)建以及使用模擬工具來測試科學(xué)理論和預(yù)測工程設(shè)計的結(jié)果。工程和科學(xué)都涉及創(chuàng)造性過程,并且都不僅使用一種方法。與科學(xué)研究一樣,工程設(shè)計既是迭代的,也是系統(tǒng)的,因為每個新版本的設(shè)計都會根據(jù)到目前為止所學(xué)到的內(nèi)容進(jìn)行測試和修改。同時,工程設(shè)計必須系統(tǒng)性地采取一些有特色的步驟:①確定問題并定義規(guī)范和約束;②為如何解決問題提出想法,工程師經(jīng)常使用研究和小組會議提出一系列解決方案和設(shè)計備選方案,以便進(jìn)一步開發(fā);③構(gòu)建模型和原型來測試潛在的解決方案,從中獲得有價值的數(shù)據(jù)。工程師通過數(shù)據(jù)可以分析各種解決方案,進(jìn)行評估和改進(jìn)設(shè)計。相比之下,某些類型的科學(xué)研究是為了實際目的而進(jìn)行的,并產(chǎn)生了重要的新技術(shù);還有許多科學(xué)研究則是出于好奇心而進(jìn)行的,目的是回答關(guān)于世界的問題或理解觀察到的模式[3]46-48。在大學(xué)通識教育的過程中,鑒于科學(xué)實踐和工程實踐兩者的相似性,本文并未嚴(yán)格區(qū)分兩者的不同,而是將兩者結(jié)合起來共同實踐。
1.2.1 認(rèn)知科學(xué)貫穿到科學(xué)領(lǐng)域的過程
歷史上,科學(xué)思維被稱為科學(xué)探究中涉及的思維過程。Osman Yasar 提到科學(xué)思維涉及認(rèn)知科學(xué)的內(nèi)容以及一系列貫穿科學(xué)領(lǐng)域的過程,圖2 列出了科學(xué)思維中涉及的認(rèn)知過程[4]。
1.2.2 工程的核心概念
工程的核心概念包括工程設(shè)計以及工程、技術(shù)、科學(xué)和社會之間的聯(lián)系[3]201-212。技術(shù)是對滿足人類需求或欲望的自然世界的任何修改。工程是用一種系統(tǒng)的、迭代的方法來設(shè)計對象、過程和系統(tǒng),以滿足人類的需求??茖W(xué)的應(yīng)用是將科學(xué)知識用于特定目的,決定是否要做更多的科學(xué)研究,決定是否設(shè)計產(chǎn)品、工藝或一些方法,決定是否研發(fā)新技術(shù),或者是否預(yù)測人類行為的影響。
工程設(shè)計包括理解如何定義和劃分工程問題,如何使用模型來開發(fā)和改進(jìn)設(shè)計問題的可能解決方案,以及可以采用哪些方法來優(yōu)化設(shè)計。
基于科學(xué)或科學(xué)改進(jìn)的技術(shù)和系統(tǒng)設(shè)計影響人們彼此之間以及與環(huán)境相互作用的方式,因此這些設(shè)計深刻地影響著社會。同時,社會影響科學(xué)和工程。社會決策可能由各種經(jīng)濟(jì)、政治和文化因素決定,為技術(shù)的改進(jìn)或替代確立目標(biāo)和根據(jù)優(yōu)先權(quán)確定完成的事項。平衡技術(shù)的成本、收益和風(fēng)險是理解工程、技術(shù)、科學(xué)和社會之間的關(guān)鍵要素。
科學(xué)和工程領(lǐng)域是相互支持的。科學(xué)家和工程師經(jīng)常在團(tuán)隊中一起工作,這種現(xiàn)象在計算和人工智能等領(lǐng)域特別普遍,這些領(lǐng)域模糊了科學(xué)與工程之間的界限。
圖2 認(rèn)知科學(xué)貫穿科學(xué)領(lǐng)域的過程
本文以計算類專業(yè)為例,解釋科學(xué)和工程實踐活動的基本方法和原則。在計算類專業(yè)引入科學(xué)和工程實踐的基本方法包括基于問題、項目和實踐的學(xué)習(xí)方法,啟發(fā)式教學(xué),互動式學(xué)習(xí),等等。參考國際電氣和電子工程師協(xié)會(IEEE)和美國計算機(jī)學(xué)會(ACM)聯(lián)合發(fā)布的軟件工程本科學(xué)位課程指南SE2014,課程設(shè)計的原則重點(diǎn)包括以下內(nèi)容[5]。
(1)課程設(shè)計者和導(dǎo)師必須具備足夠的相關(guān)知識和經(jīng)驗,并理解軟件工程的特點(diǎn);
(2)許多軟件工程概念、原則和問題應(yīng)作為整個課程的主題來教授,以幫助學(xué)生培養(yǎng)軟件工程思維;
(3)軟件工程必須以計算和工程兩種學(xué)科的方式進(jìn)行教學(xué);
(4)軟件工程教育需要超越講座形式,并考慮各種教學(xué)方法;
(5)通過設(shè)計課程可以實現(xiàn)效率和協(xié)同效應(yīng),使學(xué)生可以同時學(xué)習(xí)多種類型的知識;
(6)為確保學(xué)生掌握某些重要思想,必須注意通過使用有趣、具體和令人信服的例子來激勵學(xué)生;
(7)課程必須定期審查和更新。
筆者依據(jù)工程認(rèn)證教育標(biāo)準(zhǔn)的畢業(yè)要求[6],設(shè)計培養(yǎng)科學(xué)思維和工程思維的相關(guān)課程。表1解釋了工程認(rèn)證12 條畢業(yè)要求包含的對應(yīng)科學(xué)和工程實踐活動的內(nèi)容。
從表1 可以看出,積極開展科學(xué)和工程實踐活動對滿足工程認(rèn)證教育標(biāo)準(zhǔn)的畢業(yè)要求很有幫助意義。
結(jié)合工程認(rèn)證要求,工業(yè)界專業(yè)人士可以從以下角度,在通識課程中為大一大二的學(xué)生提供以下的課程和方法論支持。以目前在本文作者所在的學(xué)校開發(fā)的課程為例,表2 展示了工程認(rèn)證教育標(biāo)準(zhǔn)畢業(yè)要求與科學(xué)和工程實踐課程的關(guān)系。大部分課程都涵蓋了畢業(yè)要求的12條內(nèi)容。
在設(shè)計工程認(rèn)證教育標(biāo)準(zhǔn)畢業(yè)要求的第八條職業(yè)規(guī)范的相關(guān)課程時,可以結(jié)合工業(yè)界案例,也可參考美國計算機(jī)學(xué)會計算機(jī)協(xié)會道德與職業(yè)行為準(zhǔn)則[7],準(zhǔn)則大綱包括一般道德原則、職業(yè)責(zé)任、專業(yè)領(lǐng)導(dǎo)原則等。
2.2.1 計算如何影響和幫助我們
本課程目標(biāo)是幫助各個專業(yè)背景的大學(xué)生理解和運(yùn)用計算領(lǐng)域的思維和方法。
課程內(nèi)容包括:計算領(lǐng)域的核心概念和核心思維;如何用計算領(lǐng)域的思想和方法解決身邊的問題;計算領(lǐng)域工作者的個性魅力;計算不能做什么?
表1 工程認(rèn)證畢業(yè)要求與科學(xué)和工程實踐活動的對應(yīng)關(guān)系
表2 工程認(rèn)證教育標(biāo)準(zhǔn)畢業(yè)要求與科學(xué)和工程實踐課程的關(guān)系
課程考核方式:寫報告考核學(xué)生對計算思維的理解。要求學(xué)生針對報告內(nèi)容,結(jié)合自己的情況,描述自己對計算的認(rèn)識、疑問以及未來的行動計劃。根據(jù)報告的完整性、清晰度和準(zhǔn)確性確定評分。
2.2.2 如何成為一個真正的計算領(lǐng)域工作者
本課程目標(biāo)引導(dǎo)大學(xué)生思考如何成為一個真正的計算領(lǐng)域工作者,了解計算領(lǐng)域工作者的思維特點(diǎn),了解軟件工程宣言和美國計算機(jī)學(xué)會倡導(dǎo)的職業(yè)道德和專業(yè)規(guī)范,思考工程師文化,鼓勵大學(xué)生未來在計算領(lǐng)域作出自己的貢獻(xiàn)。推薦觀看《操作系統(tǒng)革命》紀(jì)錄片和《硅谷》等影視劇,了解Linux、開源運(yùn)動和黑客如何打破壟斷,促進(jìn)軟件開發(fā)發(fā)展,創(chuàng)造財富神話的故事和現(xiàn)實,也了解計算領(lǐng)域創(chuàng)業(yè)公司發(fā)展的故事。
2.2.3 代碼閱讀與代碼質(zhì)量保障
本課程目標(biāo)是幫助同學(xué)掌握良好的代碼閱讀能力,懂得欣賞代碼的優(yōu)雅之美,并在開發(fā)過程中實踐寫出良好代碼的方法。
課程形式是老師分享講解及引導(dǎo)同學(xué)分析自己的代碼,同學(xué)參與討論并作相應(yīng)總結(jié)。
課程包括:為什么以及如何閱讀代碼?好代碼的特點(diǎn)是什么?閱讀代碼的基礎(chǔ),等等。
此課程除在筆者所在學(xué)院為研究生一年級和大學(xué)一年級同學(xué)講授,還在武漢大學(xué)遙感信息工程學(xué)院和上海電力大學(xué)計算機(jī)學(xué)院為各年級學(xué)生作了講座。課程無強(qiáng)制的考核形式,通過與學(xué)生的討論交流,達(dá)到啟發(fā)學(xué)生思考和反思的效果。在課程運(yùn)行中,對于沒有軟件開發(fā)項目經(jīng)驗的學(xué)生,筆者會詢問學(xué)生在閱讀代碼中遇到的問題并提出相應(yīng)的建議和閱讀方法,同時推薦優(yōu)質(zhì)代碼資源,幫助學(xué)生總結(jié)常見代碼錯誤。
2.2.4 從點(diǎn)子到產(chǎn)品工作坊
此課程為綜合性實踐課程,集中實踐敏捷開發(fā)、項目管理和計算類產(chǎn)品開發(fā)方法。課程通過概念解釋、案例說明以及實際操作介紹從產(chǎn)品設(shè)計到工程實踐的理念、體系、流程、方法和平臺,講述實戰(zhàn)方法和技巧,以幫助學(xué)生完成以下目標(biāo)。
(1)掌握產(chǎn)品設(shè)計和開發(fā)的知識和方法;
(2)熟悉項目管理知識體系以及項目管理的基本方法;
(3)掌握溝通管理和風(fēng)險管理的主要內(nèi)容、分析工具;
(4)熟悉敏捷開發(fā)的職能分配、具體活動和產(chǎn)出成果;
(5)應(yīng)用敏捷開發(fā)方法完成一次軟件開發(fā)迭代活動;
(6)掌握軟件開發(fā)的設(shè)計、編碼和測試流程,利用團(tuán)隊協(xié)作工具和知識技能完成軟件作品;
(7)掌握軟件開發(fā)中獲取工具和知識、建立自己知識庫的基本方法。
課程形式采用教師講解示范、與學(xué)生互動和學(xué)生小組練習(xí)相結(jié)合的形式。將小組練習(xí)有機(jī)地穿插在重要課題講解后,便于學(xué)生學(xué)以致用。
課程考核方式采用課堂問答小測驗和項目匯報方式。項目匯報方式包括用幻燈片展示軟件產(chǎn)品介紹、展示作品功能和回答教師提問。
此課程于2019 年在陸軍工程大學(xué)開設(shè),獲得學(xué)員對學(xué)習(xí)內(nèi)容、講授方式和練習(xí)方式的較好的反饋。學(xué)員通過課程也了解了未來在軟件開發(fā)、產(chǎn)品設(shè)計、項目管理和敏捷開發(fā)中需要掌握的知識和技能。
人工智能的研究,在研究方法上,存在不確定性和可變性,研究過程迭代,類似于實驗科學(xué)[8],強(qiáng)調(diào)懂算法和對數(shù)學(xué)的實踐。在智能類專業(yè)的教學(xué)中,強(qiáng)調(diào)數(shù)學(xué)和計算工具,并教會學(xué)生用數(shù)學(xué)將科學(xué)和工程相結(jié)合。數(shù)學(xué)和計算工具是科學(xué)和工程的核心。數(shù)學(xué)能夠以精確的形式表達(dá)思想,并能夠識別關(guān)于物理世界的新思想。計算工具是表示數(shù)據(jù)的有效工具,它們可以顯示計算或模擬的結(jié)果。工程也涉及數(shù)學(xué)和計算技能。盡管數(shù)學(xué)和計算思維在科學(xué)和工程學(xué)中的應(yīng)用存在差異,但數(shù)學(xué)通常將這兩個領(lǐng)域結(jié)合在一起。因此,在教學(xué)過程中,強(qiáng)調(diào)科學(xué)和工程的結(jié)合,否則一些復(fù)雜模型可能無法建立起來[3]64-65。
此課程的目標(biāo)是理解線性代數(shù)、概率論與統(tǒng)計學(xué)、微積分與數(shù)值計算在機(jī)器學(xué)習(xí)中的作用與意義,為機(jī)器學(xué)習(xí)的研究和應(yīng)用打好扎實的基礎(chǔ)。此課程主要通過分析回顧總結(jié)數(shù)學(xué)的應(yīng)用意義,啟發(fā)學(xué)生思考及進(jìn)一步閱讀反思,沒有強(qiáng)制性的考核。
課程包括:機(jī)器學(xué)習(xí)的產(chǎn)生;數(shù)學(xué)在機(jī)器學(xué)習(xí)的作用和意義;線性代數(shù)的線性空間理論和矩陣分析理論的應(yīng)用;機(jī)器學(xué)習(xí)的不確定性和概率論的聯(lián)系;推理式統(tǒng)計的作用;偏差和方差在機(jī)器學(xué)習(xí)評價中的作用;微分學(xué)、積分學(xué)的應(yīng)用意義;數(shù)值計算在優(yōu)化問題中的應(yīng)用。
基于公認(rèn)的科學(xué)和工程實踐方法、我國工程認(rèn)證教育標(biāo)準(zhǔn)的畢業(yè)要求以及軟件工程本科學(xué)位課程指南SE2014,筆者設(shè)計并實踐了在大學(xué)通識教育中面向?qū)嵺`的科學(xué)和工程教育的課程,接下來會對學(xué)生理論課考試成績、學(xué)習(xí)習(xí)慣和工程實現(xiàn)成績進(jìn)行分析,研究其相關(guān)性,并且將結(jié)合大學(xué)生的發(fā)展情況以及具體的課程反饋,對課程進(jìn)行修改和迭代,進(jìn)一步幫助大學(xué)生在科學(xué)研究和工程實踐中打下良好的基礎(chǔ)。