程序設計思想與方法_第1頁
程序設計思想與方法_第2頁
程序設計思想與方法_第3頁
程序設計思想與方法_第4頁
程序設計思想與方法_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

教師信息辦公地點:電院樓群3號樓519室電話:34205060轉602E-mail dong-xj@ xjdong@網址 /~xiaoju/CT1程序設計思想與方法全文共47頁,當前為第1頁。助教靳陽jyjz2008@作業

請確定通過Python驗證后發給助教

每個星期三晚上12點之前2程序設計思想與方法全文共47頁,當前為第2頁。課程信息教材《程序設計思想與方法——問題求解與計算思維》高教出版社,2013參考書PythonProgramming:AnIntroductiontoComputerScience.(電子版)

HowtoThinkLikeaComputerScientist—LearningwithPython.(電子版)

/thinkCSpy/Python學習手冊3程序設計思想與方法全文共47頁,當前為第3頁。課程信息下載python軟件的地址

/ cs190c:textsoft09

4程序設計思想與方法全文共47頁,當前為第4頁。教學方式課堂教學-每星期四3,4節講課,演示機房上機雙周周一1,2節,電院4號樓311教室完成當天上機作業并提交答疑

5程序設計思想與方法全文共47頁,當前為第5頁。66考核方式期末考試筆試,占最終成績的50%平時作業編一些小程序,郵件或ftp上傳給助教,占最終成績的20%大作業編一個大程序,期末提交,占最終成績的30%6程序設計思想與方法全文共47頁,當前為第6頁。第1章計算與計算思維程序設計思想與方法全文共47頁,當前為第7頁。計算機:硬件(1)8主存儲器CPU輸入設備輸出設備次級存儲器程序設計思想與方法全文共47頁,當前為第8頁。計算機:硬件(2)中央處理器(CPU):執行指令每條指令只能完成簡單的操作!例如:加法,比較,移動,etc.但按一定的次序執行大量簡單指令能完成復雜任務!存儲器:存儲信息(程序和數據)主存:

CPU能直接訪問,速度快但易失次級存儲器:速度慢但持久輸入/輸出設備:人機交互99程序設計思想與方法全文共47頁,當前為第9頁。101010計算機:軟件計算機是信息處理機器,信息處理過程由預定的程序控制.單條指令是做不了什么事情的,需要大量指令組成一個逐步執行的指令序列,即程序.各種程序統稱為計算機軟件.沒有軟件的計算機毫無用處.10程序設計思想與方法全文共47頁,當前為第10頁。計算計算:利用計算機執行程序來解決問題.不是狹義的數學計算!程序使得簡單指令能完成復雜任務.問:只會加法的小學生能完成乘法運算任務嗎?答:能!關鍵是編寫合適的程序

在紙上寫下0,記住結果;給所記結果加上第1個n,記住結果;給所記結果加上第2個n,記住結果;

……給所記結果加上第m個n,記住結果;報告結果(即m×n)1111程序設計思想與方法全文共47頁,當前為第11頁。通用計算機計算機執行一個程序即可實現一個功能;換著執行不同的程序即可實現不同的功能.例如:word,mediaplayer,錄音機,etc通用計算機:可以加載不同的程序來執行.與一些電器的比較電視機:功能單一洗衣機:功能較多(可加載多種洗滌程序)手機:功能更多,基本上就是計算機.12程序設計思想與方法全文共47頁,當前為第12頁。計算機科學并非研究計算機!計算機之于計算機科學家正如望遠鏡之于天文學家.(E.W.Dijkstra)CS研究計算的基礎,實現與應用.例如,CS的一個基本問題:什么是可計算的?本課程的目標:像計算機科學家一樣思考1313程序設計思想與方法全文共47頁,當前為第13頁。程序設計計算的關鍵是程序設計(編程).給定一個問題,利用計算機支持的簡單操作,設計出一個操作步驟的序列,計算機執行這個序列從而解決問題.學習程序設計的好處:做計算機的主人提高問題求解能力本身是很有樂趣的智力活動14程序設計思想與方法全文共47頁,當前為第14頁。程序設計語言問:用什么語言告訴計算機做什么?答:用精確無歧義的程序設計語言.精確的語法和語義(形式和意義)1515程序設計思想與方法全文共47頁,當前為第15頁。程序設計語言有不同層次的程序設計語言計算機的“母語”:

機器語言例如:0000010000000001.是Intel8086能理解的一條指令將機器語言用助憶符表示:匯編語言上例即:ADDAL,1.需要匯編器處理后機器才懂適合人用的語言:

高級語言如:x=y+1.需要編譯器或解釋器翻譯后機器才懂1616程序設計思想與方法全文共47頁,當前為第16頁。程序設計語言高級語言的翻譯編譯

源代碼編譯成目標代碼,再執行

一次編譯,多次執行.解釋

源代碼直接被解釋執行

每次執行都要重新解釋.1717程序設計思想與方法全文共47頁,當前為第17頁。編譯vs解釋思考:為什么高級語言程序具有可移植性,即同一個程序可以在不同廠商的計算機上執行?18程序設計思想與方法全文共47頁,當前為第18頁。算法與編碼實現程序設計先用非形式化的語言將問題求解步驟表達出來——算法;偽代碼再用形式化的編程語言將上述算法實現——程序代碼19程序設計思想與方法全文共47頁,當前為第19頁。算法例:歐幾里德算法歐幾里德算法:求最大公約數.輸入:自然數a,b輸出:a,b的最大公約數步驟:第1步:令r為a除以b所得余數第2步:若r=0,則算法結束,

b即為答案

否則置a←b,b←r,轉到第1步.20程序設計思想與方法全文共47頁,當前為第20頁。對算法的要求算法的每個步驟必須是明確的,可行的.不明確:"在菜中放點鹽"不可行:"用青菜豆腐做出龍肝鳳髓的美味"每個步驟不必是最底層的瑣細步驟,可以是組合的高級步驟.如:"焯水"算法的所有步驟必須在有限時間內完成.我們說的計算,即是指"算法計算":用明確可行的基本步驟組成的序列來解決問題.21程序設計思想與方法全文共47頁,當前為第21頁。222222計算思維計算思維(computationalthinkin計算機科學家利用計算機(計算過程)解決問題時的思想和方法計算機科學(CS)是關于“計算”的科學如何像計算機科學家一樣思考?22程序設計思想與方法全文共47頁,當前為第22頁。23真的有計算思維嗎?人們在解決不同問題時有不同的思考方式數學思維:解數學問題工程思維:工程設計形象思維:文學創作......計算思維:建立在計算機的能力與局限之上.由于計算機的廣泛應用,計算思維未來會成為人們的基本能力.與閱讀,書寫,算術能力一樣!程序設計思想與方法全文共47頁,當前為第23頁。計算思維例:問題表示問題的表示(建模)抽象:將現實中的各種數量關系,空間關系,處理過程抽象為計算機的數據結構和控制結構例如:溫度數據抽象為數值還是文字?不同抽象層次問題表示得合適與否直接影響問題的解法的發現和效率24程序設計思想與方法全文共47頁,當前為第24頁。計算思維例:算法設計化難為易:

分解,約簡,嵌入,轉換,模擬…分治法,遞歸法,貪心法,動態規劃...遞歸地思考并行處理25程序設計思想與方法全文共47頁,當前為第25頁。計算思維例:編程實現類型系統與類型檢查結構化與模塊化的思考編程范型:過程式,面向對象,函數式,...程序美學,系統設計的簡潔與優雅26程序設計思想與方法全文共47頁,當前為第26頁。計算思維例:計算理論算法復雜度分析問題的解法是有效率差別的有些問題是難解的尋求近似解問題的可計算性有些問題是不可計算的27程序設計思想與方法全文共47頁,當前為第27頁。計算思維例:其他預取和緩存對最壞情況的預防,保護,恢復啟發式推理時空等不可兼得要素的權衡……28程序設計思想與方法全文共47頁,當前為第28頁。計算思維的特點是概念化思考,而非編程是基本思考能力,而非機械的套用是人的思考,而非計算機與數學思維和工程思維相結合是思想,而非人造物人人皆有,處處皆是29程序設計思想與方法全文共47頁,當前為第29頁。生活中的計算思維算法:最大公約數查找方法:查黃頁是順序翻找還是借助索引排序:整理撲克牌排隊:先來先處理預取與緩存:書包存放當天上課用的書并行處理:燒菜……30程序設計思想與方法全文共47頁,當前為第30頁。計算+X計算數學,計算幾何,自動定理證明計算物理學計算化學計算生物學,生物信息學計算經濟學計算機藝術:電影特效,計算機作曲繪畫書法……31程序設計思想與方法全文共47頁,當前為第31頁。計算+X:十二五863計劃征集重大應用軟件課題聚變與裂變能源數值模擬真實飛機外型全流場和優化設計數值模擬航天飛行器全飛行流域數值模擬新藥研發與蛋白質折疊數值模擬真實感動漫渲染與創作大型工程設備結構力學分析復雜電磁環境數值模擬新型材料設計與性能評估32程序設計思想與方法全文共47頁,當前為第32頁。2013年諾貝爾化學獎多尺度復雜化學系統模型:在多尺度模型的輔助下,化學家們讓計算機“做幫手”來揭示化學過程.諾貝爾化學獎評選委員會:對化學家來說,計算機是同試管一樣重要的工具,計算機對真實生命的模擬已為化學領域大部分研究成果的取得立下了“汗馬功勞”LuChaojun,SJTU3333程序設計思想與方法全文共47頁,當前為第33頁。本課程的定位學習利用計算機解決問題的思想方法,應用于其他專業領域不是程序設計語言課程!編程是計算思維的實踐壞消息:學習編程語言需要掌握非常繁瑣的細節好消息:Python語言非常簡單,易學易用不是算法和數據結構課程!會學習一些基本的知識34程序設計思想與方法全文共47頁,當前為第34頁。本課程的定位(續)計算機科學程序設計語言算法設計與分析數據結構理,化,生...經,管,金融...工程數學藝術計算思維可計算性理論35程序設計思想與方法全文共47頁,當前為第35頁。Python語言荷蘭人GuidovanRossum于1980年代發明.通用/跨平臺/開源/自由(免費)簡單易學,高度的可讀性支持多種編程范型編譯+解釋

源代碼先編譯成字節碼,再解釋執行36程序設計思想與方法全文共47頁,當前為第36頁。Python語言流行編程語言前10名之一(當前第8位)/index.php/content/paperinfo/tpci/index.html

LuChaojun,SJTU3737程序設計思想與方法全文共47頁,當前為第37頁。Python安裝與運行版本:教材和上課都采用Python2.7與最新的Python3.x有不兼容的地方.安裝后,啟動Python解釋器命令行GUI38程序設計思想與方法全文共47頁,當前為第38頁。第一個程序:HelloWorld交互方式>>>print"Hello,World!"Hello,World!本課程的教學中常用交互方式演示新語句實際上很少用交互方式執行程序多次執行同一程序需要多次輸入程序多行語句無法一次性執行39程序設計思想與方法全文共47頁,當前為第39頁。第一個程序:HelloWorld程序文件將語句保存在純文本文件hello.py中四種執行方式在IDLE中用RunModule菜單執行雙擊hello.py文件圖標>>>importhelloC:\Python27>pythonhello.pyprint"Hello,World!"40程序設計思想與方法全文共47頁,當前為第40頁。程序構件:數據數據是被處理的信息有不同類型的數據字符串數據>>>print"Hello,World!"數值數據>>>print3.141541程序設計思想與方法全文共47頁,當前為第41頁。程序構件:變量和數學類似:用一個名字表示可變的數據數學中多用單字母,程序中多用單詞/詞組標識符:Python命名以字母或下劃線開頭,后跟0個或多個字母,數字,下劃線.區分大小寫字母.合法:xxYzx_123_

___w3非法:3qx-123

firstname良好的命名風格:有意義,風格一致42程序設計思想與方法全文共47頁,當前為第42頁。程序構件:表達式表達式:能計算出一個值.字面值:3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論