投影片1 - ming chuan university network post office

24
1 資訊概論 蕭立人

Upload: peterbuck

Post on 20-Jul-2015

596 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 投影片1 - Ming Chuan University Network Post Office

1

資訊概論 蕭立人

Page 2: 投影片1 - Ming Chuan University Network Post Office

2

程式設計的重要性

• Flash => 提昇互動性– Action Script

• Maya 3D Models => 電腦遊戲– C++ & DirectX– C# & XNA– Vertool

• HTML 網頁 => 商業網站– PHP & MySQL– ASP.Net & SQL Server

• 手機 => 行動應用– Java– Android

• PDA 嵌入式系統– ARM

• IC 與 電路設計– HDL– FPGA

Page 3: 投影片1 - Ming Chuan University Network Post Office

3

學習程式設計的良性循環

問題

思考

解決

興趣

Page 4: 投影片1 - Ming Chuan University Network Post Office

4

• 語法只是工具,工具不會自己解決問題–從頭到尾先對語法整體了解一次–瀏覽語言所支援的功能,語法大略知道即可–大部份時間用於程式設計的演練–利用程式設計的演練來熟悉語法

熟悉語法與功能

Tools can not Solve Problems

寫程式

Page 5: 投影片1 - Ming Chuan University Network Post Office

5

• Just do it!– 為何你的 Game 玩得那麼好–就是要寫

• Trial and Error–嚐試錯誤–久病終會成良醫 提昇

功力

Just do it!

嚐試

錯誤

心有所感

Page 6: 投影片1 - Ming Chuan University Network Post Office

6

• 別讓頭腦太孤單• 身體也可以幫助記憶• 劍隨意轉• 心動不如馬上行動

Body Memory

Page 7: 投影片1 - Ming Chuan University Network Post Office

7

• Searching and Thinking– 多搜尋、多讀 、多看、多思考

• Figure out a better one –怎麼樣!我的方法更炫!

• Resting is working–總在半夢半醒之間 ~ zzZ

I Can Beat You

Page 8: 投影片1 - Ming Chuan University Network Post Office

8

程式設計的境界

• 演算法 +資料結構 = 程式 (Wirth)• 電腦程式設計不只是技術 , 也是藝術

(Knuth)

Page 9: 投影片1 - Ming Chuan University Network Post Office

9

電腦程式設計的學習進程

• 程式設計 (一 ) – 基本程式語言 C

• 程式設計 (二 ) – 物件導向語言 C++

• 資料結構– 資料結構 資料如何表示、儲存與使用

• Java 程式設計– Java

• 視窗程式設計– 視窗程式設計 Borland C++

• 物件導向程式設計– 視窗程式設計 Visual Studio C#

Page 10: 投影片1 - Ming Chuan University Network Post Office

10

電腦程式設計的學習進程

• 資料庫系統管理系統– SQL Server

• 網頁程式設計– HTNL, JavaScript, PHP, MySQL

• XML程式設計– XML, XHTML, ASP.Net, Ajax, Web2.0

• 嵌入式系統程式設計– 手機 , PDA 程式設計

• 網路通訊程式設計– Internet 程式 , Socket

• 電腦遊戲製作– 實作 3D 遊戲

• 演算法– 如何解決問題、設計解決問題的方法

Page 11: 投影片1 - Ming Chuan University Network Post Office

11

C 程式語言的要點

• 演進:傳統 C → ANSI C → C++ → C#• 傳統 C

– Multics System→Unix Systems(Bell Lab.)– ANSI C

• C++– Hybrid-Language

• 傳統 C + 物件導向語言 (Object Oriented Language)

• 基本功 ,必須要會– 指標 (Pointer)、參考 (Reference)– 遞迴程式 (Recursive Programming)– 檔案開檔、關檔、讀檔、寫檔 (File Manipulation)

Page 12: 投影片1 - Ming Chuan University Network Post Office

12

Java 的特性

• 演進:傳統 C → Objective C → Java• Java

– 純粹物件導向語言 (Pure Object-Oriented)– 跨平台 (Across Platforms)– Java虛擬機器 (JVM, Java Virtual Machine)– 類別庫 (Class Library )

• AWT, Swing

– 行動裝置程式 (Mobile Device Programming)• 例如 Android

• 證照: SCJP

Page 13: 投影片1 - Ming Chuan University Network Post Office

13

視窗程式設計

• 視窗程式設計以下列兩種為主– BCB(Borland C++ Builder)– Visual Studio C#

• 視窗程式的學習要點–表單程式 (Window Form)–物件導向 (Object-Oriented)–事件處理 (Event Handling)–資料庫連接 (Database Connection)

Page 14: 投影片1 - Ming Chuan University Network Post Office

14

網頁程式主從架構 (Client-Server Concept)

• 用戶端– IE Browser – Firefox

• Web伺服器– Apache– IIS(Web+FTP+SMTP)

• 資料庫伺服器 (Database Server)– Access– SQL Server– MySQL

用戶端 網頁伺服器 資料庫伺服器

Page 15: 投影片1 - Ming Chuan University Network Post Office

15

網頁程式設計 - 用戶端• HTML→DHTML

– DOM(Document Object Model)

• XML→XHTML– XML +CSS

• JavaScript→Ajax→Web 2.0• Ajax

– 部份擷取– 非同步傳輸

• 動態網頁– Flash– XMAL(SiverLight)

Page 16: 投影片1 - Ming Chuan University Network Post Office

16

網頁程式設計 - 伺服器端

• 兩種主要配合– PHP+MySQL– ASP.Net + SQL Server

• C#, C++, VB

• 一定要學會–與資料庫連結

Page 17: 投影片1 - Ming Chuan University Network Post Office

17

資料結構

• 時間複雜度 (Time Complexity)• 陣列位址計算 (Array)• 堆疊與佇列 (Stack & Queue)• 鏈結串列 (Linked List)• 遞迴 (Recursive)• 樹結構 (Tree)• 圖形結構 (Graph)• 排序法 (Sorting)• 搜尋法 (Searching)

Page 18: 投影片1 - Ming Chuan University Network Post Office

18

時間複雜度

• 頻率計次 (Step Frequency)• 範例

– 給一個正整數 n , 找出正整數解 (x,y) 使得 x2+y2=n2

– 請比較 Program1 與 Program 2 的速度

Page 19: 投影片1 - Ming Chuan University Network Post Office

19

Program 1

for (x=1; x<n-1; x++) for (y=x; y<n; y++)

if (x*x+y*y==n*n) { printf(“(%d,%d)”,x,y); exit(0); } printf(“not found”);

Page 20: 投影片1 - Ming Chuan University Network Post Office

20

Program 2

x=1; y=n-1; while (x<y) { if (x*x+y*y==n*n) { printf(“(%d,%d)”,x,y); exit(0); } else if (x*x+y*y<n*n) x++; else y—; } printf(“not found”);

Page 21: 投影片1 - Ming Chuan University Network Post Office

21

演算法

• 貪婪法 (Greedy)– 真貪心!蛋糕總是拿最大的

• 各個擊破 (Divide-and-Conquer)– 一群人打不贏,那挑落單的呀!

• 動態程式規劃 (Dynamic Programming)– 柿子先挑軟的吃

• 迴溯法 (Backtracking)– 行不通!就換條路吧

• 分支設限 (Branch-and-Bound)– 小心!不要越走越遠

• NP Completeness– 碰到難題,就說是難題

Page 22: 投影片1 - Ming Chuan University Network Post Office

22

Tower of Hanoi

peg B peg Cpeg A

peg B peg C peg A

peg B peg C peg A

peg B peg C peg A

Page 23: 投影片1 - Ming Chuan University Network Post Office

23

Cisco CCNA(思科 )

• 為什麼是 Cisco?• 區域網路

– Discovery 1 & 2

• 廣域網路– Discovery 3 & 4

• 證照– CCNA, CCNP, CCIE

Page 24: 投影片1 - Ming Chuan University Network Post Office

24

電腦遊戲製作

• 所需之基礎– C++–物件導向觀念

• 可從 C++, C# 或 Java 等課程學習– DirectX 程式設計–顯示卡圖形處理器 (GPU)程式設計

• 入門可以先學– Visual C# + XNA Game Studio– Virtools