臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM 程式設計是甚麼? 臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
為什麼想學程式設計?why 請寫在右下角即時聊天區 目的? 動機? 好奇?想體驗? 未來? 人人須回答 不管他人觀點
臺北市立大學 原臺北市立教育大學源自於1895年建立的「芝山巖學堂」,迄今 已有118年的歷史。1945年臺灣光復,稱為「臺灣省立臺北女子 師範學校」;1979年更名為「臺北市立師範專科學校」;1987年 升格為「臺北市立師範學院」;2005年8月1日改名為「臺北市立 教育大學」。臺北市立大學於2013年8月1日正式成立,由臺北市 立教育大學及臺北市立體育學院合併而成之綜合性大學。 臺北市中正區愛國西路1號 與北一女為鄰 資訊科學系(含碩士班)
與程式設計軟體設計有極大關係
程式設計趨勢 台灣很多大學將程式設計列為必修 教育部要求每一個大學6成以上的學生都要會程式設計 未來通過高中程式設計課程在大學可抵免 不管哪一科系 教育部要求每一個大學6成以上的學生都要會程式設計 未來通過高中程式設計課程在大學可抵免 台灣舉辦運算思維檢定(Brebra)、程式設計先修檢定(APCS)
Who is Bill Gates? Bill Gates幾歲開始學程式?
英雄出少年 典範: 13歲的Bill Gates At 13, he enrolled in the Lakeside School, a private preparatory school. When he was in the eighth grade, the Mothers' Club at the school used proceeds from Lakeside School's rummage sale to buy a Teletype Model 33 ASR terminal and a block of computer time on a General Electric (GE) computer for the school's students.[23] Gates took an interest in programming the GE system in BASIC, and was excused from math classes to pursue his interest. He wrote his first computer program on this machine: an implementation of tic-tac-toe that allowed users to play games against the computer. Gates was fascinated by the machine and how it would always execute software code perfectly. When he reflected back on that moment, he said, "There was just something neat about the machine.“ https://en.wikipedia.org/wiki/Bill_Gates
你/妳就是下一個Bill Gates 你/妳就是未來的Steve Job
課程目標 學習Java語言:基本觀念、語法 學習Java程式設計基本技巧 能以Java程式設計解決基本問題 變數、陣列、if, for, while, switch, method, recursive method 文字介面、圖形介面 能以Java程式設計解決基本問題
評量 課堂出席及回答問題(搶答、問問題、填問卷) 線上學習表現: 自我學習(preview, review) 準時交習題(寫程式、設計歷程) 參加實作輔導 小專題製作 線上測驗 學科考試: 筆試
何謂指令、程式、語言? 為何學習程式?
電腦語言演化
撥動開關(Flipping Switches) 最早的電腦,無法用鍵盤輸入文字;而是要撥動電接電腦不同部 分的開關。 如果你想要兩個數字相加,你就把數字部分的線路和加法的線路 連起來,再和另外一個數字的線路連起來,最後把線路連到輸出 結果的地區。 早期電腦只有資料被儲存在記憶體,而程式是透過手工操作設定線路系 統的開關 Stored program: a memory to store both data and instructions von Neumann model and Princeton architecture Babbage‘sAnalytical Engine, the first general-purpose programmable computer (https://en.wikipedia.org/wiki/History_of_computing_hardware)
機械語言、組合語言 (machine language):由機械指令(instruction)由0 ˴1組成 電腦聽(看)懂機械語言? 組合(中階/中介)語言(assembly language):組合語言指令(文字形式) 與機械指令是一對一 在設計程式時,你必須知道電腦處理的細節,且組合語言絕對不給你任 何安全措施。你幾乎可以直接叫電腦做任何的事情,而且它樂於接受, 甚至你可以要求它清除記憶體內的所有事情。另外,每一種電腦的組合 語言都不一樣。所以你知道這一種機器的組合語言並不見得瞭解另一種 機器之組合語言。電腦聽(看)懂組合語言? 1011000000000110 1011010000000111 0111001010000001 1011000100001110 Mov bx, n1 Mov ax, n2 Add ax,bx Mov result, ax Result=n1+n2; 機械語言 組合語言 高階語言
控制單元(CU) ALU 主記憶體 輔助記憶體 (HDD, USB (ROM+RAM):程式+資料 driver, CD… 暫 存 器 ALU 輔助記憶體 (HDD, USB driver, CD… …) :程式+資料 主記憶體 (ROM+RAM):程式+資料 輸入單元 Input 輸出單元 Output 中央處理單元CPU (central processing unit) =ALU+ CU + register (暫存器) ALU: Arithmetic logic unit (算數邏輯單元) Main memory ROM: read only memory (唯讀記憶體) RAM: Random access memory (隨機存取記憶體)
控制單元(CU) ALU 主記憶體 輔助記憶體 (HDD, USB (ROM+RAM):程式+資料 driver, CD… …) :+資料 ③ ② Mov bx, n1 Mov ax, n2 Add ax,bx Mov result, ax 1011000000000110 1011010000000111 0111001010000001 1011000100001110 1011000000000110 1011010000000111 0111001010000001 1011000100001110 ③ 暫 存 器 ALU 輔助記憶體 (HDD, USB driver, CD… …) :+資料 ① 主記憶體 (ROM+RAM):程式+資料 Result=n1+n2; 輸入單元 Input 輸出單元 Output 程式: 可執行程式檔 來源程式檔 ①抓取指令Instruction fetch ②指令解碼Decode ③執行指令Execute 寫回Write back
你認識那些單元? 中央處理單元CPU Main memory 輸入單元 輸出單元 ROM: read only memory (唯讀記憶體) RAM: Random access memory (隨機存取記憶體) 輸入單元 輸出單元
高階語言 由文字所組成(指令以文字形式撰寫) 電腦聽(看)懂高階語言? 高階語言 Python、c、java、javascript、Visual basic、 IEEE透過10種來源的12個指標分析,算 出2016年熱門程式語言排行榜 https://www.bnext.com.tw/article/40380/BN- 2016-07-28-180528-218
電腦語言(computer language)有哪些? 高階語言類型 一般程式語言: C, C++, COBOL, FORTRAN, BASIC, PASCAL, DELPHI, Lua 物件導向程式語言: JAVA, PYTHON, C++, C# 網頁程式語言: HTML, PHP, JSP 手機程式設計: Android(JAVA), IOS(Objective C, Swift) 作業系統SHELL語言 早期: COBOL (商)、Fortran(工程) 程式開發整合環境(IDE : integrated Development Environment) Visual Basic Dev cpp Eclipse NetBeans XCode App inventor2 Android studio
積木式程式設計(BLOCK PROGRAMMING) 常見積木式程式設計環境 MIT Scratch APP inventor 2、code.org webduino
什麼是程式(program) 程式設計(programming)˴寫程式(coding)? 程式碼(code)? 什麼是程式(program) : 由一堆指令(instruction)或敘述所組成 程式設計(programming)˴寫程式(coding) 程式碼(code) : code包含程式碼、資料碼 Coder: 碼農 電腦聽(看)懂何種語言? 如何讓電腦聽(看)懂你所寫程式?
電腦(cpu)如何區分指令˴資料? 在電腦內部指令˴資料都是由0,1組成 機械指令由0,1組成 資料亦以(編碼),如英文使用ASCII code; 資料有許多類型(Data type): int, double, 電腦(cpu)如何區分指令˴資料?
總結 Java 是最流行(程式設計者所喜愛採用)高階程式語言之一 機器語言:低階程式語言, 只有特定機器能理解及執行 高階程式語言:接近人類語言形式, 但電腦(機器)無法理解及直接 執行 高階程式語言需經轉換/編譯(compile)為機器語言