2020年2月2日 星期日

南投Python青年團隊隊長是來自澳門到南開人


南開科技大學大學社會責任實踐計畫辦公室主任林正敏教授發現學校有一群熱愛Python的年輕學子,潛藏在各專業系所,平時因為修習各自專業課程的關係,缺乏彼此交流機會。林主任思考如果能有一支Python專業的青年團隊,讓他們能接受外界委託專案,以實際場域問題做為團隊訓練的題材,由教師指導學生探討如何使用Python來解決實際場域的問題,不但能加速這群年輕學子學習Python的專業,更可以善盡大學社會責任。

為了集訓這些學生於2020年1月13日(一)在南開科技大學工程大樓E717舉辦Python/Django/Mezzanine訓練課程,該課程也開放給社會人士參加,當天約有40位南開科技大學師生或社會人士參與集訓,早上課程一開始先介紹Python語法再練習用Django設計網站,下午課程則是使用Mezzanine快速地建構內容管理系統(CMS),學習如何快速地變換主題,最後把CMS的網站上傳到Heroku平台。

訓練課程結束後,一群南開年青學子在E622討論成立南投Python青年團隊,會中大家推舉由來自澳門在南開科技大學電子工程系就讀的何俊賢同學,擔任南投Python青年團隊第一任團長。何同學自從去年參加南投百香果資源永續之煉銀網平台所開設的微學分,因傑出表現,被該計畫執行長林正敏教授網羅成為該計畫的教學助理,在E614研讀Python已經有一段時間,目前也正在洽談一件產學合作計畫。我們相信在何團長帶領以及團員們不斷地努力下, Python技術應用於場域實踐,將會成為南開科技大學大學社會責任實踐計畫很重要的關鍵性技術之一。


2019年11月22日 星期五

中興智能創作課程


Let's make it ! 中興智能創作課程,總共規劃三個主題:1.智慧農業2.網路爬蟲3.人工智慧。
1081020日辦理第一個主題「智慧農業」,邀請南開科技大學民生學院院長林正敏院長蒞臨本校擔任講座,此次課程主要是運用物聯網的概念與技術,結合無線通訊科技,將蒐集與擷取到的感測數據上傳至雲端資料庫。經過一天充實的課程安排,參與的老師、學生們都覺得學習到對自己有幫助的課程,滿心期待接下來另外兩個主題的相關課程!(國立中興高中1081020臉書)






林正敏院長積極推動智慧科技,近來尤其熱衷於Python程式設計。他辛勤奔走於小學中學和大學校園,也在社區積極推動。



2019年11月21日 星期四

百香果USR之Python程式設計教材

誰說大學教師一定要有博士學位呢?有數十年的經驗的傑出農民也能成為大學最棒的業師,傳授學生如何為百香果搭建棚架,農民業師與師生共同討論要如何搭會比較適合百香果生長⋯⋯。

以下是南開科技大學推動大學社會責任實踐計畫-南投百香果資源永續之煉銀網平台所發展出來的教材。

基礎篇
  1. Python一下百香果故鄉在南投埔里
  2. 百香果含有超過130種以上的芳香物質,130是整數還是字串?
  3. 從百香果分級來看Python的List串列資料結構
  4. 用Python多層容器來儲存百香果大小規格,並用切片來存取
  5. 百香果分級標準居然可以用不可更改的元組來表示
  6. 一堆不可以重複以及改變值的資料的集合可用來百香果分級判斷
  7. 超好用的字典,用鍵查值的觀念來查百香果的分級標準
  8. 用百香果資料串列來學習Python的迴圈
  9. 用百香果資料串列來學習Python的分支

應用篇
  1. 用Python找出埔里地區的文化資產
  2. 用Python來撰寫顯示今天百香果市場交易情形的程式
  3. 用Python來顯示今天各市場百香果交易的統計圖
  4. 使用Python和Django設計百香果農產品交易行情網站
  5. 用Python撰寫「用戶定義的HTTP回呼」結合IFTTT服務在LINE群組報導百香果交易情形
  6. 使用Python/pyecharts四行程式搞定百香果近8年的交易行情圖
  7. 用Python實作水果分類器
  8. Python實作各種水果分類器那一種最好?
  9. 利用最近鄰居法(KNN)搭配matplotlib畫出水果分類圖
  10. 百香果交易行情網站設計(一) - 取得百香果市場交易
  11. 百香果交易行情網站設計(二) - 四個步驟搞定Mezzanine
  12. 百香果交易行情網站設計(三) - 更換主題醜小鴨變天鵝
  13. 百香果交易行情網站設計(四) - 讓Mezzanine承接自己的意圖
  14. 初體驗! 使用pyecharts以水果交易行情為例
  15. 使用Flask模板瑄染,製作水果交易網站
  16. 製作水果交易網站(一) -在Django中用pyecharts製作圖表
  17. 製作水果交易網站(二) - 前後台分離
  18. 製作水果交易網站(三) - 定時全量更新數據
  19. 製作水果交易網站(四) - 定時增量更新圖表
  20. 利用Python透過氣象開放資料平台取得百香果故鄉的氣象資料
  21. 利用MicroPython透過OpenWeather取得百香果故鄉的氣象資料

2019年10月11日 星期五

埔里百香果冰淇淋出現在「中華民國 108 年國慶酒會」

中華民國 108 年國慶酒會出現三款冰淇淋,分別是紅玉紅茶、埔里百香果、文山包種茶。

(圖片摘自下列影片在1分12秒處)

開設創新創業規劃與輔導微學分課程培育創新創業人才

南開科技大學USR-南投百香果資源永續之煉銀網平台計畫開課拉!此次與勞動力發展署中彰投分署青年職涯發展中心暨TCN創客基地-南投據點共同合辦「創新創業規劃與輔導微學分課程」研習,藉由瞭解創業計畫書撰寫、餐飲業創業之現況、政府補助資源以及案例分享等一系列課程規劃安排,培育並啟發同學具備創意、創新、創業的能力與素養,建立創新創業的信心,以成為真正創新創業型人才。
活動資訊:
上課時間:108年10月08日至11月12日每週二下午13:00~16:00,共計6週

2019年8月20日 星期二

百香果栽培新里程碑無毒果園揭牌,全果加值應用做成面膜、蜜餞、蛋糕、冰淇淋



南開科技大學執行教育部大學社會責任實踐計畫南投百香果資源永續煉銀網平台計畫團隊,於108819日來到百香果故鄉南投縣埔里鎮合成里展開一天的行程。回顧107317該計畫團隊與社區民眾首次座談、10766日又再次座談,還有不記次數的明查暗訪。密集座談訪問的目的是藉以了解社區需求,回應社區期待,確立了計畫的走向。轉眼來到了108819日,計畫執行一年多了,有哪些成果?有哪些可以向大眾分享?

    早上到鄭家果園,為無毒果園揭牌去年4月南開團隊在校園栽植30棵百香果,採用無毒友善管理。在不噴灑藥劑的情況下,成功地讓百香果獲得豐碩的收成。果樹度過寒冬,在春分時節,又產出新的的果實。可惜初夏的大豪雨夾帶狂風吹倒了棚架,校園百香果暫時走入歷史。感謝鄭家願意以一年的收成風險讓南開實現無毒場域的理想,也無縫接軌校園百香果。如今鄭家果園滿滿健碩的果實,讓大家鬆了一口氣,也證實我們走在正確的道路上。





下午舉行百香果加值產品發表。由計畫主持人孫校長台平教授以及陳信順里長共同主持,孫校長首先告訴大家一個好消息,計畫團隊所設計的NPF商標具備高產業價值通過,其中N有南投、南開和無毒三層意義;P代表百香果、熱情;而F則有水果以及福爾摩沙諸多種意義。陳里長首先感謝南開科技大學集全校之力,以社區共好、共遊、和共榮三個子計畫投入大學社會責任,經過一年多,成果大家有目共睹,特別感謝孫校長所帶領的煉銀網團隊。

今日發表產品有果皮提煉花青素做的面膜、果肉製成的蜜餞、果汁做成百香果蛋糕、百香果法式冰淇淋等,這些產品都是南開科技大學教師帶領學生完成的,除了有人才培育外,更鏈結在地資源。座談會也有邀請行銷專長的業者雞耀密酥黃榮祥和高應大趙伯元老師提供行銷管道。面膜由陳榮煇學務長提煉花青素研發、果皮蜜餞由本校老師紀璟叡老師研發,百香果蛋糕是甜心大叔江鈴莉、林育德研發。面膜體驗由沐馨工作室創辦人邱斐俞主持,當場邀請合成里三位里民體驗面膜,邱創辦人示範如何運用科學方法來看面膜的保養效果,三位體驗的里民紛紛表示體驗者都稱好。法式冰淇淋是吳書瑀團隊研發,這隻冰淇淋即將在國慶進軍國宴,無毒百香果冰淇淋即將走向國際舞台。純而不膩細緻軟密的蛋糕獲得合成里陳里長高度讚賞,法式冰淇淋打破用添加物才能做出冰淇淋的成規」完整保留百香果的香甜。冰淇淋和蛋糕業者都走天然無添加方向,符合環境永續與身心健康之現代趨勢。面膜、蜜餞則發揮回收再利用之精神,並需以無毒產品為原料,大有益於環境之永續

百香果花青素面膜

面膜體驗

法式冰淇淋 吳書瑀小姐

百香果汁法式冰淇淋

甜心大叔 林育德 先生

百香果汁蛋糕

紀璟叡老師研發果皮蜜餞

百香果果皮蜜餞


2019年8月4日 星期日

利用最近鄰居法(KNN)搭配matplotlib畫出水果分類圖

程式原始碼:https://github.com/susanli2016/Machine-Learning-with-Python/blob/master/Solving%20A%20Simple%20Classification%20Problem%20with%20Python.ipynb

水果資料來源:https://github.com/susanli2016/Machine-Learning-with-Python/blob/master/fruit_data_with_colors.txt


在上一篇文章中,我們發現最近鄰居法(KNN)在水果分類上表現最好,本篇將原始程整理後列出,並以matplotlib套件畫出水果分類圖,在原始程式中有一點小小錯誤,在第25行,已修復,讀者不妨試試。




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.colors import ListedColormap, BoundaryNorm
import matplotlib.patches as mpatches
import matplotlib.patches as mpatches
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

fruits = pd.read_table('fruit_data_with_colors.txt')

X = fruits[['mass', 'width', 'height', 'color_score']]
y = fruits['fruit_label']
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

def plot_fruit_knn(X, y, n_neighbors, weights):
    X_mat = X[['height', 'width']].as_matrix()
    y_mat = y.as_matrix()

    # Create color maps
    cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF','#AFAFAF'])
    cmap_bold  = ListedColormap(['#FF0000', '#00FF00', '#0000FF','#AFAFAF'])

    clf = KNeighborsClassifier(n_neighbors, weights=weights)
    clf.fit(X_mat, y_mat)

    # Plot the decision boundary by assigning a color in the color map
    # to each mesh point.
    
    mesh_step_size = .01  # step size in the mesh
    plot_symbol_size = 50
    
    x_min, x_max = X_mat[:, 0].min() - 1, X_mat[:, 0].max() + 1
    y_min, y_max = X_mat[:, 1].min() - 1, X_mat[:, 1].max() + 1
    xx, yy = np.meshgrid(np.arange(x_min, x_max, mesh_step_size),
                         np.arange(y_min, y_max, mesh_step_size))
    Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])

    # Put the result into a color plot
    Z = Z.reshape(xx.shape)
    plt.figure()
    plt.pcolormesh(xx, yy, Z, cmap=cmap_light)

    # Plot training points
    plt.scatter(X_mat[:, 0], X_mat[:, 1], s=plot_symbol_size, c=y, cmap=cmap_bold, edgecolor = 'black')
    plt.xlim(xx.min(), xx.max())
    plt.ylim(yy.min(), yy.max())

    patch0 = mpatches.Patch(color='#FF0000', label='apple')
    patch1 = mpatches.Patch(color='#00FF00', label='mandarin')
    patch2 = mpatches.Patch(color='#0000FF', label='orange')
    patch3 = mpatches.Patch(color='#AFAFAF', label='lemon')
    plt.legend(handles=[patch0, patch1, patch2, patch3])

        
    plt.xlabel('height (cm)')
    plt.ylabel('width (cm)')
    plt.title("4-Class classification (k = %i, weights = '%s')"
              % (n_neighbors, weights))
    
    plt.show()
plot_fruit_knn(X_train, y_train, 5, 'uniform')