An open API service indexing awesome lists of open source software.

https://github.com/sonnyson-p/advanced-computer-programming-teaching-works

Advanced computer programming textbook
https://github.com/sonnyson-p/advanced-computer-programming-teaching-works

algorithm cpp data-structure teaching

Last synced: 19 days ago
JSON representation

Advanced computer programming textbook

Awesome Lists containing this project

README

          

# Advanced Computer Programming Teaching Works

**一、動機說明:** 本課程內容係依據普通高中科技工程學群「加深加廣課程—進階程式設計」所設計,目標在於協助學生在掌握基礎程式設計能力後,進一步深化理解並拓展相關知能,培養邏輯思維與程式開發的綜合應用能力。

**二、教學目標:** 本課程著重於程式設計中資料結構與演算法的核心概念與實作技巧,透過系統化的教學內容,引導學生掌握有效管理與處理資料的方式,並培養解決問題的邏輯思維與演算法設計能力。期能提升學生在軟體開發、競賽程式設計及後續進階學習上的應用能力與競爭力。

**三、學習內容:**

- 學習重點: 掌握從矩陣操作、物件導向到進階資料結構(如鏈結串列、樹、圖)的應用;深耕核心演算法,包含遞迴、搜尋排序、深度/廣度優先遍歷及動態規劃。

> [!Note]
> 由於內容包含矩陣與向量操作、標準與自訂模組、定義類別與建立物件、移動視窗法(Sliding Window)、堆疊(Stack)與佇列(Queue)、鏈結串列(Linked List)、哈希表(Hash Table)、樹狀結構(Tree)、圖(Graph)、排序(Sort)、遞迴(Recursion)、直接搜尋法與二元搜尋法(Binary Search)、深度搜尋法(DFS)與廣度搜尋法(BFS)、動態規劃(Dynamic Programming)等等,課程難度將依學生的先備知識水平及學習狀況,即時進行適性化滾動調整。

- 學習順序: `pointer` → `reference` → `absolute` → `power` → `max-array` → `max-vector` → `degree_to_radian` → `coin_change-greedy` → `average` → `standard_deviation` → `prime-exhaustive` → `prime-trial_division` → `gcd` → `matrix_addition` → `matrix_multiplication` → `large_Integer_multiplication` → `sum_1_to_n-Iterative` → `sum_1_to_n-recursion` → `fibonacci_recursion` → `fibonacci_DP` → `knapsack_bitmask` → `knapsack_DP` → `bubble_sort` → `insertion_sort` → `bucket_sort` → `merge_sort.cpp` → `median` → `linear_search` → `binary_search` → `stack-function` → `stack-OOP` → `queue` → `function_overloading-polymorphism` → `string_matching-sliding_window` → `linked_list` → `hash_table` → `binary_tree` → `BFS` → `DFS` → `dijkstra` → `MST-prim`(還尚有其他內容,陸續整理中)

**四、學習環境:**
1. 程式語言:C++11以上版本
2. 編輯器:Visual Studio Code

**五、運行方式:**
```bash
g++ -std=c++11 <檔案名稱>.cpp -o app
./app
```