S SmartDocs

電腦科學基礎

計算機組織、作業系統、Linux 基礎與核心電腦科學理論。

Computer Organization 更新於 2026-05-13

Mobile Application Development CCIT4059

使用方法:依時間表逐節閱讀。每節有「核心概念 → 重點整理 → 易考點 → 自我檢測」。建議準備白紙邊看邊抄畫。

閱讀文章 →
Computer Organization 更新於 2026-05-13

Mobile Application Development CCIT4059

涵蓋 Unit 1–10 全部內容。每題含 答案、詳細解答過程、對應單元、易錯提示。 建議:先自己作答,再對照解析。

閱讀文章 →
Computer Organization 更新於 2026-07-10

Test 1 練習卷 A(Theroy1.pdf)

本文件涵蓋四份理論模擬卷的所有題目: [itemsep=1pt] (Theroy1.pdf,12 題):數字表示法、布林代數、卡諾圖、閂鎖/正反器、時脈、FSM。 (Theory 2.pdf,12 題):DNF/CNF、邏輯電路、R-S 閂鎖、D 正反器、2 補數、傳播延遲。 (Test2_Theory1.pdf,12 題):C 指令、Hack VM、文法與剖析、堆積記憶體配置。 (Test2_Theory2.pdf,11 題):記憶體

閱讀文章 →
Computer Organization 更新於 2026-07-14

第 1 題(2 變數):任一感測器觸發警報——A B

每一題都走完同一條完整流程: [itemsep=1pt] :從真值表(或功能描述)確認哪些輸入組合輸出 1 (即); :把 1 填進卡諾圖——注意行列都用 順序(00,01,11,10),相鄰格只差一個位元; :把 1 圈成 2k 大小的矩形 (1,2,4,8, 格), (左右相接、上下相接、四角相接); :每個群裡「不變的變數」留下(1 留原變數、 0 留反相),「有變的變數」消去——2k 格的群恰好消 k 個變數; :最簡 SOP(

閱讀文章 →
Computer Organization 更新於 2026-07-10

化簡(Simplification)

完成本 Lab 後,你應該能夠—— [itemsep=1pt] 化簡含 、、 的布林表達式; 在 Logisim 上組裝並驗證對應布林表達式的電路; 只用 NAND 閘在 Logisim 上實作布林表達式; 依真值表建立最多 5 個變數的卡諾圖; 從卡諾圖產生最多 5 個變數的最簡布林表達式。 Logisim(電路模擬)與 NAND 板(實體實作)。 NAND 板是 Bristol 自製的開源教具(Simon Hollis 與 Dan

閱讀文章 →
Computer Organization 更新於 2026-07-10

布林代數(Boolean Algebra)

本講義整合了第一週四份投影片 (1.1 Boolean Algebra、1.2 Finding Formula、1.3 Logic Gates、1.4 NAND) 的全部內容,並補充了背景知識、詳細推導、歷史脈絡與延伸練習。 每章結尾附有「本章重點」整理;第 5 章為綜合練習題,附完整詳解。 建議先讀懂每個定義與例題,再自行完成練習題後對照解答。

閱讀文章 →
Computer Organization 更新於 2026-07-13

開工前:新骨架的兩個變更

完成上週開工的 Hack VM 翻譯器 (函式呼叫三兄弟 // ,加上整個資料夾的編譯與開機碼), 並用提供的四組測試腳本驗證。 前置條件:第九週的 必須能通過 (第九週其餘部分沒完成沒關係)。 nand2tetris 的 VM 模擬器與 CPU 模擬器 (需要 Java Runtime Environment)。

閱讀文章 →
Computer Organization 更新於 2026-07-13

擴充 Hack VM(Extending Hack VM)

本講義整合了第十週四份投影片 (10-1 Extending Hack VM、10-2 Functions in general、 10-3 Functions in Hack VM: Syntax and implementation、 10-4 Heap memory allocation: malloc and free)的全部內容, 並補充了 x86-64 呼叫慣例、真實世界 malloc(dlmalloc)、 記憶體安全等延伸

閱讀文章 →
Computer Organization 更新於 2026-07-13

全局視角:編譯管線

[itemsep=1pt] 把提供的骨架擴充成完整的 Jack ; 再把解析器擴充成 Jack Hack VM 的; (選做!)與你的 Hack VM 翻譯器、Hack 組譯器串起來, 完成 Jack Hack 機器碼的。 文字比對工具(// Meld);測試用 nand2tetris 的 VM 模擬器。 這是整個單元的壓軸——三個週次的工具在此合體。

閱讀文章 →
Computer Organization 更新於 2026-07-13

Jack 語言(The Jack Language)

本講義整合了第十一週四份投影片 (11-1 The Jack language、11-2 Compiling Jack、 11-3 Compiling Jack's classes、11-4 Summing up and looking forward) 的全部內容,並補充 nand2tetris 第 10、11 章的相關細節。 每章結尾附有「本章重點」整理;第 5 章為綜合練習題,附完整詳解。 這是課程的最後一週:終於抵達抽象階梯的最

閱讀文章 →
Computer Organization 更新於 2026-07-14

為什麼需要浮點數?

第 2 週我們學了無號數、2 補數與二進位加減法 ——這些都是的世界。真實程式還需要 3.14159、6.021023、 0.001 這類。本補充教材說明現代電腦(從手機到超級電腦) 一致採用的實數表示標準:。 模擬考的自訂 8 位元浮點格式題(1 位符號、2 位指數、5 位尾數) 考的正是同一套原理,只是欄位縮小;把本教材讀通, 那類題目就是「換個參數再算一次」。

閱讀文章 →
Computer Organization 更新於 2026-07-13

半加器(Half Adder)與 4 位元增量器

完成本 Lab 後,你應該能夠—— [itemsep=1pt] 在 Logisim 中建立並在其他設計中 當作元件使用; 使用組裝處理多位元輸入輸出的電路; 設計能執行算術運算(特別是加法與減法)的電路; 在電路設計中使用與, 依輸入做出計算決策。 Logisim(電路模擬;需要 Java)與 NAND 板 (實體驗證)。子電路用法:在電路名稱上單擊、再點擊要放置的位置。 分線器與常數腳位都在 wiring 函式庫中。

閱讀文章 →
Computer Organization 更新於 2026-07-13

表示數字(Representing Numbers)

本講義整合了第二週四份投影片 (2.1 Representing Numbers、2.2 Binary Addition、2.3 Binary Subtraction、2.4 ALU) 的全部內容,並補充了背景知識、詳細推導、IEEE 754 標準與 Hack ALU 完整規格。 每章結尾附有「本章重點」整理;第 5 章為綜合練習題,附完整詳解。 本週的主軸是一條完整的故事線:。

閱讀文章 →
Computer Organization 更新於 2026-07-13

閂鎖到正反器(Latches to Flip-Flops)

完成本 Lab 後,你應該能夠—— [itemsep=1pt] 在 Logisim 上組裝標準記憶元件 (R-S 閂鎖、D 閂鎖、D 正反器、n 字組 RAM); 改造標準記憶元件,使其為主動低/主動高, 或正緣/負緣觸發; 操縱標準記憶元件的輸入,讓它儲存想要的值。 Logisim 與 NAND 板。 本週是課程的分水嶺:電路第一次有了—— 輸出不再只由當前輸入決定,還取決於。 一切的根源是一個危險又美妙的動作:。

閱讀文章 →
Computer Organization 更新於 2026-07-13

序向邏輯與 R-S 閂鎖(Sequential Logic and the R-S Latch)

本講義整合了第三週四份投影片 (3-1 Sequential logic and the R-S latch、3-2 From latches to flip-flops、 3-3 From flip-flops to registers、3-4 From registers to RAM)的全部內容, 並補充了亞穩態、setup/hold 時間、SRAM 6T 電路、記憶體階層等延伸知識。 每章結尾附有「本章重點」整理;第 5 章為綜

閱讀文章 →
Computer Organization 更新於 2026-07-13

電晶體(Transistors)

完成本 Lab 後,你應該能夠—— [itemsep=1pt] 以電晶體為積木建出邏輯閘; 建出使用循序邏輯的時脈電路; 設計實作有限狀態機(FSM)的電路。 Logisim(wiring 函式庫的電晶體、電源、接地; memory 函式庫的暫存器與 D 正反器)。 本週往抽象階梯的同時延伸: 向下鑽到電晶體(閘是怎麼來的), 向上蓋出計數器與狀態機(CPU 的雛形)。

閱讀文章 →
Computer Organization 更新於 2026-07-13

用正反器與暫存器蓋東西(Building with Flip-Flops and Registers)

本講義整合了第四週四份投影片 (4-1 Building with flip-flops and registers、4-2 Transistors、 4-3 NAND vs NOR、4-4 SRAM vs DRAM)的全部內容, 並補充了狀態編碼、Moore/Mealy 取捨、邏輯努力(logical effort)、 6T SRAM 與 1T1C DRAM 等延伸知識。 每章結尾附有「本章重點」整理;第 5 章為綜合練習題,附完整詳

閱讀文章 →
Computer Organization 更新於 2026-07-13

入門(Getting Started)

[itemsep=1pt] 寫幾個基本的 Hack 組合語言程式; 學會用 Hack 組譯器(Assembler)與 CPU 模擬器 (CPU Emulator)測試與除錯; 學習位元遮罩(bit masking); 學會在 Hack 組語中使用螢幕與鍵盤。 第一部分(本卷)涵蓋考試所需的內容, 應在第 8 週開始前完成——之後課程的一切都建立在 你對組語的理解上。第二部分是較難的練習題,做不完沒關係。 nand2tetris 套件的

閱讀文章 →
Computer Organization 更新於 2026-07-13

輸入處理的缺失環節(checker3.asm)

[itemsep=1pt] 學習正確的輸入輪詢(input polling); 學習左移/右移,用它們研究 Collatz 猜想並實作 更快的乘法演算法; 為一個遊戲實作基本的控制方案。 這是第一部分之後的——題目刻意出得比 一週的合理份量多,做不完不用擔心;但每一題都在鍛鍊 真實世界裡常用的組語技巧。

閱讀文章 →
Computer Organization 更新於 2026-07-13

擷取—執行週期與 Hack 架構(The Fetch-Execute Cycle)

本講義整合了第五週四份投影片 (5-1 The fetch-execute cycle、5-2 Hack assembly I: The basics、 5-3 Hack assembly II: Loops and conditionals、 5-4 Hack assembly III: Input and output)的全部內容, 並補充了 nand2tetris 的機器碼格式、鍵盤代碼表、 圖靈機與 Church–Turing

閱讀文章 →
Computer Organization 更新於 2026-07-13

規格整理:我們要蓋什麼?

[itemsep=1pt] 在 Logisim 上打造一台能執行 Hack 的電腦! 剩餘時間拿去多練組語——課程接下來的一切都建立在 組語上,而本週作業主要只與本週教材相關 (開始前至少應完成第五週作業第 5 節)。 skeleton 檔已含第二週的 ALU 與第四週的 程式計數器;RAM、ROM、暫存器用 Logisim 預建版。 影片 2 的架構輪廓—— 填補空隙正是本作業的核心工作,也是本詳解逐步示範的內容。

閱讀文章 →
Computer Organization 更新於 2026-07-13

Hack 指令集架構(The Hack ISA)

本講義整合了第七週四份投影片 (7-1 The Hack instruction set architecture、 7-2 The Hack microarchitecture、7-3 Comparative architecture、 7-4 Microarchitecture optimisation: Pipelining and caching)的全部內容, 並補充了 RISC vs CISC 的現代論戰、資料前遞(forwa

閱讀文章 →
Computer Organization 更新於 2026-07-13

全局視角:兩趟式組譯器

[itemsep=1pt] 思考如何用 C 實作符號表(symbol table); 用 C 寫一個 Hack 詞法分析器(lexer), 用提供的測試腳本驗證; 把 lexer 擴充成完整的組譯器(assembler),再驗證。 文字比對工具(Windows 的 、 Linux/Mac 的 、或圖形化的 Meld)+一個 C 編譯器。 課程提供 、 與 骨架——我們的工作是把骨架裡的空缺填滿。

閱讀文章 →
Computer Organization 更新於 2026-07-13

編譯器的全貌與詞法分析(Lexing)

本講義整合了第八週四份投影片 (8-1 Compiler concepts: Lexing、8-2 Compiler concepts: Symbol tables、 8-3 Compiler concepts: Parsing、8-4 A parser for Hack assembly) 的全部內容,並補充了遞迴下降解析(recursive descent)等延伸知識。 每章結尾附有「本章重點」整理;第 5 章為綜合練習題,附完整詳

閱讀文章 →