Pandoc 是一個強大的 Haskell 程式庫與命令列工具,用於在多種標記語言格式之間進行文件轉換,例如 Markdown、HTML、LaTeX 和 Word docx 等。它的設計是模組化的,透過「讀取器」(readers)將文本解析為抽象語法樹(AST),再由「寫入器」(writers)將 AST 轉換為目標格式。
Jack 老師教學互動區
2025年7月11日 星期五
2025年7月10日 星期四
robocopy
robocopy
是 Windows 內建的高效能檔案拷貝工具,全名為 Robust File Copy,適用於大量資料搬移與同步用途,特別在處理:
大量小檔案
巨大資料夾
網路傳輸
自動化備份
參數 | 中文說明 | 用途 |
---|---|---|
%SRC% |
資料來源路徑變數 | 例如:D:\MyData |
%DEST% |
資料目的地路徑變數 | 例如:\\192.168.0.2\SharedFolder |
/MIR |
Mirror(鏡像)同步 | 將目的地變成跟來源一模一樣❗會刪除目的地中多餘檔案 |
/Z |
可中斷續傳 | 傳輸中斷(如網路掉線)可恢復接續拷貝 |
/W:1 |
每次失敗後等待 1 秒 | 遇錯重試前的等待秒數 |
/R:3 |
最多重試 3 次 | 檔案讀寫錯誤時最多嘗試幾次 |
/LOG:log.txt |
將日誌寫入 log.txt 檔案 | 可追蹤哪個檔案有成功/失敗 |
2025年6月25日 星期三
python 縮格練習
n =int(input())
s = list(range(n))
f = [int(i) for i in input().split()]
print(s)
print(f)
print()
print('正確')
v = []
for i in s:
if i not in v:
cur =i
g = []
while cur not in g:
v.append(cur)
g.append(cur)
cur = f[cur]
print(g)
print('錯誤1')
v = []
for i in s:
if i not in v:
cur =i
g = []
while cur not in g:
v.append(cur)
g.append(cur)
cur = f[cur]
print(g)
print('錯誤2')
v = []
for i in s:
if i not in v:
cur =i
g = []
while cur not in g:
v.append(cur)
g.append(cur)
cur = f[cur]
print(g)
print('錯誤3')
v = []
for i in s:
if i not in v:
cur =i
g = []
while cur not in g:
v.append(cur)
g.append(cur)
cur = f[cur]
print(g)
10
4 7 2 9 6 0 8 1 5 3
STDIN
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[4, 7, 2, 9, 6, 0, 8, 1, 5, 3]
Output:
正確
[0, 4, 6, 8, 5]
[1, 7]
[2]
[3, 9]
錯誤1
[0]
[0, 4]
[0, 4, 6]
[0, 4, 6, 8]
[0, 4, 6, 8, 5]
[1]
[1, 7]
[2]
[3]
[3, 9]
錯誤2
[0, 4, 6, 8, 5]
[1, 7]
[2]
[3, 9]
[3, 9]
[3, 9]
[3, 9]
[3, 9]
[3, 9]
[3, 9]
錯誤3
[3, 9]
2025年6月24日 星期二
小群體-拆解逐步完成版
ss = [0,1,2,3,4,5,6,7,8,9]
f = [4, 7, 2, 9, 6, 0, 8, 1, 5, 3]
# 1:找到第一群'
# g = []
# cur = 0
# while cur not in g:
# g.append(cur)
# cur = f[cur]
# print(g)
# 2:'找到每一群'
# for s in ss:
# g = []
# cur = s
# while cur not in g:
# g.append(cur)
# cur = f[cur]
# print(g)
# 3: '找到每一群,去重覆群'
# v = []
# for s in ss:
# g = []
# cur = s
# if s not in v:
# while cur not in g:
# g.append(cur)
# v.append(cur)
# cur = f[cur]
# print(g)
# 4: '找到每一群,去重覆群,算出共幾群'
v = []
gs = []
for s in ss:
g = []
cur = s
if s not in v:
while cur not in g:
g.append(cur)
v.append(cur)
cur = f[cur]
print(g)
gs.append(g)
print('共',len(gs),'群')
Output:
[0, 4, 6, 8, 5]
[1, 7]
[2]
[3, 9]
共 4 群
2025年6月20日 星期五
高中一年級新生準備 APCS準備計畫
1. 了解 APCS 的重要性與目標設定
- 升學優勢:APCS 成績已被多所大學(包含臺灣大學、清華大學、陽明交通大學、成功大學等頂尖大學的資工系)納入入學審查與甄選加分依據。參與 APCS 檢測並取得成績,能為學生在大學個人申請中,透過 APCS 組、資安組或特殊選才,大大增加進入理想資訊相關科系(如資工系、資管系)的競爭力與選擇。
- 目標設定:若以大學升學為導向,建議至少考取 APCS 實作三級,這在特殊選才中已有機會申請上國立後段資工系。若能達到實作四級,更有機會透過特殊選才錄取中字輩資工系。考量到大學資訊系課程的嚴謹度(例如,有教授可能當掉70%的學生),提前準備 APCS 有助於銜接大學課程。
2. 基礎程式能力建立(高中一年級上學期)
- 程式語言選擇:Python 是最推薦的入門語言。Python 語法簡潔、易讀性高,且是全球最受歡迎的程式語言,特別在人工智慧和資料科學領域廣泛應用。從 2025 年起,APCS 的「程式識讀」和「程式實作」都新增了 Python 語言選項,這意味著考生若熟悉 Python,便能應付所有模組的測驗。
- 學習內容:
- Python 基礎語法與觀念:學習變數、資料型態、運算子、輸入/輸出、條件判斷(選擇)和迴圈(重複)等程式流程控制。
- 常用容器:掌握列表(list)等資料結構的基本使用。
- 函式:了解函式的定義與呼叫,初步建立模組化概念。
3. 進階程式能力與解題思維(高中一年級下學期至二年級)
- 強化邏輯與問題解決能力:APCS 檢測旨在訓練學生的邏輯思維與問題解決能力。課程應培養學生「從拆解、分析,到解決複雜問題」的能力。
- 擴展程式語言能力:雖然主要學習 Python,但觀念題可能涉及 C/C++。因此,建議花時間學習「讀懂」C 語言,這有助於應對觀念題型。有些培訓課程會提供程式語法轉換的教學。
- 學習進階資料結構與演算法:這是 APCS 的核心考點。
- 基礎資料結構:深入學習佇列(queue)、堆疊(stack)、陣列(array)、字元(character)、字串(string)等。
- 基礎演算法:學習排序(sorting)、搜尋(searching,如二分搜尋 binary search、深度優先搜尋 DFS)等。
- 進階概念:函式、遞迴、樹狀圖(tree,如二元樹)、圖形(graph,如網格)、枚舉(enumeration)、資料遍歷(traversal)等。
- 高階演算法:對於目標高級的學生,還需學習動態規劃(dynamic programming)、分治法(divide and conquer)、貪心法則(greedy method)等。
4. 實戰演練與應試技巧(高中二年級至三年級)
- 考古題練習:充分利用 APCS 歷屆考古題庫進行實作練習,例如 Yui Huang 筆記中提供了從 2016 年到 2025 年的考古題。
- 模擬測驗:透過實作模擬檢定當時的狀況,加強學生記憶與應試能力。
- 題型分析與解題技巧:針對「程式識讀」的程式運行追蹤、填空、測試除錯、效能分析、計算邏輯解析,以及「程式實作」的撰寫完整程式或副程式等題型進行專項訓練,從技巧觀念、例題實作到挑戰題,由簡入難提升解題策略。
- 理解新制實作分級與報名策略:
- 從 2025 年起,「程式實作」改採等級制檢定,分為初級、中級、中高級、高級四個等級。
- 學生需根據自身目標級分,選擇對應的檢測等級報名。例如,若目標為三級分,可報考中高級(100-149 分)或中級(150-300 分)。若報考的測驗等級錯誤,即使獲得滿分也無法得到理想級分,因此務必注意選測等級的重要性。
5. APCS 考試時程規劃
- 考試頻率增加:自 2025 年起,APCS 檢定次數增加至每年 6 次,分別於 1 月、3 月、6 月、7 月、10 月、11 月舉辦,這提供了學生更大的考試彈性,可以根據學習進度安排應試時間。
- 科目報考時間:
- 程式識讀:每次檢測月份皆可報考,並有 C/C++ 或 Python 程式語言的檢測題目供選擇。
- 程式實作:不同等級舉辦月份不同,其中初級與中級舉辦月份較多(5 次),中高級為 3 次,高級為 2 次。
6. 綜合能力與視野提升
- 拓展科技視野:除了程式技術,應積極了解人工智慧、區塊鏈、5G、VR、AR、駭客思維、創新創業等最新的科技趨勢與思維模式。這不僅能開拓視野,也能在大學面試時與教授進行深入交流。
- 培養軟實力:除了學業,也建議高中生多探索不同科系領域,並參與球隊、興趣性社團等,培養運動習慣、社交能力和興趣。這些多元發展對於長遠人生和解決問題的能力都有助益。
2025 新制 APCS 重點整理
APCS(大學程式設計先修檢測)是由教育部指導、臺師大資工系執行的全國性程式設計檢定,主要評量高中職學生在邏輯推理、演算法思維與程式撰寫能力的表現,並成為各大學資訊相關科系參採的重要升學依據。目前已有超過 30 所大學、80 多個科系納入 APCS 成績,包括台大、清大、交大與成大等頂尖學校。
APCS 分為兩部分:程式識讀(筆試)與 程式實作(電腦上機)。2025 年起的新制 APCS有三大關鍵改變:
-
考試次數加倍:由原本每年 3 次(1月、6月、10月)調整為 每年 6 次(新增 3月、7月、11月),提供學生更高的彈性安排,並降低單次壓力。
-
語言選擇與實作分級:
-
程式識讀新增 Python 語言,讓初學者有更親切的選擇。
-
程式實作改採 等級制檢定,分為初級、中級、中高級與高級。考生須依照目標級分選擇相應等級,若報考較低等級,即使拿滿分也無法獲得高級分。
-
-
成績更具辨識力:程式實作除了 1~5 級分外,還會列出原始分數與報考等級,使大學更能掌握學生的實際能力,有利於備審資料與面試表現。
準備建議:
- 建議考生可專注學習 Python,並搭配資料結構(陣列、堆疊、佇列、樹、圖)與演算法(排序、搜尋、遞迴、動態規劃等)系統訓練。
- 配合歷屆題型、模擬練習及錯題整理,有助於提升解題技巧與應試信心。