課程資訊
課程名稱
Python程式設計
Computer Programming in Python 
開課學期
112-1 
授課對象
 
授課教師
林澤佑 
課號
Data5006 
課程識別碼
946 U0060 
班次
02 
學分
3.0 
全/半年
半年 
必/選修
 
上課時間
星期二6,7,8(13:20~16:20) 
上課地點
新403 
備註
限非電資學院學生選修。總人數80人。需自備電腦實作。。A6:數學數位與量化分析
總人數上限:60人 
 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

Python是近年來被廣泛使用在各種領域中的程式語言,其明確、優雅、簡潔的語法結構及程式碼的可讀性,更被許多人視為學程式語言的第一選擇。

本課程將從撰寫Python的環境建置開始,並講授各種語法的結構與使用時機。課程進度上,我們將逐一介紹 Python 中各種基本知識,並同時安排各種情境的練習,讓同學在解決假想問題中來累積撰寫 Python 程式的語法以及技巧。

我們將依照下面順序介紹課程內容:
1. 簡介 Python及本課程主要使用的撰寫平台 Colab
2. 講授 Python基本變數型態、語法結構以及一些我覺得重要的進階課題
3. 探索 Python 中最熱門的數個套件
4. 專題報告:選擇一個問題,介紹如何使用 Python 解決並透過各種方式呈現

本課程的最後,同學們將挑選一個題目進行期末專案報告(個人或分組),從介紹自己遇到並想解決的問題開始,接著分享如何透過 Python 解決,最後將結果透過各種視覺化的方式呈現。

=============
(2023/08/01更新) 本課程開放有限名額的加簽,希望加簽本課程者填寫下列表單:https://forms.gle/bwxL87uCZTpFJBYY9
登記截止時間為 2023/09/03 09:03 AM (台北,UTC + 8:00)

註:可三班次都選擇加簽,但至多只會獲得一次授權碼,因此,若選擇多於一個班次,則無法決定會得到哪個班次的授權碼,亦無法事後更換,填表時請慎選。 

課程目標
Python 作為近年來最流行的程式語言之一,可應用於各種領域,如資料科學、人工智慧、計算社會網絡等等。本課程將從 Python 環境的建置開始,逐步教授各種語法的結構與使用時機,並安排實際案例的練習,以輔助修課學生累積撰寫 Python 程式的技巧與經驗。同時,透過期末專案報告,讓修課學生選擇一個自己感興趣的問題,並介紹如何使用 Python 來解決,鞏固所學知識。本課程旨在讓同學能在未來遇到問題時,適當地使用 Python 程式語言來解決,並給予個人想法與建議的機會,以達成「自他共榮」的學習目標。 
課程要求
本課程建議具以下特點的人士修習:
1. 害怕寫程式
2. 想寫程式但是不知該從何開始
3. 有想打造的小應用/個人專案,但總是沒有時間來完成,或是想要一個呈現的舞台

本課程強烈不建議以下類型的人士修習:
1. 有任何程式經驗:本課程的教學風格與傳統程式設計課程有落差,若您有任何程式語言經驗,在學期中開始將有機會感受到學習上的不悅與負面感受
2. 不擅社交者:本課程評分項目包含小組期末專案,不接受個人單打獨鬥 
預期每週課後學習時數
Finite 
Office Hours
另約時間 
參考書目
1. Fluent Python: Clear, Concise, and Effective Programming (1st Edition) by Luciano Ramalho
2. Introduction to Machine Learning with Python: A Guide for Data Scientists (1st Edition) by Andreas C. Muller, Sarah Guido
3. 政治大學磨課師課程:成為Python數據分析達人的第一課https://ctld.video.nccu.edu.tw/km/1399 
指定閱讀
待補 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
作業 
70% 
本課程約有8-12次作業,包含程式作業與選擇題作業。 
2. 
小組期末專案 
30% 
期末專案相關事項將於課堂上公布。未進行專案者,學期成績一律為 F。 
3. 
[加分項目] 資料分析小專案 
5% 
若有志投入資料科學領域者,本課程提供一個實務但是簡單的機會,讓你嘗試進行自己的資料分析專案 並獲取額外的分數。 
 
針對學生困難提供學生調整方式
 
上課形式
以錄影輔助
作業繳交方式
考試形式
其他
課程進度
週次
日期
單元主題
第1週
9/05  我是誰:講師介紹、Python 簡介和 Colab 基本設定 
第2週
9/12  我會做什麼:你的第一支 Python 程式 
第3週
9/19  我在做什麼:Python中的基本物件型態(type):int, float, str
我還能做什麼:Python中的容器型物件(type):list 
第4週
9/26  我還能做什麼:Python中的容器型物件(type):list、set
缺什麼自己來:自定義函式(Function) 
第5週
10/03  流程控制:for-, while-, if-else 
第6週
10/10  No class 
第7週
10/17  文字在手,希望無窮:檔案讀取與字串(str)的處理與輸出  
第8週
10/24  疊床架屋:巢狀結構(Nested Structure) 
第9週
10/31  一些看起來像是向量和矩陣的酷東西:NumPy 
第10週
11/07  還有看起來像是表格的酷東西:Pandas
[加分項目] 資料分析小專案開始日 
第11週
11/14  意外和明天哪一個先來:例外處理  
第12週
11/21  邀請演講
[加分項目] 迷你資料分析小專案截止日 
第13週
11/28  期末報告準備週 
第14週
12/05  期末報告 
第15週
12/12  期末報告 
第16週
12/19  期末報告