6. Make
each
day
count
? 運算思維是程式設計課程要培養的重要核心能力
? 程式設計 (programming) 是給出解決特定問題之程式的過程,學習如
何應用程式語言,根據你的想法,完成特定作業
? 找出年紀最小的同學?
? 兩兩比對生日,年紀小的繼續兩兩比對
? 分成幾組,先找出各組年紀最小的同學,再出來比對
? 設臨界值篩選,調整臨界值再篩選
? …
? 程式設計只是輔助工具,領域知識才是核心競爭力
程式設計
6
可使用不同的程式語言 領域知識 滿足功能需求
7. Make
each
day
count
? 程式語言 (programming language) 顧名思義就是設計程式時所使用的
語言
? 針對不同應用需求,各種程式語言不斷被設計出來
? List of Programming Languages
https://en.wikipedia.org/wiki/List_of_programming_languages
? 直譯式 (Interpreted language) vs. 編譯式 (Compiled language)
? 程序式 (Procedural language) vs. 物件導向式 (Object-oriented language)
https://en.wikipedia.org/wiki/List_of_programming_languages_by_type
? 本文式 vs. 圖控式程式語言
程式語言
7
8. Make
each
day
count
? 語言是?與?之間主要的溝通工具,每?款 CPU 也有它懂的語言,
稱為機器語言 (machine language),所以,要讓電腦執行工作,我
們必須使用它懂的機器語言來告訴它要作什麼
? 機器語言是以 0 和 1 二進位組成的指令碼,稱為機器碼 (machine
code),即是驅動硬體電路的數位訊號組合
80 3E 0000 R 0A
73 04
FE 06 0000 R
機械語言 1/2
8
14. Make
each
day
count
? 機器碼是硬體唯?能執行的指令碼,其它形式的程式語言都必須轉換
成機械碼
? 組譯器 (Assembler) 是將組合語言轉換為機械碼的工具程式
? 編譯器 (Compiler) 與直譯器 (Interpreter)是將高階語言轉換為機械碼
的工具程式
機械語言 組合語言 高階語言
80 3E 0000 R 0A cmp a, 10 int a=0;
73 04 jnc @f if (a<10) a++;
FE 06 0000 R inc a
@@:
編譯器、直譯器與組譯器
Compiler + Linker
Assembler + Loader
14