2021年6月17日

Google App Script的客製化成績查詢系統

 你想要一個自己的成績查詢系統嗎?使用者輸入帳號密碼,就可以查到自己的成績。我做好一個客製化的成績查詢系統了。

建立副本後,你只要按五六個鍵,就可以把這個系統發布在網路上,預設是提供十欄的成績。

更新資料也很簡單,就是把成績貼進試算表就好了

你可以測試看看這個系統

https://script.google.com/macros/s/AKfycbxq11gO5EQl4HH8qLxcoR-hiXVo7VOrePFXV6CR5KoxHy3ERaNfwm2bK-UHnSL1bUe3/exec

班級填01 或 02都可以

座號01-26都可以

密碼則都是0000






每次段考為了要讓每個學生個別知道自己選擇題的讀卡結果或是他們自己的分數,我都是把資料放進moodle的作業回饋裡,讓學生登入moodle去查就可以知道。

這個流程即便我已經很熟練,但每次都要花上幾十分鐘做這個事情。

趁著這次瘋狂練習Google App Script,我乾脆用Google App Script寫了一個線上應用程式。我只要每次段考把註冊組給我的學生讀卡結果貼進Google試算表就完成了,費時只要一秒鐘吧。學生登入系統就可以查到了啊。

後來因為有朋友跟我說到他們也有這樣的需求,所以我就乾脆做一個分享版出來,反正你只要跟著我的教學影片按幾個按鈕後,剩下的就只有把成績和資料貼在試算表上。一切就是這麼簡單。

不過啊,我一個朋友試用,發現他用學校的教育帳號建立出來的會失敗,我猜想可能是他們網管有什麼設定吧。如果會失敗的話,那就用自己的Gmail帳號吧。


程式在此

教學影片

https://www.youtube.com/watch?v=V8nwvQJ25IY

2021年6月14日

雲端自動化轉換Google測驗表單系統

學生停止到校上課這件事,對我最大的改變,就是讓我一直寫程式一直寫程式,甚至讓我寫出了一個「雲端自動化轉換Google測驗表單系統」。因為哪邊都不能去,時間多了很多出來。

簡單說怎麼作!

系統在這邊,把題目電子檔上傳雲端硬碟變成Google文件後,取得該文件的共用連結,設定成所有人都能檢視之後,把連結貼到系統之後,系統就會自動轉換。

https://docs.google.com/forms/d/e/1FAIpQLSc1W7Y0TmxTHvxl6rhdQ451u1Gpri-jeaIhyOB7EbQGD6ZHTw/viewform


接下來這段是寫回憶錄用的。

***********************************************

寫這個系統的原因是這樣的,其實我本來一點都不需要Google測驗表單的,但是開始全國停課的第二天還是第三天,我常用的「合作備課」平台居然掛掉了,於是我趕快去Google classroom去備援一下,所以就開始用 Google測驗表單了。

手工作一個測驗表單實在很花時間,作好了又只有自己用一次就沒了,實在很浪費。所以我那時候就想,作好了應該要分享出來,大家建立副本就能用。

這次那時候作的幾個生物測驗表單,範圍就是動物界和生態系第一節的部份

https://drive.google.com/drive/u/1/folders/1uU9CCzZxNx0OKxaQxtzGiLGbqm9rMizU


後來想要作四選一的選擇題的時候,想到自己之前就有收自然科、社會科的題庫,當然我自己生物科的題庫也是有的,所以我就埋頭研究Google App Script,看看可不可以用它來轉換。最後當然也是轉成了。也是提供給大家使用,那時候可以大量轉出這樣的題庫,靠的就是自己寫的試算表裡的script,那個試算表我也放在下面這個資料夾中。

各科考題(不含圖片):國中生物、理化、地科、歷史、地理、公民、英語....


但那時候作的時候,還有一個問題,就是圖片沒辦法放進去,但這其實是受到Google Form API的限制,沒辦法放圖片進題目或選項,只能放在題目之間。所以後來我就改用別的方法,但這其實太多手續,就是題庫裡建置了每題對應的圖片名稱,然後我另外事先把圖片上傳雲端硬碟,程式一開始先針對那些圖片名稱,找到雲端硬碟裡的圖片的ID,然後在作試算表轉測驗表單的時候,再一一把這些圖片插入。

誰有這種功夫先把圖片名稱建立在題庫中呢?我有。好啦,這其實是之前就做的,我在做國中生物的基測會考資料庫的時候,為了讓題目可以用html呈現,就已經用了這樣的方法。

所以大量轉換出有題目的測驗表單,我就用這個資料庫了,轉出來了一個國中基測生物會考的測驗表單。要建立副本的話,就點進資料夾

資料夾
https://drive.google.com/drive/folders/1bvb2jQGNaxX78DnlQs9VnDP0-mTgv5oi?fbclid=IwAR0M-cqLwPcfUsAlTCS14tFRvG5qEnD7-hS_o3Jsd89O2IcCDQacW7hn7ks

如果未來上九年級的輔導課,就可以用這個表單連結,一次可以看到所有的概念的測驗表單
表單連結

https://docs.google.com/spreadsheets/d/e/2PACX-1vSzwa0slvd9razYl61lEYrfXfZPJZR10Onwx9qHi0DahS9KE0hPOqTpJ7Y3VUrCae1Gz0YTSvNFFaKA/pubhtml?gid=0&single=true&fbclid=IwAR2FJQZ3M2fNfpEC4V0-ZVAHmi1QMoQUFcaEkU-83BJ32P9BAm-QxanSV0k


不過作到這樣,其實還是沒有徹底解決問題,開發到那時,看到文華國小的陳東甫老師也有在開發轉換程式  https://resourceliteracy.weebly.com/

他為了解決圖片的問題,他從Google文件著手,從那裡面取得題目的元素在放進表單裡。看了他的作法,我恍然大悟,原來還可以從Google文件下手。

所以後來我就改變方向,就改從Google文件來做,而不是從試算表來做。而且這個系統是我自己也可以用的。

因為我自己有一個需求是需要把段考考卷的電子檔,轉換成題庫格式,把每題的題幹、選項、標準答案都分割好。變成題庫格式之後,我可以方便再轉換成線上測驗或是其他測驗。

再經過幾次修改之後,我覺得我的系統程式已經算八九成完成了。只要題目長得像這樣,我就可以把整張考卷同時轉出題庫的試算表和測驗表單。(題幹和選項要連在一起)


( ) 題幹題幹題幹題幹題幹 (A)選項A (B)選項B (C)選項C (D)選項D
答案: A
解析:巴拉巴拉巴拉巴拉巴拉


題目有圖片或題幹有圖片的也會轉換
題目下寫答案或寫解答的會自動變成測驗的標準答案
題目下寫解析或詳解的會轉進去變成測驗答錯的回饋



但目前的限制是這樣啦,我也沒打算繼續改版了

*只處理四選一的選擇題
*只能處理選項為ABCD的
*題組題因為標準答案的位置問題,轉出來通常會出錯,轉出後務必仔細自行檢查
*目前尚無法轉換國小考卷,因選項為特殊字元,且選項非ABCD。
*考卷電子檔中的詳解或解析中不可有圖片


系統特色是這樣:
*可批次處理多個檔案。可貼雲端資料夾資料夾連結,或單一Google文件的連結
*可將題目中圖片一起匯出到Google測驗表單
*如題目中有詳解,可自動加入表單,變成學生回答後的回饋
*提交表單後,系統會就會自動掃描連結,開始執行轉換表單
*可同時產生測驗表單與題庫試算表


轉換出的結果都會在這個資料夾
https://drive.google.com/drive/folders/1xVfRHCdIlU-LycmPb4kRb55qVCNi1hh_?usp=sharing

國中小的各科教科書版圖

曾經聽過有人說某些版本教科書在不同縣市會有不同的青睞度,但究竟是怎樣?我也好奇各家出版社的市佔率究竟是如何?

因為疫情所以健身房關閉,我呢就動不動就在寫程式,正好看到康軒有一個網頁可以查詢各校選用的教科書版本,於是我一時興起,就寫一個python爬蟲把資料爬下來。總計爬到的學校數量,國中小合計有3643所,然後我再做一下資料清洗,把每校每年級各領域選用的教科書整理成tidy data,共計114653筆。

然後就可以開始來解決我好奇的問題了,教科書版本的各縣市市佔率是如何呢?

我用縣市為單位區分,就像分析選舉投票率一樣,畫圖當然不可能直接用學校數來畫,因為各縣市的學校數就不同啊。所以我就改用比例來計算,票數用的是年級數,而不是學校數,比如說某個版本、某個領域,在一個學校裡有兩個年級選用,那就算拿到兩票,以此類推。

結果出爐,果然有些版本在某些縣市的市佔率真的很高。

對原始資料有興趣的,可以在這個github上搜一下https://github.com/ChihHsiangChien/textbookMarketShare/tree/main/%E5%88%86%E6%9E%90%E7%B5%90%E6%9E%9C


本來蒐集完資料後,是用qgis去畫圖,不過手工設定太麻煩了,後來我就改用python的 geopandas來畫圖了,這樣就快多了。

提醒一下這些圖都是 109學年度下學期的資料,也就是快要過期的資料了。


















哆啦A夢裡的遺傳學

在臉書就是會莫名其妙看到這些東西。如果拿這個圖來上遺傳學,不知道會不會傷害大雄一家?

 

線上捉放法的模擬

沒辦法實體進行捉放法活動,還好線上還有可以模擬的

前幾天從學妹臉書上看到這兩個線上的模擬網站,剛好我們現在就有這個需求,所以就立刻可以拿來用。

抓田鼠的(一開始還以為是滿滿的牛)

http://virtualbiologylab.org/NetWebHTML_FilesJan2016/MarkRecaptureModel.html?fbclid=IwAR39_pStLREk2SGK3Hh-M_pktpVSLnjl21f_u_NLOiy0i3zhEpUmFSSaRn4

抓池塘的蝌蚪(看了說明文件才知道是蝌蚪,之前一直以為是小蟲)

http://virtualbiologylab.org/NetWebHTML_FilesJan2016/PopulationEstimationModel.html?fbclid=IwAR0f3AcCcpkV8VAAGQiWRSlAYBtK4Z8q9mGPmVB0c4fx2cbH2wfgHOCxWzw


抓池塘蝌蚪的那個,跟我們要教的情境是一樣的,所以也比較適合國中生,抓牛的那個,可以設定的情境更多,我覺得進階一點的學生是可以玩玩的。



我寫了一個簡單的指引,在這個Google文件裡
https://docs.google.com/document/d/1cL-jjYMdtCwgSTo2sURFVkS_lFS0r4XnysOjA8KAvos/edit?usp=sharing

  1. 進入網站後,用原本的設定值,按下SetupGo,開始模擬

  2. 每次取樣就按右下角的DipNet開始捕捉小蟲進採集箱

  3. 按一次Mark就會標記一隻採集箱裡的小蟲

  4. 標記完之後,按下Release就會把小蟲釋放回池塘

  5. 請進行四次採樣,將你的採樣結果紀錄於下表


還有一個影片教學生怎麼線上作這個活動




將一般題庫轉換成Blooket題庫的作法

停課不停學,寫程式的能力一直增加中。

拜網路社群所賜,原來有一個媲美Kahoot的線上測驗網站 blooket

https://www.blooket.com/

除了像kahoot那種的遊戲界面外還有很多很好玩的遊戲界面。

這裡有一篇文章介紹裡面的遊戲類型

https://medium.com/joyce-of-learning/blooket-45e6fb0b0662?source=linkShare-a957fa36614-1623167672&fbclid=IwAR25WVlP-IBF9Gxgu2smttI3HOOa2ySO2tbbnBgEuNzm_H1UCGPjeOtwzxE&_branch_match_id=890421764436133632


我在這段「停止到校上課」的期間帶學生玩過一兩場,我猜想學生在電腦那端,也許是很興奮的,可惜玩的時候,學生那端都關上麥克風,所以我也不知道實際上進行的效果如何。應該可以有很多尖叫和嘻笑聲吧(唉,真是想念那段群聚的時候)

好啦,不懷念了。這個Blooket有一個匯入題目的功能,但它是接收的Quizlet的匯出格式,如果我想要自己弄題庫匯進去,是要怎麼樣弄呢?

嘗試丟了一些格式進去,最後總算弄懂的。

先說第一種

由於Quizlet是那種單字卡的遊戲,所以題目和答案就是一對一的關係,因此生物科裡適合出的題目,就是下圖那樣也是一對一關係的構造對功能的題目。在試算表做好之後,把文字複製貼進去blooket就行了。




它就會自動生成題目和選項。預設值是這樣,請對照上圖來看,B欄都是題目,所以上面的資料就是生成六題,而第一題的四個選項中,正確答案他會自動抓取同一列的(細胞核就抓細胞的中樞),另外三個錯誤答案,他會從A欄隨機抓取。




但有一類題目是這樣的,不是一對一的組合,那樣怎麼出?以動物分類為例,如果用預設值匯入題目,你就要這樣出題(題目放B欄,選項放A欄)。它會出四題,第一題的題目是水母,而選項只會有「刺絲胞動物和扁形動物」



如果你的表格一開始放反,或是匯入時選了「Flip questions and answers」
它就會變成這樣

第一題問刺絲胞動物,而四個選項有水母、海葵、珊瑚、渦蟲。而正確答案卻只有水母。這樣就錯啦,明明水母、海葵、珊瑚都是刺絲胞動物啊。




除了上述的方法外,我們還會有一種需求是把現成的選擇題放到Blooket的需求啊,怎麼作呢?好的,因為我也有這樣的需求,所以我就寫了Script來做了喔

底下這個檔案開啟後,建立副本開啟[工具/指令碼編輯器],按下[執行]以及允許一堆權限。就可以把csv那活頁的題目轉換成第二活頁blooket的題目。

https://docs.google.com/spreadsheets/d/1ML5CGo2aBduSdZwi2AEcQDxLXJA4KTrsO02oatGBPMY/edit?fbclid=IwAR00JcpXwAxONUfjXkC3Fql0G3H3zFhK2GGleYMuMYRc6TMHirzEaEzWnw8


你要匯入的題目格式就長這樣,標準答案可以給ABCD,也可以給1234。只給ABCD的話,我程式會自動轉換成1234



轉出來的格式長這樣,但是你不可以一次複製全部去匯入,一定會大亂。你要【一題一題分開複製貼上】(出10題,就是貼10次)。

你如果一次貼上的話,災難是這樣發生的,以第一題來說,題目是問「燙的感覺下列何者產生」,那麼正確答案沒問題一定是「大腦」,但是另外三個選項可能會用到其他題的選項,產生完全不相干的選項。




如果你對這個試算表的使用有興趣,我朋友彥文寫了一篇文章介紹怎麼使用

https://yenwen-sci.blogspot.com/2021/06/blooket.html?fbclid=IwAR22MOixZmxFDmmLLEJMktMiMRTjsNvxRoIJcIPF8C_WY_JmqYDC0yplMs8

「端午連假,台灣人有出遠門嗎?」用高公局的交通資料庫找證據

這個端午節連假前,大家都很緊張,趕忙呼籲大家千萬不要返鄉。好不容易看到雙鐵的退票潮湧現,但是就在連假前一天晚上出現了這樣的一張圖,國道居然出現車潮?

有出遠門嗎?00 
於是開始有人痛罵「你怎麼可以這麼返鄉啊!」,但是也有人解釋這是正常下班時間的車潮,再加上閘道管制所造成的現象。

過沒多久,有人從「交通數據匯流平臺」上抓取資料說「在20公里以下的通勤佔70%。超過100公里的長程旅次不到5%(補充一下大約2%)」
      ptt 

看到 ptt上網友的圖片之後,我的想法是這樣,只有這樣的圖,能不能解釋沒有返鄉車潮?

我認為這樣是不夠的,我們需要「對照組」,看看這天和其他幾天有什麼不一樣?

一開始我想從ptt網友那提到的交通部數據匯流平臺中找資料,但是發現公開資料有點少,還看不到歷史資料。但後來繼續找,看到了交通部有另外一個交通資料庫可以用,裡面有一個M07A「各類車種旅次平均長度」可以拿來作分析。不過寫文章的當下發現,用M06A各旅次路徑原始資料,看起來還可以探索更多有趣的事情。

接下來就看這幾張圖提供了什麼資訊。

首先我要問的是,2021的端午連假前一天和第一天合計,到底台灣人有沒有開車出遠門?
我的對照組有三個
1.仍是三級警戒期間的前一個週末的週五和週六(6/4-6/5),代表非連假的週末行為
2.三級警戒前的春假連假的前一天和第一天(4/1-4/2)
3去年的端午連假(2020 6/24-6/25)



有出遠門嗎?01 

去年的端午連假和今年的春假連假,大家的行為差不多,兩條線幾乎重疊在一起,長假就會出遠門。而這次的端午連假呢?與兩次連假相比,的確表現出減少長程移動的行為。紅線在行車距離40公里以上的車輛數量是四次當中最少的,甚至低於前一週非連假的週末。

但短程運輸卻比起另外三組要多?這引起了我第二個問題。誰在作短程移動?

在資料庫中還有一欄是車種,所以我將資料切開成不同車種來討論。結果發現各類車的短程運輸都增加了。
  有出遠門嗎?02

接下來,我想再問的是,這樣的增加情況是什麼時候開始的?跟疫情有關係吧?
我再去抓取過去30天的資料,看看過去這一個月的變化是怎樣,而這次我只計算高速公路上移動距離<50公里的資料。

幾個發現:
幾乎都有以星期為單位的週期,到了週末,車輛就會變少。
大貨車和其他車輛的變化相位剛好相反,週末反而增加。
小客車、小貨車、大貨車和聯結車最近一週的短程用路大增。
大客車的短程用路在5/17突然變多了。


有出遠門嗎?03


最後回到一開始的問題,到底有沒有出遠門呢?我目前只能說,我的資料無法支持「有出遠門」這樣的主張。主要是我處理的資料庫中沒有提供起訖點,當然也不知道南北向。所以目前我只能說我不支持這樣的主張,但是並不代表我反駁這樣的主張喔。

晚一點有空我再來處理另外一個資料庫,看看能不能找到其他證據。