通識課程: 計算機程式設計 之旅
臺大電機系 - 連豊力
2018 Spring (Feb-Jun, 2018)


  • 最新消息
    • 期末專題報告: (updated on 5/27/18)
      • 繳交日期:7/3 (Tue), 23:00 之前。
      • 繳交內容:一個報告檔 (.pdf),一個程式檔 (.R or .Rmd),其他數據檔案。
      • 建議事項:
          您的程式如果需要其他的數據, 請儘量附上數據檔案,
          以及在報告中詳細說明如何取得該數據
          或如何從原始數據整理到目前的數據檔案。
        • 程式碼以及相關數據檔的使用過程或方式,
          以及可能需要注意的地方, 請在報告中說明清楚。
        • 檔案命名的方式,建議如下:
          B96901369_Project_PlotFace.R, or B96901369_Final_USPoll2016.R
          也就是,學號,類型,主題, 以利分類整理與辨識。
      • 報告 (.pdf) 部分評分方式:
        • 9: 詳細說明如何使用 R 程式,來進行數據擷取,計算,繪圖等呈現數據的功能
        • 例如:使用了哪一個指令,以及設定的參數,獲得了哪一些數據或圖形
        • 也就是,每一個地方的說明,都要有三個部分:
        • (1) 程式碼,(2) 使用此程式碼用途說明,以及(3) 呈現所產生的數據或圖的結果
        • 7: 大概說明如何使用 R 程式,來進行數據擷取,計算,繪圖等呈現數據的功能
        • 例如:僅呈現最後數據或圖形結果,但是,不清楚如何使用 R 程式來獲得這些結果
        • 5: 大部分都是文字描述問題與處理過程,並未說明如何使用 R 程式
      • 程式 (.R) 部分評分方式:
        • 9: 所有程式都可以執行成功,大部分主要程式碼,都有註解
        • 7: 部分程式都可以執行成功,僅註解部分程式碼
        • 5: 大部分程式無法執行成功,程式碼沒有什麼註解
    • OLD news are moved to the bottom of the webpage.

  • Course Resources in 106-2: (updated on 3/25/18)

  • 未來課程規劃: (updated on 4/23/18)
    • 6/26 (Tue): 期末考週,不上課,不考試
    • 7/3 (Tue): 繳交期末專題報告

  • 過去公告:

    • 未來課程規劃: (updated on 2/27/18)
      • 2/27 (Tue): 課程介紹:討論主題,作業,報告,進行方式
      • 3/06 (Tue): 主題,案例,程式,演算法,資源
      • 3/13 (Tue): 設定軟體 R 與 Rstudio
      • 3/20 (Tue): 數據處理與繪圖功能
      • 3/27 (Tue): 資料類別與基本運算
      • 4/03 (Tue): 國定假日
      • 4/10 (Tue): 邏輯判斷與流程控制
      • 4/17 (Tue): 函數:計算與排序
      • 4/24 (Tue): 期中考週,不上課,不考試
      • 5/01 (Tue): 多維度資料格式
      • 5/08 (Tue): 檔案資料輸入與輸出
      • 5/15 (Tue): 繪圖功能與文字
      • 5/22 (Tue): 多重繪圖與顏色
      • 5/29 (Tue): 資料間的相關性
      • 6/05 (Tue): 探索性資料分析
      • 6/12 (Tue): 資料連結分析
      • 6/19 (Tue): 影像與動畫
      • 6/26 (Tue): 期末考週,不上課,不考試
      • 7/3 (Tue): 繳交期末專題報告
    • 第 17 週 6/19 課程: (updated on 6/18/18)
      • 課程內容:U15: 影像與動畫
        - 畫一個臉
        - 行走路徑與迴圈控制
        - 畫一個動畫
        - 數學函數繪圖
        -
        - 影像處理套件
        -
      • 課程內容: 動畫案例
        - Animated plots using R
        ..... Distribution shifts according to the mean,
        ..... Visualize filtering threshold,
        ..... Rotating 3D scatter plot,
        ..... Stick figures
        - Animated Plots with R: Binomial Density
        - Happy New Year with R
        -
      • 學習時間 登錄連結: https://goo.gl/k7tKLk
      • 課程講義檔案,在下面 上課講義與影片
      • 作業: 沒有作業,請進行期末專題!
    • 第 16 週 6/12 課程: (updated on 6/12/18)
    • 第 16 週 6/12 課程: (updated on 6/10/18)
      • 課程內容:U14: 資料連結分析
        - 基本元素:連結規則,支持度,可靠度,提升度
        - 軟體套件,核心函數,資料集
        - 對產生規則進行強度控制
        - 改變輸出結果形式
        - 連結規則的視覺化
      • 學習時間 登錄連結: https://goo.gl/k7tKLk
      • 課程講義檔案,在下面 上課講義與影片
      • 作業: 沒有作業,請進行期末專題!
    • 查詢 HW09 的成績與評語: (updated on 6/3/18)
      • 請 RStudio 的 Console 中,執行下面兩個指令,
        即可獲得您的作業成績與評語:
        myfunc <- lapply( "https://goo.gl/Pi1uzn", source)
        CheckMyHw( "B01901369", "HW09", "" )
        CheckMyHw( "B01901369", "HW09", "BIG5" )
    • 第 15-16 週 6/5, 6/12 課程: (updated on 6/3/18)
      • 課程內容:U13: 探索性資料分析
        - 數據化探索:變數概況,變數詳情,分布指標
        - 視覺化探索:長條圖,累積分布圖,箱形圖,盒鬚圖,橫條圖,點陣圖,圓形圖
      • 課程內容:U14: 資料連結分析
        - 基本元素:連結規則,支持度,可靠度,提升度
        - 軟體套件,核心函數,資料集
        - 對產生規則進行強度控制
        - 改變輸出結果形式
        - 連結規則的視覺化
      • 學習時間 登錄連結: https://goo.gl/k7tKLk
      • 課程講義檔案,在下面 上課講義與影片
      • 作業: 沒有作業,請進行期末專題!
    • 第 14-16 週 5/29, 6/5, 6/12 課程: (updated on 5/27/18)
      • 課程內容:U12: 資料間的相關性
        - 資料間的線性關係
        - lm: Linear Model
        - nhanes2, cars, iris 的線性回歸模型
        - 資料間的相關性
        - 多維關係繪圖
      • 課程內容:U13: 探索性資料分析
        - 數據化探索:變數概況,變數詳情,分布指標
        - 視覺化探索:長條圖,累積分布圖,箱形圖,盒鬚圖,橫條圖,點陣圖,圓形圖
      • 課程內容:U14: 資料連結分析
        - 基本元素:連結規則,支持度,可靠度,提升度
        - 軟體套件,核心函數,資料集
        - 對產生規則進行強度控制
        - 改變輸出結果形式
        - 連結規則的視覺化
      • 學習時間 登錄連結: https://goo.gl/k7tKLk
      • 課程講義檔案,在下面 上課講義與影片
      • 作業: 沒有作業,請進行期末專題!
    • 第 17 週 6/19 課程: (updated on 5/27/18)
      • 課程內容:U15: 影像與動畫
        - 畫一個臉
        - 行走路徑與迴圈控制
        - 畫一個動畫
        - 數學函數繪圖
        -
        - 影像處理套件
      • 學習時間 登錄連結: https://goo.gl/k7tKLk
      • 課程講義檔案,在下面 上課講義與影片
      • 作業: 沒有作業,請進行期末專題!
    • 期末專題報告: (updated on 5/27/18)
      • 繳交日期:7/3 (Tue), 23:00 之前。
      • 繳交內容:一個報告檔 (.pdf),一個程式檔 (.R or .Rmd),其他數據檔案。
      • 建議事項:
          您的程式如果需要其他的數據, 請儘量附上數據檔案,
          以及在報告中詳細說明如何取得該數據
          或如何從原始數據整理到目前的數據檔案。
        • 程式碼以及相關數據檔的使用過程或方式,
          以及可能需要注意的地方, 請在報告中說明清楚。
        • 檔案命名的方式,建議如下:
          B96901369_Project_PlotFace.R, or B96901369_Final_USPoll2016.R
          也就是,學號,類型,主題, 以利分類整理與辨識。
      • 報告 (.pdf) 部分評分方式:
        • 9: 詳細說明如何使用 R 程式,來進行數據擷取,計算,繪圖等呈現數據的功能
        • 例如:使用了哪一個指令,以及設定的參數,獲得了哪一些數據或圖形
        • 也就是,每一個地方的說明,都要有三個部分:
        • (1) 程式碼,(2) 使用此程式碼用途說明,以及(3) 呈現所產生的數據或圖的結果
        • 7: 大概說明如何使用 R 程式,來進行數據擷取,計算,繪圖等呈現數據的功能
        • 例如:僅呈現最後數據或圖形結果,但是,不清楚如何使用 R 程式來獲得這些結果
        • 5: 大部分都是文字描述問題與處理過程,並未說明如何使用 R 程式
      • 程式 (.R) 部分評分方式:
        • 9: 所有程式都可以執行成功,大部分主要程式碼,都有註解
        • 7: 部分程式都可以執行成功,僅註解部分程式碼
        • 5: 大部分程式無法執行成功,程式碼沒有什麼註解
    • 查詢 HW08 的成績與評語: (updated on 5/27/18)
      • 請 RStudio 的 Console 中,執行下面兩個指令,
        即可獲得您的作業成績與評語:
        myfunc <- lapply( "https://goo.gl/Pi1uzn", source)
        CheckMyHw( "B01901369", "HW08", "BIG5" )
    • 顏色 - 調色盤 與 繪圖案例 (updated on 5/20/18)
    • 查詢 HW07 的成績與評語: (updated on 5/19/18)
      • 請 RStudio 的 Console 中,執行下面兩個指令,
        即可獲得您的作業成績與評語:
        myfunc <- lapply( "https://goo.gl/Pi1uzn", source)
        CheckMyHw( "B01901369", "HW07", "BIG5" )
      • Note that: 作業主題為 ++A, ++B, ++C 的 Score.Code 的分數,
        是註記為(9, 7, 5)x2 的數據,
        也就是,(18, 14, 10),以示區別。
    • 繪圖參數 與 數學符號: (updated on 5/15/18)
    • 查詢 HW06 的成績與評語: (updated on 5/13/18)
      • 請 RStudio 的 Console 中,執行下面兩個指令,
        即可獲得您的作業成績與評語:
        myfunc <- lapply( "https://goo.gl/Pi1uzn", source)
        CheckMyHw( "B01901369", "HW06", "BIG5" )
    • 第12-13週 5/15, 5/22 繪圖相關課程: (updated on 5/13/18)
      • 課程內容:U10: 繪圖功能與文字
        - 繪圖視窗之設定
        - 常用的圖形參數
        - 座標軸及邊界
        - 加入圖形元件
        - 加入文字
      • 課程內容:U11: 多重繪圖與顏色
        - 多張圖形
        - 多張圖形之位置安排
        - 一張圖多筆數據
        - 顏色
      • 學習時間 登錄連結: https://goo.gl/k7tKLk
      • 課程講義與作業範例檔案,在下面 上課講義與影片
      • 作業
        - HW08_學號_關鍵字.xxx
        - 主要指定檔案:   HW08_B01921001_PlotFigure.R
        - 報告檔案:     HW08_B01921001_PlotFigure.pdf
        - HW09_學號_關鍵字.xxx
        - 主要指定檔案:   HW09_B01921001_PlotManyFigures.R
        - 報告檔案:     HW09_B01921001_PlotManyFigures.pdf
        ----------------
        - 或者是:R Markdown 等整合式的檔案, (.Rmd) (.pdf or .html)
        - 有關 R Markdown 的使用方式,可以參考下面說明:
        --- http://rmarkdown.rstudio.com/lesson-1.html
        --- http://rmarkdown.rstudio.com/articles_intro.html
    • 資料檔案輸入與輸出 (updated on 5/7/18)
    • 第11週 5/8 課程: (updated on 5/6/18)
      • 課程內容:U09: 檔案資料輸入與輸出
        - 取得檔案的資料:輸入與輸出
        - 取得內建資料庫
        - 取得其他資料庫的資料
        - 取得網頁的資料
      • 學習時間 登錄連結: https://goo.gl/k7tKLk
      • 課程講義與作業範例檔案,在下面 上課講義與影片
      • 作業(HW07):HW07_學號_關鍵字.xxx
        - 主要指定檔案:   HW07_B01921001_ReadData.R
        - 報告檔案:     HW07_B01921001_ReadData.pdf
      • 作業(HW07++)進階題:HW07_X_學號_關鍵字.xxx
        - X = A 主要指定檔案:   HW07_A_B01921001_LearnTime.R
        - X = A 報告檔案:     HW07_A_B01921001_LearnTime.pdf
        - X = A 參考資料:    學習時間登錄連結
        -
        - X = B 主要指定檔案:   HW07_B_B01921001_USA2016.R
        - X = B 報告檔案:     HW07_B_B01921001_USA2016.pdf
        - X = B 參考資料:    2016年美國總統選舉
        -
        - X = C 主要指定檔案:   HW07_C_B01921001_tips.R
        - X = C 報告檔案:     HW07_C_B01921001_tips.pdf
        - X = C 參考資料:    檔案列表
        - X = C 參考資料:    數據檔案 - tips.csv
    • 專題構想書 - 彙整彙整: (updated on 5/01/18)
      • 專題構想書,彙整的資料,如下連結: 構想書整理檔案,請參考。
      • 依照:主題, 題目, 目標, 變數, 功能等方面整理。
      • 主題分成:票房, 運動, 社會, 區域, 健康, 金錢, 旅遊, 人數, 分類, 文字, 環境等。
      • 計算有關的功能,應該在下面單元會討論到:
        - U04, U05, U06, U13
      • 繪圖有關的功能,應該在下面單元會討論到:
        - U04, U10, U11, U12, U13
      • 數據輸入輸出有關的功能,應該在下面單元會討論到:
        - U08, U09
      • 判斷有關的功能,應該在下面單元會討論到:
        - U06, U13, U14
      • 關係有關的功能,應該在下面單元會討論到:
        - U15
      • 函數有關的功能,應該在下面單元會討論到:
        - U07, U12
      • 針對您的主題,有任何想法或作法,歡迎提出來討論,一起交流
        可以發表到 FB 或 e-mail 到 fengli@ntu.edu.tw。
    • 查詢 HW05 的成績與評語: (updated on 4/30/18)
      • 請 RStudio 的 Console 中,執行下面兩個指令,
        即可獲得您的作業成績與評語:
        myfunc <- lapply( "https://goo.gl/Pi1uzn", source)
        CheckMyHw( "B01901369", "HW05", "BIG5" )
    • 第10週 5/1 課程: (updated on 4/29/18)
      • 課程內容:U08: 多維度資料格式
        - 矩陣 matrix
        - 陣列 array
        - 列表 list
        - 資料框 data.frame
        - 因子 factor
      • 學習時間 登錄連結: https://goo.gl/k7tKLk
      • 課程講義與作業範例檔案,在下面 上課講義與影片
      • 作業(HW06):HW06_學號_關鍵字.xxx
        - 主要指定檔案:   HW06_B01921001_Phone.R
        - 報告檔案:     HW06_B01921001_Phone.pdf
    • 練習利用社群討論問題: (updated on 4/29/18)
      • 下半學期,為了練習利用社群討論問題,
        建議您們,有問題時,先到 FB 提出您們的問題,
        然後,知道可能作法,或者建議方案的,
        就可以提供出來,讓大家參考。
      • 直接 e-mail 問老師的問題,
        也會先轉到 FB 上,讓大家先討論看看。
      • 以下,先 post 幾個問題,讓大家先討論看看。
    • 期中課程教學意見-6: 期末提案參考資料 (updated on 4/26/18)
    • 期中課程教學意見-5: 做ppt檔案,在浪費生命 (updated on 4/26/18)
    • 期中課程教學意見-4: 示範coding 畫面放大 (updated on 4/26/18)
      • 在講課示範coding時能不能把畫面放大QQ 不然都眼花看不太清楚
      • 老師的想法:
        - OK,會多多留意,記得要放大字體。
    • 期中課程教學意見-3: 報告 ppt 很麻煩 (updated on 4/25/18)
    • 期中課程教學意見-2: 資訊公布 (updated on 4/25/18)
      • 用FB的介面,重要資訊容易洗掉。
        反而ceiba的公布欄有顯示標題與日期,可以直接找到想要找的東西
      • 老師的想法:
        - 沒錯,使用FB的介面,重要資訊容易洗掉。
        - 因此,所有的公告,皆會同步公告於課程網站:
        http://cc.ee.ntu.edu.tw/~fengli/Teaching/Computer/
        - 在課程網站上公告的資訊,皆有標題且以公告日期的順序陳列,以利查詢。
    • 期中課程教學意見-1: 更深更廣的內容 (updated on 4/25/18)
      • 希望教的內容可以更深更廣一點啦~~想要多學一些東西
      • 老師的想法:
        - 本課程設計方向,乃是針對想要初步瞭解程式設計的同學。
        - 因此,所討論到的主題與作業的難易程度,僅著重在基本觀念的認識與練習,
        - 其他的相關進階課程資料,會適時地公告於課程網站上。
        - 有興趣的同學,可以自行深入練習,
        - 或者跟老師另外約時間討論可能進行的進階的課程。
    • 第九週 4/24 課程: (updated on 4/8/18)
      • 期中考週:不上課
      • 請整理期末報告構想書!
        - 繳交期限: 4/29 (Sun), 11pm
        - e-mail 到 ntucp2018s@gmail.com
        - e-mail 主旨: PJT 學號 Proposal 關鍵字
        ............. 例如:PJT B05921002 Proposal UBike
      • 構想書內容(建議):
        - 第一頁:課程名稱,學期,姓名,系級,日期等基本資料。
        - 第二頁:問題描述,或者數據資料描述,數據來源等想法說明。
        ................ 請用一個表格整理預計處理的變數名稱,類型,範圍。
        - 第三頁:預計要達到什麼結果,可能需要用到那些功能,計算公式,
        ................ 或者是函數操作等初步的構想。
        ................ 請用一個表格整理預計使用到的計算或處理的函數或功能。
      • 參考資料:
        - 構想書範例: (1) Temperature, (2) UBike , (3) Spending
        - 105-2 期末報告主題 Project Topics
        - 106-2 討論到的主題與程式 Topics and Functions
    • 期末專題的目的與範疇 (updated on 4/8/18)
      • 程式設計的目的是:
        - 為了幫忙我們處理複雜或者是重複性的工作,
        - 因此,期末專題的目的是:
        - 希望您們可以針對您們有興趣的問題,
        - 有機會可以試著寫一個程式去處理這個問題。
      • 問題本身可以不需要太大
        - 可以針對我們討論或提過或預計討論到數據,
        - 例如:iris, phone, score, 等
        - 或是:women, uspop, Titanic, Insurance, CO2, Oragne, Groceries 等,
        - 也可以從您的課業中,生活中,網路上,獲得到一些數據或資料。
      • 主要是想看看,針對這些數據,
        - 您們如何善用所討論過的程式功能,
        - 進行一些包含:計算與繪圖的處理與分析,
        - 希望能夠瞭解一下,
        - 程式設計這件事,如何幫助您的解決工作或生活上的問題等議題。
      • 因此,評分上,會必較著重在:
        - 是否使用了這們課所教過的程式指令,
        ... 一個可能的方向是廣度,
        ...... 就是說,用了很多指令去進行計算或分析
        ... 另一個可能的方向是深度,
        ...... 就是說,雖然用了較少的指令,
        ...... 但是,用得很透徹,善用各種設定去進行詳細的計算或分析。
        - 詳細地說明,執行結果所帶給您的想法
        ... (優點或缺點,符合期待的結果,或者意外的結果等)
      • R 內建的資料庫,可以參考下面的 "資料庫" 參考網頁:
      • 上學期所使用的一些網路上的資料庫
        可以參考課程網頁中間,有關 "資料與數據" 的一些連結。
      • 如果您對於下面議題,有興趣的話:
        - 迷思一、台大管理學院的學生的學生都不讀研究所??
        ------ 薪水都比理工科的學生低??
        - 迷思二、管院的交換生比其他學院高??
        - 迷思三、管院的妹子真的多嗎?
        - 迷思四:管院GPA很好拿??
        可以參考用 R 程式 分析出來的報告: 台大管理學院的迷思
      • 或者下面幾個分析的案例:
        - R語言 天氣可視化應用
        - 抓取氣象局網頁資料
        - 常用連續型分布介紹及R語言實現
        - 用 R 進行中文 text Mining
    • 查詢 HW04 的成績與評語: (updated on 4/21/18)
      • 請 RStudio 的 Console 中,執行下面兩個指令,
        即可獲得您的作業成績與評語:
        myfunc <- lapply( "https://goo.gl/Pi1uzn", source)
        CheckMyHw( "B01901369", "HW04", "BIG5" )
    • 抓蟲 (debug) 時刻: (updated on 4/18/18)
      • 設計程式,多寫多錯,
        但是,多寫多錯之後,可以累積更多的經驗,設計功力也會更高強!
      • 寫程式寫到最後,會發現常常出現錯誤。
        明明我的程式是照我的想法寫的,
        但是,執行結果就是怪怪的。
      • 這可能是程式碼中有一些錯誤,俗稱的 有蟲 (bug)
        接著就需要把蟲抓出來,俗稱的 抓蟲 (debug)
      • 通常抓蟲所花的時間也不少,
        有可能佔全部寫程式的時間的一半以上。
      • 那這些蟲通常在哪裡呢?
      • --- 計算過程錯了: 您的想法與程式碼的執行過程不一樣!
      • --- 邏輯判斷符號弄錯了,
        e.g., > 弄成 <,== 弄成 != 等
      • --- for 之內,變數的 index 弄錯了,
        e.g., data[ i, j ] 弄成 data[ j, i ],
        或者,data[ i+1 ] 弄成 data[ i-1 ] 等等
        或者,mydata[ k ] 弄成 yourdata[ j ] 等等
      • --- 指定錯的資料位置或變數
        e.g., mydata <- speed 弄成 mydata <- velocity 等
      • ................................................................
      • 那如果出現錯誤了,該怎麼找出錯誤呢?
      • ................................................................
      • 除錯的方法:
      • --- 就是一行一行,再次檢查一次,
        想一下,每一行的作法對不對
      • --- 這裡很重要的是:
        在程式碼中,每一個部分都要註解,
        說明該組主要的工作細節,
        因此,經由檢查註解與程式碼,
        可以很容易理解可能哪裡出錯。
      • --- 如果還是查不出來,
        再來,給一個已知結果的數據,執行此程式,
        e.g., 那個成績評定的程式,
        給一組數據包含所有的成績,i.e., -3, -2, -1, 0, 1, 2, ..., 100, 101, 102
        0, 1, 2, ..., 100:這些是為了確認結果是否是自己想的,
        -3, -2, -1, 101, 102:這些是為了測試不在原來設定的數據,會有什麼結果呢?
      • --- 再看看什麼數據輸入會產生問題,
        再對應找出該數據的處理程式碼在哪一些地方
      • --- 也可以把所有的輸入數據都設成每一個出問題的數據,
        再看看輸出結果的哪一個位置出現問題,
        再去檢查該位置的處理程式碼所在之處是否有問題。
      • --- 用 print( data ) 放置每一個計算式子之後,
        列印出該計算式或判斷式的結果
        這樣子,才能瞭解是否有計算錯誤的地方。
      • ----------------------------------------------------------------------
      • 總而言之,
        如果您要寫一個程式去計算這些過程,
        要先想想如果您用筆與紙的話,您會怎麼算?
        就像講義中的計算過程數據列表一樣。
        寫程式,基本上只是把您的過程原汁原味,一五一十地呈現而已。
    • HW05 的主要目的: (updated on 4/18/18)
      • HW05 的主要目的:
        是讓您們練習使用 function 的指令來建立一個函數,
        然後可以被方便重複使用。
        因此,只要有建立下面的架構,以及測試過程即可:
        myNorm <- function( x ){
        ....
        y <- ...
        return( y )
        }
      • 至於, { } 之間的功能要自己寫,
        或者利用現成的函數或指定等,都可以。
        但是,不要很無理頭的,只有下面的程式碼:
        myNorm <- function( x ){
        y <- scale( x )
        return( y )
        }
      • 上面的程式碼,是最簡潔的方法,
        但是,您可能都沒練習到什麼設計程式的過程。
        非常建議您自己盡量練習寫一些過程,
        熟悉一下程式設計的感覺。
      • 因為程式設計的功力是來自於多多的練習,
        在錯誤中學習到經驗,
        未來,當您真正用程式來幫助您的課業或工作的時候,
        才能夠發揮實際的效用。
    • 第八週 4/17 課程: (updated on 4/8/18)
      • 課程內容:U07: 函數:計算與排序
        - 常用函數
        - 使用者自訂函數
        - 自訂數學函數
        - 作業(HW05)的內容與繳交
      • 課程講義與作業範例檔案,在下面 上課講義與影片
      • 檔案名稱:HW05_學號_關鍵字.xxx
        - 函數程式檔案:   HW05_B01921001_myNormFunc.R
        - 測試程式檔案:   HW05_B01921001_myNormTest.R
        - 報告檔案:     HW05_B01921001_myNormRpt.pdf
    • 利用迴圈的程式碼: (updated on 4/14/18)
      • 在下面網頁,葉正聖老師(銘傳大學)整理了許多利用迴圈來完成工作的程式碼,
      • 例如:找出最大公因數,列出九九乘法表,判別質數等等:
      • 第05關_迴圈
    • 補充教材:迴圈: (updated on 4/10/18)
    • HW04 的變數數量與格式: (updated on 4/11/18)
      • HW04 之中,
        - 到底需要產生多少個變數,
        - 每一個變數,其的內容為何?
      • 就此次作業基本要求的角度,
        - 只要能夠處理好對應的結果即可,
        - 並不需要一定要產生幾個變數,
        - 或者,規定每一個變數的內容與格式。
      • 不過,從程式設計的角度, 有幾點可以進一步考量的地方:
      • (A) 簡單的作法:
        - 每一次處理,都產生對應新的一組包含所有資料的變數。
        - 這是比較方便的簡單且淺顯易懂的作法,
        - 好處是:
        - 可以直接看出所有對應的欄位的數據,方便處理。
        - 壞處是:
        - 處理程序一多之後,可能產生很多同樣數據內容的變數,
        - 因此,無形中就增加記憶體的需求。
        - 另外,同一筆數據,因為複製到不同的變數之中,
        - 如果某一個地方進行修改之後,
        - 其他變數中的同一筆數據,可能不會同步更新,
        - 因此,會有不一致的結果,造成使用到錯的數據的機會。
      • (B) 建立單一的資料結構或變數:
        - 一開始,就規劃好預計處理的數據格式與大小,
        - 以及一開始就宣告好這個變數名稱,讓資料內容為:NA。
        - 然後,每一階段的處理,都是針對此單一的變數,
        - 這樣子,所有的處理過程,
        - 都是針對單一的變數中的數據處理,
        - 因此,記憶體空間也是最節省的。
      • 以 HW04 的例子,
        - 用 (A) 的方法,最繁複的作法,需要的變數空間為:
        - 10 人 x 3 類 (ID, Score, Grading) x 3 處理方式 = 90
        - 用 (B) 的方法,最繁複的作法,需要的變數空間為:
        - 10 人 x 5 類 (ID, Score, Grading1, Grading2, Grading3) = 50
    • HW X (The Ultimate Homework): (updated on 4/8/18)
      • 終極作業,將會針對大家填寫的課程活動時間數據,進行處理與分析,
        包含:基本功能與進階功能:
      • 基本功能:
        - 資料:從網路上,讀取檔案
        - 計算:計算數據的總筆數
        - 計算:計算每一個 HW 個別的筆數
        - 計算:計算每一個 學生 ID 個別的筆數
        - 繪圖:用 Histogram 繪製 所有 HW 的分布狀況
        - 繪圖:用 Histogram 繪製 所有 ID 的分布狀況
        - 計算:計算每一個人,按照不同作業的每一個作業,所花費的總時間
        - 計算:計算每一個作業,每一個活動,分別所花費的時間分布狀況
        - 繪圖:繪製 每一個作業,所花費的總時間
        - 繪圖:繪製 每一個活動,所花費時間分布狀況
        - 排序:比較您所花費的時間,在所有學生所花費時間,所佔的順序的百分比
        - 排序:分析您在哪些活動所花費的時間,所佔的順序比較前面
      • 進階功能:
        - 計算:計算缺少數據的總筆數
        - 計算:計算每一個 HW,缺少數據的筆數
        - 計算:計算每一個 學生 ID,缺少數據的筆數
        - 繪圖:用 Histogram 繪製 有數據筆數,沒數據筆數的分布狀況
        - 計算:在每一個人,每一個作業,每一個活動數據之中,找出有問題的數據
        - 計算:分析每一個人,每一個作業,每一個活動,所有數據的分布狀況
        - 計算:從所分析的數據,推論您的最後成績以及預測每一個人最後的成績
        - 繪圖:繪製 各種數據分布圖,統計圖,預測數據圖等
        - 排序:分析您在所有作業所花費的時間的演進趨勢
        - 計算:分析填寫問卷的時間與作業繳交截止時間的關係
        - 等等等
    • 公告 第七週 到 第九週 課程內容: (updated on 4/8/18)
      • 第七週 (4/10) U06: 邏輯判斷與流程控制
        - 繳交:作業(HW04)
      • 第八週 (4/17) U07: 函數:計算與排序
        - 繳交:作業(HW05)
      • 第九週 (4/24) 期中考週:不上課
        - 繳交:期末報告構想書
    • 第七週 4/10 課程: (updated on 4/8/18)
      • 課程內容:U06: 邏輯判斷與流程控制
        - 邏輯變數、判斷及運算
        - 條件分支
        - 迴圈
        - 作業(HW04)的內容與繳交
      • 課程講義與作業範例檔案,在下面 上課講義與影片
      • 檔案名稱:HW04_學號_關鍵字.xxx
        - R 程式檔案:  HW04_B01921001_LogicFlow.R
        - 報告檔案:   HW04_B01921001_LogicFlow.pdf
    • 查詢 HW03 的成績與評語: (updated on 4/7/18)
      • 請 RStudio 的 Console 中,執行下面兩個指令,
        即可獲得您的作業成績與評語:
        myfunc <- lapply( "https://goo.gl/Pi1uzn", source)
        CheckMyHw( "B01901369", "HW01", "BIG5" )
      • ChechkMyHw( ) 中間放的是您的學號,作業編號,以及編碼方式。
        常用的編碼方式如下:
        UTF-8, BIG5, CP950, ASCII, GB18030, GB2312, ISO-2022-JP, ISO-2022-KR, SHIFT-JIS
      • 產生下面六個資料:Student_ID, HW_ID, Status, Score.Rpt, Score.Code, Note
        - Student_ID: 學號
        - HW_ID: 作業編號
        - Status: 繳交狀態:OK/Late/No
        - Score.Rpt: 報告評分:9, 7, 5, 0
        - Score.Code: 程式碼評分:9, 7, 5, 0
        - Note: 評語
        - (沒交者:Status = No, 評分 = 0, Note = none)
      • 如果您有交或覺得有準時交,
        請您再轉寄一次,當初繳交作業的那個 email,
        讓我們再次確認一次。
      • 特別注意:
        - 作業程式要設計的項目是以講義中作業說明的項目為主,
        不是僅僅設計範例檔案中的三種案例而已。
        - 程式編輯過程中,一定同時編輯註解,
        好讓自己以及其他人在讀程式的時候,瞭解某一段程式的功能與用途。
    • 查詢 HW01 and HW02 的成績與評語: (updated on 4/3/18)
      • 請 RStudio 的 Console 中,執行下面兩個指令,
        即可獲得您的作業成績與評語:
        myfunc <- lapply( "https://goo.gl/Pi1uzn", source)
        CheckMyHw( "B01901369", "HW01", "BIG5" )
      • ChechkMyHw( ) 中間放的是您的學號,作業編號,以及編碼方式。
        常用的編碼方式如下:
        UTF-8, BIG5, CP950, ASCII, GB18030, GB2312, ISO-2022-JP, ISO-2022-KR, SHIFT-JIS
      • 產生下面六個資料:Student_ID, HW_ID, Status, Score.Rpt, Score.Code, Note
        - Student_ID: 學號
        - HW_ID: 作業編號
        - Status: 繳交狀態:OK/Late/No
        - Score.Rpt: 報告評分:9, 7, 5, 0
        - Score.Code: 程式碼評分:9, 7, 5, 0
        - Note: 評語
        - (沒交者:Status = No, 評分 = 0, Note = none)
      • 如果您有交或覺得有準時交,
        請您再轉寄一次,當初繳交作業的那個 email,
        讓我們再次確認一次。
      • HW01 與 HW02 在最後成績的評定,只是針對"有交""沒交"
        因此,HW01 與 HW02 的成績與評語,只是給您參考,
        HW03 之後的評分將會列入期末成績考量之中,請依照建議事項編輯程式與報告。
    • 有問題怎麼辦? (updated on 3/25/18)
      • 四個可能的作法:
        1. e-mail 問人
        2. 到 FB 問問題
        3. 用 ?指令
        4. google 指令或錯誤的訊息
      • 用 (1), (2) 的話,
        儘量附上當時的螢幕資料,
        (Ctrl + Print Screen or Alt + Print Screen,可以複製貼上)
        最好再複製一下使用的指令與產生的錯誤訊息的文字。
        以利瞭解問題或者可以重現問題的可能性,
        以及針對問題提出建議方案。
      • 用 (3), (4) 的話,
        可能可以找到解決方案,或者類似問題的解決方案,
        如果您覺得您找到答案了,
        也歡迎您 post 到 FB 跟大家分享:
        您的問題,找到的解法,網站連結等,
        這樣子,除了大家也可以學到之外,
        也可能幫忙檢查所獲得的資訊是不是直接可以解決這個問題。
    • 在 RStudio 中使用中文: (updated on 3/25/18)
      • R 是可以處理中文資料,
        檔案也可以用中文,
        但是,可能會產生亂碼,或連結不到檔案。
      • 目前,已知目錄的路徑不能有中文字型,
        會連結不到,因而無法儲存檔案。
        不僅是上一前的目錄不能有中文,整個目錄中都不能有中文,
        例如: E:\使用者\連小力\MyData, E:\桌面\程式設計\MyData,
        這些會有問題。
      • 因此,建議簡單的建立一個目錄,
        例如: E:\MyData or E:\R\mywork
      • 用 RStudio 打開檔案之後,中文的部分是亂碼,可以試看看下面指令:
        - 左上角,點選:"File", "Reopen?with?Encoding..."
        - 選擇您的電腦之中適當的編碼方式
      • 用瀏覽器打開檔案之後,中文的部分是亂碼,可以試看看下面指令:
        - 請更改瀏覽器的編碼,
        - 更改方式,請參考下面網頁說明:
        - 解決Chrome網頁編碼顯示亂碼的問題
    • 在 1know 上的課程整理: (updated on 3/21/18)
      • 選擇課後瀏覽課程影片資料的同學:
        - 可以直接點選課程影片到 Youtube 觀看,或者
        - 選擇到 1know 課程平台上。
      • 1know 登入方式:
        - 網站: http://1know.net
        - 請登入後,以自行喜好方式登入
        - 登入之後,請加入群組:用 R 分析數據 與 設計程式 2018(代碼:194BF3)
        - 選擇:任務,進行瀏覽,可依序觀看,註記筆記等等功能
      • 目前,在1know.net 平台上:
        - U03 and U04 的課程講義,以及課程影片等資料已經編輯好
        - 請由 "任務" 區進入課程,現在有兩個任務:U03, U04。
      • 歡迎試用,有任何建議,請 e-mail 給我: fengli@ntu.edu.tw,謝謝。
    • 第四週 3/20 課程: (updated on 3/19/18)
      • 課程內容:U04: 數據處理與繪圖功能
        - 以 鳶尾花 IRIS 與 課程活動時間 數據為例
        - 數據所在位置與數據的內容
        - 分析數據 與 繪製圖形
        - 作業(HW02)的內容與繳交
      • 課程講義與作業範例檔案,在下面 上課講義與影片
      • 檔案名稱:HW02_學號_關鍵字.xxx
        - R 程式檔案:   HW02_B01921001_ComputePlot.R
        - 報告檔案:    HW02_B01921001_ComputePlot.pdf
      • 請同時填寫該週的課程活動時間: 課程活動時間登錄
      • 繳交作業的 E-mail 為:ntucp2018s@gmail.com (限繳交作業報告,不要問問題)
      • 有問題,請 E-mail 到:fengli@ntu.edu.tw (作業報告不要繳交至此)
    • 參考書籍借閱: (updated on 3/20/18)
      • 下列參考書籍借閱,請到教室第一排,登記到借閱單:
        - 每次一週為原則,下一週上課歸還
        - 多人一組同時借閱,優先權較高
      • 參考書籍:
        - 實用R程式設計 --- 郭英勝, 鄭志宏, 謝哲光, 龔志銘
        - 利用R語言打通大數據的經脈(第2版) --- 黃文, 王正林
        - R 軟體資料分析基礎與應用 --- Jared P. Lander 著,鍾振蔚譯
        - 普格碼島的法師:歡樂自學寫程式 --- 唐宗浩著
        - 改變世界的九大演算法 --- John MacCormick 著、陳正芬譯
    • HW01 繳交狀況: (updated on 3/17/18)
      • HW01 的目的:
        - 主要是:確認您們可以儲存四個檔案,以及成功傳送到課程信箱!
        - 至於,要執行什麼程式,或達到什麼功能,不在 HW01 的評分考量之中。
      • 寄送郵件主旨為:HW01 學號
        - HW01學號 之間,請空格,不要加任何文字,以利自動歸類整理。
      • 請同時填寫該週的課程活動時間。
        - 網址:如果無法使用作業說明的連結,
        - 請用下面連結: 課程活動時間登錄
        - 或者, 在 課程網站臉書右側簡介資料中,皆有連結。
        - 該活動時間資料,將會在後續課程中,
        - 利用輸入資料的方式載入,然後,設計程式來分析與處理。
      • 繳交作業的 E-mail為:ntucp2018s@gmail.com (限繳交作業報告,不要問問題)
      • 有問題,請 E-mail 到:fengli@ntu.edu.tw (作業報告不要繳交至此)
    • 第三週 3/13 課程: (updated on 3/12/18)
    • 參考書籍: (updated on 3/12/18)
      • 上課時,下列參考書籍將會放到教室的第一排,
      • 歡迎您到第一排來瀏覽,預計 3pm 開始。
      • - 實用R程式設計 --- 郭英勝, 鄭志宏, 謝哲光, 龔志銘
        - 利用R語言打通大數據的經脈(第2版) --- 黃文, 王正林
        - R 軟體資料分析基礎與應用 --- Jared P. Lander 著,鍾振蔚譯
        - 普格碼島的法師:歡樂自學寫程式 --- 唐宗浩著
        - 改變世界的九大演算法 --- John MacCormick 著、陳正芬譯
    • 第二週 3/6 課程: (updated on 3/5/17)
    • 上課時間,上課地點: (updated on 12/25/17)
      • 上課教室預計安排於計算機中心的教室,目前正在申請中,預計選課前才能定案。
      • 目前規劃的時間為週二下午的時段。
    • 過去課程:105-1 學期資料: (updated on 2/10/17)
    • Course Resources: (updated on 2/10/17)
    • 第九週 4/24 課程: (updated on 4/4/18)
      • 期中考週:不上課
      • 請整理期末報告構想書!
        - 繳交期限: 4/29 (Sun), 11pm
        - e-mail 到 ntucp2018s@gmail.com
        - e-mail 主旨: PJT 學號 Proposal 關鍵字
        ............. 例如:PJT B05921002 Proposal UBike
      • 構想書內容(建議):
        - 第一頁:課程名稱,學期,姓名,系級,日期等基本資料。
        - 第二頁:問題描述,或者數據資料描述,數據來源等想法說明。
        ................ 請用一個表格整理預計處理的變數名稱,類型,範圍。
        - 第三頁:預計要達到什麼結果,可能需要用到那些功能,計算公式,
        ................ 或者是函數操作等初步的構想。
        ................ 請用一個表格整理預計使用到的計算或處理的函數或功能。
      • 參考資料:
        - 構想書範例: (1) Temperature, (2) UBike , (3) Spending
        - 105-2 期末報告主題 Project Topics
        - 106-2 討論到的主題與程式 Topics and Functions