110 年 國立政治大學圖書資訊與檔案學研究所檔案學組《計算機概論》
第 1 題
名詞解釋-描述定義與其中一個應用:
(1) 雲端 (4%)
(2) 大數據 (4%)
(3) 5G (4%)
(4) 物聯網 (4%)
(5) 深度學習 (4%)
登入後即可作答並保存紀錄。
本題為計算機概論的基礎名詞解釋題,旨在測試考生對於資訊科技領域重要概念的理解程度。
(1) 雲端 (Cloud Computing)
定義:雲端運算是一種透過網際網路提供計算資源(如伺服器、儲存空間、資料庫、網路、軟體、分析、智慧等)的模式。使用者可以透過網路隨時隨地存取這些資源,而無需自行購買、維護和管理實體硬體或軟體。其主要特點包括彈性擴展、按需付費、資源共享和服務導向。
應用:
- 線上儲存與備份:如 Google Drive, Dropbox, OneDrive,使用者可以將檔案儲存在雲端,並從任何裝置存取,同時也可作為資料備份。
- 軟體即服務 (SaaS):如 Google Workspace (Gmail, Docs), Microsoft 365,提供無需安裝即可使用的應用程式。
- 平台即服務 (PaaS):提供開發者部署應用程式的平台,如 Heroku。
- 基礎設施即服務 (IaaS):提供虛擬伺服器、儲存等基礎設施,如 Amazon Web Services (AWS), Microsoft Azure。
(2) 大數據 (Big Data)
定義:大數據是指規模龐大、結構複雜、產生速度快,以至於傳統的數據處理應用軟體難以捕捉、儲存、管理和分析的數據集合。其核心特徵通常被概括為 3V:
* Volume (量):數據量極大,通常以 TB、PB、EB 等為單位。
* Velocity (速):數據產生和處理的速度非常快,需要即時或近乎即時的分析。
* Variety (多樣性):數據來源多樣,格式複雜,包括結構化數據(如資料庫表格)、半結構化數據(如 XML, JSON)和非結構化數據(如文字、圖片、影音)。
近年來也常加入 Veracity (真實性) 和 Value (價值) 等 V。
應用:
- 商業智慧與分析:分析客戶行為、市場趨勢,以制定更精準的行銷策略和產品開發。
- 醫療保健:分析病歷、基因數據,預測疾病風險,制定個人化治療方案。
- 智慧城市:分析交通流量、環境感測數據,優化城市管理和公共服務。
- 科學研究:處理天文觀測、粒子碰撞實驗等產生的海量數據。
(3) 5G
定義:5G 是指第五代行動通訊技術 (5th Generation mobile communication technology)。它是 4G (LTE) 的演進,旨在提供更高速度、更低延遲、更大連接數量的無線網路服務。5G 的三大主要應用場景是:
第 2 題
當你在家需要網路專線上網(例如:ADSL)並架 WiFi 給其他家人使用時,需要哪些步驟與設定?第一步是考量家中所需頻寬為多少,接下來第二步、第三步…… (10%)
登入後即可作答並保存紀錄。
本題考驗考生對於家庭網路架設的基本步驟與考量。雖然題目以 ADSL 為例,但概念適用於各種寬頻連網方式。
家庭網路架設的基本步驟與設定如下:
第一步:評估與選擇網路服務
- 考量家中所需頻寬:這是題目中已提示的第一步。需要評估家中同時使用網路的設備數量、用途(如觀看 4K 影音、線上遊戲、視訊會議、一般瀏覽)以及使用者人數。
- 一般瀏覽、收發信件:數 Mbps 即可。
- 觀看 HD 影片:建議 25-50 Mbps。
- 觀看 4K 影片、多人同時線上遊戲、視訊會議:建議 100 Mbps 以上,甚至更高。
- 選擇網路服務供應商 (ISP):比較不同 ISP 提供的方案(如光纖、Cable、ADSL),包含速度、價格、合約條款、客服品質等。
- 申請與安裝:向 ISP 申請服務,ISP 會派員到府安裝寬頻數據機 (Modem),並完成線路連接。
第二步:設定數據機 (Modem) 與路由器 (Router)
- 數據機 (Modem):由 ISP 提供,負責將 ISP 傳輸過來的訊號(如光纖、Cable、電話線)轉換成電腦或路由器可以使用的數位訊號。通常 Modem 會提供一個網路埠 (Ethernet port)。
- 無線路由器 (WiFi Router):這是架設 WiFi 的核心設備。
- 連接:將 Modem 的網路埠透過網路線連接到路由器的 WAN (Wide Area Network) 埠。
- 初始化設定:首次使用時,通常需要透過電腦連接到路由器的 LAN 埠,或直接透過 WiFi 連接(預設 SSID 和密碼通常印在路由器底部)。
- 登入路由器管理介面:在瀏覽器輸入路由器的 IP 位址(如 192.168.1.1 或 192.168.0.1),使用預設的帳號密碼登入。
第三步:設定 WiFi 路由器
- 設定 WAN 連線:在路由器管理介面中,設定 WAN 埠的連線方式。若 ISP 提供的是固定 IP,則輸入 IP;若為動態 IP (DHCP),則選擇自動取得。若為 PPPoE 撥接(ADSL 常見),則需輸入 ISP 提供的帳號和密碼。
- 設定無線網路 (WiFi):
- SSID (網路名稱):設定一個獨特的 WiFi 名稱,方便辨識。
第 3 題
請用數字相乘(或除)表達 1 小時彩色高畫質影片的資料量為多少 GB,例如: (8%)
登入後即可作答並保存紀錄。
本題要求計算 1 小時彩色高畫質影片的資料量,並以乘法或除法表達,重點在於理解影片資料量的組成與單位換算。
首先,我們需要知道組成影片資料量的基本要素:
- 解析度 (Resolution):例如 pixels。
- 色彩深度 (Color Depth):每畫素 (pixel) 所使用的位元數。彩色高畫質影片通常使用 24 位元 (bits) 或 32 位元 (bits) 來表示一個畫素的顏色。我們以 24 位元(True Color)作為計算基礎。
- 影格率 (Frame Rate):每秒播放的影格數,常見的有 24 fps, 30 fps, 60 fps 等。高畫質影片通常要求較高的影格率,我們以 30 fps 為例。
- 時間長度 (Duration):影片的總長度,這裡為 1 小時。
計算步驟:
步驟 1:計算每秒的資料量 (bits/second)
-
每畫素的位元數:彩色高畫質影片常用 24 bits/pixel。
-
每影格的資料量:解析度 每畫素的位元數
-
每秒的資料量:每影格的資料量 影格率
步驟 2:計算 1 小時的總資料量 (bits)
- 時間轉換:1 小時 = 60 分鐘 = 60 分鐘 60 秒/分鐘 = 3600 秒。
- 總資料量 (bits):每秒資料量 總秒數
步驟 3:將資料量從 bits 轉換為 GB
我們需要知道以下單位換算:
- 1 Byte = 8 bits
- 1 Kilobyte (KB) = 1024 Bytes
- 1 Megabyte (MB) = 1024 KB
- 1 Gigabyte (GB) = 1024 MB
所以,1 GB = Bytes = Bytes。
而 1 Byte = 8 bits,所以 1 GB = bits = bits。
- 總資料量 (GB):總資料量 (bits) / (8 bits/Byte) / (1024 Bytes/KB) / (1024 KB/MB) / (1024 MB/GB)
GB
GB
GB
表達方式:
我們可以將上述計算過程用乘法或除法表達出來。
假設:
- 解析度: (width), (height)
- 色彩深度: (bits per pixel)
- 影格率: (frames per second)
- 時間: (seconds)
則總資料量 (bits) =
轉換為 GB:
總資料量 (GB) = (其中 是為了從 Bytes 轉換到 GB)
套用題目給的範例數值:
- (bits/pixel)
- (frames/second)
第 4 題
請描述程式語言相關名詞:
(1) 編譯器 (4%)
(2) Debug (4%)
(3) 物件導向 (4%)
登入後即可作答並保存紀錄。
本題考驗考生對程式開發過程中常見名詞的理解。
(1) 編譯器 (Compiler)
定義:編譯器是一種電腦程式,它將一種程式語言(稱為原始語言或來源語言,Source Language)編寫的程式,轉換成另一種程式語言(稱為目標語言或目的語言,Target Language)。在軟體開發中,最常見的用途是將人類可讀的高階程式語言(如 C++, Java, Python 的部分實現)轉換成機器可直接執行的低階機器碼(Machine Code)或位元組碼(Bytecode)。
工作流程:
- 詞法分析 (Lexical Analysis):將原始碼分解成一系列的「詞彙」(tokens),例如關鍵字、識別字、運算符、常數等。
- 語法分析 (Syntax Analysis):檢查詞彙序列是否符合程式語言的語法規則,生成抽象語法樹 (Abstract Syntax Tree, AST)。
- 語意分析 (Semantic Analysis):檢查程式的語意是否正確,例如型別檢查、變數宣告檢查等。
- 中間碼生成 (Intermediate Code Generation):生成一種獨立於機器架構的中間表示。
- 程式碼最佳化 (Code Optimization):對中間碼或目標碼進行優化,提高執行效率。
- 目標碼生成 (Code Generation):將中間碼轉換成目標語言(通常是機器碼)。
編譯器將整個程式碼一次性轉換完成,生成一個可執行檔。這與直譯器 (Interpreter) 不同,直譯器是逐行讀取並執行程式碼。
應用:C, C++, Java (編譯成位元組碼), Go 等語言的開發環境。
(2) Debug
定義:Debug(除錯)是指找出並修正電腦程式或硬體中的錯誤(稱為 Bug)的過程。Bug 可能導致程式崩潰、結果不正確、效能低下或行為異常。
除錯的常見方法與工具:
- 除錯器 (Debugger):這是最常用的工具。除錯器允許開發者:
- 設定中斷點 (Breakpoints):讓程式在執行到特定行時暫停。
- 逐步執行 (Stepping):逐行或逐個指令執行程式碼。
- 檢查變數值 (Variable Inspection):查看程式執行過程中變數的當前值。
- 觀察記憶體 (Memory Inspection):查看記憶體中的數據。
- 堆疊追蹤 (Stack Tracing):了解函數呼叫的順序。
第 5 題
請使用 pseudo code 或實際程式碼完成以下成績計算,並將是否及格顯示給使用者看,需使用 array 儲存資料以及 if、for 指令: (50%)
10 位同學原始分數如下:58, 59, 60, 61, 62, 63, 64, 70, 80, 90
2 號同學發問 2 次,4 號同學缺席 1 次,10 號同學發問 1 次
分數調整依據:發問 +2,缺席 -5,60 分及格
備註:
一、作答於試題上者,不予計分。
二、試題請隨卷繳交。
登入後即可作答並保存紀錄。
本題要求使用程式邏輯(pseudo code 或實際程式碼)來計算學生成績,並根據調整規則判斷及格與否。考驗考生對陣列 (array)、迴圈 (for loop)、條件判斷 (if statement) 以及基本資料處理的掌握能力。
核心觀念:
- 資料結構:使用陣列儲存學生的原始分數。
- 迴圈:遍歷所有學生的分數進行計算與判斷。
- 條件判斷:根據調整規則更新分數,並判斷是否及格。
- ** Pseudo Code**:使用一種高階、易讀的程式語言描述,不拘泥於特定程式語言的語法。
題目分析:
- 有 10 位同學。
- 原始分數已給定。
- 部分同學有額外的分數調整(發問加分,缺席扣分)。
- 及格分數線為 60 分。
- 需要輸出調整後的成績,以及是否及格的訊息。
假設:
- 學生編號從 1 開始。
- 發問次數和缺席次數只針對特定學生,其他同學沒有額外調整。
- 調整規則是加到原始分數上。
Pseudo Code 設計:
// 定義常數
DEFINE SCORE_THRESHOLD = 60 // 及格分數線
DEFINE ASK_BONUS = 2 // 發問加分
DEFINE ABSENCE_PENALTY = 5 // 缺席扣分
// 儲存 10 位同學的原始分數 (使用陣列)
// 索引 0-9 對應同學 1-10
DECLARE original_scores AS ARRAY[10] OF INTEGER
original_scores = [58, 59, 60, 61, 62, 63, 64, 70, 80, 90]
// 儲存調整後的成績
DECLARE adjusted_scores AS ARRAY[10] OF INTEGER
// 儲存同學的特殊調整資訊 (使用陣列或 map/dictionary)
// 這裡我們用陣列,索引對應同學編號 (0-9)
// 元素為 [發問次數, 缺席次數]
DECLARE special_adjustments AS ARRAY[10] OF ARRAY[2] OF INTEGER
// 初始化所有同學的調整為 [0, 0]
FOR i FROM 0 TO 9
special_adjustments[i] = [0, 0]
END FOR
// 設定特定同學的調整
// 2 號同學 (索引 1) 發問 2 次
special_adjustments[1][0] = 2
// 4 號同學 (索引 3) 缺席 1 次
special_adjustments[3][1] = 1
// 10 號同學 (索引 9) 發問 1 次
special_adjustments[9][0] = 1
// 迴圈處理每一位同學的成績
FOR i FROM 0 TO 9 // i 是陣列索引,代表第 i+1 號同學
// 獲取原始分數
current_score = original_scores[i]
// 獲取該同學的特殊調整
asks = special_adjustments[i][0]
absences = special_adjustments[i][1]
// 計算調整分數
adjustment = (asks * ASK_BONUS) - (absences * ABSENCE_PENALTY)
// 計算調整後的最終分數
final_score = current_score + adjustment
// 確保分數不會低於 0 (雖然題目沒說,但通常是這樣)
IF final_score < 0 THEN
final_score = 0
END IF
// 儲存調整後的成績
adjusted_scores[i] = final_score
// 判斷是否及格並顯示結果
is_passing = (final_score >= SCORE_THRESHOLD)
IF is_passing THEN
PRINT "同學 " + (i + 1) + ": 成績 = " + final_score + ", 結果 = 及格"
ELSE
PRINT "同學 " + (i + 1) + ": 成績 = " + final_score + ", 結果 = 不及格"
END IF
END FOR
// (可選) 輸出所有調整後的成績列表
// PRINT "所有調整後的成績: " + adjusted_scores
實際程式碼範例 (Python):