進階程式設計 (Advance Computer Programming)


上課時間 :



成績(資工系)週五 5,6,7 (1:10 pm~ 4:00 pm), 上課地點 : I533

AU x University AWSome DAY (2021/5/4, Tueday, 9am-12am) 需要事先報名)
TA:Oktomy(chayadions@gmail.com)(I533, ext: 1785)



教科書: Python最強入門邁向頂尖高手之路:王者歸來(第二版)全彩版 作者:洪錦魁 ,出版商 深智數位股份有限公司, 出版日期 2020-09-17, ISBN 9789865501532
20201204Python頂尖高手之路第2版讀者資源.zip (範例程式碼)

參考書:


Python網路爬蟲與資料視覺化應用實務 作者:陳允傑 旗標 書號:FT748, ISBN:9789863125624 (2018)
Code Example
旗標 林志成先生 0912-563-725

  • CHAPTER 4 使用 CSS 選擇器爬取資料
  • (1) Tools/CSS選擇器互動測試工具/SelectorTester.html
    (2) Selector Gadget (for Chrome)
    https://www.flag.com.tw/books/school
    4-4 Google Chrome  開發人員工具
    專任教授
    按 F12 或 Ctrl + Shitf + i
    References:
    如何獲取資料:擷取網頁內容(上)(from: 郭耀仁 Yao-Jen Kuo)

    請用 網路爬蟲 到亞大資工系網頁擷取出 專任教授 (姓名+學歷+辦公室+分機+E-mail)
    CodeExample:
    WebRobot_AU_CSIE_Downlaod_Prof_jdwang2020_5_21.7z(如何改進缺少欄位? )


    思考題
    (+1%)下載 (姓名+學歷+辦公室+分機+E-mail)
    專任教授
    專任副教授
    專任助理教授
    => 儲存成一個 CSV檔案 (欄位名稱:級職,姓名,學歷,辦公室,分機,E-mail) (CSIE_ALL_SFaculty_YourID_Date.CSV)

  • (*)CHAPTER 5 走訪 HTML 網頁取出資料與資料儲存
  • 5-4 store Data to CSV or JSON file
    Ch5_4_1.py (read CSV)
    Ch5_4_1a.py (write CSV)

    Ch5_4_1b.py
    (Win: F12, Mac:Fn+F12)
    (W3Shool: https://www.w3schools.com/html/html_media.asp )
    (Cookic 突破PTT 八卦版十八禁限制)https://www.ptt.cc/ask/over18?from=%2Fbbs%2FGossiping%2Findex.html
    (Name為over18、Value為1的Cookie)

    Ch5_4_2.py (dumps(): dictionary to string)(loads(): string to dictionary)
    Ch5_4_2a.py (json to file)
    Ch5_4_2b.py (file to json )
    Ch5_4_2c.py (Google query to JSON)
    https://www.googleapis.com/books/v1/volumes?maxResults=5&q=Python&projection=lite
    WebRobot_AU_CSIE_Downlaod_Prof_jdwang2020_6_4.7z(如何改進? )
    思考題
    (+1%) 生醫系 專任教師
    => 儲存成一個 CSV檔案 (欄位名稱"中文姓名","英文姓名","職稱","學歷","Degree":"","Building":'',"辦公室","分機","E-mail","研究領域") (BIME_ALL_Faculty_YourID_Date.CSV)
    (+1%) 行動商務與多媒體設計學系 
    => 儲存成一個 CSV檔案 (欄位名稱"中文姓名","職稱","學歷","Degree":"","Building":'',"辦公室","分機","E-mail","專長(研究領域)") (MCMA_ALL_Faculty_YourID_Date.CSV)

  • CHAPTER 10 將爬取資料存入 MySQL 資料庫
  • 10-3 MySQL 資料庫
    Viewer for PHP (?)
    AppServ : Apache + PHP + MYSQL – AppServ (MySQL :root, password)
    HeidiSQL (heidisql.exe) + (MySQL :root, password) + mybooks.sql
    HeidiSQL=>DB: mybooks (select * from books)
    HeidiSQL=>DB: mybooks (select * from books where category= "程式設計")
    10-5 將資料存入MySQL 資料庫
    install PySQL module => (anacoda prompt> pip install PyMySQL)
    Ch10_5.py
    Ch10_5a.py(CSV)
    Ch10_5b.py(JSON)
    參考程式: WebRobot_AU_CSIE_DownLoad_Prof_ToDatabase.7z(亞大資工系教師網頁)
    install PySQL module => (anacoda prompt> pip install PyMySQL)
    CreateTbale_AsiaUniversity_CSIE_Prof_jdwang2020_6_5.sql

    思考題
    使用資料庫 au_faculty_2021 (use au_faculty_2021)
    (+1%) 生醫系 專任教師
    => 建立一個 2021_Asia_BIME_Table 並儲存 生醫系 專任教師資料 (欄位名稱"中文姓名","英文姓名","職稱","學歷","Degree":"","Building":'',"辦公室","分機","E-mail","研究領域")
    (+1%) 行動商務與多媒體設計學系 
    => 建立一個 2021_Asia_MCMA_Table 並儲存 行動商務與多媒體設計學系 專任教師資料(欄位名稱"中文姓名","職稱","學歷","Degree":"","Building":'',"辦公室","分機","E-mail","專長(研究領域)")


    【Part 2 Python 資料視覺化 - 大數據分析】
  • CHAPTER 11 認識大數據分析-資料視覺化
  • (*)CHAPTER 12 使用 Pandas 掌握你的資料
  • Ch12_2_2.py (df.to_csv)(df.to_json )
    Ch12_2_2a.py (pd.read_csv)(pd.read_json)
    Ch12_2_2a.py (pd.read_csv)(pd.read_json)
    Ch12_2_2b.py (CSV to HTML)
    Ch12_2_2c.py (import from MySQL)
    Ch12_2_2d.py (export to MySQL)(?)

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade sqlalchemy --ignore-installed

    Ch12_5_4.py (統計函數 describe()(page 12-43)

    Ch12_6_1.py (資料清理與轉換)
    Ch12_6_1a.py (info())
    Ch12_6_1b.py (how='any'how='all'subset)
    Ch12_6_1c.py (補漏)

    Ch12_6_2.py (刪除重複)
    Ch12_6_2a.py (刪除重複)
    Ch12_6_2b.py (刪除重複欄位)

    Ch12_6_3.py (轉換分類)

  • (*)CHAPTER 13 Matplotlib 與 Pandas 資料視覺化
  • Ch13_1_1.py
    Ch13_1_1a.py(顏色外觀)
    Ch13_1_1b.py(X index)
    Ch13_1_1c.py(two series)
    Ch13_1_2.py(線條外觀)
    Ch13_1_2a.py(格線)
    Ch13_1_3.py(XY軸)
    Ch13_1_3a.py(XY軸+標題)
    Ch13_1_4.py(圖例 Legend)
    Ch13_1_4a~d.py(圖例 Legend)

    Pandas + DataVisuial
    Ch13_3.py ("HOU_players_stats_2017_18.csv")
    Ch13_3a.py (Pandas + DataVisuial)
    Ch13_3b.py (箱型圖:df["salary"].plot(kind="hist", bins=num_bins))
    Ch13_3c.py (df.plot(kind="scatter", x="PTS", y="salary")
    Ch13_3d.py (position = df_grouped["Pos"].count())
    Ch13_3e.py ("Kobe_stats.csv")
    參考程式: WebRobot_AU_CSIE_Python_SQL_Query_jdwang2020_6_17.7z(亞大資工系教師網頁)

    思考題
    (+1%) 請修改程式 "Ch5_4_1b_AU_CSIE_ALLProf_23_OnlyToMySQL_OnePass.py"
    修正"Building"內容
    利用"辦公室"資訊(如:HB33 資訊大樓(地下室) ) (如:"H" :健康大樓)
    或 由分機號碼填入大樓名稱(如:分機:48012 前兩碼 "48" 表式 "二宿")

    (+1%) 完成上一題修正"Building"內容後,
    請修改程式 "Ch10_5_AU_CSIE_5_Pandas_plot.py"
    (原先式統計"Faculty_Rank":專任教授 專任副教授 專任助理教授 )
    改成各棟大樓("Building")教師人數統計
    並利用matplotlib 劃出統計圖(圓餅圖(pie)或長條圖(bar))


    課程內容