課程資訊
課程名稱
程式設計與網路資料搜集
Programming and Web Scraping 
開課學期
110-2 
授課對象
 
授課教師
魏聖倫 
課號
GenEdu5010 
課程識別碼
H02 50070 
班次
 
學分
3.0 
全/半年
半年 
必/選修
 
上課時間
星期三7,8,9(14:20~17:20) 
上課地點
博雅202 
備註
限非電資學院學生選修。需自備筆電。。A6:量化分析與數學素養
總人數上限:110人 
 
課程簡介影片
 
核心能力關聯
本課程尚未建立核心能力關連
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

本課程為程式設計入門課程,所使用的程式語言為 Python。Python 具有簡單易學、功能強大的特色,比起其他程式語言,更適合作為初學者學習的第一個程式語言。在許多新興領域中都可以看到 Python 的應用,例如:資料分析、機器學習、網站設計等等。許多知名的網站中都是或曾經是由 Python 來實作的,包含美國批踢踢 Reddit、以前做分組報告很依賴的 Dropbox、你每天發限時動態的 Instagram 。

本課程亦會介紹網路資料搜集的概念,並以範例演練的方式,從一個又一個網頁的實際例子,讓同學瞭解如何透過 Python 實作,此外,希望藉由期末分組專案讓同學們嘗試將生活中具體的問題以程式解決。

課程設計給毫無程式基礎的同學,但仍具難度且有一定負擔,若真的沒基礎,請預期這門課每週需花費至少 10 小時。課程將以翻轉教室的方式進行,同學們需自行上網觀看預先錄製好的課程影片,並透過課程提供之線上批改系統練習習題及完成作業。

因課程是設計給毫無程式基礎的同學,除實體授課的週次外,其餘週次(標注課堂討論之週次)課堂期間,教師和助教皆會在教室讓同學們問問題,幫助同學們釐清觀念及動手實作。除上課時間外,亦會提供 TA hour 讓同學們發問,協助同學們從 0 開始學習程式設計。 

課程目標
課程目標為透過「做中學」,讓同學們確實理解程式設計的概念,並期許同學們在累積程式基礎後,對於網際網路上的各式學習資源或現有工具,能具備判讀及自學能力,以解決真實世界中可能遇到的問題。

期許同學們在扎實練習每次作業及期末專案後能具備以下能力:
1. 具基礎程式設計能力,能將日常生活中具重複性高的任務以程式完成。
2. 具備基礎網路資料搜集能力,能自動化抓取網頁資訊。
3. 對於網路學習資源具備基本的判讀及自學能力,讓這門課成為程式學習的第一步。 
課程要求
不需有程式基礎 
預期每週課後學習時數
 
Office Hours
 
參考書目
 
指定閱讀
詳見 NTU COOL 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
程式作業(共六次) 
48% 
作業將透過線上批改系統繳交,作業時程詳見每週進度。 作業請勿抄襲,抄襲者與被抄襲者除該次作業以 0 分計算,期末成績再扣兩個等第(例如:A => B+、B+ =>B-、C=>F)。 
2. 
上機程式考試(共三次) 
27% 
共有三次上機考試,需自備電腦,考試不斷網,但嚴禁舞弊及討論,違者期末成績將為「F」,並依校規辦理。 
3. 
期末專案呈現 
25% 
期末專案為 3~4 人一組,需繳交 Proposal 進行專案提案,並於期末繳交報告影片、書面報告及相關程式碼。專案請勿抄襲,抄襲者與被抄襲者整組期末專案成績以 0 分計算。 
 
課程進度
週次
日期
單元主題
第1週
2/16  1. 課程介紹及課程運作方式說明
2. 輸入及輸出、變數 
第2週
2/23  1. 條件判斷、字串、物件
2. 作業一公告 
第3週
3/2  1. 串列、迴圈
2. 作業二公告 
第4週
3/9  1. 巢狀迴圈、Break & Continue
2. 作業一截止 
第5週
3/16  1. 第一次上機考試
2. 作業二截止 
第6週
3/23  1. 函式
2. 作業三公告 
第7週
3/30  1. 遞迴、排序、例外處理
 
第8週
4/6  1. 字典(Dictionary)、檔案處理、模組(Module)
2. 作業三截止,作業四公告 
第9週
4/13  1. 類別(Class)
2. 網路資料搜集I:網路資料搜集概念介紹、使用 GET 方法獲取網路資料
3. 作業四截止,作業五公告 
第10週
4/20  第二次上機考試 
第11週
4/27  1. 網路資料搜集II:透過 API 獲取資料、使用 POST 方法進行表單查找以獲取資料
2. 作業五截止,作業六公告 
第12週
5/4  網路資料搜集III:下載檔案類型資料、在動態網頁中獲取資料 
第13週
5/11  1. 期末專案分組實作
2. 作業六截止 
第14週
5/18  期末專案分組實作 
第15週
5/25  第三次上機考試 
第16週
6/1  期末專案分組實作 
第17週
6/8  期末專案報告