楊曉春,張 錦
(1.上海成趣信息科技有限公司,上海 200001;2.湖南師范大學(xué) 信息科學(xué)與工程學(xué)院,湖南長(zhǎng)沙 410081)
大學(xué)科學(xué)和工程教育的一個(gè)目的是培養(yǎng)學(xué)生科學(xué)思維和工程思維[1—2]。隨著當(dāng)今科學(xué)和技術(shù)的快速發(fā)展,工程、技術(shù)和科學(xué)應(yīng)用越來(lái)越緊密地結(jié)合,高校教師在某種程度上難以提供相應(yīng)的實(shí)踐課程以發(fā)展學(xué)生的科學(xué)思維和工程思維能力。本文提出,高校教師可以與具備正確教育理念和教育方法的業(yè)界專業(yè)人士協(xié)作,共同開(kāi)發(fā)科學(xué)和工程課程和實(shí)踐活動(dòng)。本文將介紹在計(jì)算領(lǐng)域培養(yǎng)科學(xué)思維和工程思維的相關(guān)課程的實(shí)踐情況,針對(duì)智能類專業(yè)提出相應(yīng)的培養(yǎng)建議。
科學(xué)思維的通用認(rèn)知過(guò)程涉及歸納、演繹、類比、問(wèn)題解決和因果推理,人類也將其應(yīng)用于非科學(xué)領(lǐng)域[1]。工程師使“事物”(更好地)發(fā)揮作用,通常采用六種思考和行動(dòng)方式[2]3,第一,系統(tǒng)思考;第二,適應(yīng);第三,發(fā)現(xiàn)問(wèn)題;第四,創(chuàng)造性地解決問(wèn)題;第五,可視化;第六,改進(jìn)。
科學(xué)思維和工程思維有相同性也有不同性。科學(xué)思維和工程思維在大學(xué)階段的培養(yǎng)可以通過(guò)科學(xué)和工程核心概念以及科學(xué)和工程實(shí)踐活動(dòng)來(lái)進(jìn)行。本文著重從科學(xué)和工程實(shí)踐活動(dòng)來(lái)闡述如何培養(yǎng)兩種思維能力。
科學(xué)家和工程師的工作領(lǐng)域(圖1)涉及的過(guò)程較為相似,均包括三個(gè)活動(dòng)領(lǐng)域:①調(diào)查和實(shí)證調(diào)查;②模型的構(gòu)建(如科學(xué)概念/理論或工程設(shè)計(jì))使用推理和創(chuàng)造性思維;③評(píng)估模型的有效性(對(duì)科學(xué)而言)或適應(yīng)性/有用性(對(duì)工程而言)[3]44。

圖1 科學(xué)家和工程師的三個(gè)活動(dòng)領(lǐng)域
具體說(shuō)來(lái),包括以下步驟[3]42:①提出問(wèn)題(對(duì)于科學(xué)而言)和定義問(wèn)題(對(duì)于工程而言);②開(kāi)發(fā)和使用模型;③計(jì)劃和執(zhí)行調(diào)查;④分析和解釋數(shù)據(jù);⑤使用數(shù)學(xué)和計(jì)算思維;⑥構(gòu)建解釋(對(duì)于科學(xué)而言)和設(shè)計(jì)解決(對(duì)于工程而言)方案;⑦參與論證;⑧獲取、評(píng)估和交流信息。
從以上步驟可以看出,除了第①和第⑥步之外,其他基本相同。特別地,兩者都包括模型的構(gòu)建以及使用模擬工具來(lái)測(cè)試科學(xué)理論和預(yù)測(cè)工程設(shè)計(jì)的結(jié)果。工程和科學(xué)都涉及創(chuàng)造性過(guò)程,并且都不僅使用一種方法。與科學(xué)研究一樣,工程設(shè)計(jì)既是迭代的,也是系統(tǒng)的,因?yàn)槊總€(gè)新版本的設(shè)計(jì)都會(huì)根據(jù)到目前為止所學(xué)到的內(nèi)容進(jìn)行測(cè)試和修改。同時(shí),工程設(shè)計(jì)必須系統(tǒng)性地采取一些有特色的步驟:①確定問(wèn)題并定義規(guī)范和約束;②為如何解決問(wèn)題提出想法,工程師經(jīng)常使用研究和小組會(huì)議提出一系列解決方案和設(shè)計(jì)備選方案,以便進(jìn)一步開(kāi)發(fā);③構(gòu)建模型和原型來(lái)測(cè)試潛在的解決方案,從中獲得有價(jià)值的數(shù)據(jù)。工程師通過(guò)數(shù)據(jù)可以分析各種解決方案,進(jìn)行評(píng)估和改進(jìn)設(shè)計(jì)。相比之下,某些類型的科學(xué)研究是為了實(shí)際目的而進(jìn)行的,并產(chǎn)生了重要的新技術(shù);還有許多科學(xué)研究則是出于好奇心而進(jìn)行的,目的是回答關(guān)于世界的問(wèn)題或理解觀察到的模式[3]46-48。在大學(xué)通識(shí)教育的過(guò)程中,鑒于科學(xué)實(shí)踐和工程實(shí)踐兩者的相似性,本文并未嚴(yán)格區(qū)分兩者的不同,而是將兩者結(jié)合起來(lái)共同實(shí)踐。
1.2.1 認(rèn)知科學(xué)貫穿到科學(xué)領(lǐng)域的過(guò)程
歷史上,科學(xué)思維被稱為科學(xué)探究中涉及的思維過(guò)程。Osman Yasar 提到科學(xué)思維涉及認(rèn)知科學(xué)的內(nèi)容以及一系列貫穿科學(xué)領(lǐng)域的過(guò)程,圖2 列出了科學(xué)思維中涉及的認(rèn)知過(guò)程[4]。
1.2.2 工程的核心概念
工程的核心概念包括工程設(shè)計(jì)以及工程、技術(shù)、科學(xué)和社會(huì)之間的聯(lián)系[3]201-212。技術(shù)是對(duì)滿足人類需求或欲望的自然世界的任何修改。工程是用一種系統(tǒng)的、迭代的方法來(lái)設(shè)計(jì)對(duì)象、過(guò)程和系統(tǒng),以滿足人類的需求。科學(xué)的應(yīng)用是將科學(xué)知識(shí)用于特定目的,決定是否要做更多的科學(xué)研究,決定是否設(shè)計(jì)產(chǎn)品、工藝或一些方法,決定是否研發(fā)新技術(shù),或者是否預(yù)測(cè)人類行為的影響。
工程設(shè)計(jì)包括理解如何定義和劃分工程問(wèn)題,如何使用模型來(lái)開(kāi)發(fā)和改進(jìn)設(shè)計(jì)問(wèn)題的可能解決方案,以及可以采用哪些方法來(lái)優(yōu)化設(shè)計(jì)。
基于科學(xué)或科學(xué)改進(jìn)的技術(shù)和系統(tǒng)設(shè)計(jì)影響人們彼此之間以及與環(huán)境相互作用的方式,因此這些設(shè)計(jì)深刻地影響著社會(huì)。同時(shí),社會(huì)影響科學(xué)和工程。社會(huì)決策可能由各種經(jīng)濟(jì)、政治和文化因素決定,為技術(shù)的改進(jìn)或替代確立目標(biāo)和根據(jù)優(yōu)先權(quán)確定完成的事項(xiàng)。平衡技術(shù)的成本、收益和風(fēng)險(xiǎn)是理解工程、技術(shù)、科學(xué)和社會(huì)之間的關(guān)鍵要素。
科學(xué)和工程領(lǐng)域是相互支持的。科學(xué)家和工程師經(jīng)常在團(tuán)隊(duì)中一起工作,這種現(xiàn)象在計(jì)算和人工智能等領(lǐng)域特別普遍,這些領(lǐng)域模糊了科學(xué)與工程之間的界限。

圖2 認(rèn)知科學(xué)貫穿科學(xué)領(lǐng)域的過(guò)程
本文以計(jì)算類專業(yè)為例,解釋科學(xué)和工程實(shí)踐活動(dòng)的基本方法和原則。在計(jì)算類專業(yè)引入科學(xué)和工程實(shí)踐的基本方法包括基于問(wèn)題、項(xiàng)目和實(shí)踐的學(xué)習(xí)方法,啟發(fā)式教學(xué),互動(dòng)式學(xué)習(xí),等等。參考國(guó)際電氣和電子工程師協(xié)會(huì)(IEEE)和美國(guó)計(jì)算機(jī)學(xué)會(huì)(ACM)聯(lián)合發(fā)布的軟件工程本科學(xué)位課程指南SE2014,課程設(shè)計(jì)的原則重點(diǎn)包括以下內(nèi)容[5]。
(1)課程設(shè)計(jì)者和導(dǎo)師必須具備足夠的相關(guān)知識(shí)和經(jīng)驗(yàn),并理解軟件工程的特點(diǎn);
(2)許多軟件工程概念、原則和問(wèn)題應(yīng)作為整個(gè)課程的主題來(lái)教授,以幫助學(xué)生培養(yǎng)軟件工程思維;
(3)軟件工程必須以計(jì)算和工程兩種學(xué)科的方式進(jìn)行教學(xué);
(4)軟件工程教育需要超越講座形式,并考慮各種教學(xué)方法;
(5)通過(guò)設(shè)計(jì)課程可以實(shí)現(xiàn)效率和協(xié)同效應(yīng),使學(xué)生可以同時(shí)學(xué)習(xí)多種類型的知識(shí);
(6)為確保學(xué)生掌握某些重要思想,必須注意通過(guò)使用有趣、具體和令人信服的例子來(lái)激勵(lì)學(xué)生;
(7)課程必須定期審查和更新。
筆者依據(jù)工程認(rèn)證教育標(biāo)準(zhǔn)的畢業(yè)要求[6],設(shè)計(jì)培養(yǎng)科學(xué)思維和工程思維的相關(guān)課程。表1解釋了工程認(rèn)證12 條畢業(yè)要求包含的對(duì)應(yīng)科學(xué)和工程實(shí)踐活動(dòng)的內(nèi)容。
從表1 可以看出,積極開(kāi)展科學(xué)和工程實(shí)踐活動(dòng)對(duì)滿足工程認(rèn)證教育標(biāo)準(zhǔn)的畢業(yè)要求很有幫助意義。
結(jié)合工程認(rèn)證要求,工業(yè)界專業(yè)人士可以從以下角度,在通識(shí)課程中為大一大二的學(xué)生提供以下的課程和方法論支持。以目前在本文作者所在的學(xué)校開(kāi)發(fā)的課程為例,表2 展示了工程認(rèn)證教育標(biāo)準(zhǔn)畢業(yè)要求與科學(xué)和工程實(shí)踐課程的關(guān)系。大部分課程都涵蓋了畢業(yè)要求的12條內(nèi)容。
在設(shè)計(jì)工程認(rèn)證教育標(biāo)準(zhǔn)畢業(yè)要求的第八條職業(yè)規(guī)范的相關(guān)課程時(shí),可以結(jié)合工業(yè)界案例,也可參考美國(guó)計(jì)算機(jī)學(xué)會(huì)計(jì)算機(jī)協(xié)會(huì)道德與職業(yè)行為準(zhǔn)則[7],準(zhǔn)則大綱包括一般道德原則、職業(yè)責(zé)任、專業(yè)領(lǐng)導(dǎo)原則等。
2.2.1 計(jì)算如何影響和幫助我們
本課程目標(biāo)是幫助各個(gè)專業(yè)背景的大學(xué)生理解和運(yùn)用計(jì)算領(lǐng)域的思維和方法。
課程內(nèi)容包括:計(jì)算領(lǐng)域的核心概念和核心思維;如何用計(jì)算領(lǐng)域的思想和方法解決身邊的問(wèn)題;計(jì)算領(lǐng)域工作者的個(gè)性魅力;計(jì)算不能做什么?

表1 工程認(rèn)證畢業(yè)要求與科學(xué)和工程實(shí)踐活動(dòng)的對(duì)應(yīng)關(guān)系

表2 工程認(rèn)證教育標(biāo)準(zhǔn)畢業(yè)要求與科學(xué)和工程實(shí)踐課程的關(guān)系
課程考核方式:寫(xiě)報(bào)告考核學(xué)生對(duì)計(jì)算思維的理解。要求學(xué)生針對(duì)報(bào)告內(nèi)容,結(jié)合自己的情況,描述自己對(duì)計(jì)算的認(rèn)識(shí)、疑問(wèn)以及未來(lái)的行動(dòng)計(jì)劃。根據(jù)報(bào)告的完整性、清晰度和準(zhǔn)確性確定評(píng)分。
2.2.2 如何成為一個(gè)真正的計(jì)算領(lǐng)域工作者
本課程目標(biāo)引導(dǎo)大學(xué)生思考如何成為一個(gè)真正的計(jì)算領(lǐng)域工作者,了解計(jì)算領(lǐng)域工作者的思維特點(diǎn),了解軟件工程宣言和美國(guó)計(jì)算機(jī)學(xué)會(huì)倡導(dǎo)的職業(yè)道德和專業(yè)規(guī)范,思考工程師文化,鼓勵(lì)大學(xué)生未來(lái)在計(jì)算領(lǐng)域作出自己的貢獻(xiàn)。推薦觀看《操作系統(tǒng)革命》紀(jì)錄片和《硅谷》等影視劇,了解Linux、開(kāi)源運(yùn)動(dòng)和黑客如何打破壟斷,促進(jìn)軟件開(kāi)發(fā)發(fā)展,創(chuàng)造財(cái)富神話的故事和現(xiàn)實(shí),也了解計(jì)算領(lǐng)域創(chuàng)業(yè)公司發(fā)展的故事。
2.2.3 代碼閱讀與代碼質(zhì)量保障
本課程目標(biāo)是幫助同學(xué)掌握良好的代碼閱讀能力,懂得欣賞代碼的優(yōu)雅之美,并在開(kāi)發(fā)過(guò)程中實(shí)踐寫(xiě)出良好代碼的方法。
課程形式是老師分享講解及引導(dǎo)同學(xué)分析自己的代碼,同學(xué)參與討論并作相應(yīng)總結(jié)。
課程包括:為什么以及如何閱讀代碼?好代碼的特點(diǎn)是什么?閱讀代碼的基礎(chǔ),等等。
此課程除在筆者所在學(xué)院為研究生一年級(jí)和大學(xué)一年級(jí)同學(xué)講授,還在武漢大學(xué)遙感信息工程學(xué)院和上海電力大學(xué)計(jì)算機(jī)學(xué)院為各年級(jí)學(xué)生作了講座。課程無(wú)強(qiáng)制的考核形式,通過(guò)與學(xué)生的討論交流,達(dá)到啟發(fā)學(xué)生思考和反思的效果。在課程運(yùn)行中,對(duì)于沒(méi)有軟件開(kāi)發(fā)項(xiàng)目經(jīng)驗(yàn)的學(xué)生,筆者會(huì)詢問(wèn)學(xué)生在閱讀代碼中遇到的問(wèn)題并提出相應(yīng)的建議和閱讀方法,同時(shí)推薦優(yōu)質(zhì)代碼資源,幫助學(xué)生總結(jié)常見(jiàn)代碼錯(cuò)誤。
2.2.4 從點(diǎn)子到產(chǎn)品工作坊
此課程為綜合性實(shí)踐課程,集中實(shí)踐敏捷開(kāi)發(fā)、項(xiàng)目管理和計(jì)算類產(chǎn)品開(kāi)發(fā)方法。課程通過(guò)概念解釋、案例說(shuō)明以及實(shí)際操作介紹從產(chǎn)品設(shè)計(jì)到工程實(shí)踐的理念、體系、流程、方法和平臺(tái),講述實(shí)戰(zhàn)方法和技巧,以幫助學(xué)生完成以下目標(biāo)。
(1)掌握產(chǎn)品設(shè)計(jì)和開(kāi)發(fā)的知識(shí)和方法;
(2)熟悉項(xiàng)目管理知識(shí)體系以及項(xiàng)目管理的基本方法;
(3)掌握溝通管理和風(fēng)險(xiǎn)管理的主要內(nèi)容、分析工具;
(4)熟悉敏捷開(kāi)發(fā)的職能分配、具體活動(dòng)和產(chǎn)出成果;
(5)應(yīng)用敏捷開(kāi)發(fā)方法完成一次軟件開(kāi)發(fā)迭代活動(dòng);
(6)掌握軟件開(kāi)發(fā)的設(shè)計(jì)、編碼和測(cè)試流程,利用團(tuán)隊(duì)協(xié)作工具和知識(shí)技能完成軟件作品;
(7)掌握軟件開(kāi)發(fā)中獲取工具和知識(shí)、建立自己知識(shí)庫(kù)的基本方法。
課程形式采用教師講解示范、與學(xué)生互動(dòng)和學(xué)生小組練習(xí)相結(jié)合的形式。將小組練習(xí)有機(jī)地穿插在重要課題講解后,便于學(xué)生學(xué)以致用。
課程考核方式采用課堂問(wèn)答小測(cè)驗(yàn)和項(xiàng)目匯報(bào)方式。項(xiàng)目匯報(bào)方式包括用幻燈片展示軟件產(chǎn)品介紹、展示作品功能和回答教師提問(wèn)。
此課程于2019 年在陸軍工程大學(xué)開(kāi)設(shè),獲得學(xué)員對(duì)學(xué)習(xí)內(nèi)容、講授方式和練習(xí)方式的較好的反饋。學(xué)員通過(guò)課程也了解了未來(lái)在軟件開(kāi)發(fā)、產(chǎn)品設(shè)計(jì)、項(xiàng)目管理和敏捷開(kāi)發(fā)中需要掌握的知識(shí)和技能。
人工智能的研究,在研究方法上,存在不確定性和可變性,研究過(guò)程迭代,類似于實(shí)驗(yàn)科學(xué)[8],強(qiáng)調(diào)懂算法和對(duì)數(shù)學(xué)的實(shí)踐。在智能類專業(yè)的教學(xué)中,強(qiáng)調(diào)數(shù)學(xué)和計(jì)算工具,并教會(huì)學(xué)生用數(shù)學(xué)將科學(xué)和工程相結(jié)合。數(shù)學(xué)和計(jì)算工具是科學(xué)和工程的核心。數(shù)學(xué)能夠以精確的形式表達(dá)思想,并能夠識(shí)別關(guān)于物理世界的新思想。計(jì)算工具是表示數(shù)據(jù)的有效工具,它們可以顯示計(jì)算或模擬的結(jié)果。工程也涉及數(shù)學(xué)和計(jì)算技能。盡管數(shù)學(xué)和計(jì)算思維在科學(xué)和工程學(xué)中的應(yīng)用存在差異,但數(shù)學(xué)通常將這兩個(gè)領(lǐng)域結(jié)合在一起。因此,在教學(xué)過(guò)程中,強(qiáng)調(diào)科學(xué)和工程的結(jié)合,否則一些復(fù)雜模型可能無(wú)法建立起來(lái)[3]64-65。
此課程的目標(biāo)是理解線性代數(shù)、概率論與統(tǒng)計(jì)學(xué)、微積分與數(shù)值計(jì)算在機(jī)器學(xué)習(xí)中的作用與意義,為機(jī)器學(xué)習(xí)的研究和應(yīng)用打好扎實(shí)的基礎(chǔ)。此課程主要通過(guò)分析回顧總結(jié)數(shù)學(xué)的應(yīng)用意義,啟發(fā)學(xué)生思考及進(jìn)一步閱讀反思,沒(méi)有強(qiáng)制性的考核。
課程包括:機(jī)器學(xué)習(xí)的產(chǎn)生;數(shù)學(xué)在機(jī)器學(xué)習(xí)的作用和意義;線性代數(shù)的線性空間理論和矩陣分析理論的應(yīng)用;機(jī)器學(xué)習(xí)的不確定性和概率論的聯(lián)系;推理式統(tǒng)計(jì)的作用;偏差和方差在機(jī)器學(xué)習(xí)評(píng)價(jià)中的作用;微分學(xué)、積分學(xué)的應(yīng)用意義;數(shù)值計(jì)算在優(yōu)化問(wèn)題中的應(yīng)用。
基于公認(rèn)的科學(xué)和工程實(shí)踐方法、我國(guó)工程認(rèn)證教育標(biāo)準(zhǔn)的畢業(yè)要求以及軟件工程本科學(xué)位課程指南SE2014,筆者設(shè)計(jì)并實(shí)踐了在大學(xué)通識(shí)教育中面向?qū)嵺`的科學(xué)和工程教育的課程,接下來(lái)會(huì)對(duì)學(xué)生理論課考試成績(jī)、學(xué)習(xí)習(xí)慣和工程實(shí)現(xiàn)成績(jī)進(jìn)行分析,研究其相關(guān)性,并且將結(jié)合大學(xué)生的發(fā)展情況以及具體的課程反饋,對(duì)課程進(jìn)行修改和迭代,進(jìn)一步幫助大學(xué)生在科學(xué)研究和工程實(shí)踐中打下良好的基礎(chǔ)。