【學習領頭羊】Part2

高中生工程師 — — 【CFHSS】專為高中生設計的管家型聊天機器人

一串「高中生」寫給「高中生」的程式碼,以管家型聊天機器人的姿態進入同齡使用者的生活圈。

--

【CBFHSS Chatbot for High School Student】是由兩位尚在高中就讀的學生一同發想的「管家型聊天機器人」,以自身在學校的生活經驗作為材料,專門為了高中生所設計,以一串又一串的程式碼獲得了國網中心的補助,在這一波「抗疫之戰」中對於校園的學習環境有了實質上的幫助。

本專案自 2019 年 10 月開始開發,2019 年 12 月正式於作者班上線。

訪談中發起者說:「起初想做的原因是因為團隊成員之一 ,去高雄開會的時候忘記帶該帶的作業,接著在會場的攤位剛好遇到 Chatbot Community,所以回去的時候就想說來寫個可以在放學前提醒同學要帶什麼東西回家的聊天機器人。

創始動機就是這麼生活化,而這個由高中生所設計出的【CFHSS】,究竟能如何以「管家型聊天機器人」之姿深入校園,對於求學中的青年學子們有實質上的幫助呢?

【CFHSS】可以為他的使用者們做到這些事:

  1. 考試進度查詢。
  2. 公告設定。
  3. 段考日期倒數。
  4. 體溫查詢紀錄。

整體來看,【CFHSS】可以將紙本的聯絡簿電子化,以聊天機器人的形式幫助使用者隨時隨地查詢課業進度,而「體溫查詢」更是他們配合疫情在今年三月新增的功能。

在訪談中他們說:在完成體溫登記功能後,我們詢問學務處體溫登記這件事能不能從紙本改為電子化處理。因為能見到學務主任的機會其實很少,只要有機會找到他,我們就會跟學務主任說我們的進度」。

學務處可以透過他們的系統查詢全校各班的體溫,除此之外會在每天早上九點掃描資料庫確認是否有異常的體溫並將異常體溫的學生回報給學務處,學務處將不再需要花時間在翻閱紙本的體溫上面,減少學務處的工作量也同時增進學務處處理事情的效率。

【CFHSS】對這一波抗疫生活上的助益功不可沒,而它背後的發明者更是年輕到令人害怕,兩位17、18歲的高中生,將他們在學校專題課的點子實體化,不斷的向外尋找資源與幫助來強化系統,架設的Server從原本的Google Sheet API 轉到 SQL Database,接著得到國網中心的支持,在TWCC 的 VM 上面把 Server 架好,系統才得以穩定下來。

在專題進行過程中,他們遇到的頭疼困境,則是在於寫一些比較不熱門的東西時,比較難從身邊的人或網路找到解答。另外一個問題是架設備的經費——Server的架設。

發起者表示:「我們原本以為程式會當掉是因為從 Google Sheet 取得的時間太長在中間傳輸的過程中出了問題,後來才發現是因為Google Sheet API 這邊有限制每秒取得的資料數,為了系統的穩定性,我們決定轉到 SQL Database。

又接著說:「 在建置資料庫 (MySQL Server) 這邊我們原本要租 VPS 來架,後來發現 GCP 的有免費試用的餘額勉強撐著,直到我們在【g0v 零時小學校】中發表我們的作品,得知國網中心目前正在推動「科技抗疫專案」,通過申請後,我們就完成了將 GCP Cloud SQL 搬移至國網中心的 TWCC 的 VM 上的大工程。

能讓他們突破困境的,是他們對於專題執行的積極度以及自學力。發起者很有自信的表示:「我個人覺得遇到錢的問題的時候可以找企業合作,通常只要專題主題不要與市場重複性太高,拿到金錢跟設備資助應該都不會太難。」在自學力方面,三位發起者的學習經驗是這樣的:

  1. 廖煥杰:「國小的時候買了很多書來看,但都沒有看懂。一路到了國中學校剛好有資訊奧賽培訓的課,我才開始寫出自己第一隻會跑的程式。那時候進去不是為了比賽,只是因為我找到了一個可以學寫程式的東西的機會。因為都是練習演算法的關係,過了一年多後開始覺得有些無聊,於是開始上網看教學自學軟體結合硬體的東西,像是 Raspberry Pi 跟 Arduino。到了高中一開始還是以演算法為主,到高二才開始接觸其他程式語言跟線上服務。管道的話演算法就是多練習題目,網路上也都找的到的教學網站跟影片。至於這個專案一開始是看一本關於如何用 Python 寫 LINE BOT 的書開始學的。Python 是老師教的,但後面其他東西像是 Database, Google Sheet API, LINE API, APScheduler… 這些東西全部都是我上網自學的。
  2. 吳文元:「小時候學C語言的時候是看書,但長大後學了很多程式語言其實都只靠Google。你會發現如果只是想學如何用程式語言寫出想要的功能的話,其實Google就很夠用,因為語言的演變與更新非常快速,書上的內容不用2年就過時了,反觀Google上的英文資源豐富、即時又免費,只要有心就學的會。
  3. 賀洋生:「第一次接觸程式語言是在高中的資訊課,還記得當初要完成題目的話是花費很大工夫去Google查詢,而全班在答題時也會互相幫助互相討論,老師也會給予很多的提示。之後也接觸了Python和HTML,因為透過CSS語法及 Java Script 可以寫出很多方便的小工具來應用在動畫製作上面,目前有打算往網頁的方向更進一步學習。」

除了設備與技術上的突破外,因為三位都還只是高中生,如何兼顧學業與專題進度,是這其中最嚴峻的問題,他們必須得在忙完課業後,熬夜自學,遇到學測大考時,更是只能將自學進度延至長假時推進。在學業與程式自學之間拉扯,如何維持熱情更是一大挑戰,另一個比較大的問題則是家長,在程式自學與課業的時間的分配上發生衝突

不斷的與時間賽跑,在這樣巨大的壓力下,對於未來的規劃,他們三個的想法則是有很有趣的現象,其中兩位都仍以繼續升學為主要方向,而廖煥杰則是直接考慮到了從經驗中學習技術的層面:「正在考慮是否要繼續升學,去軟體公司當 intern 或是直接接全職工作,感覺比較能學到有興趣且比較技術面的東西。

如此燃燒青春的他們,希望可以在教育資訊化上盡一份心力,未來會開發網頁讓其他學校使用。註冊過後會自動開通一隻新的聊天機器人然後將 LINE ID 提供給使用者,進一步開發管理介面讓各班導師或班長可以隨時決定要將哪一項功能權限開放給班上的哪一位同學。

【CFHSS】發起人想告訴程式自學者們:「第一次寫程式或是想學新的東西的時候 Youtube 是一個比較好的管道,因為可以看到整個實作過程,在出現問題的時候也必較容易解決。熟了之後建議開始習慣看文件,在連結其他 API 或是用在使用相依套件的時候才知道是是程式的哪一個環節寫錯。」

而從這三位高中生身上,我們可以觀察到他們具備的特質跟能力:

1.自主積極度:對於我們喜歡的事,想要突破現階段的時間限制困境,熱 情與積極度是我們的能量來源。

2.向外探索尋求資源:遇到資源或技術上的困難,主動向外界尋求幫助。

3.自學能力:學校沒教的,自己找管道來學!書本跟網路是自學的好老師。

4.多參與活動會有意外的收穫:無論是資助者或是好點子,都有可能在一場 活動中與我們邂逅。

如果自學力最大的阻礙是「時間限制」,那麼你所需要的便是熱情、毅力、學習方法。

【CFHSS】專為高中生設計的管家型聊天機器人

自學小幫手→【托特thoth學習平台】

--

--