計算機概論

臺北科技大學 115-1 學期課程,課號 363000。

課程大綱

本課程以 Windows 11 作為主要實作平台,使用 Rust 程式語言帶領學生理解計算機系統的基本組成與應用程式開發流程。課程內容涵蓋 Rust 程式設計基礎、資料表示、位元運算、檔案與路徑管理、磁碟資訊、行程觀察、記憶體使用、網路通訊、Windows API、簡易 GUI 應用程式,以及 Windows 系統工具開發。 不同於傳統以概念講授為主的計算機概論,本課程強調「以實作理解電腦系統」。學生將透過 Rust 撰寫 Windows CLI 與簡易應用程式,逐步理解電腦如何表示資料、管理檔案、使用磁碟、執行行程、配置記憶體、進行網路通訊,以及應用程式如何與作業系統互動。課程成果將以可執行作品為主,期中完成 Rust Windows System Information CLI,期末完成 Rust Windows System Utility 或簡易 Windows App。 本課程同時作為後續「作業系統」課程的前導,使學生先從 Windows user-space 應用程式開發切入,再於作業系統課中進一步理解 Windows 11 的行程、執行緒、記憶體、檔案系統、服務、登錄檔、事件紀錄、網路堆疊與裝置模型。

課程進度

第1週:課程導入:Rust、Windows 11 與計算機系統概論。說明本課程以 Rust 作為主要實作語言,透過 Windows 應用程式與系統工具開發,理解電腦系統的基本組成與運作方式。介紹 CPU、記憶體、磁碟、檔案、行程、網路與作業系統之間的關係,並完成 Rust、VS Code、Cargo 與課程目錄環境確認。 第2週:Rust 基礎語法與 CLI 程式設計。介紹變數、型別、控制流程、函式、模組、Cargo 專案結構與基本錯誤處理。實作內容為建立第一個 Rust CLI 專案,完成簡單命令列輸入、輸出與參數處理。 第3週:資料表示、二進位、十六進位與位元運算。介紹電腦如何表示整數、文字、狀態與旗標,內容包含 binary、hexadecimal、補數、bit mask、bit flag 與資料編碼。實作內容為撰寫進位轉換、bit mask 與 flag 判斷程式。 第4週:Windows 檔案系統與路徑管理。介紹檔案、目錄、絕對路徑、相對路徑、副檔名、檔案大小、建立時間、修改時間與檔案屬性。實作內容為使用 Rust 撰寫檔案掃描器,列出指定資料夾下的檔案資訊。 第5週:磁碟與儲存裝置資訊。介紹磁碟、volume、partition、filesystem、容量、可用空間與檔案配置概念。實作內容為撰寫磁碟空間查詢工具,顯示磁碟總容量、可用容量、使用比例與基本儲存資訊。 第6週:行程觀察與 Process Viewer 入門。介紹 application、process、PID、執行狀態、父子行程、user space 與作業系統資源分配概念。實作內容為使用 Rust 撰寫簡易 process viewer,列出目前執行中的 process 名稱、PID 與基本資訊。 第7週:記憶體使用觀察與期中作品規格說明。介紹 RAM、virtual memory、heap、stack、working set、process memory 與系統記憶體使用狀態。實作內容為撰寫簡易 memory information tool,顯示系統記憶體與指定行程記憶體資訊。課堂後段說明期中作品規格、繳交格式與評分標準。 第8週:期中作品製作週。本週不安排正式授課,保留時間讓學生完成期中作品。學生需整合前半學期內容,完成一個 Rust Windows System Information CLI,功能至少包含基本系統資訊、檔案或磁碟資訊、process list 與 memory usage,並準備簡短作品說明。 第9週:期中作品繳交、展示與評分。學生於當週課堂繳交期中作品,由授課教師現場檢查程式執行結果、原始碼、功能完成度與概念說明。學生需能說明其作品如何對應資料表示、檔案系統、磁碟資訊、行程觀察與記憶體使用等計算機系統概念。 第10週:Rust 模組化程式設計與錯誤處理。介紹 module、crate、Result、Option、error propagation、檔案讀寫錯誤、使用者輸入錯誤與程式穩定性。實作內容為將期中作品功能拆成不同模組,並加入較完整的錯誤處理與訊息提示。 第11週:Windows API 入門與系統資訊取得。介紹 Windows API、作業系統介面、library binding、user-space application 與 OS resource access 的關係。實作內容為使用 Rust 呼叫 Windows API 或相關 crate 取得系統、行程、磁碟或視窗資訊。 第12週:TCP/UDP 網路通訊。介紹 IP、port、socket、TCP、UDP、client/server、local network 與基本網路通訊模型。實作內容為使用 Rust 撰寫 TCP client/server 或 UDP message tool,讓學生理解應用程式如何透過作業系統進行網路通訊。 第13週:簡易 GUI 應用程式設計。介紹 Windows GUI、事件驅動程式設計、視窗、按鈕、文字顯示、使用者互動與 CLI/GUI 的差異。實作內容為製作簡單 Windows utility GUI,用於顯示系統資訊、磁碟資訊、行程資訊或記憶體資訊。 第14週:輸入輔助、Hotkey 與 Windows App 延伸。介紹 global hotkey、文字輸入輔助、剪貼簿、簡化版 input helper、裝置互動概念與 Windows 應用程式延伸方向。實作內容為完成簡易 hotkey 或 text helper 工具,並說明其與輸入法、應用程式互動及作業系統事件機制的關係。 第15週:期末作品製作週。本週不安排正式授課,保留時間讓學生完成期末作品。學生需完成一個 Rust Windows System Utility 或簡易 Windows App,可選擇 system information tool、disk monitor、process viewer、memory monitor、network tool、GUI dashboard、input helper 或 file management utility 等方向進行實作。作品需整合至少三項本課程學過的計算機系統功能,並準備展示與說明資料。 第16週:期末作品繳交、展示與評分。學生於當週課堂繳交期末作品,由授課教師現場檢查程式執行結果、原始碼、功能完整度、使用者操作方式與概念說明。學生需說明作品使用的 Rust 技術、對應的計算機系統概念,以及如何銜接後續作業系統課程中的 process、thread、memory management、file system、service、network stack 與 device model 等內容。

評量方式

期中可以繳交企劃書 50%,期末要繳交完整作品、程式碼跟技術設計完整說明 50%

教材

【遵守智慧財產權觀念,請使用正版教科書,不得使用非法影印教科書】 使用外文原文書:否 第一次上課,會自己編講義