S SmartDocs

프로그래밍 언어

Python, C, C++, Java, JavaScript, TypeScript, Go, R, Haskell 튜토리얼 — 기초 문법부터 고급 기법까지.

python old EN 업데이트 2026-02-03

Graph Algorithms Python Implementation

This repository contains comprehensive Python implementations of graph algorithms with detailed demonstrations and educational materials.

글 읽기 →
python old EN 업데이트 2026-02-03

Comprehensive Graph Algorithms Teaching Guide

Advanced Data Structures and Algorithms Chapter 9 Format: Detailed Markdown Teaching Material Target Audience: Computer Science Students Undergraduate to Graduate level Duration: 34 hours of comprehensive instruction

글 읽기 →
python old EN 업데이트 2026-02-03

Dijkstra's Algorithm Comprehensive Guide

A Complete Educational Resource for Understanding and Implementing Dijkstra's Algorithm

글 읽기 →
python old EN 업데이트 2026-02-03

Enhanced Lecture Script — Graph Algorithms

Format: Comprehensive Markdown Teaching Material Based on: Data Structures and Algorithm Analysis + extensive realworld applications + detailed implementations

글 읽기 →
python old EN 업데이트 2026-02-03

PyTest 90‑Minute Workshop

This repository contains starter and solutions projects for teaching a 90‑minute PyTest class.

글 읽기 →
C Programming Language 中文 업데이트 2026-02-03

📘 實作題

輸入一個整數 score (0 ≤ score ≤ 100),判斷該成績的等第。

글 읽기 →
C Programming Language 中文 업데이트 2026-02-03

apcs 20 answer

📘 string 是複合型別,不是基本型別。int, float, char, boolean

글 읽기 →
C Programming Language 中文 업데이트 2026-02-03

apcs 20 choices

1. 下列哪一個是合法的變數名稱? C A. 2count B. totalscore C. sum D. class

글 읽기 →
C++ 中文 업데이트 2026-07-21

題目說明

PRG155 期末專題:家庭保全系統 — 詳細解題報告[6pt] Home Security System(DeviceAlpha 開發板模擬)[4pt] 繳交期限:2026 年 7 月 30 日實驗課開始前(需現場簡報) | 繳交檔案: | 配分:15 分

글 읽기 →
C++ 中文 업데이트 2026-07-21

題目說明

PRG155 Lab 8:for 迴圈 — 詳細解題報告[6pt] 溫度讀取程式(Device Alpha 開發板)[4pt] 繳交期限:2026 年 7 月 23 日實驗課開始前 | 繳交檔案: | 配分:2 分

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch01:認識 C++ 與開發環境

了解 C++ 語言的歷史、設計哲學與特色 清楚說明程式的編譯流程(前置處理 → 編譯 → 組譯 → 連結) 安裝並設定 C++ 開發環境(g++ / clang++ / IDE) 熟悉常用的編譯器旗標(std、Wall、Wextra、g、O2) 理解 Debug 與 Release 兩種建置模式的差異 撰寫、編譯並執行你的第一個 C++ 程式 看得懂編譯器錯誤訊息並加以修正 認識 C++ 程式的基本結構、註解與命名空間 建立一套適合自己

글 읽기 →
C++ 中文 업데이트 2026-07-29

Ch02:變數與資料型別

學會宣告與初始化變數,理解四種初始化形式的差異 認識 C++ 的基本資料型別(整數、浮點數、字元、布林) 理解固定寬度整數型別(<cstdint)與何時該用它們 搞懂 signed / unsigned 的差別與常見陷阱 了解浮點數的 IEEE 754 表示法,以及為什麼 0.1 + 0.2 = 0.3 掌握型別轉換規則(整數提升、一般算術轉換)與四種 cast 認識位元運算子(&、、^、~、<<、) 區分 const 與 conste

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch03:控制流程

掌握條件判斷:if / else if / else,以及 C++17 的 if 初始化語句 熟練三元(條件)運算子,理解它與 if 的取捨 學會多路分支:switch / case,理解穿透與 fallthrough 理解邏輯運算子的短路求值及其實際用途 熟悉迴圈結構:for、while、dowhile、範圍 for 用範圍 for 搭配結構化綁定遍歷 map 等容器 了解 break、continue 與「跳出多層迴圈」的處理方式

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch04 — 函式(Functions)

函式是程式的基本建構單元。將重複的邏輯封裝成函式,可以提高程式碼的可讀性、可維護性和重用性。 一支好的程式不是「一大段做很多事的程式碼」,而是「許多各司其職的小函式互相合作」。學會切分函式,是從「會寫程式」邁向「會設計程式」的第一步。

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch05 — 陣列與字串(Arrays & Strings)

陣列是存放同型別元素的連續記憶體區塊;字串則是用來處理文字的基本工具。C++ 同時支援 C 風格陣列 / 字串以及更安全的 std::array / std::string。 理解「陣列在記憶體裡是怎麼擺的」,是理解後續指標、字串、資料結構的關鍵。本章會大量使用記憶體示意圖。

글 읽기 →
C++ 中文 업데이트 2026-07-27

Ch06 — 指標與參考(Pointers & References)

指標和參考是 C++ 最重要也最容易混淆的概念之一。理解它們是掌握動態記憶體管理、多型、資料結構的基礎。 建議授課時數:2 小時(含 10 分鐘休息)

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch07:結構體與列舉(Struct & Enum)

1. 理解 struct 的定義方式、用途與背後的設計動機 2. 掌握結構體的多種初始化方式(聚合初始化、C++20 指定初始化器) 3. 了解結構體的記憶體佈局、對齊(alignment)與填充(padding) 4. 學會巢狀結構體、結構體陣列與成員函式 5. 認識 POD / trivial type 的概念 6. 精確分辨 struct 與 class 的差異(語法 vs 慣例) 7. 深入理解傳統列舉 enum 與限域列舉 e

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch08:類別與物件(Class & Object)

1. 理解類別(class)與結構體(struct)的差異,以及「物件」的本質 2. 說明封裝(encapsulation)的哲學與實際好處 3. 掌握存取修飾詞:public、private、protected 4. 定義成員變數與成員函式,並理解 const 成員函式為何重要 5. 深入理解 this 指標的用途與機制 6. 學會使用 static 成員變數與成員函式(共享狀態) 7. 理解類別不變式(invariant)的概念,並

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch09:建構子與解構子(Constructor & Destructor)

1. 理解各種建構子的種類與用法(預設、帶參數、委託、轉換、explicit) 2. 掌握成員初始化列表的語法、初始化順序與「為何優先於賦值」 3. 理解解構子的角色與解構順序 4. 掌握拷貝建構子與拷貝賦值運算子,分辨深拷貝 vs 淺拷貝 5. 深入理解 Rule of Three / Five / Zero 6. 理解 RAII 哲學,並知道它為何是 C++ 資源管理的基石 7. 學會使用 = default 與 = delete

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch10 — 繼承與多型

物件導向三大支柱之二:繼承 Inheritance 與 多型 Polymorphism。 繼承讓我們在既有類別的基礎上擴充功能;多型讓同一介面對不同型別產生不同行為。 這兩個機制是 C++ 設計大型可擴充系統的核心,但也是初學者最容易誤用的地方。

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch11 — 運算子多載

運算子多載 Operator Overloading 讓自定義型別也能使用 +、、<<、 等運算子, 使程式碼更直覺、更貼近數學或自然語言。 它本質上只是「換個語法的函式呼叫」——a + b 其實就是呼叫 operator+a, b。

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch12:模板程式設計

說明 為什麼需要模板,並比較模板與「複製貼上多份程式碼」、巨集(macro)、void 三種泛型手段的優劣 撰寫 函式模板,理解 模板引數推導(template argument deduction) 的規則與限制 使用 明確模板引數、多型別參數、非型別模板參數(NTTP) 撰寫 類別模板,並能把成員函式定義在類別外 區分並實作 完整特化(full specialization) 與 部分特化(partial specializatio

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch13:STL 容器

說明 STL 的三大支柱(容器、迭代器、演算法)如何協作,以及為何如此設計 理解每種容器的 底層結構、記憶體佈局與時間複雜度(BigO) 熟練使用 序列容器:vector、deque、list、forwardlist、array 熟練使用 關聯容器:map、multimap、set、multiset(紅黑樹、有序) 熟練使用 無序容器:unorderedmap/unorderedset(雜湊表、負載因子、自訂雜湊) 熟練使用 容器配接器

글 읽기 →
C++ 中文 업데이트 2026-06-15

Ch14 — STL 演算法與迭代器(Algorithms & Iterators)

迭代器是連接容器與演算法的橋樑。STL 演算法透過迭代器操作資料,讓你無需了解容器的內部實作,就能對資料進行排序、搜尋、轉換等操作。學會「用演算法表達意圖」而非「手寫迴圈」,是寫出現代、正確、高效 C++ 的關鍵一步。

글 읽기 →