2025-先修課程-Python語言程式入門(9-12月)

  • 0.0
  • 187 學生
  • 報名時間 : 2025/01/01 - 2025/12/31
  • 開課時間 : 2025/01/01 - 2025/12/31
  • 課程費用 : 800 元

NT$. 800 加入購物車

介紹

本課程強調動手嘗試程式,鼓勵學生和電腦執行環境互動,直接體會電腦語言的邏輯,而不是用死背的。在課程設計上採取循序漸進的方式,由最基礎的資料類型開始,包括流程、函式、序列等。透過生活化的比喻,來加深學習時的印象,啟發學生動手撰寫程式,進一步引導學生到自我領域相關應用。

課程目標

1. 解讀程式語言的原理,語法、語意、執行步驟、輸入與輸出。

2. 套用程式語言的邏輯概念,撰寫簡單的程式,並予測試、除錯。

3. 學會引入現有套件到自己撰寫的程式裡解決特定問題。

教師提供課程製作講義,並放置於課程網站之中。

章節

* 以下章節為預覽,請點報名後點選開始上課,進入課程
  • 第1週:介紹及環境設置|Introduction and Environment Setup
    • ● 1-1 課程及Python介紹|Course Overview and Python Introduction
    • ● 1-2 Python示範|Python Demo
    • ● 練習1
    • ● 1-3 開發環境 & 課程主題|Development Environment & Course Topics
    • ● 2-1 專有名詞介紹|Terminology
    • ● 練習2
    • ● 2-2 Cygwin(Windows使用者)|Cygwin (for Windows Users)
    • ● 2-3 IDLE(所有使用者)|IDLE (for All Users)
    • ● 2-4 Jupyter Notebook(所有使用者)|Jupyter Notebook (for All Users)
    • ● 2-5 macOS Terminal(Mac使用者)|macOS Terminal (for Mac Users)
    • ● 2-6 Linux Terminal(Ubuntu使用者)|Linux Terminal (for Ubuntu Users)
    • ● 2-7 指令介面|Command-Line Interface
    • ● 練習3
    • ● 2-8 文字編輯器|Text Editor
    • ● 練習4
    • ● 00-jupyter
    • ● 01-intro
    • ● 02-terminology
    • ● 02-CLI
    • ● 每周AI統整提問
  • 第2週:Python概觀|A Quick Tour of Python
    • ● 3-1 輸入/輸出、註解|Input/Output, Comments
    • ● 練習1
    • ● 3-2 運算元|Operators
    • ● 練習2
    • ● 3-3 整數|Integers
    • ● 練習3
    • ● 3-4 浮點數與複數|Floating Point Numbers and Complex Numbers
    • ● 練習4
    • ● 3-5 字串運算元|String Operators
    • ● 練習5
    • ● 3-6 列表、元組|Lists, Tuples
    • ● 3-7 字典、集合|Dictionaries, Sets
    • ● 練習6
    • ● 3-8 for迴圈|for Loops
    • ● 練習7
    • ● 3-9 if判斷式、while迴圈|if Statements, while Loops
    • ● 練習8
    • ● 3-10 函式|Functions
    • ● 練習9
    • ● 3-11 模組|Modules
    • ● 練習10
    • ● 3-12 range()函數|range() Function
    • ● 3-13 open()函式|open() Function
    • ● 練習11
    • ● 3-14 物件導向程式|Object-Oriented Programming
    • ● 3-15 物件導向程式範例|Example of Object-Oriented Programming
    • ● 練習12
    • ● 3-16 語句(陳述)、分隔符|Statements, Delimiters
    • ● 練習13
    • ● 3-17 賦值|Assignments
    • ● 練習14
    • ● 3-18 關鍵詞、標示符|Keywords, Identifiers
    • ● 練習15
    • ● 3-19 程式風格|Coding Style
    • ● 練習16
    • ● 03-tour
    • ● 每周統整AI提問
  • 第3週:基本資料模式、Python應用程式|Basic Data Types, Python Applications
    • ● 4-1 字元、ASCII編碼|Characters, ASCII Code
    • ● 練習1
    • ● 4-2 ord()和chr()函式|ord() & chr() Functions
    • ● 練習2
    • ● 4-3 ASCII控制碼|Control Characters in ASCII
    • ● 練習3
    • ● 4-4 萬國碼|Unicode
    • ● 4-5 字面值vs.表達式vs.變數|Literals vs. Expressions vs. Variables
    • ● 練習4
    • ● 4-6 數值、數字|Numbers, Numerals
    • ● 練習5
    • ● 4-7 整數字面值|Integer Literals
    • ● 練習6
    • ● 4-8 進制轉換|Integer Literal Conversion
    • ● 練習7
    • ● 4-9 位元運算|Bitwise Operators
    • ● 練習8
    • ● 4-10 負整數表示法|Negative Integer Representation
    • ● 4-11 位元移位|Bit Shifting
    • ● 練習9
    • ● 4-12 數學函式|Math Functions
    • ● 4-13 布林值、短路求值(且)|Boolean, Short-Circuit Evaluation (and)
    • ● 練習10
    • ● 4-14 短路求值(或)|Short-Circuit Evaluation (or)
    • ● 4-15 比較運算符|Comparison Operators
    • ● 練習11
    • ● 5-1 Unix指令工具介紹:uniq|Introduction to Unix Utility: uniq
    • ● 5-2 Unix指令工具介紹:cat|Introduction to Unix Utility: cat
    • ● 5-3 Unix指令工具介紹:grep|Introduction to Unix Utility: grep
    • ● 5-4 Python程式執行|Running a Python Script
    • ● 5-5 指令介面參數|Command-Line Arguments
    • ● 04-basic-types
    • ● 05-app
    • ● 每周AI統整提問
  • 第4週:Python應用程式(續)、字串|Python Applications (cont
    • ● 5-6 範例程式|Template Code
    • ● 練習1
    • ● 5-7 uniq指令實作|Implementing uniq in Python
    • ● 5-8 cat指令實作|Implementing cat in Python
    • ● 5-9 grep指令實作|Implementing grep in Python
    • ● 5-10 grep指令實作(續)|Implementing grep in Python (cont
    • ● 練習2
    • ● 6-1 跳脫字元|Backslash Escape
    • ● 練習3
    • ● 6-2 字元字面值、單引號vs.雙引號|Char Literals, Single Quotes vs. Double Quotes
    • ● 練習4
    • ● 6-3 原始字串|Raw Strings
    • ● 6-4 多行字串、三重引號|Multiline Strings, Triple Quotes
    • ● 練習5
    • ● 6-5 字串格式化、%格式化運算元|String Formatting, % Formatting Operators
    • ● 練習6
    • ● 6-6 數值字串格式化|Number Formatting
    • ● 練習7
    • ● 6-7 字元格式化|Character Formatting
    • ● 練習8
    • ● 6-8 字串.format()函式:位置|str.format() Method: by Position
    • ● 6-9 字串.format()函式:索引|str.format() Method: by Index
    • ● 6-10 字串.format()函式:關鍵字|str.format() Method: by Keyword
    • ● 練習9
    • ● 6-11 字串.format()函式:數值字串格式化|str.format() Method: Number Formatting
    • ● 6-12 字串.format()函式:對齊|str.format() Method: Padding with Alignment
    • ● 6-13 應用範例:乘法表|Example App: Multiplication Table
    • ● 6-14 f字串|f-strings
    • ● 練習10
    • ● 6-15 f字串:表達式、數值字串格式化|f-strings: Expression, Number Formatting
    • ● 6-16 字串.split()函式|str.split() Method
    • ● 練習11
    • ● 6-17 wc指令實作|Implementing Unix Utility: wc
    • ● 6-18 字串.join()函式|str.join() Method
    • ● 練習12
    • ● 6-19 string模組|string Module
    • ● 練習13
    • ● 06-strings
    • ● 每周AI統整提問
  • 第5週:序列、集合、字典|Sequences, Sets, Dictionaries
    • ● 7-1 序列、索引、截取|Sequences, Indexing, Slicing
    • ● 練習1
    • ● 7-2 截取(續)、轉換成列表或元組|Slicing (cont
    • ● 7-3 序列運算元|Sequence Operators
    • ● 練習2
    • ● 7-4 序列方法|Sequence Methods
    • ● 7-5 序列方法範例|Example Sequence Methods
    • ● 練習3
    • ● 7-6 序列函式|Sequence Functions
    • ● 7-7 改變vs.新建並捨棄|Mutate vs. Create & Abandon
    • ● 7-8 列表構建|List Comprehension
    • ● 練習4
    • ● 7-9 淺複製vs.深複製|Shallow Copy vs. Deep Copy
    • ● 練習5
    • ● 8-1 集合|Sets
    • ● 練習6
    • ● 8-2 集合構建|Set Comprehension
    • ● 8-3 集合運算元|Set Operators
    • ● 8-4 集合方法|Set Methods
    • ● 8-5 集合方法範例|Example Set Methods
    • ● 9-1 字典|Dictionaries
    • ● 練習7
    • ● 9-2 字典存取及複製|Accessing, Modifying, and Copying Dictionaries
    • ● 練習8
    • ● 9-3 字典鍵的限制、排序、字典套用於字串格式化|Restrictions on Keys, Sorting, String Formatting with Dictionaries
    • ● 07-seq
    • ● 08-sets
    • ● 09-dict
    • ● 每周AI統整提問
  • 第6週:控制流程|Control Constructs
    • ● 10-1 if-else陳述式|if-else Statements
    • ● 練習1
    • ● 10-2 範例:翻譯(版本1)|Example: Translation (First Version)
    • ● 練習2
    • ● 10-3 範例:翻譯(版本2,解法A)|Example: Translation (Second Version, Solution A)
    • ● 10-4 範例:翻譯(版本2,解法B)|Example: Translation (Second Version, Solution B)
    • ● 10-5 轉換成函式|Conversion to Function
    • ● 10-6 條件表達式|Conditional Expressions
    • ● 10-7 範例:閏年|Example: Leap Year
    • ● 10-8 if-elif-else陳述式|if-elif-else Statements
    • ● 練習3
    • ● 10-9 化簡回傳布林值的if-else|Eliminating if-else When Returning Boolean
    • ● 練習4
    • ● 11-1 while迴圈|while Loops
    • ● 11-2 範例1:實作product()函式|Example 1: Implementing product() function
    • ● 11-3 無限迴圈+break陳述式|Infinite Loop + break Statement
    • ● 11-4 範例2:實作index()函式|Example 2: Implementing index() function
    • ● 11-5 while-else陳述式|while-else Statements
    • ● 11-6 用return離開while迴圈|Exit while Loop Using return
    • ● 11-7 範例3:重複查詢字典|Example 3: Repeated Dictionary Lookup
    • ● 11-8 範例4:stack指令轉譯器|Example 4: Stack-Command Interpreter
    • ● 11-9 continue陳述式|continue Statements
    • ● 11-10 for迴圈、在for迴圈拆解元組|for Loops, for Loops with Unpacking Tuples
    • ● 練習5
    • ● 11-11 在for迴圈用enumerate()函式|for Loops with enumerate() function
    • ● 練習6
    • ● 10-conditional
    • ● 11-loops
    • ● 每周AI統整提問
  • 第7週:例外、檔案|Exceptions, Files
    • ● 12-1 例外介紹|Introduction to Exceptions
    • ● 12-2 常見例外|Common Exceptions
    • ● 練習1
    • ● 12-3 try-except陳述式、例外的控制流程|try-except Statements, Control Flow of Exceptions
    • ● 12-4 處理多個例外、例外參數|Handling Multiple Exceptions, Exception Arguments
    • ● 練習2
    • ● 12-5 巢狀try-except陳述式|Nested try-except Statements
    • ● 12-6 try-except-finally|try-except-finally
    • ● 練習3
    • ● 12-7 例外類別階層|Exception Class Hierarchy
    • ● 12-8 發起例外|Raising Exceptions
    • ● 練習4
    • ● 12-9 斷言|Assertions
    • ● 13-1 檔案I/O介紹|Introduction to File I/O
    • ● 13-2 開啟檔案、檔案路徑|Opening Files, File Path
    • ● 練習5
    • ● 13-3 讀取檔案|Reading Files
    • ● 練習6
    • ● 13-4 寫入檔案|Writing Files
    • ● 13-5 with-as陳述式、seek()和tell()方法|with-as Statements, seek() and tell() Methods
    • ● 練習7
    • ● 13-6 標準輸入輸出|Standard I/O
    • ● 練習8
    • ● 13-7 I/O重新導向、管道|I/O Redirection、Pipe
    • ● 13-8 標準錯誤輸出|Standard Error Output
    • ● 13-9 uniq指令實作(改進)|Implementing uniq in Python (Revisit)
    • ● 13-10 文字檔vs.二進制檔案 |Text Files vs. Binary Files
    • ● 13-11 位元組|bytes
    • ● 練習9
    • ● 13-12 os模組|os Module
    • ● 12-exceptions
    • ● 13-files
    • ● 每周AI統整提問
  • 第8週:函式|Functions
    • ● 14-1 函式用語|Terminology of Functions
    • ● 練習1
    • ● 14-2 回傳值、函式物件vs.函式呼叫|Return Value, Function Object vs. Function Call
    • ● 練習2
    • ● 14-3 傳遞參數|Passing Parameters
    • ● 練習3
    • ● 14-4 有預設值的選填參數|Optional Parameters with Default Values
    • ● 練習4
    • ● 14-5 可變長度參數|Variable-Length Arguments
    • ● 14-6 可變關鍵字參數|Variable-Keyword Arguments
    • ● 14-7 拆解參數|Unpacking Parameters
    • ● 練習5
    • ● 14-8 拆解字典當參數|Unpacking Dictionary as Named Parameters
    • ● 15-1 代號表介紹|Introduction to Symbol Table
    • ● 15-2 可視範圍、dir()函式|Scope, dir() Function
    • ● 15-3 刪除代號|Deleting a Symbol
    • ● 15-4 代號表的運作|Implementation of Symbol Tables
    • ● 15-5 標示符連結規則|Rules for Identifier Binding
    • ● 練習7
    • ● 15-6 範例:totalWithTax函式(global關鍵字)|Example: totalWithTax Function (global Keyword)
    • ● 練習8
    • ● 15-7 改進totalWithTax函式(自動化測試)|Improve totalWithTax Function (Automated Testing)
    • ● 練習9
    • ● 15-8 示範totalWithTax函式|Demo totalWithTax Function
    • ● 14-function-1
    • ● 15-function-2
    • ● 每周AI統整提問
  • 第9週:函式(續)、遞迴|Functions (cont
    • ● 16-1 外掛函式介紹|Introduction to Plug-in Functions
    • ● 練習1
    • ● 16-2 Lambda表達式|Lambda Expressions
    • ● 練習2
    • ● 16-3 範例:用字典順序排序|Example: Sorting in """"""""""""""""True Dictionary Order""""""""""""""""
    • ● 練習3
    • ● 16-4 範例:排序星期字串|Example: Sorting Day-of-Week Strings
    • ● 練習4
    • ● 16-5 map()函式|map() Function
    • ● 16-6 用到Lambda的map()函式|map() with Lambda
    • ● 練習5
    • ● 16-7 用到多個序列的map()函式、zip()函式|map() with Multiple Sequences, zip() Function
    • ● 練習6
    • ● 16-8 filter()函式|filter() Function
    • ● 練習7
    • ● 16-9 函式表|Function Table
    • ● 16-10 內部函式|Inner Functions
    • ● 16-11 文件字串|DocString
    • ● 練習8
    • ● 16-12 Python風格指南|Python Style Guide
    • ● 練習9
    • ● 17-1 遞迴介紹|Introduction to Recursion
    • ● 17-2 範例:階乘|Example: Factorial
    • ● 練習10
    • ● 17-3 追溯遞迴函式的執行堆疊|Tracing the Execution Stack of Recursive Function
    • ● 17-4 範例:費氏數列|Example: Fibonacci
    • ● 練習11
    • ● 17-5 範例:計算列表元素數量|Example: Counting Elements in a List
    • ● 練習12
    • ● 17-6 範例:計算列表元素數量(另解)|Example: Counting Elements in a List (Alternatives)
    • ● 17-7 範例:計算檔案數量|Example: Counting Files
    • ● 練習13
    • ● 17-8 範例:遞迴查找|Example: Recursive Finding
    • ● 17-9 範例:縮排|Example: indentation
    • ● 練習14
    • ● 17-10 範例:大綱編號(構想)|Example: Outline Numbering (Approach)
    • ● 17-11 範例:大綱編號(程式碼)|Example: Outline Numbering (Source Code)
    • ● 練習15
    • ● 16-functions-3
    • ● 17-recursion
    • ● 每周AI統整提問
  • 第10週:物件導向程式|Object-Oriented Programming
    • ● 18-1 物件介紹|Introduction to Objects
    • ● 練習1
    • ● 18-2 複製物件|Copying an Object
    • ● 練習2
    • ● 18-3 實例化物件|Instantiating an Object
    • ● 練習3
    • ● 18-4 程序導向vs.物件導向程式設計|Procedure-Oriented vs. Object-Oriented Programming
    • ● 練習4
    • ● 18-5 範例:turtle繪圖|Example: turtle Graphics
    • ● 18-6 示範turtle繪圖|turtle Graphics Demo
    • ● 18-7 範例:二維Point類別、建構子|Example: 2D Point Class, Constructors
    • ● 18-8 屬性|Attributes
    • ● 18-9 __repr__方法|__repr__ Method
    • ● 練習5
    • ● 18-10 函式vs.方法|Function vs. Method
    • ● 18-11 Point類別的方法|Methods for Point Class
    • ● 18-12 @property裝飾器|@property Decorator
    • ● 練習6
    • ● 18-13 類別跟實例的命名空間|Name Spaces of Class and Instance
    • ● 18-14 類屬性|Class Attributes
    • ● 練習7
    • ● 18-15 範例:DateTime類別|Example: DateTime Class
    • ● 練習8
    • ● 18-16 Setter方法實作|Implementation of the Setter Methods
    • ● 18-17 透過__dict__方法存取屬性|Attribute Access Through __dict__ Method
    • ● 18-18 把Getter/Setter包裝成屬性存取|Package Getter/Setter as Attribute Access
    • ● 18-19 類方法|Class Methods
    • ● 18-20 靜態方法|Static Methods
    • ● 18-oop1
    • ● 每周AI統整提問
  • 第11週:物件導向(續)|Object-Oriented Programming (cont
    • ● 19-1 繼承介紹|Introduction to Inheritance
    • ● 19-2 isinstance()和issubclass()函式|isinstance() and issubclass() Functions
    • ● 練習1
    • ● 19-3 繼承|Subclassing
    • ● 練習2
    • ● 19-4 範例:MyList類別|Example: MyList Class
    • ● 19-5 MyList類別的find()方法|find() Method for MyList Class
    • ● 19-6 MyList類別的sort()方法|sort() Method for MyList Class
    • ● 19-7 深入看sort()方法|Potential Issue with sort() Method
    • ● 19-8 MyList.__repr__()方法的代號表|Symbol Table for MyList.__repr__() Method
    • ● 19-9 MyList.sort()方法的代號表|Symbol Table for MyList.sort() Method
    • ● 19-10 MyList.find()方法的代號表|Symbol Table for MyList.find() Method
    • ● 19-11 範例:ColorPoint類別|Example: ColorPoint Class
    • ● 19-12 多型介紹|Introduction to Polymorphism
    • ● 練習3
    • ● 19-13 「運算符」形式的語法vs.「方法」形式的語法|Operator vs. Method Syntax
    • ● 練習4
    • ● 19-14 範例:Vector類別|Example: Vector Class
    • ● 練習5
    • ● 19-15 Vector類別中的「過載」|Overloading in Vector Class
    • ● 19-16「可過載」運算符:原地賦值|Overloadable Operators: Augmenting Assignments
    • ● 練習6
    • ● 19-17 其他「可過載」運算符|Other Overloadable Operators
    • ● 19-18 __getitem__和__setitem__方法的用法|Usage of getitem and setitem Methods
    • ● 練習7
    • ● 19-19 實作__getitem__和__setitem__方法|Implementing __getitem__ and __setitem__ Methods
    • ● 19-20 運算符過載的一些註記|Notes about Operator Overloading
    • ● 練習8
    • ● 19-oop2
    • ● 每周AI統整提問

常見問題

線上成績單 :
此課程線上成績單申請費用為免費

學習履歷 :
此課程學習履歷申請費用為免費


(1) (取得修課證明)於課程內完成兩次線上測驗,每次測驗各可考兩次,將取高分測驗為評分依據,總分達60分以上可申請線上成績單。**清華大學學生此證明無法抵免學分,其他學校請查閱認抵資訊。

清華雲修課證明後續處理詳網頁:https://mooc.nthu.edu.tw/news/info/16

(2) (取得成績證明)
1. 完全採取線上學習的同學(不參與實體期末考試):線上考試、作業、報告成績(合計100分)累計至60分,即可申請「線上成績單」(不得作為清華學分採計之用)。
2. 線上學習+實體考試同學:實體考試佔50%,線上測驗成績50%,若總成績超過60分,核發清華大學學分(視為自由選修)。

實體考試配分如下:尚未公布

報名費及考試日期等詳見網址:磨課師公告 ,可於課程結束後,另外報名參加在清華大學所舉辦的期末實體考,報名費及考試日期等詳見網址:磨課師公告
**114年辦理實體考試日程等相關資訊  磨課師公告

課程助教 林正勛 Email:chlin147@gapp.nthu.edu.tw

 

講師

teacher Picture

周百祥

國立清華大學資訊工程學系 教授

查看講師

評價

0.0

平均評價

本課程尚未有人來評價

預覽影片 & 簡介

2025-先修課程-Python語言程式入門(9-12月)

<strong><span style="color:red;">本課程適合準大一新生選讀</span><br /></strong> 本課程強調動手嘗試程式,鼓勵學生和電腦執行環境互動,直接體會電腦語言的邏輯,而不是用死背的。在課程設計上採取循序漸進的方式,由最基礎的資料類型開始,包括流程、函式、序列等。透過生活化的比喻,來加深學習時的印象,啟發學生動手撰寫程式,進一步引導學生到自我領域相關應用。