課程資訊
課程名稱
資料科學程式設計
Data Science Programming 
開課學期
105-2 
授課對象
共同教育中心  共同教育組  
授課教師
蔡芸琤 
課號
CSX4001 
課程識別碼
H03 04010 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期四2,3,4(9:10~12:10) 
上課地點
普205 
備註
初選不開放。基本能力課程。基本能力課程。
總人數上限:50人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1052CSX4001_ 
課程簡介影片
 
核心能力關聯
本課程尚未建立核心能力關連
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

拜寬頻網路普及化之賜,大數據熱潮來襲,許多資料科學相關的需求因應而出,《哈佛商業評論》將會寫程式、又有專業領域知識的資料科學家,封為「21世紀最性感行業」。本課程結合 R 語言與其他電腦資訊技術,運用在各專業領域上。例如:以虛擬社群做社會行為的量化分析、以量化研究方法做人口統計學上的社會變遷、以質性研究方法針對虛擬社群做網誌調查、以線上問卷系統取代傳統紙本問卷、資料視覺化與結合地圖資訊系統等。 

課程目標
想透過這門課,和學生們一同製作出屬於台大的資料開放平台,就暫且稱呼為 NTU G0V 吧!進行資料分析不是為了要批評或鬥爭,而是想要讓我們的學校可以透過資訊技能,看到問題點在哪裡,進而得到更好的決策參考。 批評很容易,放炮也很簡單。最難的是要如何在舊有的體制內做軟性的創新,讓大家都願意一同進步,期待熱血的你們加入。
http://g0v.tw/zh-TW/ 的概念為基礎,對台大財務報告進行討論與分析 http://www.ntuacc.ntu.edu.tw/chief/chief8.jsp,或其他台大相關開放資料。 
課程要求
優先錄取具備以下條件者,上限 50 人,收滿為止:
1. 已安裝好 R 和 RStudio 者。
2. 已使用過 GitHub 者。
3. 能提出台大開放資料相關構想者(想做的題目、資料來源)。
作業繳交規範: https://joe188032.github.io/pecuclass1/regulation.html
課程投影片清單:https://ntu-csplusx.github.io/2017-DS-Programming/ 
預期每週課後學習時數
 
Office Hours
每週四 12:30~14:00 備註: 每週四第五節,於博雅教學館五樓共同教育中心可與授課老師面談。或另行和課程助教與課程顧問約時間討論。 
指定閱讀
http://datascienceandr.org/ 
參考書目
http://www.r-fiddle.org/#/
http://r4ds.had.co.nz/ 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
回家作業 
60% 
共5次,每次佔個人總分的12%,於作業公布後兩周內於上課前繳交,每次作業分數依照指示給分,於公布作業當天公告,遲交斟酌扣分。 
2. 
期末報告 
30% 
共1次,佔個人總分的30%,於期中考後,進行分組,五個人一組,最後有參加期末發表的組別,期末報告成績為A,於期末發表會得獎的組別,期末報告成績為A+,其餘依照完成度斟酌給分。 
3. 
組員互評 
10% 
共1次,組內同學互相評比,寫下貢獻度與實際作為。 
 
課程進度
週次
日期
單元主題
第1週
2/23  <h2 id="課程內容">課程內容</h2>
<ul>
<li><a href=http://homepage.ntu.edu.tw/~pecutsai/slides/pecucsx.pdf>上課規則</a>、計分規則</li>
<li>介紹R 語言、上手R 語言</li>
<li>作業說明</li>
</ul>
<h2 id="投影片">投影片</h2>
<ul>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/1st.week/Introduction-of-R.html>進擊的R語言</a></li>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/1st.week/hands-on-R.html>上手R語言</a></li>
<li><a href=https://joe188032.github.io/pecuclass1/rmarkdownteach.html#1>Rmarkdown使用教學</a></li>
</ul> 
第2週
3/02  <h2 id="課程內容">課程內容</h2>
<ul>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/2nd.week/learn-R.html>自學R語言</a></li>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/2nd.week/data-structure.html>R 語言的資料型態</a></li>
</ul>
 
第3週
3/09  <h2 id="課程內容">課程內容</h2>
<ul>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/2nd.week/data-structure.html>R 語言的資料型態</a></li>
<li><a href=https://docs.google.com/presentation/d/1UH-i_knddW12bApnAz91L8-BGaXkmTu981rPwj6HkGw/edit?usp=sharing>swirl補充教材</a></li>
<li><a href=https://docs.google.com/presentation/d/154kgGoAV33MCzNLIAgNAJPfgD45AtERM0yYXgeIAf2w/edit?usp=sharing>R 語言物件的拆解</a></li>
</ul>
 
第4週
3/16  <h2 id="課程內容">課程內容</h2>
<ul>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/4th.week/R-datastructure-CRUD.html>R語言資料型態的CRUD</a></li>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/4th.week/R-IO.html>R語言的IO簡介</a></li>
</ul>
 
第5週
3/23  <h2 id="課程內容">課程內容</h2>
<ul>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/5th.week/ConstructingDataFrame.html>非結構化資料處理的要點</a></li>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/5th.week/SummarizingDataFrame.html>dplyr 與 Data Frame</a></li>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/5th.week/Join.html>資料整合</a></li>
</ul>
公布作業一 
第6週
3/30  <h2 id="課程內容">課程內容</h2>
<ul>
<li><a href=https://ntu-csplusx.github.io/2017-DS-Programming/6th.week/Visualization.html>資料的視覺化與資料的比較</a></li>
</ul>

2017-NTUCSX:3rd-week-hw 的參考答案: https://gist.github.com/wush978/c4cd74078f17efa71557a7dd0e89eb77 
第7週
4/06  <h2 id="課程內容">課程內容</h2>
<ul>
<li>R語言的資料整合</li>
</ul>
公布作業二 
第8週
4/13  期末作品分組,三個人一組。
專案發想:
1. 有點子的人先上台說明。
2. 其他同學接著進行自我介紹,說明自己的角色與可以貢獻的能力。
3. 開放時間讓同學交流找組員。
參考專案
<a href=http://datajournalism.ntu.edu.tw/tagged/%E8%A6%96%E8%A6%BA%E4%BD%9C%E5%93%81>http://datajournalism.ntu.edu.tw/tagged/%E8%A6%96%E8%A6%BA%E4%BD%9C%E5%93%81</a>
<a href=https://docs.google.com/presentation/d/1PHGWn92V8qMFzbwce1QVkI-PQJWMnsCzBQd8DiY18bw/edit#slide=id.g815977cf9_3_1>https://docs.google.com/presentation/d/1PHGWn92V8qMFzbwce1QVkI-PQJWMnsCzBQd8DiY18bw/edit#slide=id.g815977cf9_3_1</a>
介紹資料科學的三個圈圈
1. 技術能力(程式語言)
2. 分析能力(數學、統計)
3. 背景知識(讀書、訪談、生活經驗)
公布作業三 
第9週
4/20  [迴歸分析] 
第10週
4/27  [中文文字探勘]
公布作業四與作業五 
第11週
5/04  [中文文字探勘與機器學習簡介] 
第12週
5/11  資料科學與機器學習
k-means、PCA、SVM 
第13週
5/18  自建 R 套件包並分享於 Github 提供他人安裝
https://github.com/pecu/powerInfo 
第14週
5/25  校園節電專案實作分享 
第15週
6/01  ggplot2 繪圖教學
R 翻轉教室 ggplot2 破關示範
http://datascienceandr.org/note/03-RVisualization-03-ggplot2.html 
第17週
6/15  R 翻轉教室 GIS 地圖資訊教學示範
http://datascienceandr.org/note/03-RVisualization-04-Javascript-And-Maps.html 
第18週
6/26  聯合期末展,時間:2:00 ~ 5:00,地點:博雅 201 教室。