三年生|程式語言學習計畫 | 張元儒

全人書院Python工作坊

photo by 程式工作坊夥伴-黑景昱

【我的自主學習計畫摘要】

程式工作坊由書院的院生們與我共同組成,進行全人書院尚未開設過的python程式語言的工作坊。因考量學生的學期間活動,因此安排程式工作坊在每個月的一個周六上午,避免與其他活動有時間上的衝突。這活動的宗旨在於達成大學生在假日清晨用一杯咖啡、一臺筆電,搭起與未來世界接軌的橋樑。此獨樹一職的訓練,強調學習者能廣泛運用各種工具,有效地與他人及環境互動。

一、計畫目的

學校老師認為,每個學生擁有不同的優勢,但都需要學寫程式,主要因為程式教育有助於啟發孩子的邏輯運算、創造力和自學能力。其實這不是為了要每個人都去當程式工程師,而是要了解科技是如何運作的,科技是如何廣泛地融入社會中,學習程式將像學習英語一樣,成為現代人的必修。不過很可惜的是,以我的國高中電腦課的經驗來說沒有學過程式,反而是學弟妹們學得比我多。為了彌補這些落差,趁早補救自己的程式能力,沒有學校老師教,我就來自學,於是形成了此年度的新計畫。藉由舉辦工作坊的形式,向大家分享生活中好玩的程式。而教學內容來自於我過去的所學,並盡量選擇同學可能會感興趣的內容當作主題。這一方面可以評量自己過往自學的成效,也可以讓大學生有更多機會接觸程式。

二、活動成員

(1)工作坊舉辦人

物理系 張元儒

(2)工作坊參與者

第一梯次: 黑景昱、盧奕廷、張家寧、陳奕涵、吳晨皓

第二梯次: 張震興、鄧宇敦、張家寧、陳承毅、李家維、許睿哲

三、計畫執行過程

每次工作坊的流程大約如下:各參加者分享今天來工作坊的目的與期望、使用PPT講解程式語言上課內容、搭配Jupyter notebook 實際編寫程式碼、個別指導時間、延伸問題、結束大合照。

講解此程式的特點 (photo by 程式工作坊夥伴-黑景昱)
第二梯次-離開前的大合影 (photo by 鄧宇敦)

(1)第一梯次- Python 程式語言入門初體驗

我在這梯次安排Python的介紹與說明,先讓各位認識什麼是python程式語言,以及它的優缺點、與其他程式不同之處。此外希望參加者能於會後能繼續有效學習程式,所以介紹學習資源有哪些。接著進入本次課堂內容(print、運算子、資料型態、變數、random、flow control),並帶領大家設計生日倒數計算機,這也可以延伸成其他款的倒數計時器。

python程式語言的學習資源 (created by 張元儒)
生日倒數計算機邏輯圖 (created by 張元儒)
生日倒數計算機邏輯圖 (created by 張元儒)

(2)第二梯次- 教你如何快速下載圖片以及製作個人化語音檔

這次跳脫程式的基本語法,挑戰可以應用於日常生活的兩個功能-模組。模組是工程師已經寫好的一套具有系統性、結構性的程式碼,我們只要按照模組裡的規定輸入條件,就可以輸出我們想要的結果。我選得一個是google image download模組,用來快速下載google搜尋的多張圖片,省去滑鼠按鍵的麻煩。第二個gTTS模組,可以將文字轉換成語音檔,並且以MP4檔下載。(就像狂新聞的配音)

google image download程式碼範例 (photo by 鄧宇敦)
個別指導時間 (photo by 鄧宇敦)

(3)線上非同步教學- 搭配Python測量聲速

為了配合防疫措施,我將原定的工作坊取消,改以製作教學影片來完成這學年的自主學習。原本想交給大家類似於excel的Python函氏庫-Pandas,但考慮到教學的意義性,我決定使用Python的計算功能套用在實驗結果的展示。以下是我上傳至YouTube的教學影片:

簡單來說,這是一個需要兩台手機的物理實驗,目的是測量出聲音的速度。而我將手機收集得到的數據放入至程式碼裡,讓聲速結果自動產生。

四、創辦活動的心得

(1)受前輩啟發

其實學習程式語言需要完整的課程規畫與堅定的決心。我在大三的時侯,參加過書院學姊舉辦的scratch工作坊,因為學校有一門資訊通識課當中需要使用scratch完成期末報告,所以我希望學姊的工作坊能讓我的工作效率變好。由此經驗我也了解到程式工作坊要如何舉辦以及形式為何。不管是哪一種程式語言都好,學員第一堂來上課時務必要了解現在我們要學的知識(或者說是工具)具有何種優勢與潛能,以及對於初學者來說,訂下學習目標,例如:我想藉由python來完成什麼東西,可以是天馬行空的想法,因為等你有了足夠的能力,就可以將過去自己想要解決的問題做成專題計畫來完成。

(2)工作坊的困難

  1. 師資人手不足

在兩次的工作坊裡面,當我講到一個段落就會停下來等待同學們是否可以跟上進度,我也會下去巡視同學們當前的狀況。可是我只有一個人手要面對五六個的學員,會遇到來不及解決處理的時候。不過更高興的事是同學們會互相指點與幫忙,這讓我放心不少,要是沒有他們的主動幫忙,我肯定會延遲工作坊的進度。

2. 學員電腦系統不一致

電腦的系統不一致,程式語言的輸入指定格式也會不一樣,而我在籌備的時候卻沒有將這一點放入考量。所以當學員出現問題時,我也是一樣第一次遇到這樣子的錯誤指令。我告訴學員要自己學會如何去除錯誤,這是學習程式語言的必要本領。幸好大家都知道如何上網尋求幫助,有同學找到如何解決問題的方法,救助了另外一位的同學,這真是大大減少我的上課壓力。

Python工作坊同儕學習情形 (photo by 鄧宇敦)

(3)準備前的擔憂

給想嘗試開設工作坊(各種主題)的同學們一點建議:其實開設工作坊也要考慮到如何抓住學員的心,要挑選哪個主題才會有可能吸引到大多數的人前往工作坊,畢竟還是有少數人會害怕或是對程式沒有興趣。所以我在決定何種主題前,會先傳送google表單詢問參與者們對於程式的學習有什麼樣的想法,還有你想在這門課學到什麼。而我從結束後的回饋表單也得知原來我之前的擔心好像是不必要的,大家對於我挑選的上課主題皆感到興趣,或是說新奇。

以下是11/23第二梯次- 教你如何快速下載圖片以及製作個人化語音檔的成員回饋(最高為10分):

google表單回饋問卷 (created by 張元儒)

張元儒 | 三年生 | 物理109

我是張元儒,總是喜歡不按牌理出牌。在去年的這個時間,懷抱著學習程式語言的夢想。害怕自己被惰性影響到學習的進展,我挑選程式自學網Codecademy的一門課程作為自主學習計畫。今年延續學習程式的理念,將自我學習擴展成與他人分享,以工作坊的形式向同學們一同學習、一同邁進。

--

--

張元儒 | 三年生 | 物理109
108 全人書院 成果發表
0 Followers

我是張元儒,總是喜歡不按牌理出牌。在去年的這個時間,懷抱著學習程式語言的夢想。害怕自己被惰性影響到學習的進展,我挑選程式自學網Codecademy的一門課程作為自主學習計畫。今年延續學習程式的理念,將自我學習擴展成與他人分享,以工作坊的形式向同學們一同學習、一同邁進。