紀(jì)嘉宜
摘要:本文以邏輯思維和算法思維為視角,分析論述計算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生應(yīng)該具備的專業(yè)能力和綜合素質(zhì)。前言主要表述了背景和起因。第二部分提出了邏輯思維的概念和方法。第三部分提出了算法思維的概念。第四部分揭示了邏輯思維和算法思維之間的本質(zhì)關(guān)系,即算法思維超越邏輯思維,邏輯思維有助于算法思維的提升。第五部分,基于對C語言的學(xué)習(xí)以及現(xiàn)今流行的算法,揭示邏輯思維和算法思維在計算機(jī)研究和應(yīng)用領(lǐng)域的重要性。第六部分以邏輯思維和算法思維為視角,提出計算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生應(yīng)具備的五項專業(yè)能力和五項綜合素質(zhì)。第七部分是結(jié)束語,概括了全文并總結(jié)了專業(yè)能力和綜合素質(zhì)的主要觀點(diǎn)。
關(guān)鍵詞:邏輯思維;算法思維;計算機(jī);專業(yè)能力;綜合素質(zhì)
中圖分類號: G424 ? ? ? ?文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)31-0122-02
1前言
曾經(jīng)在《財富》雜志上讀到一篇題為“這所編程學(xué)校能夠解決就業(yè)問題嗎?”,這篇文章講的是法國電信市場億萬富豪尼爾用7800萬美元創(chuàng)辦了一所免費(fèi)編程學(xué)校,旨在解決科技行業(yè)長期缺乏熟練編程人員的難題。入學(xué)者不需要任何基礎(chǔ),連高中文憑都不需要,只需要通過學(xué)校的在線邏輯測試和為期一個月的新訓(xùn)營即可入學(xué)。這所學(xué)校沒有學(xué)費(fèi)、沒有教師,學(xué)生全靠自學(xué),如果需要幫助,就去問其他同學(xué)。如今,學(xué)校已經(jīng)成功開辦了6年,很多畢業(yè)生已經(jīng)創(chuàng)辦了自己的企業(yè)。尼爾在接受《財富》雜志記者采訪時說:“程序員的成功只需要兩件事情,一是要掌握邏輯,二是要有雄心壯志”。尼爾的這句話給我留下了深刻的印象。
2邏輯思維概述
2.1邏輯思維的概念
邏輯思維的定義比較統(tǒng)一,它是指人們在認(rèn)識事物的過程中借助概念、判斷、推理等思維形式,能動地反映客觀現(xiàn)實(shí)的理性認(rèn)識過程??梢姡壿嬎季S是一種抽象思維,人們正是通過邏輯思維,透過具體的事物表象,發(fā)現(xiàn)其本質(zhì)規(guī)律,進(jìn)而對客觀世界有了更深入的認(rèn)識。這種認(rèn)識過程,是理性的,又是高級的,其高級之處在于,可以用語言、符號表達(dá)出抽象的邏輯思維。
2.2邏輯思維的方法
不同的資料和文獻(xiàn)對邏輯思維的方法表述不盡相同,目前沒有一份資料對邏輯思維的方法有一個完整概括,歸納起來,常見的邏輯思維方法主要包括:演繹法、歸納法、遞推法、排除法、實(shí)驗(yàn)法、比較法、反證法、因果法等方法。
而在實(shí)際運(yùn)用中,邏輯思維通常與非邏輯思維同時存在。非邏輯思維表現(xiàn)為一個人的直覺、想象、聯(lián)想、頓悟等,它可以對邏輯思維形成一個大致的方向和大原則,幫助人們從總體上把握事物,為邏輯思維提供導(dǎo)向性原則,在認(rèn)知上獲得延伸和升華。
3算法思維的概念
從算法史看,發(fā)現(xiàn)算法思維可以追溯到古希臘。古希臘數(shù)學(xué)家埃拉托色尼在擔(dān)任亞歷山大圖書館館長的時候,提出一種可以在一定范圍的自然數(shù)中篩選出質(zhì)數(shù)的方法,這種方法被稱為埃拉托色尼篩選法,這便是最古老的算法思想。
可見,所謂的算法思維,就是由一系列指令構(gòu)成,這些指令能夠?qū)崿F(xiàn)某個特定的結(jié)果。按照這個定義,可以發(fā)現(xiàn)算法思維,并不僅僅指的是數(shù)學(xué)計算,它遠(yuǎn)遠(yuǎn)超越數(shù)學(xué)公式和計算本身,其本質(zhì)是基于一定的邏輯思維達(dá)到某種結(jié)果的過程。
4邏輯思維和算法思維之間的本質(zhì)聯(lián)系
邏輯思維和算法思維不是孤立存在的,他們之間有著很強(qiáng)的關(guān)聯(lián)性。
4.1 算法思維雖然基于邏輯思維,卻遠(yuǎn)遠(yuǎn)超越邏輯思維本身
在今天的大數(shù)據(jù)時代,互聯(lián)網(wǎng)上每時每刻都在發(fā)生精準(zhǔn)的算法獲取大眾的信息,包括人們的衣食住行、娛樂、旅游、工作等信息,從而影響或改變著人們的日常生活,不僅如此,它甚至影響著人們的認(rèn)知、思維和觀念。《極簡算法史》這本書提到,算法將造就整個21世紀(jì)的人類生活,它是一種工具,其巨大的力量在地球上十分罕見。
4.2 邏輯思維有助于提升算法的能力
我們往往在解決一個問題時,會存在很多種算法,其中有的算法是正確的,有的算法是錯誤的;而在多種正確的算法中,又存在著簡單的算法和復(fù)雜的算法。如何實(shí)現(xiàn)簡單有效的算法,這就需要邏輯思維來提升算法的能力。如通過對數(shù)據(jù)和數(shù)據(jù)之間的相關(guān)性的深入理解,可以直接降低算法的復(fù)雜程度。
5 邏輯思維和算法思維在計算機(jī)領(lǐng)域的重要價值
5.1 從學(xué)習(xí)C語言體會邏輯思維和算法思維的重要性
在學(xué)習(xí)C語言的過程中,可以初步領(lǐng)會到了邏輯思維和算法思維的重要價值。算法思維在編程中具有核心地位,同時算法對邏輯思維的要求是非常高的。首先,算法的實(shí)現(xiàn)是基于計算機(jī)硬件和軟件的協(xié)同工作實(shí)現(xiàn)的。C語言編程與邏輯思維存在著直接和間接的關(guān)系,編程的過程就是在運(yùn)用邏輯思維,編程的結(jié)果是生成一種算法。而這種算法,是基于對要求的理解,分析邏輯關(guān)系之后,形成的算法思維。因此,同樣一道編程題,大家編的程序卻不盡相同,這就是邏輯思維和算法思維的魅力所在。
其次,計算機(jī)程序語言系統(tǒng)本身是一個邏輯系統(tǒng),語言的構(gòu)成是符號,這些符號是相通的,并按照一定的“語法”規(guī)則,實(shí)現(xiàn)各種算法。C語言作為較為基礎(chǔ)的計算機(jī)語言,非常有助于初學(xué)者提高邏輯思維和算法思維,為將來學(xué)習(xí)更多的計算機(jī)語言打下扎實(shí)的基礎(chǔ)。
5.2 邏輯思維和算法思維是計算機(jī)領(lǐng)域創(chuàng)新力的靈魂
在吳軍博士的《數(shù)學(xué)之美》中,介紹了各種各樣的算法和邏輯思想,幾乎每一種新的算法都推動了計算機(jī)應(yīng)用領(lǐng)域的創(chuàng)新和人類社會文明的進(jìn)步。比如:我們現(xiàn)在每天都在使用的地圖點(diǎn)對點(diǎn)尋址,用的關(guān)鍵算法是計算機(jī)科學(xué)圖論中的動態(tài)規(guī)劃Dynamic Programming的算法;我們的指紋信息輸入,現(xiàn)在常用的是Mersenne Twister算法,被譯為馬特賽特旋轉(zhuǎn)演算法;我們的拼音輸入法,用的是維特比算法;搜索網(wǎng)頁用的是圖論中的遍歷算法,利用廣度優(yōu)先算法BFS找到圖邊緣上的每個節(jié)點(diǎn),然后通過深度優(yōu)先算法DFS找到圖內(nèi)的每個點(diǎn),從而可以與每個網(wǎng)頁建立超鏈接;語音輸入用的是隱含馬爾科夫模型,就是利用算法識別語言,解決了機(jī)器翻譯的問題。今天的數(shù)字通信,應(yīng)用的最廣的兩個算法:一個是維特比算法,另一個是賈里尼克和波爾、庫克以及拉維夫的BCJR算法,IBM把它列為有史以來對人類最大貢獻(xiàn)之一。吳軍博士指出,在計算機(jī)中一個好的算法,應(yīng)該簡單、有效、可靠性好而且容易讀懂,或者易操作,而不應(yīng)該是故弄玄虛。
6 計算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生應(yīng)具備的專業(yè)能力和綜合素質(zhì)
基于上述理解,從提升邏輯思維和算法思維的視角,作為一名計算機(jī)科學(xué)與技術(shù)的學(xué)生應(yīng)具備哪些專業(yè)能力和綜合素質(zhì)呢?圖1可以幫助我們?nèi)媪私獗究扑哪暧嬎銠C(jī)類專業(yè)的課程體系,以及展示了計算機(jī)科學(xué)與技術(shù)的學(xué)生應(yīng)該具備的專業(yè)素養(yǎng)和綜合素質(zhì)。
以圖1為參考,下面將從邏輯思維和算法思維的視角,談?wù)動嬎銠C(jī)專業(yè)的學(xué)生應(yīng)具備的專業(yè)能力和綜合素質(zhì)的看法。
6.1 五項專業(yè)能力
所謂專業(yè)能力,是指在某專業(yè)領(lǐng)域的能力或處理專業(yè)領(lǐng)域內(nèi)的事務(wù)的能力。在《專業(yè)的力量》一書中,提到了4項基本功:邏輯與框架能力、講依據(jù)的能力、對標(biāo)的能力、價值輸出的能力。本文認(rèn)為計算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生需要具備的專業(yè)能力是:
一是數(shù)學(xué)化的思維能力。數(shù)學(xué)思維能力,確切地說是數(shù)理邏輯,它能為程序設(shè)計提供強(qiáng)勁的邏輯思維。吳軍博士從清華碩士畢業(yè)后,去了約翰·霍普金斯大學(xué)重新修讀了計算機(jī)碩士課程,其中修讀了不少數(shù)學(xué)課程,這為其后來在語音識別和Google搜索算法設(shè)計打下了扎實(shí)的基礎(chǔ)。
二是融會貫通專業(yè)理論基礎(chǔ)的能力。計算機(jī)組成原理、數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)和編譯原理,這些是所有計算機(jī)學(xué)科的基礎(chǔ),如果不掌握他們,很難寫出高水平的程序。因此,扎實(shí)掌握計算機(jī)基礎(chǔ)理論知識和基本操作技能,才能在實(shí)踐運(yùn)用過程中突破瓶頸。
三是掌握主流算法和創(chuàng)新能力。掌握常用的數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計,有助于算法設(shè)計與分析,才能真正把創(chuàng)新落到實(shí)處。
四是快速學(xué)習(xí)專業(yè)知識的能力。能快速獲取計算機(jī)方面的專業(yè)知識和信息、掌握專業(yè)文獻(xiàn)的快速檢索、獨(dú)立獲取信息和前沿知識,這一點(diǎn)對計算機(jī)類的學(xué)生尤為重要。
五是熟練掌握外語能力。計算機(jī)軟硬件技術(shù)更新非常快,而很多最新的信息來自英語國家,因此熟練掌握外語,可以掃除語言障礙,在第一時間學(xué)習(xí)到國外專業(yè)領(lǐng)域的前沿。
6.2 五項綜合素質(zhì)
專業(yè)能力的發(fā)揮,離不開優(yōu)秀的綜合素質(zhì)。本文認(rèn)為計算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生需要具備以下綜合素質(zhì):
一是優(yōu)秀的職業(yè)操守。這一點(diǎn)最重要。新興科技就像是水,而對社會的利弊是舟,水能載舟,亦能覆舟。我們要將計算機(jī)專業(yè)知識運(yùn)用到對社會有益的地方。
二是堅韌不拔的意志品質(zhì)。無論是邏輯還是算法,都是一種思維創(chuàng)造,創(chuàng)新都是艱苦的,因此具備良好的韌性和毅力是必不可少的。
三是跨界融合(Crossover)的理念。程序設(shè)計到一定程度是一門藝術(shù),閉門造車,只會陷入紙上談兵,因此具備一定的藝術(shù)修養(yǎng)、人文素養(yǎng)、自然科學(xué)、信息科學(xué)、經(jīng)濟(jì)學(xué)原理等跨學(xué)科的知識,有助于我們將計算機(jī)技術(shù)運(yùn)用到交叉學(xué)科領(lǐng)域。2019年3月,斯坦福大學(xué)宣布成立人工智能學(xué)院,同年12月MIT麻省理工學(xué)院重組了電氣工程與計算機(jī)科學(xué)系,斯坦福大學(xué)人工智能學(xué)院招收經(jīng)濟(jì)、基因?qū)W、法律、文學(xué)、哲學(xué)等至少20名教授到人工智能和計算機(jī)科學(xué)領(lǐng)域。這從一定程度上說明了,社會需要計算機(jī)類學(xué)生學(xué)習(xí)交叉學(xué)科,學(xué)校的重組正迎合了社會對計算機(jī)專業(yè)人才的需求。
四是換位思考的胸懷。計算機(jī)應(yīng)用的需求通常來自非專業(yè)的企業(yè)或客戶,這就需要我們站在對方的角度,更好地理解他們的需求,同時懂得把直白的需求,轉(zhuǎn)換成專業(yè)的計算機(jī)語言。此外,在項目實(shí)踐中,計算機(jī)項目更多的是團(tuán)隊合作,因此換位思考,與合作者建立良好溝通協(xié)調(diào)關(guān)系,也是必備的素質(zhì)。
五是終身學(xué)習(xí)的習(xí)慣和勤奮努力。計算機(jī)領(lǐng)域的知識日新月異,需要我們養(yǎng)成終身學(xué)習(xí)的習(xí)慣,才不會被淘汰,而終身學(xué)習(xí)與一個人的努力勤奮程度是正相關(guān)的。
7 結(jié)束語
本文通過從邏輯思維和算法思維的概念入手,揭示了兩者之間的本質(zhì)聯(lián)系,并提出它們對計算機(jī)領(lǐng)域的重要價值,在此基礎(chǔ)上,研究分析計算機(jī)科學(xué)與技術(shù)的學(xué)生應(yīng)具備的五項專業(yè)能力和五項綜合素質(zhì),它們分別是:數(shù)學(xué)化的思維能力、融會貫通專業(yè)理論基礎(chǔ)的能力、掌握主流算法和創(chuàng)新的能力、快速學(xué)習(xí)專業(yè)知識的能力、熟練掌握外語的能力;優(yōu)秀的職業(yè)操守、堅韌不拔的意志品質(zhì)、跨界融合的理念、換位思考的胸懷、終生學(xué)習(xí)的習(xí)慣和勤奮。
參考文獻(xiàn):
[1] Vivienne Walt.這所編程學(xué)校能夠解決就業(yè)問題嗎?[J].財富(中文版),2019(301):61-62.
[2] 呂克·德·布拉班迪爾.任軼譯.極簡算法史:從數(shù)學(xué)到機(jī)器的故事[M].北京:人民郵電出版社,2019.
[3] 吳軍.數(shù)學(xué)之美[M].2版.北京:人民郵電出版社,2014.
[4] 吳軍.大學(xué)之路:陪女兒在美國選大學(xué)[M].北京:人民郵電出版社,2015.
[5] 徐志偉,孫曉明.計算機(jī)科學(xué)導(dǎo)論[M].北京:清華大學(xué)出版社,2018.
[6] 徐子珊.趣題學(xué)算法[M].北京:人民郵電出版社,2017.
【通聯(lián)編輯:唐一東】