教學大綱 Syllabus

科目名稱:計算機程式

Course Name: Computer Programming

修別:必

Type of Credit: Required

3.0

學分數

Credit(s)

55

預收人數

Number of Students

課程資料Course Details

課程簡介Course Description

本課程為遠距同步與非同步課程,在Google Classroom 平台上操作。由於生成式AI 的迅速發展,學習程式的方式也需要跟著改變,程式不再是用寫的而是用聊的。因此,課程的重點不再是講授多少內容,而是如何訓練同學具備與AI 合作的自學能力。因此本課程在實體授課的時間我們會以小組的方式進行練習,透過教練式的教學方式讓同學自訂學習目標,處理學習的障礙,培養自學能力,達成學習目標並且勇於挑戰。

在非同步遠距時由同學自行觀看預錄的內容,在Moodle 平台上學習,並完成作業。同步遠距課程時通常是同學分組報告的時間,每次會有兩個小時線上同步課程,第三個小時由同學分組練習以並完成當週作業。計算機程式的內容我們會以Microbit 作為程式入門的工具,先訓練同學程式邏輯並介紹物聯網程式設計的架構與概念,再介紹Python 語言讓同學認識程式語言的基礎,再回到micropython 讓同學學習 Python 在物聯網程式的運用,我們也鼓勵同學挑戰資料分析的課題,讓同學實戰大型的資料處理與應用。

第一次上課的授課地點請留意學校信箱內的通知訊息,授課進度會依實際教學情況進行調整。

請同學留意本課程第一週上課為實體課程,地點為志希樓一樓電腦教室。

核心能力分析圖 Core Competence Analysis Chart

能力項目說明


    課程目標與學習成效Course Objectives & Learning Outcomes

    本課程為一學期的課程,將從Microbit 積木程式開始讓沒有程式經驗的同學都能輕鬆學會程式邏輯基礎概念,特別是透過視覺化的積木讓同學理解if then else 的敘述真偽與語法,利用積木程式與文字程式之間的切換讓同學理解文字型態的Python 程式物件導向語法的特性,之後會開始介紹 Python 環境建置與雲端計算平台設定, Python 程式基本程式語法、繪圖技巧與檔案處理外,也將穿插數學學科如微積分、線性代數、機率統計、排列組合、微分方程與數值分析等課程的重要範例,讓同學體驗如何利用Python 程式協助基礎的數學計算。同時介紹Python 如何處理表格與資料庫資料,對未來數據分析與機器學習領域作預備。最後我們再回到Microbit 的MicroPython 程式,讓同學理解Python 程式如何實際應用到工業物聯網環境。

    本學期授課目標如下,學生將會學到:

    一、生成式AI 運用

    二、Microbit 程式入門

    三、MicroPython 入門

    四、Python 程式基礎

    五、如何利用 Python 程式做資料整理

    六、自主學習的能力

    每周課程進度與作業要求 Course Schedule & Requirements

    教學週次Course Week 彈性補充教學週次Flexible Supplemental Instruction Week 彈性補充教學類別Flexible Supplemental Instruction Type

    週次

    授課內容

    學生指定閱讀資料

    授課方式

    1

    主題:課程簡介與教練式教學介紹

    目標:介紹本學期課程內容、遠距互動及實體課程實施方式

    教學設計:

    1. 介紹Google Meet遠距視訊會議環境,Colab 協作環境使用
    2. 介紹討論區使用方式,作業與測驗發派與填答方式
    3. 說明教練式教學與傳統授課的差異
    4. 介紹本課程大綱
    5. 說明本學期評分標準
    6. 前測

     

     

    實體教學

    (外校同學可採遠距)

    2

    主題:Microbit 入門(一)

    目標:Microbit 簡介與物連網、大數據、AI的關聯性。

    教學設計:

    1. 介紹Microbit 開發版
    2. 介紹Makecode 環境與基礎功能
    3. 介紹物連網、大數據與AI 的關聯性

    作業:

    1. 課堂隨筆(2%)

    程式作業(3%)

    https://www.youtube.com/watch?v=nHvRjPO0SvY&list=PLGvDmN7CFT8cfHC0P-Vhy0NIqnUlIWGV_

    實體教學

    (外校同學可採遠距)

    3

    主題:Microbit 入門(一)

    目標:microPython物件導向程式解讀與Python 語法初探

    教學設計:

    1. 物聯網程式概念
    2. Microbit 簡介
    3. 從Makecode 認識microPython
    4. 解讀 Python 程式語法
    5. 物件導向的概念
    6. 和AI 要程式

    作業:

    1. 課堂隨筆(2%)

    程式作業(3%)

       

    4

    主題:Python 十講資源介紹

    目標:帶領同學認識 Python 基礎語法

    教學設計:

    1. 認識型別
    2. 迴圈與流程
    3. 函數與副程式

    作業:

    1. 基本程式題型練習(2%)
    2. 基礎函數的定義練習(3%)

    https://www.geeksforgeeks.org/introduction-to-markdown/

    遠距同步教學

    5

    主題:常用套件與函數

    目標:認識Python 常用套件以及引用方法

    教學設計:

    1. numpy 套件介紹
    2. linalg 套件介紹
    3. random 套件介紹
    4.  套件引入方法
    5. 繼承的概念
    6. 魔術符號的使用

     

    作業:

    1. 課堂隨筆(2%)
    2. 基礎程式練習(3%)

    https://drive.google.com/file/d/1pBqZN-g5_2fpV66U5FVU-Pl5NM_xgQbq/view?usp=sharing

    遠距同步教學

    6

    主題:與AI 合作

    目標:生成式AI 的使用與自我判別

    教學設計:

    1. 自學方法演示
    2. Google 關鍵字使用技巧
    3. 使用生成式AI 的技巧
    4. 程式正確性的判別
    5. 錯誤訊息的解讀

    作業:

    1. 課堂隨筆(2%)

    程式作業(3%)

    https://drive.google.com/file/d/11D0ECZo-jwf2-Qe6DS--PEXhkngoIcM2/view?usp=sharing

    遠距同步教學

    7

    主題:Python 繪圖

    目標:認識Python 的繪圖技巧

    教學設計:

    1. 簡易函數繪圖
    2. 如何繪製子圖
    3. 圖形與標注
    4. 長條圖與直方圖
    5. 3D 圖形
    6. 連續動態顯示

    作業:

    1. 課堂隨筆(2%)
    2. 程式作業(3%)

     

    https://drive.google.com/file/d/1a2hxcweCH922ZYbNToVnDL87NDOFpKtd/view?usp=sharing

    遠距同步教學

    8

    主題:IO 的處理

    目標:認識Python 檔案的輸入與輸出

    教學設計:

    1. 檔案的基本操作
    2. 權限的觀念
    3. 使用Pickle 套件
    4. 與matlab 的檔案互通
    5. Pop 指令在大型檔案整理的應用
    6. 自典型別與大型檔案整理技巧

    作業:

    1. 課堂隨筆(2%)
    2. 程式作業(3%)

     

    https://drive.google.com/file/d/1-ZhVyfOQh9stCI_Ucuxs6GAA09g9ODHN/view?usp=sharing

    遠距同步教學

    9

    主題:期中考(25%)

     

     

     

    遠距同步教學

    10

    主題:Pandas 套件簡介

    目標:認識基礎資料處理的能力

    教學設計:

    1. Pandas套件介紹與安裝
    2. 資料結構介紹:Series與DataFrame
    3. 建立、讀取、存取與保存資料
    4. 線上資料庫資料輸入
    5. excel 資料讀取

    作業:

    1. 課堂隨筆(2%)
    2. 程式作業(3%)

     

    https://drive.google.com/file/d/1Mim5G3GgzWkJxqboCbIUpn95Pir6_uLL/view?usp=sharing

    遠距同步教學

    11

    主題:資料清洗與預處理

    目標:認識資料處理實務細節

    教學設計:

    1. 資料選擇與過濾(索引、選擇列與欄)
    2. 處理缺失值與重複值
    3. 資料型別轉換與格式化
    4. 資料排序與重新索引

    作業:

    1. 課堂隨筆(2%)
    2. 程式作業(3%)

     

    實體上機考試

    (外校同學可採遠距,由當地助教監考)

    12

    主題:資料操作與處理

    目標:認識資料實務細節

    教學設計:

    1. 資料合併(合併、連接、拼接)
    2. 資料聚合與群組操作(groupby)
    3. 資料變形(pivot tables、stack、unstack)
    4. 使用apply函數進行資料處理

    作業:

    1. 課堂隨筆(2%)
    2. 程式作業(3%)

    https://drive.google.com/file/d/1qbHJ4T64M6zZqaGlm2hT9GIdgw_zU3Tc/view?usp=sharing

    遠距同步教學

    13

    主題:資料探索與統計分析

    目標:認識Pandas 在敘述統計上的能力

    教學設計:

    1. 描述性統計分析(平均值、中位數、標準差等)
    2. 資料分佈與相關性分析
    3. 使用Pandas進行資料篩選與查詢
    4. 使用Matplotlib進行簡單資料視覺化

    作業:

    1. 課堂隨筆(2%)

    程式作業(3%)

    https://drive.google.com/file/d/1fWz10y5nQbNxfopbuku_OBT1haBLQ6C3/view?usp=sharing

    遠距同步教學

    14

    主題:資料視覺化

    目標:認識視覺化快速資料訊息呈現的方法

    教學設計:

    1. 使用Seaborn進行資料視覺化
    2. 高級圖表類型(熱圖、盒狀圖、對角線圖等)
    3. 自訂圖表樣式與主題
    4. 資料視覺化的最佳實踐

    作業:

    1. 課堂隨筆(2%)

    程式作業(3%)

    https://drive.google.com/file/d/1IVwtOBKhcdBZiVdItRJZ9dDTqfkX7ETK/view?usp=sharing

    遠距同步教學

    15

    主題:期末分組報告(15%)

    目標:驗收學生學習

    https://drive.google.com/file/d/1pmceQuwHxiP9s8E7Yn35_0vqx0htZ3f7/view?usp=sharing

    遠距同步教學

    16

    主題:期末分組報告

    目標:驗收學生學習

    https://drive.google.com/file/d/1Mim5G3GgzWkJxqboCbIUpn95Pir6_uLL/view?usp=sharing

    遠距同步教學

    17

    主題:亂數與模擬

    目標:認識simulation 的做法

    教學設計:

    1. Monte carlo method
    2. 隨機的概念
    3. Python 隨機的程式語法
    4. Bayesian Network 的概念
    5. Bayesian Network 實作

     

    https://drive.google.com/file/d/1tDopqT_PLRiAkoOiAkkMywNvuf22K9gK/view?usp=sharing

    遠距同步教學

    18

    主題:企業參訪

    1.  

    https://github.com/micropython/micropython

    遠距同步教學

     

     

     

    實體上機考試(外校同學可採遠距,由當地助教監考)

     

         

     

    學習投入時數,每週複習1.5小時,預習半小時,共計5小時。

    授課方式Teaching Approach

    20%

    講述 Lecture

    20%

    討論 Discussion

    30%

    小組活動 Group activity

    30%

    數位學習 E-learning

    0%

    其他: Others:

    評量工具與策略、評分標準成效Evaluation Criteria

    • 課程配分詳見每週次課堂隨筆、程式作業以及期中與期末上機考成績。
    • 總分100分,第二週之後每週的課堂活動皆有採計成績,每週皆會累計成績,因此缺課位於課程時間中作答者將收到預警通知,提醒同學做適當之退選或棄修參考。
    • 加分項:參加數位學伴者每梯次學期總成績5分,最多兩梯次加10分,以期中考後成績堪憂的學生優先。
    • 期末成績超過98分者,以98分登計。
    • 本課程鼓勵使用生成式AI 於程式撰寫的部分,作業繳交時需標注使用的AI 平台。

     

    指定/參考書目Textbook & References

    Romano, Fabrizio, and Heinrich Kruger. Learn Python Programming : An in-Depth Introduction to the Fundamentals of Python / Fabrizio Romano, Heinrich Kruger. 3rd edition. Birmingham: Packt Publishing, 2021. Print.

    本圖書可於本校圖書館授權下載。

     

     

     

     
     

     

     

    已申請之圖書館指定參考書目 圖書館指定參考書查詢 |相關處理要點

    維護智慧財產權,務必使用正版書籍。 Respect Copyright.

    課程相關連結Course Related Links

    
                

    課程附件Course Attachments

    課程進行中,使用智慧型手機、平板等隨身設備 To Use Smart Devices During the Class

    Yes

    列印