好課推薦-以計(jì)算機(jī)的思維看世界讽挟。
讀史使人明智,讀詩(shī)使人靈秀,數(shù)學(xué)使人周密,科學(xué)使人深刻,倫理學(xué)使人莊重,邏輯修辭之學(xué)使人善辯:凡有所學(xué),皆成性格.——培根
又是一年開學(xué)季向拆,可愛(ài)的小侄女已經(jīng)要面臨升學(xué)的壓力了产园,老哥讓我?guī)兔ψ鍪鑼?dǎo),索性在這里聊聊專業(yè)對(duì)個(gè)人的影響好了。開篇之前,先給大家安利一本書《果殼教你選專業(yè)》里面收錄了師兄師姐們讀專業(yè)的切身感受彭羹,也繼承了果殼以往的幽默詼諧外帶點(diǎn)小毒舌卻不失專業(yè)和嚴(yán)謹(jǐn)?shù)娘L(fēng)格,對(duì)學(xué)校等相關(guān)信息的收集也都比較全面泪酱,打算轉(zhuǎn)專業(yè)或者報(bào)考學(xué)校的朋友看看應(yīng)該是不錯(cuò)的參考派殷。言歸正傳还最,今天就先聊聊計(jì)算機(jī)專業(yè)的重要思維及其對(duì)個(gè)人思考模式的影響吧。
一毡惜、個(gè)人應(yīng)當(dāng)具備的三種思維:
1拓轻、以化學(xué)學(xué)科為代表的實(shí)驗(yàn)思維(觀察與歸納):實(shí)驗(yàn)-->觀察-->發(fā)現(xiàn)、推斷與總結(jié)
2经伙、以數(shù)學(xué)學(xué)科為代表的理論思維(推理和演繹):假設(shè)扶叉、預(yù)設(shè)-->定義、性質(zhì)帕膜、定理-->證明
3枣氧、以計(jì)算學(xué)科為代表的計(jì)算思維(設(shè)計(jì)與構(gòu)造):設(shè)計(jì)、構(gòu)造與計(jì)算——計(jì)算思維也是一種遞歸的思維
二垮刹、計(jì)算思維的本質(zhì):
計(jì)算機(jī)思維:計(jì)算機(jī)是如何工作的达吞?
利用計(jì)算機(jī)思維:現(xiàn)實(shí)世界的各種事物能如何利用計(jì)算機(jī)來(lái)進(jìn)行控制和處理?
計(jì)算思維:本質(zhì)是抽象和自動(dòng)化荒典。即運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念去求解問(wèn)題酪劫、設(shè)計(jì)系統(tǒng)和理解人類行為。即計(jì)算思維的學(xué)習(xí)寺董,不僅僅是會(huì)不會(huì)用計(jì)算機(jī)的問(wèn)題覆糟,而是會(huì)不會(huì)利用計(jì)算思維來(lái)解決身邊的或者社會(huì)、自然問(wèn)題的問(wèn)題遮咖。
數(shù)學(xué)學(xué)科和計(jì)算學(xué)科的區(qū)別
數(shù)學(xué)學(xué)科研究:如何用數(shù)學(xué)方法(函數(shù))表達(dá)一種現(xiàn)象滩字,并研究出來(lái)一種計(jì)算規(guī)則將這些函數(shù)的值計(jì)算出來(lái)。主要還是人來(lái)利用規(guī)則
計(jì)算學(xué)科:利用簡(jiǎn)單計(jì)算規(guī)則求解復(fù)雜計(jì)算盯滚,主要是機(jī)器利用規(guī)則解放人踢械。
三、計(jì)算技術(shù)的奠基性思維及對(duì)個(gè)人的影響魄藕。
0和1思維 本質(zhì):符號(hào)化--> 計(jì)算化--> 自動(dòng)化
1内列、語(yǔ)義符號(hào)化(現(xiàn)實(shí)生活可以用0和1來(lái)表示)--> 2、符號(hào)運(yùn)算化(用0和1表示后背率,這些符號(hào)可以進(jìn)行算數(shù)與邏輯運(yùn)算)-->3话瞧、運(yùn)算0、1化 -->4寝姿、 0交排、1自動(dòng)化(0和1的計(jì)算可以用電子技術(shù)如基本門電路實(shí)現(xiàn))-->5、分層構(gòu)造化(變簡(jiǎn)單的門電路為組合邏輯電路以完成一系列復(fù)雜操作)-->6饵筑、構(gòu)造集成化
what易經(jīng):是研究自然現(xiàn)象及其變化規(guī)律的埃篓,從自然現(xiàn)象推導(dǎo)出人事現(xiàn)象及其他現(xiàn)象是否有規(guī)律的
how:將現(xiàn)象抽象為符號(hào),進(jìn)行符號(hào)組合根资,利用符號(hào)組合表達(dá)自然現(xiàn)象架专。
符號(hào)化的關(guān)鍵:區(qū)分與命名——其術(shù)語(yǔ)體系同窘。
符號(hào)化的目的:基于符號(hào)的演算——符號(hào)組合
由“易經(jīng)”看“符號(hào)化及符號(hào)計(jì)算”:自然、社會(huì)現(xiàn)象-->(通過(guò)符號(hào)化后)-->0部脚、1及其組合-->(通過(guò)計(jì)算化后)-->0想邦、1組合變化;基于0委刘、1的計(jì)算-->(通過(guò)再語(yǔ)義化后)-->自然丧没、社會(huì)現(xiàn)象變化規(guī)律
2.3、計(jì)算0锡移、1化
轉(zhuǎn)為二進(jìn)制+編碼呕童,原碼、反碼淆珊、補(bǔ)碼拉庵。
使用補(bǔ)碼可以使減法變成加法,讓符號(hào)也參與計(jì)算套蒂。機(jī)器可以采用移位都方法進(jìn)行乘法除法運(yùn)算,左移為乘茫蛹。
2.5操刀、分層構(gòu)造化
低層電路已驗(yàn)證正確,可被封裝起來(lái)婴洼,用已封裝的驗(yàn)證的低層電路可構(gòu)造更為復(fù)雜的高層電路骨坑;如此一層一層構(gòu)造
3 程序思維 與遞歸思維
注意:程序是構(gòu)造出來(lái)的!而不是編寫出來(lái)的柬采!程序構(gòu)造的手段包括組合欢唾、抽象與遞歸
計(jì)算系統(tǒng)與程序——程序的作用和本質(zhì)
指令:對(duì)可執(zhí)行基本動(dòng)作的抽象,即控制基本動(dòng)作執(zhí)行的命令粉捻,(外界可以通過(guò)指令來(lái)調(diào)用封裝了的基本動(dòng)作)
程序:由基本動(dòng)作指令構(gòu)造的礁遣,若干指令的一個(gè)組合或一個(gè)執(zhí)行序列,用以實(shí)現(xiàn)復(fù)雜動(dòng)作肩刃。
程序執(zhí)行機(jī)構(gòu):自動(dòng)解釋程序中的各種組合祟霍,并按次序調(diào)用指令(基本動(dòng)作)予以執(zhí)行。
計(jì)算系統(tǒng)=基本動(dòng)作+指令+程序執(zhí)行機(jī)構(gòu)
組合:對(duì)基本動(dòng)作通過(guò)一些基本的運(yùn)算盈包,進(jìn)行各種各樣的構(gòu)造
抽象:將經(jīng)常使用的沸呐、可由低層次系統(tǒng)實(shí)現(xiàn)的一些復(fù)雜動(dòng)作,進(jìn)行命名呢燥,以作為高層次系統(tǒng)共的指令被使用崭添。
程序的本質(zhì):組合、 抽象叛氨、構(gòu)造
遞歸(這里有點(diǎn)不熟需要再加強(qiáng)下):不斷重復(fù)的執(zhí)行一些相似性表達(dá)呼渣。用遞歸定義棘伴,用遞歸構(gòu)造,用遞歸計(jì)算或執(zhí)行——算法設(shè)計(jì)分析的關(guān)鍵
遞歸計(jì)算:由后向前帶入徙邻,再由前向后計(jì)算排嫌。
迭代(遞推):可以自遞歸基礎(chǔ)開始,由前向后依次計(jì)算或直接計(jì)算
遞歸:可以自遞歸基礎(chǔ)開始缰犁,由前向后依次計(jì)算或直接計(jì)算淳地;但有些,只能由后向前帶入帅容,直到遞歸基礎(chǔ)颇象,尋找一條路徑,然后再由前向后計(jì)算
遞歸是計(jì)算技術(shù)的典型特征并徘,是以有限的表達(dá)方式來(lái)表達(dá)無(wú)限對(duì)象實(shí)例或無(wú)限計(jì)算步驟的一種經(jīng)典的計(jì)算思維
遞歸函數(shù)是可計(jì)算函數(shù)的精確的數(shù)學(xué)描述---計(jì)算理論的重 計(jì)算理論的重要研究?jī)?nèi)容遣钳;
圖靈機(jī)本質(zhì)上也是遞歸:圖靈可計(jì)算函數(shù) 圖靈機(jī)本質(zhì)上也是遞歸:圖靈可計(jì)算函數(shù)與遞歸函數(shù)等價(jià),凡可計(jì)算的函數(shù)都是一般遞歸函數(shù) 與遞歸函數(shù)等價(jià)麦乞,凡可計(jì)算的函數(shù)都是一般遞歸函數(shù)--- 丘奇-圖靈命題 圖靈命題---計(jì)算理論的重要研究?jī)?nèi)容蕴茴;
小結(jié):計(jì)算學(xué)科的一個(gè)重要任務(wù)就是構(gòu)造計(jì)算系統(tǒng)(包括軟件系統(tǒng)和硬件系統(tǒng)),而構(gòu)造計(jì)算系統(tǒng)的關(guān)鍵就是程序姐直,程序是體現(xiàn)計(jì)算系統(tǒng)千變?nèi)f化的重要手段倦淀。因此我們可以說(shuō)計(jì)算系統(tǒng)就是執(zhí)行程序的系統(tǒng)。程序就是對(duì)控制系統(tǒng)基本動(dòng)作的指令声畏,進(jìn)行組合撞叽、抽象與構(gòu)造 ,以便使系統(tǒng)完成一些列的功能插龄。而組合是將一些列動(dòng)作帶入到另一個(gè)動(dòng)作中進(jìn)而構(gòu)造出復(fù)雜的動(dòng)作愿棋。eg一個(gè)復(fù)雜的表達(dá)式是由一系列簡(jiǎn)單的表達(dá)式組合起來(lái)構(gòu)成的。函數(shù)之間的調(diào)用關(guān)系均牢,體現(xiàn)的就是一種組合糠雨。抽象就是對(duì)已經(jīng)構(gòu)造好的組合進(jìn)行命名,然后用這個(gè)名字參與新的構(gòu)造膨处。抽象是簡(jiǎn)化構(gòu)造的一種手段见秤。
幾點(diǎn)結(jié)論 : (1) 圖靈機(jī)是一種思想模型,它由一個(gè)控制 器(有限狀態(tài)轉(zhuǎn)換器)真椿,一條可無(wú)限延伸的帶 子和一個(gè)在帶子上左右移動(dòng)的讀寫頭構(gòu)成鹃答。 (2) 程序是五元組 形式的指令集。其定義了機(jī)器在一個(gè)特定 狀態(tài) q下從方格中讀入一個(gè)特定字符 X時(shí)所采 取的動(dòng)作為在該方格中寫入符號(hào)Y, 然后向右 移一格R (或向左移一格 L或不移動(dòng)N), 同時(shí) 將機(jī)器狀態(tài)設(shè)為 p供下一條指令使用(3)圖靈機(jī)模型被認(rèn)為是計(jì)算機(jī)的基本理論模型 ----計(jì)算機(jī)是使用相應(yīng)的程序來(lái)完成任何設(shè)定好的任務(wù)突硝。圖靈機(jī)是一種離散的测摔、有 窮的、構(gòu)造性的問(wèn)題求解思路,一個(gè)問(wèn)題的求解可以通過(guò)構(gòu)造其圖靈機(jī)(即程 序)來(lái)解決锋八。 ?(4)圖靈認(rèn)為:凡是能用算法方法解決的問(wèn)題也一定能用圖靈機(jī)解決; 凡是 圖靈機(jī)解決不了的問(wèn)題任何算法也解決不了----圖靈可計(jì)算性問(wèn)題浙于。
4.1 馮.諾伊曼機(jī)的基本思想 :
? 運(yùn)算 和 存儲(chǔ) 分離:解決了程序裝載在內(nèi)存,如何被cpu執(zhí)行的問(wèn)題
? 存儲(chǔ)程序 : 指令和數(shù)據(jù)以同等地位事先 存于存儲(chǔ)器, 可按地址尋訪, ?連續(xù)自動(dòng)執(zhí)行挟纱。指令和數(shù)據(jù)用 二進(jìn)制 表示羞酗,指令由操作碼(執(zhí)行什么樣的運(yùn)算)和地址碼(操作中的數(shù)據(jù)來(lái)源)組成
?五大部件構(gòu)成: 運(yùn)算器 、 控制器 紊服、 存儲(chǔ)器 檀轨、 輸入設(shè)備 和 輸出設(shè)備
以運(yùn)算器為中心,控制器負(fù)責(zé)解釋指令欺嗤,運(yùn)算器負(fù)責(zé)執(zhí)行指令?以運(yùn)算器為中心参萄,控制器負(fù)責(zé)解釋指令,運(yùn)算器負(fù)責(zé)執(zhí)行指令
運(yùn)算器=(數(shù)據(jù))寄存器+算術(shù)邏輯部件
控制器=程序計(jì)數(shù)器PC(用于存儲(chǔ)下一條要執(zhí)行的指令的地址)+指令寄存器IR(用于唇齒當(dāng)前指令的內(nèi)容)+信號(hào)控制器+時(shí)鐘與信號(hào)發(fā)生器
4.2 自動(dòng)存取——存儲(chǔ)容量與地址空間和字長(zhǎng)有關(guān)煎饼。
5 現(xiàn)代計(jì)算機(jī)系統(tǒng)(個(gè)人計(jì)算機(jī)的本質(zhì):也是馮諾依曼計(jì)算機(jī)讹挎,解決的了程序裝在外存如何被載入內(nèi)存)
5.1 構(gòu)成:硬件、軟件吆玖、數(shù)據(jù)筒溃、網(wǎng)絡(luò)
工作思維:存儲(chǔ)體系-->磁盤存取-->操作系統(tǒng)-->作業(yè)與進(jìn)程->程序執(zhí)行的管理與控制;資源組合利用體系化沾乘、管理分工合作協(xié)同化铡羡、外存程序內(nèi)存進(jìn)程化、硬件不足功能軟件化
5.2 存儲(chǔ)體系(核心:不同性能資源的組合優(yōu)化)
意義:解決存儲(chǔ)器的永久存儲(chǔ)問(wèn)題意鲸,存儲(chǔ)容量問(wèn)題,存儲(chǔ)速度問(wèn)題及存儲(chǔ)器價(jià)格問(wèn)題尽爆。
方式:內(nèi)存+外存
5.3 分工合作與協(xié)同管理思想——化解復(fù)雜問(wèn)題怎顾,進(jìn)行復(fù)雜問(wèn)題求解的重要思想
操作系統(tǒng)(Operating System:OS) 是控制和管理計(jì)算機(jī)系統(tǒng)各種資源( 硬件資源、軟件資源和信息資源) 漱贱、合理組織計(jì)算機(jī)系統(tǒng)工作流程槐雾、提供用戶與計(jì)算機(jī)之間接口以解釋用戶對(duì)機(jī)器的各種操作需求并完成這些操作的一組程序集合,是最基本幅狮、最重要的系統(tǒng)軟件募强。
操作系統(tǒng)的作用:
操作系統(tǒng)是用戶與計(jì)算機(jī)硬件之間的接口 。
操作系統(tǒng)為用戶提供了虛擬機(jī)(Virtual Machine)崇摄。 擎值。
操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)的資源管理者
操作系統(tǒng)是如何實(shí)現(xiàn)復(fù)雜性控制的?
1逐抑、分工:獨(dú)立管理復(fù)雜環(huán)境中的每個(gè)部件 eg:磁盤管理——管理磁盤信息的讀寫鸠儿;內(nèi)存空間館里——管理內(nèi)存空間的分配與回收;cpu管理——調(diào)度cpu去執(zhí)行哪一個(gè)程序
5.4 磁盤管理:化整為零,還零為整的思想——通過(guò)文件进每、磁盤塊汹粤、文件夾、文件分配表共同完成
文件分配表FAT:存儲(chǔ)文件在磁盤塊之間的鏈接信息
2田晚、合作:以任務(wù)為驅(qū)動(dòng)嘱兼,中心任務(wù):讓計(jì)算機(jī)(cpu)執(zhí)行存儲(chǔ)在外存上的程序。(這么些獨(dú)立管理的目的)贤徒,因此需要各部件合作完成任務(wù)芹壕,這就產(chǎn)生了任務(wù)、作業(yè)與進(jìn)城管理——管理一個(gè)程序執(zhí)行中的各項(xiàng)工作泞莉。
3哪雕、協(xié)同:當(dāng)基本的合作解決以后,關(guān)鍵就是協(xié)同鲫趁,協(xié)同體現(xiàn)了自動(dòng)化和最優(yōu)化
1斯嚎、為什么需要計(jì)算機(jī)語(yǔ)言?
進(jìn)行問(wèn)題求解挨厚,首先要有解決問(wèn)題的步驟(即算法)堡僻,而計(jì)算機(jī)能夠理解的解決問(wèn)題的步驟被稱為程序,而計(jì)算機(jī)語(yǔ)言就是算法與機(jī)器能夠理解的程序的橋梁 疫剃,他是人和計(jì)算機(jī)都能理解的語(yǔ)言
2钉疫、機(jī)器語(yǔ)言發(fā)展史(計(jì)算機(jī)能夠理解并執(zhí)行什么?)
指令系統(tǒng)(cpu中的微處理器<中央處理單元>)cpu用二進(jìn)制和編碼提供了可以解釋并執(zhí)行的命令集合
機(jī)器語(yǔ)言:(所有的程序都需要轉(zhuǎn)換成機(jī)器語(yǔ)言程序計(jì)算機(jī)才能執(zhí)行)用二進(jìn)制和編碼方式提供的指令系統(tǒng)所編寫程序的語(yǔ)言
3巢价、怎樣解決機(jī)器語(yǔ)言編寫程序所存在的困難牲阁?——高級(jí)語(yǔ)言產(chǎn)生
匯編語(yǔ)言(核心:助記符);執(zhí)行過(guò)程:用符號(hào)編寫程序(匯編語(yǔ)言源程序)-->翻譯程序(匯編程序)-->機(jī)器語(yǔ)言程序
高級(jí)語(yǔ)言:用類似自然語(yǔ)言的語(yǔ)句編寫程序(高級(jí)語(yǔ)言源程序)-->編譯程序-->匯編語(yǔ)言-->機(jī)器語(yǔ)言程序
高級(jí)語(yǔ)言和匯編語(yǔ)言的差別:與機(jī)器的相關(guān)性
用高級(jí)語(yǔ)言進(jìn)行問(wèn)題求解的過(guò)程:(本質(zhì)還是體現(xiàn)了自動(dòng)化)
7 算法(組合優(yōu)化問(wèn)題是計(jì)算學(xué)科需要求解的典型問(wèn)題)
算法類問(wèn)題求解的一般步驟
問(wèn)題抽象及數(shù)學(xué)建模:將問(wèn)題抽象為一個(gè)數(shù)學(xué)問(wèn)題壤躲,并給出求解該數(shù)學(xué)問(wèn)題的算法模型城菊。
算法策略設(shè)計(jì)
算法的數(shù)據(jù)結(jié)構(gòu)和控制結(jié)構(gòu)設(shè)計(jì):將數(shù)學(xué)模型轉(zhuǎn)換為可由計(jì)算機(jī)自動(dòng)計(jì)算的算法。
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(邏輯結(jié)構(gòu)+存儲(chǔ)結(jié)構(gòu))——如何將數(shù)學(xué)模型中的數(shù)據(jù)轉(zhuǎn)為計(jì)算機(jī)可以存儲(chǔ)和處理的數(shù)據(jù)碉克?
控制結(jié)構(gòu)設(shè)計(jì)——如何構(gòu)造和表達(dá)處理的規(guī)則凌唬,以便能夠按規(guī)則逐步計(jì)算出結(jié)果。
算法的實(shí)現(xiàn):用程序設(shè)計(jì)語(yǔ)言編寫算法實(shí)現(xiàn)的程序漏麦。
算法的分析:分析算法的正確性和復(fù)雜性客税,判斷能行性!
基本算法——排序算法
結(jié)構(gòu)化數(shù)據(jù)表的查找與統(tǒng)計(jì):對(duì)數(shù)據(jù)集合需要多遍處理時(shí)撕贞,先排序更耻,可以減小遍歷次數(shù)。
非結(jié)構(gòu)化數(shù)據(jù)(文檔類)——倒排建立索引:一個(gè)詞匯包含在哪些文檔中
聲明:本文部分內(nèi)容節(jié)選自《大學(xué)計(jì)算機(jī)—計(jì)算思維導(dǎo)論 》
課程名稱:《大學(xué)計(jì)算機(jī)—計(jì)算思維導(dǎo)論 》
授課方:哈爾濱工業(yè)大學(xué) 戰(zhàn)德臣捏膨、張麗杰酥夭、聶蘭順、靳玉萍
個(gè)人聽課感受:特別棒的一門課,不拘泥于細(xì)節(jié)熬北,從系統(tǒng)和宏觀的角度來(lái)幫助理解計(jì)算機(jī)學(xué)科
課程大綱:
大學(xué)計(jì)算機(jī)課程應(yīng)圍繞著大學(xué)計(jì)算思維教育空間-計(jì)算之樹疙描,進(jìn)行內(nèi)容的組織和學(xué)習(xí)。
(I)計(jì)算與程序讶隐,主要講授計(jì)算與計(jì)算思維起胰,符號(hào)化、計(jì)算化和自動(dòng)化巫延,計(jì)算系統(tǒng)與程序構(gòu)造效五,程序構(gòu)造方法:遞歸與迭代,這些是由社會(huì)/自然到計(jì)算的炉峰、最基本的抽象和自動(dòng)化機(jī)制畏妖;
(II)計(jì)算系統(tǒng),主要講授程序是如何被執(zhí)行的疼阔,包括內(nèi)存環(huán)境下程序的執(zhí)行和復(fù)雜環(huán)境下借助于操作系統(tǒng)管理的程序的執(zhí)行戒劫,以及如何編寫讓計(jì)算系統(tǒng)可以執(zhí)行的程序;
(III)算法思維婆廊,主要講授算法類問(wèn)題求解框架-問(wèn)題與數(shù)學(xué)建模迅细、算法策略設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)和控制結(jié)構(gòu)以及算法復(fù)雜性與正確性淘邻,還將以案例形式介紹由問(wèn)題到環(huán)境茵典,再到受限資源約束下的問(wèn)題求解算法,以及難解性問(wèn)題宾舅、計(jì)算和算法之間的關(guān)系等统阿;
(IV)數(shù)據(jù)化與網(wǎng)絡(luò)化思維。數(shù)據(jù)化思維即:數(shù)據(jù)獲取==>數(shù)據(jù)管理==>數(shù)據(jù)分析與運(yùn)用筹我;網(wǎng)絡(luò)化思維即:機(jī)器網(wǎng)絡(luò)==>信息網(wǎng)絡(luò)==>群體互動(dòng)網(wǎng)絡(luò)==>網(wǎng)絡(luò)化社會(huì)砂吞。