課程資訊
課程名稱
程式設計與資料分析
Programming and Data Analysis 
開課學期
109-2 
授課對象
 
授課教師
郭耀仁 
課號
GenEdu5011 
課程識別碼
H02 50080 
班次
 
學分
3.0 
全/半年
半年 
必/選修
 
上課時間
星期五2,3,4(9:10~12:10) 
上課地點
博雅302 
備註
限非電資學院學生選修。需自備筆電。。A6:量化分析與數學素養
總人數上限:50人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1092GenEdu5011_ 
課程簡介影片
 
核心能力關聯
本課程尚未建立核心能力關連
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

學習使用 Python 進行程式設計與資料分析,寫作能夠蒐集資料、清理資料、分析資料與視覺化的程式。 

課程目標
學習 Python 程式設計的基礎概念:資料型別、條件判斷、資料結構
學習 Python 程式設計的進階概念:函式、類別、模組套件
學習 Python 資料處理:NumPy 與 Pandas
學習 Python 資料視覺化:Matplotlib
學習 Python 資料蒐集:Requests 與 BeautifulSoup4
 
課程要求
待補 
預期每週課後學習時數
 
Office Hours
 
指定閱讀
1.Introducing Python
a.Chapter 1 A Taste of Py
b.Chapter 2 Data: Types, Values, Variables, and Names
2.Introducing Python
a.Chapter 3 Numbers
b.Chapter 4 Choose with if
3.Introducing Python
a.Chapter 7 Tuples and Lists
b.Chapter 8 Dictionaries and Sets
4.Introducing Python
a.Chapter 6 Loop with while and for
5.Introducing Python
a.Chapter 9 Functions
6.Spring break
7.Introducing Python
a.Chapter 10 Oh Oh: Objects and Classes
8.Introducing Python
a.Chapter 11 Modules, Packages, and Goodies
9.None
10.None
11.
a.Python Data Science Handbook | Introduction to NumPy
b.《進擊的資料科學》 | 如何掌控資料
12.
a.Python Data Science Handbook | Data Manipulation with Pandas
b.《進擊的資料科學》 | 如何掌控資料
13.
a.Python Data Science Handbook | Visualization with Matplotlib
b.《進擊的資料科學》 | 如何探索資料
14.
a.Official Documentation of Requests
b.Official Documentation of BeautifulSoup4
c. 《進擊的資料科學》 | 如何獲取資料
15.https://github.com/CSSEGISandData/COVID-19
16.https://www.cec.gov.tw/ 
參考書目
待補 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
Homework 1 
10% 
Define 10 functions to match testing data 
2. 
Homework 2 
10% 
Define 5 functions and 5 classes to match testing data 
3. 
Midterm 
25% 
Define 2 functions and 3 classes to match testing data 
4. 
Homework 3 
10% 
Define 10 functions to match testing data 
5. 
Homework 4 
10% 
Define 10 functions to match testing data 
6. 
Final 
35% 
Define 7 functions to match testing data 
 
課程進度
週次
日期
單元主題
第1週
2/26  Introduction
a.About the course
b.Chapter 1 A Taste of Py 
第2週
3/05  Getting Started with Python
a.Why Python
b.The Jupyter Environment
c.Data types in Python
d.Conditionals in Python
e.Introducing Python | Chapter 2 Data: Types, Values, Variables, and Names
f.Introducing Python | Chapter 3 Numbers
g.Introducing Python | Chapter 4 Choose with if 
第3週
3/12  Data Structures in Python
a.List
b.Tuple
c.Dict
d.Set
e.Introducing Python | Chapter 7 Tuples and Lists
f.Introducing Python | Chapter 8 Dictionaries and Sets 
第4週
3/19  Iterating Data Structure with Python
a.For loop
b.While loop
c.Iterating list
d.Iterating dict
e.Introducing Python | Chapter 6 Loop with while and for 
第5週
3/26  Defining Functions with Python
a.The concept of assembling codes into functions
b.About scope
c.Introducing Python | Chapter 9 Functions 
第6週
4/02  Spring break 
第7週
4/09  Defining Classes with Python
a.The concept of Object-oriented programming
b.The concept of binding functions with classes
c.The concept of binding data with classes
d.Introducing Python | Chapter 10 Oh Oh: Objects and Classes 
第8週
4/16  Creating Modules and Libraries with Python
a.How to create a module
b.How to create a library
c.How to upload a package to PyPi
d.Introducing Python | Chapter 11 Modules, Packages, and Goodies 
第9週
4/23  Midterm 
第10週
4/30  Useful Skills in Python
a.Comprehensions
b.Generators
c.Iterators 
第11週
5/07  Array Programming with NumPy
a.What is ndarray
b.NumPy universal functions
c.NumPy aggregate functions
d.Python Data Science Handbook | Introduction to NumPy
e.進擊的資料科學 | 如何掌控資料 
第12週
5/14  Manipulating Data with Pandas
a.Series
b.DataFrames
c.Basic Operations
d.Advanced operations
e.Python Data Science Handbook | Data Manipulation with Pandas
f.進擊的資料科學 | 如何掌控資料 
第13週
5/21  Visualizing Data with Matplotlib
a.What is visualization
b.Why visualization
c.Basic plotting skills
d.Advanced plotting skills
e.Python Data Science Handbook | Visualization with Matplotlib
f.進擊的資料科學 | 如何探索資料 
第14週
5/28  Web Scraping with Requests and BeautifulSoup4
a.Requesting JSON API with Requests
b.Parsing JSON documents with built-in structures
c.Parsing HTML documents with BeautifulSoup4
d.Official Documentation of Requests
e.Official Documentation of BeautifulSoup4
f.進擊的資料科學 | 如何獲取資料 
第15週
6/04  TBD. 
第16週
6/11  Reading period. 
第17週
6/18  Final. 
第18週
6/25  No class.