2011 在台北,Google 軟體工程實習生紀錄

computer

機會命運請選擇

認真說起來對當時的我來說,去軟體公司實習這件事其實並不在我的規劃之中。然而,那時我正好想要多嘗試一些新事物,找到一些讓自己成長改變的機會,無意間看到了系上 Google 實習招募的訊息,就臨時起意申請。從一開始的線上答題,後來的投履歷,最後的面試,一關一關前進,這過程真的只能以極其幸運來形容。

面試對我而言實在不是很熟悉的項目,僅有的經驗大概是在華碩 CEO 不是很順利的面試,還有加入 AIESEC 時的小小成就吧。跟傳說中的一樣,Google 的面試會考些技術上和演算法上的問題,說起來有的還真有點難回答。真的沒有想到最後可以錄取,而且當時我也沒有去申請其他公司的實習,若是沒有上的話想必我會過著一個全然不同的暑假。

註:如果對如何準備有興趣,可參考我後來寫的〈從台灣申請北美軟體工程實習 – 準備篇〉

Google

Google 真的是個非常自由也非常特別的地方,沒有特別規定的上下班時間,有的人早早就來,早早就走,但也有人下午才來上班。旁邊的角落擺滿零食,中午也有水果,讓我忍不住也吃了不少。每個人的座位好像都有不同風格的擺設。在這裡實習,待遇實在是相當的好,忍不住擔心以後不好好努力的話,搞不好出了社會一不小心會到不了這個標準呢。

記得剛開始時,要去熟悉許多工具與流程,然後再研究一些系統架構,參考了好多文件和前人的成果才順利完成主要的工作。印象最深的事是,就算動用許多資源,想編譯一個龐大系統還是得花上不少時間,無怪乎 Google 會想設計像 Go 這種編譯較快的語言了。另外就是,當修改的東西寫錯可能會導致整個團隊暫時無法順利工作時,真的會讓人誠惶誠恐。

像 Google 這樣規模的跨國公司,都會有自己特別的系統與工具,但除了開發以外,其他像是 Gmail、Docs 等網路服務,也是員工們不可或缺的工具。就像大家說的一樣,「Eating your own dog food」。

這次的實習生幾乎都是台大的,讓人有點寂寞的感覺。不過想想也是當然,如果你在外地的話或許來台北實習的意願與能力就少了許多。雖然平時和大家一起去吃午飯,不過感覺打不太進圈子裡,只覺得聽了大家的故事真的感受到自己還有好多需要努力的地方。

記得那時和前輩們聊了好多對未來的徬徨,甚至有次有個特別的機會,可以和傳說中的簡立峰前輩單獨 meeting,請教經驗。聽了不少產業和學術界的故事,也聊了不少人生的想法。現在想來還是有點驚訝我怎麼會有勇氣談論這些話題呢?

Take Your Child to Work Day

有天在 Google 有個帶家裡小朋友來公司的活動,實習生們也幫忙籌辦了闖關遊戲和沙畫等等的遊戲。記得那時發生了好多趣事,記下幾項以供紀念。

撞球遊戲

我:去集合囉!!那邊有好玩的氣球喔!

女孩:不要!!我還要玩!!快點快點!!

(女孩正把落入球袋的撞球一一撿起然後滾過來, 我正在把撞球一一丟入球袋)

我沒有要玩啊

(超大型 Nexus One 手機)

孩子正在上面玩著 Angry Birds,我們在後面看著。

父:好了好了,別玩囉,先讓大哥哥們玩吧!!

(我們沒有要玩阿 囧)

姊姊

目睹姊姊一直欺負弟弟(不給他玩玩具)

某實習生:我小時候就是這樣被姊姊欺負的 QAQ!!!!!!!!!!!!!

台北

在台北 101 裡頭工作,我常喜歡走到窗前,從高樓往下俯瞰,車子都變成小小的方塊。在這裡的記憶有些現在還很清晰。每天早上走進來時總有人在散發傳單、或許因為看起來不像上班族所以曾經被保全攔下來、還有昂貴的地下室餐廳。真的,對於吃慣學校便宜自助餐的我有些難以接受,後來慢慢喜歡去旁邊的行政中心餐廳,但有時也跟著大家一起買飯。

為了實習,臨時要在台北找個兩月短租。感覺真的不太容易,而且當初也不知道要找誰幫忙,結果只好在網站上搜尋,自己一個人上台北看房子。不過或許因為台北實習的需求多吧,最後我還是找到了落腳之處,地點在南港展覽館的捷運站附近。因為是第一次租屋,時間又倉促,所以有些事情沒有考慮周詳,所以老實說當時的住處實在不能說挺好。

題外話,因為要搬到南港所以取消了暑期宿舍的申請,把一部分東西搬到八舍的地下室存放。不得不說地下室真的不是個挺好的放置所,有些東西在這期間就這樣發霉了。雖然說再讓我選擇一次或許會覺得每天從新竹通勤也許比較好,不過我還記得當時心中的想法:「北上租屋本身,也是一件可能讓我改變成長的機會。」

南港

剛搬過來時,真的好多事情要適應。不知道要去哪邊吃飯,不知道要去哪買東西。手上常拿著自己畫的小地圖以免迷路,每天也花上不少的時間探索環境。但時間一久,我喜歡最佳化的習慣就慢慢展現了出來。每天早晨出門,一邊搭著捷運前往台北 101,一邊預習《Theory of Computation》,下了捷運,邊走著邊聽著空英 MP3。到了公司一邊吃早餐一邊開始規劃今日的工作。用電腦太累時就吃點東西看看外面,然後讀一下參考書籍,中午和大家一起吃飯、小睡午覺,繼續工作。下班後再走回捷運站,繼續看書。回到南港,晚餐在哪裡吃也慢慢有了模式,然後晚上根據安排,複習一下計組等等,慢慢變得規律。我總是喜歡在生活中建立模式,然後不斷研究如何把所有的時間都填滿。在交大是這樣,來了台北也是這樣。

每天早上從住處到公司的那段路程,真的走了好多遍,慢慢熟悉待在台北的感覺。大學四年來到台北的次數幾乎數不清了,總覺得我在台北走過的地方說不定比新竹還多。

因為太常到某家店去吃晚餐了,老闆娘也認出了我的臉來,常常有一搭沒一搭的聊著,甚至還推薦過我牙醫去哪看呢。是啊,住的地方不知為何有許多牙醫,常常走過也讓我開始想處理蛀牙,也在這段時間裡拔了幾顆智齒。回想起來拔牙齒的那幾天晚上,剛好看到同學狀態上說她一次拔了好多智齒,那好像是我們第一次在網路上聊天呢。後來養成了三餐刷牙的習慣,也萌生矯正的念頭,最後決定用薪水為自己的健康投資。對於現在的我來說,回想起當年明知有蛀牙還很久不去看牙醫的行為已經是不可思議的事情了。

感覺如果不是來台北實習,好像也不會做了這樣的決定。可因為這樣的決定,後來又牽引了好多故事。人生的絲絲線線總是這樣糾纏在一起,會走往哪個方向也有許多運氣的成份。

歸途

Google 真的是很令人安心溫暖的地方,大家都很友善,給了我不少照顧,工程師的生活也很令人熟悉。和一群優秀的前輩在一起工作,讓我看見自己很多不足的地方,也希望以後能夠成長改進。雖然沒有特別的上下班時間,但是隱隱的還是有股自我要求的壓力,每天寫了好久的程式真的滿累的。

兩個月多的實習,最後還是結束了。雖然有機會可以在學期開始後兼職實習,不過覺得太遠就作罷了,如果當初作了不同的選擇,不知道現在又會是什麼樣子呢?記得剛搬去台北時,每天都在寫組合語言的期末作業,但我對要搬離台北的那幾天,卻沒有什麼記憶,那時的我是怎麼樣的心情呢?還能想起許多在 Google實習的片段:每天早上到 Google 時常會看見另外一個實習生認真的坐在電腦前寫程式、中午吃飯時大家的臉龐、一起開會的畫面,還有那時好多的心情。

余憶童稚時

smile

小時候發生了很多羞恥的事,現在想起來彷彿一場夢般。

出不去

有次上電子電路學的時候,我到教室前面拿考卷,因為有許多用來擺放考卷的椅子阻路,加上人山人海的踴躍領卷,一時之間難以回座。我忍不住低聲抱怨:

「我出不去了…」 T^T

或許是太大聲了,好像被同學聽到,隔壁傳來陣陣的笑聲。

我倍感羞恥的迅速躲回座位(天音:剛剛不是說出不去了嗎囧)。

我是小小羊,小小的小羊

據說小羊是室友的妹妹在紐西蘭買的玩偶,最喜歡的人是帥哥羊。因為主人長大後比較少與她遊玩,所以室友就把小羊帶來寢室每天跟她玩。

有天室友們好像去參加什麼都沒回來,只剩我和小羊在寢室。在我睡覺的時候,小羊因為太無聊了就自己翻開書本看書。後來室友回來以後不知為何覺得小羊很可愛,還幫她拍照呢。

似乎是在這件事以後,我愈來愈常和小羊玩,小羊待在我桌上的時間也愈來愈長。雖然另外一個室友對此事不敢苟同,不過似乎是我們玩得太起勁了,所以他也忍不住開始跟小羊玩。

記得有次小羊說想去上課,所以我們就把小羊帶著,在上電腦安全時把她放在旁邊的座位上。不過因為實在是太羞恥了,所以後來小羊就比較少出門。

某天我生日的時候,室友突然說要把小羊當禮物送我,於是小羊就開始一段新的旅程。

靦腆

有次拍照的時候,我指著照片中的我說道:「我看起來好靦腆喔。」

友人:「啊你就靦腆啊,還不承認?」

另外一位友人對我說道:「什麼!?你剛剛說我們在照片裡很靦腆嗎!?可是你看起來不是更靦腆?」

真的不知為何照起相來總是很靦腆QAQ

學妹

記得有次去參加系上的相見歡活動,過沒多久就找不到直屬學妹。於是我四處顧盼,遠遠看到某個很像學妹的人坐在樓梯上。我慢慢走近,或許是視力太差,所以一直走到她面前才發現自己認錯了,似乎是別家的學妹。

不過都已經走了那麼近,早就被發現了,我只好尷尬的打招呼:「妳是哪一組的啊?」

說完這話後過沒多久我就逃走了。

後來,在場上遇到 Ken 和 Shopping,經過他倆介紹才知道原來她其實根本就是同屆的同學啊!!因為太羞恥了,所以後來我遇到這位同學時幾乎都不敢跟她說話。

搞笑

某天,在報告的時候,可能因為太好笑了,所以自己笑到沒辦法報告,停了一陣子。

寫卡片

要回寢室時,被一大堆熱情的人們宣傳,碰巧看到攤位上有認識的朋友就跑去打招呼。

被說服開始寫了卡片,一邊寫還一邊用手遮一下。顧攤位的人就幫我拿了立牌擋著。後來寫到一半另一個人把他拿走了。

「他會害羞!」

牌子又被拿了回來。

小碎步

要回寢室時,或許因為見到朋友太開心了所以一手拿著茶,一邊跳著走小碎步。臉上說不定還掛著奇怪的笑。

突然發現前方的大叔一邊笑著一邊往我這裡一直看。

意識到得收斂一下就趕緊跑回去。

感動與成長 - 第八屆文藻英語辯論培訓坊心得

8th-debate

This is a biased summary of the ten days in the 8th Wenzao English debate workshop.

正因為去年參加文藻辯論坊時的喜悅依然清晰,所以當我聽到「第八屆文藻英語辯論培訓坊」的消息之後,馬上就有了想參加的念頭。雖然有一些讓我躊躇不前的理由:像是寒假第一周剛考完期末考就得馬上南下的困擾;這次好友都沒有參加,一個人的恐懼;以及主辦單位遇到的突發困難。可是這些都比不過對英辯的支持與期待,最後最後,我還是下定決心啟程!

場地還是在高雄的文藻外語大學,但這次長達十天。或許由於曾參加過上屆的盛事,在前六天的分班中,我被分到以練習為主體的進階班級裡,不斷進行不同形式的團體討論、上台辯論以及事後檢討。最後四天,所有學員一起連續比 8 場積分排名賽,爭取進入前 8 強,再開始單淘汰賽。而在第三天組好隊後,也在比賽之前進行了兩次練習賽,讓我們培養默契與練習技巧。

這十天有著好多好多的體會、好多好多的感動,自己也在很多方面都有所成長。能有此機會參與此一盛事真的十分開心。

亞洲議會

這次英語辯論的形式是 Asian Parliamentary (AP) format,分成兩個隊伍互相辯論,有站在正方支持 motion 的 government side,以及反對 motion 的 opposition side,每隊三人。其中正方三人依序為:

  1. Prime Minister (PM) - 設定整場辯論的架構,定義 motion,並開始正方的論述。
  2. Deputy Prime Minister (DPM) - 反擊對方的論點並重建己方的論點,並繼續剩下的論述。
  3. Government Whip (GW) - 整理整場辯論的重要議題並根據議題反擊對方的論點,及整理己方的立場。

反方三人依序為:

  1. Leader of the Opposition (LO) - 反擊正方的論點並提出自己的立場與論述。
  2. Deputy Leader of the Opposition (DLO) - 反擊對方的論點並支持重建己方的論點,並繼續剩下的論述。
  3. Opposition Whip (OW) - 整理整場辯論的重要議題並根據議題反擊對方的論點,及整理己方的立場。

每人時間為 7 分鐘。除此之外,在辯論尾聲時,雙方的前兩位辯者之一會上台進行 4 分鐘的 reply speech,總結整場辯論並分析為何評審該支持己方。

每次辯論開始時,會有三個 motions,雙方各自決定喜好順序後,再決定辯論的主題,從三個 motions 公佈到辯論開始共有 30 分鐘的準備時間。詳細介紹可參考:〈Asian Parliamentary Debate〉

開始的故事

這次的講師是 Ray Yen 和 Syed Saddiq,據同學所說都是相當帥氣的講師。第一天早上先由 Saddiq 向全體學員講解基本規則及每個角色的責任,下午再一起到學生餐廳吃飯,有廚師們特別為我們準備的自助餐,可以吃的飽飽!下午就開始分班教學了,我們由 Ray 帶領,先從自我介紹開始,並順便提出一件自己特別在意的議題。一開始沒有想太多,到後來才知道每個人要以此為主題來練習說服別人接受自己的立場。

我們這個班的學員多半是曾參與過英辯坊或者英辯社等活動的學生,算是較有經驗,所以 Ray 也向我們招募是否有人要自願參與明天的示範辯論賽選手。就在我猶豫不決時,報名很快就額滿了,大家真的好積極。

真的要說好可惜這次的示範賽不是由講者進行,猶記得去年的示範賽是那麼精彩,以至於開始辯論時大家都會模仿講者使用的句型。但在有次練習時有人使用了去年的句子(We proudly propose this motion!)以後,我的回憶都被勾回來了,所以我也開心的使用起這些罐頭句。

第二天下午繼續分班教學。這時我們主要是分成兩大組,進行 case building,提出 Definition, Context, Stance, 3 Arguments。Ray 總是喜歡一些挑戰人既定價值的題目,像是「This house would legalize bestiality.」、「This house would legalize necrophilia.」等等,真的超級難去支持。

常常 Ray 會批評,我們的論點只是一句陳述而沒有論證理由。他總是要我們不斷的問自己 Why? Why? Why? 而不要有任何假設與成見,我們花了許多時間努力修正卻一直都還有進步空間。

漸上軌道

在 Cindy (雖然同名不過她不是我去年的隊友)的幫忙之下,我終於找好了比賽的兩個隊友(真的感謝妳!在一群大家互相認識的班中,真的好像動作太慢就找不到人了),分別是 Sophie 和 Sophia,不過其實只知道是台大和成大的同學們,因為不同班,所以一開始見面的機會不多。我們很快用三人的英文名字決定了隊名「Triple S」,真的很有效率。

第三天的分班教學,以 4 大組的方式開始互辯,每次 2 組,另外 2 組跟班學習,由於時間關係,只進行上半部兩位辯者,只是我們對 motion 的定義似乎都不夠明確,於是下午 Ray 要我們分成兩人一組,專注在 Prime Minister 的架構設定。

我和 Cindy 一起準備「This house would screen fast food commercials.」,我們實在難以想像為何有此 policy 的必要,但還是得硬想出一些理由,最後至少架構上評價不錯。

慢慢了解筆記要事先寫下要講的重點與每個論點的細節,否則腦袋突然一片空白就很難繼續了。另外也注意到在準備時就使用計時器是很重要的事,而在上台時使用計時器也對時間控制有很大幫助。最後就是,人數少討論起來真的比較有效率,之前分成兩個大組幾乎都把時間花在跟隊友互相辯論。慢慢也覺得好像開始找回之前辯論的感覺,不過還要繼續加油。

這次的功課是以同樣主題再準備一次 PM speech,但要有 3 分鐘以上長度的論點,以 Assertion、Reasoning、Examples 架構來建構論點。下課後我很用心的想好論點,但隔天才知道要改成站在 Opposition 的立場重新建構(然後我開始發現 Ray 真的很喜歡做一些出人意料的安排),沒能講出自己精心設計的論點實在讓我有點小失望。

練習賽開打

第四天下午我們要在觀看 debate 的過程中不斷進行 POI 練習,這次主題跟死刑存廢有關,Ray 先問過我們的立場,讓我們站在立場相符的一方,然後在比賽開始前再突然的調換我們支持的立場(這已經不令人意外了)。這時的我不知為何總無法專心聽論點,也因此提不出多少問題。

緊接著就是第一場練習賽,終於和 Sophie 和 Sophia 聚在一起討論,我先擔任 PM 和 Reply Speaker,然後互相輪流再決定大家喜歡當哪個位置。這次公佈的 3 個 motions,真的都超級奇怪,總覺得一定又是 Ray 在背後的決定。我們兩隊最後選中的是「This house would televise execution of death penalty.」。身為 PM 的我忍不住將題目定義成只有在特定地點並事先申請才能觀看,我原本以為這樣其實還算公平,但評審認為跟 motion 精神不合,雖然如此卻還是勉強得勝。

事後 Ray 又重新提到挑戰價值觀的 motion 時,說到我們應該不要只為了避免對方提出某些論點而進行奇怪的設定,也不要只為了定義而定義沒有意義的東西,而是將一些可能會混淆辯論重點的例外情形給去除。有了這次經驗,對定義 motion 又有更多了解,總之就是要義無反顧的跟隨其精神啊!

雖然一開始大家都難以講完 7 分,但幸好夥伴們都帶著正向的心情,檢討之於也不要忘了 debate 的有趣與開心。

第五天早上回到自己的班繼續課程,下午三人一組進行 set up the debate and the label of argument, reasoning, examples 三大練習。很開心的能跟 Michael 和 Annie 一組。我們題目是「This house would allow homosexuals to opt out for nation military service.」。雖然感覺討論起來還是有些混亂 ,但評價其實相當不錯。是有一些小地方可以改善,像是我負責的是 reasoning,被說應該要 signpost 指出 analysis 的 levels 分別有哪些。但重要的是,我們終於有達成完整的論述架構了!

第六天早上進行了第二次的練習賽,我們的 motion 是「This house would allow teachers to administer corporal punishment.」,站在反方立場。這次終於是經典題目,大概評審也發現之前的題目太過誘惑正方去扭曲定義了吧。這次雖然一直覺得我們的立場有些小地方前後不一致,不過大體上其實不錯,很開心拿下第二勝。

準備的時候往往一個人提出一個論點,另外一個人就會提出反駁,或者一直問 Why? Why? Why?。結果花了不少時間和自己隊友辯論,這樣的情形不知如何才能改善。

下午課程有個神秘的示範賽,正方將同樣的 motion 說成是特殊的教師對監獄的罪犯進行體罰,身為 LO 的 Lily 挑戰對方的定義讓 Ray 大為激動。「I said you should debate and debate no matter what happens!!」,結果他索性直接走到台上「hijack the debate」,親身示範在這種情況下如何還可以繼續 debate。

When this happens, you want to ask yourself, “Can we still win the debate in this setting?” Often in this situation, there would be a lot of inconsistencies in the government side’s case.”

價值觀的衝突

連續四天的賽事正式開始!我們前兩場的辯題分別是:

  • This house believe that nudity should be allowed in all public places.
  • This house would ban religious organizations from endorsing political parties.

雖然有些辛苦,不過我們都取得勝利。在此過程中我們也慢慢決定了預設的位置,由 Sophia 擔任第一個講者,Sophie 擔任 Deputy Speaker,我則是 Whip Speaker,而 Reply Speaker 則通常由 Sophie 負責。其後雖然前兩位有時有所變動,但我幾乎都擔任第三個位置了。

第三場積分賽我們遇上 Cindy 所屬的 Ssshhh 隊伍,選到的題目是「This house would remove the law on statutory rape.」,我們在準備時就遇到重大的歧見。隊友們堅持應該把題目訂成只有在小孩的父母同意下才不會觸犯此罪,我則極力反對:「如果這樣的話就會導致很多很強的論點無法使用了啊!!」

「真的嗎?有什麼論點?」Sophie 問道。

「首先,所謂的 rape 是什麼呢?是強制他人所犯下的罪行,把一個跟心愛情人在雙方同意下發生行為的人當作 rapist 不是太不公平了嗎?再來,把一對情侶強制拆散豈非太過殘忍?」

Sophie:「嗯……聽起來不太有說服力。」

「為什麼!!」我難以理解。

正當 Sophie 和 Sophia 兩人懷疑當初為何我們會不小心選到這個題目而傷腦筋之時,Sophie 也請我想辦法把我想到的論點改成可以在父母同意下辯論的形式,但無論如何我都難以接受這個立場。在準備的過程中我數次抗議希望移除父母同意的限制,但屢次遭到反對。而我不斷想著如何可以在有父母同意的情況下讓論點成立,卻完全無果。

同樣的,我的隊友們也遭逢價值觀的重大挑戰,因為她們實在難以想像為什麼要移除這條法律,就在這樣的情況下我們將時間用盡,只得硬著頭皮上場。意外的是,Sophia 她們還是提出了一些看起來有些道理的論點,反倒是我不斷的陷於激動的情緒之中,以至於該我上場時,我幾乎無法好好辯論,只說了 4、5 分鐘就結束了。

或許是因為印象太深刻了吧,只要想到這個議題腦裡就會浮現某個畫面,那也不知是來自什麼戲劇或者新聞,是一對小情侶,一起努力想在這世界生存下去,但被孩子的父母發現以後,情人因而被捕入獄,而在她們被拆散後,孩子望著父母的那種眼神。充滿怨毒、悲憤、不幸的眼神;那種被背叛的孤獨;那種沒有人理解自己,一個人面對全世界的心情。沒有子女應該用這種眼神望著父母的。(正因為這種印象太深刻所以我一開始就贊成把這個 motion 排在第一位,或許我其實就是我們一開始選到這個 motion 的主要原因吧?)

我明白這個法律存在的可能目的,也願意站在這個 motion 的 opposition side 辯論,可是如果是站在 government side 的話,我實在無法忽視,這個法律產生的可能傷害,其實際起始者,經常都是父母啊。在這樣的情況下我實在無法接受這種需要父母同意的立場。這就是 Ray 所說的對自己價值觀的衝突嗎?

不令人意外的,我們輸掉了這場比賽。但評審 Saddiq 提到這個議題 government 其實很容易獲勝的,他用完整的論理說明把合意的人當成 rapist 是多麼不人道,拆散她們後,小孩身心受到的巨大悲傷與傷害,以及孩子為了保護情人犯罪,所以故意隱瞞,其反而可能導致受到不合理要求卻無法尋求幫助。令人意外的是 Sophie 她們竟然覺得頗有道理,可是我總覺得這跟我之前想表達的意思其實是差不多的。

事後討論題目時幾次聽到 Sophie 提起這個例子,說當初覺得絕對不可能辯論的立場 Saddiq 還是可以找到很有說服力的論點,所以不管遇到什麼題目都不要放棄。我才意識到正因為 Sophie 和 Sophia 其實也是在價值觀受到重大挑戰的情況下勉強自己站在 PM 和 DPM 的位置,所以在此情況下,我只用簡單的陳述句自然不可能輕易說服她們,而且用簡略的句子溝通其實本來就不能期待對方了解。

即使她們是無法接受 government side 立場的人,卻還是想出了一些論點。比起她們,不斷陷於衝突情緒以至於無法完成 GW 角色的我實在是還得多加油才行。

Sophie:「對不起一直反對你的想法。」

我:「我才該說對不起沒有支持妳們。」

我們是來學習的

每次比完一場比賽 Sophie 總是很積極的詢問評審細節的評論以及我們可以如何改善,以至於後來我們常常會很晚才離開,真的得感謝工作人員都還留著讓我們可以 sign out。我們也慢慢開始養成在中午午餐時間進行檢討的習慣,她總是不斷和我們持續辯論什麼才是較好的說法。

或許是擔心重演去年有些人壓力太大的情形,我開始習慣在比賽前說起:「我們是來學習的!不要怕犯錯,重要的是享受這場辯論。」不過後來證明是我多慮了,記得有次我問起 Sophia 和 Sophie,比了這麼多場的感覺:

「很好玩!」這是我得到的回應。

很高興大家都那麼喜歡 debate,抱著這樣的心情我們就可以一直比下去。

我們檢討了不少技術性的問題,像是我們常常很晚才提出較強的論點,我私自覺得這可能是因為很強的論點通常是由 Sophie 所想出,但或許因為時間或溝通問題而時常難以轉移給 Sophia 來闡述;在此同時 Sophie 覺得不太懂得如何架構一場辯論與設定明確定義,所以不希望當 PM。為了解決這個問題,我們開始依照構思論點的情形即時調整順序,有次也嘗試幫 Sophie 準備如何開場的重點筆記。

另外一個問題是我們常會將各種論述混在一個論點之中,以至於看起來幾乎沒有論點,而顯得混亂。這點除了繼續累積經驗外,就是在準備時間大家一起討論了。

Saddiq 說到,在上個辯論中就算真的要父母同意,其實還是可以使用那些強力的論點的,只是力道較弱罷了。真的嗎?我突然想到,對方若以有父母同意為條件的 policy 根本無法解決拆散等傷害來反對的話,則不可避免的會讓人覺得她們必須稍微同意我們的部份論點。「So are you saying that you actually agree with us if no parents’ consent were required?」,也因此,實際上這些論點確實還是可以進行的。若我當初想通這點或許就有時間架構我的論點,甚至進一步說服隊友們了。

為了讓隊友間的思緒交流更為有效。我開始要求自己在構思論點時要寫下更為詳盡的筆記以整理思考,也開始使用便利貼來釐清每個觀點。雖然本來建議在準備時可以利用筆記交流來提昇交換論點的效益,但結果效果似乎沒有想像中好。

勢如破竹

賽事第二天,連續三場的勝利。

第四場積分賽,我們是 opposition side,對上 Rabbit’s Right,辯論的主題是「This house would euthanize feral cats and dogs.」,準備時我們試圖解決我們論點劃分不清的問題,不斷激辯每個論點的 label 要如何標記,以及如何決定每個思路和例子該放在哪個論點之下,這樣的激辯甚至延續到中午的討論:

「我覺得我們應該要用 This policy violates animal rights 來打。」

Sophia:「為什麼有 animal rights?」

「妳看我們早就覺得吃貓狗很殘忍,而且有很多人很在乎貓狗啊。」

Sophia:「可是這聽起來好像因為人類覺得如何如何所以 animal 有 rights,這不是很奇怪嗎?你根本沒證明 animal 為何本來就有 rights 阿。」

Sophie:「所以妳覺得這世界上不存在 animal rights?」

Sophia:「我知道這可能只是詞句上的的問題,可是我就是覺得 animal rights 這個說法怪怪的!!」

我:「那妳覺得是為什麼呢?為什麼我們覺得虐待動物不好,如果不是因為 animal rights,那是因為什麼?」

每次我們總像這樣激辯許久未有結果,往往在準備時間也常有死胡同難以釐清。但是透過這樣的反覆構思還是能讓自己找出不少盲點,特別我偶而有些覺得理所當然的觀念受到 Sophia 的質疑,總是讓我再次反思。

第五場積分賽,再次遇上了 Ssshhh,不知道為什麼,雖然我們站在相反立場,可是每次我們兩隊對 3 個 motions 的喜好排序卻常相當類似,這次我們決定的 motion 為:「This house would only allow adults to access social networking sites.」。討論到一半我提了幾個論點時,Sophie 突然說道:「竟然你有那麼多論點,不如你這次就當 PM 吧。」

「真的嗎??可是我不覺得我有什麼特別強烈的立場阿?」

不過我能理解的,因為對手是 Ssshhh 啊。就算只是為了某種象徵性的和解與補償,我都應該以 PM 的位置進行這一場辯論。我能理解 Sophie 的用意,所以雖然實際上我並沒什麼特別的論點可說,也只能硬著頭皮上了。令人意外的是我們最終竟得到了勝利,而勝點的其中之一的確是來自 PM 的論述,只是那段論述我其實並沒有注意到他的重要性,而只是用來支持某個論點時所順帶提到的,而我的隊友們延伸了這些論述,最後得以稍佔上風。可我總覺得有些事情還未被完成,這樣的一戰實在令人有些迷惘,我忍不住開始預期在往後的賽事裡,一定還會再和 Ssshhh 對上,而那個時候將是某些未被完成的事被達成的時刻。

第六場,我們以 government side 對上 Happy Robby’s Friends,題目是「This house would allocate students based on their academic performance.」。在準備上台的當下,我發覺所有的要素都齊備了,幾乎所有對方的論點我都有反擊的說法,每個 deadlock 與 unresolved problem 似乎也都能被解決。再加上對方的用字遣詞讓我可以站上 moral high ground。這正是我可以 become aggressive 的時刻!

於是我便這麼做了,「How would you feel if someone called you a stupid person? Don’t you notice that it is the opposition side who is discriminating people?」,被 Sophia 和 Sophie 說是我第一次辯起來那麼激動。真的,有種淋漓盡致、盡完全力的開心,而且仔細聽對方的 Whip,我總覺得他幾乎沒有攻擊那些,我覺得目前停留在對我方有利狀態的議題,所以在當下我實在是很有信心得勝。最後的結果正如預期,但對方對於評審的說法似乎不太心服,所以和評審討論了許久,讓我都開始有些被說服了。

不過姑且不論比賽結果,我突然覺得自己愈來愈喜歡當 Whip Speaker 了。雖然在這個位置我已經不能像 Sophie 和 Sophia 一樣提出強大的論點,但是我可以清晰看到整個辯論的議題與衝突,誰佔上風、誰佔下風。在這個已經存在的邏輯系統裡,找出隱藏的連結,用既有的要素證明己方的觀點為何不得不成立,找出所有對方的自相矛盾並加以攻擊,把所有未被攻擊的重要論點用既有的邏輯加以反駁。這就好像證明一道數學題一樣的令我熟悉。

所有的元素都在那裡,我只要找出最佳解就可以了。 只要這個解存在的話,我就可以找出來。這種想法是多麼令人興奮與喜悅。

比賽結束後跟 Happy Robby’s Friends 聊了許多,很高興認識你們!

命運的對決

第七場積分賽對上 Nevertheless,motion 為「In an event where the state knows the date of the an impending apocalypse, this house would withhold the information from the public.」,對方將其定義定的非常奇怪,將 apocalypse 訂成已知錯誤的宗教預言。沒有經驗的我們一方面沒有挑戰定義,二方面又還是走著自己的定義,所以幾乎就要成為 parallel debate 了。但是 Sophia 用 freedom of speech 的論點打中了對方,所以還是得勝了。Ray:「Your second speaker saved this debate.」。好像是為了解決尚懸的疑問一樣,第八場積分賽我們再次對上 Happy Robby’s Friends。我們還是 government side,這次的 motion 是「This house would hold Taiwanese companies responsible for the human right abuses of their offshore factories.」。這次的我們因為連什麼是 human right abuses 都未有清晰定義與共識,加上有點打偏而吞下第二敗。

結算成績,我們以積分排名第二打進了八強賽,而下一場對手,又是 Ssshhh,我們又還是 government side。有種預感,這次應該會找到那個答案了吧。

三個奇怪的 motion,兩隊再次近似的排序,最後定下的題目是「This house would force gay public figures to come out of the closet.」,這次我們三人有志一同的覺得這個 policy 簡直是毫無道理可言。可是這次我們真正一起腦力激盪,挑戰自己的想法,並且竭力一戰。

「到底為什麼要有這個 policy 啊!」

「這根本就是胡說八道嘛!!」

準備的時間裡我三不五時就會忍不住丟出這種抱怨。但真正開始辯論時覺得其實己方好像還真的說得出一些道理呢!我也盡力的,在這樣的邏輯系統裡找到僅可能優秀的解,辯完的當下我真的看不出誰勝誰敗,但真的好累也好開心。這次真的盡力了,即使自己的想法受到挑戰也還是能全力以赴。原來這就是我在等的答案啊。

未來的故事

在結果公佈前的晚會上,Sophie 向 Ray 問了好多問題,關於之前比賽的建議、如何加強自己的能力等等。Ray 說到,觀看國際賽事的影片真的幫助很大,你會發現有經驗的辯論者重點跟新手不同。比如說如果今天有人說到要把流浪貓狗放在 care center 裡,若對方說這樣會花費很大時,新手可能就會開始解釋花費其實不大,可是有經驗的人的可能會說:「Yes, but why not. We believe the government should spend the money because of the following reasons…」,Ray 從影片問題聊到以前開始 debate 時資源的缺乏。他也說到 debate 如何改變他人生的方向,如何當年將所有心力放在 debate 上,而這又如何讓他走到今天的地方。

過了一夜後,或許是腦袋自動整理了 Ray 的話吧,早上醒來我突然想到如何解決之前跟 feral cats and dogs 有關的辯題時的論點分類問題了[1],並興高采烈的跟隊友分享,這可是整合了 Ray 的提醒、Sophia 的知識,再加上交大汪汪社的長年官方說法才產生的論述呢!

早上公佈準決賽名單後,一邊祝賀 Ssshhh 之餘,我們也很快決定要去觀看 Happy Robby’s Friends 的比賽,雖說我其實也有點希望可以看 Ssshhh 的比賽,不過終究只能擇一啊。而就在等待比賽開始的當下,我們三人開始聊起對英辯的想法。

Sophie 說:「真的會覺得接下來不能 debate 了要怎麼辦,Steven 有覺得兩次 workshops 中間有進步很多嗎?」

「扼,我其實中間完全沒有練習。」

「不過說真的參加 debate 真的改變我很多,我變得更積極參與像是報告或者演講之類的場合,雖然大部分是中文的。」

「不過反正妳不是在台大嗎?可以跟英辯社的人練習。」

Sophie:「嗯嗯,可是總覺得只是跟自己的圈子 debate 還是有所極限,一些想法都會被限制住。」

「而且也很快就要走了。」

我回答:「說起來下學期應該還會有機會比賽啊!!而且妳也可以去比國際賽。」

「再說那裡應該也可以 debate 吧?」

Sophie:「我有查過那裡也有英辯社,只是擔心會不會程度差太多,無法練習。」

「那就好啦,像我們這裡都沒有英辯社,像我之前一直想要多多推廣,可是都沒有成功。」

Sophie:「可是昨天 Ray 不是說如果把心力放在推廣就沒有心力加強自己的 debate 了嗎?」

「喔,也是啦。」

「只是說,只是說,應該沒有那麼大的影響吧,我的意思是––」

「我覺得我其實也不會跟 Ray 一樣把全力都放在 debate 上啊。」

「為什麼!!」Sophie 激動莫名。

「因為我覺得我本來就已經有了很重要的目標了啊。」

記得嗎?我說過自己從國中就決定走往資工一途,這長年以來的足跡背後當然有著某些信念。雖然我承認,近年確實開始有些迷惘與動搖。或許 debate 也是促使我反思的重要因素之一吧,可是可是……不,現在想來真正令人敬佩的其實是妳話裡的意涵啊,所以 debate 已經成為對妳而言如此重要的東西了嗎?

「等一下!!Sophia 從剛剛開始都沒講話!!」

我們兩人一起望向 Sophia。

「妳呢?妳的感想如何?」

「啊?」

她還是帶著往常的神采:「對我而言要參加英語辯論真的要鼓起很大的勇氣,可是參加了以後真的很好玩。」

「這裡結束了以後,當再次遇到機會時,真的不知道我還有沒有辦法鼓起這樣的勇氣。」

「可是我想,我想,我想。」

「一定,還是會鼓起勇氣的吧!!」

嗯。

那一瞬間,我真的覺得這樣的話好美好美。

雖然每個人對英辯的感動不同,但真的好開心大家都覺得這幾天是那麼好玩。真的真的,雖然我們在這個 tournament 的比賽已經結束了,可是未來的故事一定還沒結束。有天一定還會遇見的吧,有天一定可以繼續寫新的故事的吧。喔,怎麼會,讓人開始感到有點不捨了呢?

新角度

精彩的準決賽開始,不知為何好幾次我都笑到要把臉埋在桌上以免不小心影響辯者。我發現站在旁觀者的角度,其實真的可以很清楚看見整場辯論的情形,就好像 Whip 一樣,看到整個辯論的議題與衝突,哪些議題尚未被解決,哪些地方又是誰佔了上風。只是這次的角度更加中立與宏觀。我發現我可以看出這場辯論是 extremly close debate,也能說出一點自己做這種決定的道理[2]。只是雖然自己覺得 government side 贏,我的兩個隊友們卻都和我持不同意見。

最後終究是 Happy Robby’s Friends 贏了,而 Ssshhh 也順利晉級決賽。這麼一來決賽就是她們兩隊的對決了!!剛好都是對我而言特別有感情的隊伍,真的很期待這戰。

決賽的場地變得好正式,由於事先不知道她們選了哪個 motion,所以我們針對 3 個 motions 開始分析:

  • This house would abolish all rights of inheritance.
  • This house would allow people to sell their votes.
  • This house would give two votes to the poor.

我自己覺得第一個是最正常的議題,其他兩個怎麼想都想不出怎麼樣的說法才合理啊。我們三個人不斷問彼此,為什麼?為什麼要這麼做?為什麼窮人的票要比較多?為什麼富人的票要比較多?為何要一人一票?為何不能一元一票?可是怎麼想也想不出答案。後來和 Chris 討論之後他說他曾打過第二個 motion,當時是訂成只有在極度貧窮危及存亡的情況下才可賣票,感覺瞬間就合理很多,之前怎麼會沒想到呢?

最後果然是打第一個 motion(畢竟我和 Ssshhh 的排序偏好每次都一樣啊,哈哈)。看完比賽的瞬間就覺得這是場 clear debate[3],Sophie 終於也同意我的結果了。感覺自己真的成長了!記得去年觀看總決賽時,只會想著如果是自己的話會怎麼辯論,並以駁倒對方的論點而沾沾自喜,而對於比賽結果完全沒有太大的概念。今年,漸漸能夠以更中立宏觀的角度觀賽,而從 Whip Speaker 和觀眾角度的比較,更讓我發現身在局外時想出攻擊論點的關鍵其實真的沒有什麼值得驕傲的,畢竟當局者所受的壓力與責任遠超過局外人所能想像。這些體會大概是因為打了那麼多場 Whip Speaker 所以才有的吧。

感動與成長

聽到自己是 Best Speakers 之一時真的有點反應不過來,Sophie 和 Sophia 也是,妳們真的好棒,第一次參加就有那麼好的成績。上台時發現 Ray 好像有點在意我們的排序,不過其實沒有太大關係吧。

這次的心得分享實在是格外感人,突然有人說起講師有多麼帥氣,也讓我們對學生的開放感到驚喜。十天的時間大家一起克服許多困難,真的有了一點患難情感,就像 Anna 說的,每個人都那麼積極的參與和享受英辯賽,真的是歷年來的第一次。好久沒有像這樣和大家一起感到認同與感動了,我們真的都好棒好棒。

邁向歸途,好多人留在門外捨不得離開。Sophia 向我們感謝道:「謝謝你們這些天的照顧,我真的在妳們身上學到好多!」Sophia 怎麼每次都這麼會講話呢,直到現在還是可以清晰記得妳的神情和當下的感受。接著我和 Sophie 也互相道謝。雖然妳們總要說我經驗較多,可是我真的要說我在妳們身上學到不少。

Sophie 每次都是最積極學習與求進步的人,當我結束一場辯論想休息時,是看到妳那麼主動的問講師問題,才讓我提起精神來。Sophia 總是提醒著我思考的謬誤,老實說我好像已經可以從妳的眼神判斷妳開始反對我的說法了,哈哈。然後妳真的知道好多小知識喔,像是芬蘭教育等等。

更重要更重要的是,我真的好喜歡一起辯論的感覺,在我心裡我們絕對是最棒的 Triple S。老實說從前我常對團隊合作之類的事不太擅長。可是我們之間很不一樣,總是以對等的姿態互相討論並找出好的想法,每次都能以正向積極的心情檢討改進,而不會陷入自我懷疑,這真的是我所待過最有向心力的一個團隊。

謝謝你們!我在你們身上學到好多東西。真的希望在未來的故事裡還會見面。

這次的培訓坊中,我真的成長不少。我對建構論述的結構更加了解了,慢慢可以提出理由與例子,也慢慢增加了分析的層次。我慢慢習慣價值觀被挑戰的感覺了,希望以後不會再如此慌張(我實在忍不住懷疑所有奇怪的 motions 都是 Ray 定的)。在一場場的比賽中,我也慢慢找到綜觀全局觀點,開始可以看懂比賽的過程。

感動與認同,成長與喜悅,每一項都比去年來的更多更多,我真的好高興自己決定來參加這個活動。真的真的,真的很開心。

好多感謝

謝謝 Cindy,真的是因為妳才慢慢跟大家認識。

感謝 Sandy 的捧場還有妳特地的邀請。

謝謝 Micheal,聽你的論點真的讓我學到不少東西。

謝謝 Chris,常常熱絡的和我們聊天,聽你對議題的分析真的有很多幫助。

謝謝 Tony 生動的辯論,每次總讓我笑的得把臉埋在桌上。

謝謝 Happy Robby’s Friend, Ssshhh, Rabbit’s Right, Nevertheless 還有好多對手(原諒我記不起所有隊名),和我們一起進行好刺激精彩的辯論。

謝謝 Sophie 和 Sophia,謝謝妳們讓我學到好多,謝謝你們陪我走了那麼遠!

謝謝 Ray Yen 和 Syed Saddiq 兩位講師的細心指導。

謝謝 Sylivia 和 Amity 好像回答了我不少奇怪的問題(?),還有 Anna 和好多工作人員為我們帶來這麼棒的盛會。

還有好多好多人,謝謝大家一起聚在此地,這十天,真的好開心!

最後也要再次謝謝上次帶我參加英辯坊的 Emily,是因為妳所以我才來到此地呢。

後記

記得剛開始上課時,Sandy 問我,是不是有寫過上屆英辯坊的心得。

「對呀。」我回答。

Sandy:「我其實一開始沒有看到那篇,是過了一陣子以後才看到,剛好是需要回憶一下的時候。」

我開心的問:「所以那篇文章有勾起妳什麼好的回憶嗎?」

「有啊!不然我怎麼會在這裡呢?」

原來我寫的心得還有這種作用呢,在那當下我就決定要再來寫一篇心得文。身為一個寫作者,聽到讀者的支持真的不免感到喜悅。那種時刻我總銘記在心,像是曾有人說過「交資夢想」對他的啟發,又像是某位老友曾說過的,我所寫的人生故事對她的鼓勵。在這樣的時刻裡,彷彿可以終於的被人理解。

去年寫的心得其實背後抱著推廣的目的,所以內容經過了數次精簡。這次我想寫的是回憶,所以忍不住就愈寫愈長了。這麼一來這篇大概真的不能當作推廣文了,畢竟一般人大概也不會耐著性子看完吧。不過寫起來真的很開心,我慢慢的又把十天回味了一次。本文中我有點名的地方如果有句子與事件的錯置,請原諒我不夠清晰的記憶吧。雖然因為畢業的關係這應該是我最後一次參加文藻英辯坊了,但希望未來的路上還有機會見到大家喔 =w=b

相關連結

備註

  1. Motion: This house would euthanize feral cats and dogs.

    LO: The government side keeps saying that they want to kill animals just to save cost. Yes, they actually used the word “kill”! How can they do such a cruel thing to the animals? We opposition side believe that this policy is both irresponsible and inhuman, and it does not actually solve the problem. Let me first give some rebuttals…

    Now, I would move on to my first argument, that this policy is irresponsible. There are three levels in this argument.

    Let’s first think about why the dogs and cats would be on the street at the first place. It is because that their owners abandoned them. Instead of solving the really problem, the simply want to hide the problem by killing animals. But are the animals responsible? No. The real ones to blame are their owners! By killing these dogs, they are telling the owners that it’s okay to be irresponsible, because the government would hide the problem for them!

    Secondly, think about why the cats and dogs are in our society at the first place. It were we humans who kept them as pets for such a long history, that they had lost their ability to live in the wild. It were we humans who made them become dependent on human society. Because we humans bring them into our society, we should be responsible for the problems they cause. Killing innocent animals is not the way to solve the problem.

    Thirdly, we notice that the government side kept talking about how these animals are causing problems in this society, and because no one cares about them, it’s okay to kill them. But we see there are also some homeless people living on the street who cause problem to this society. So does that mean it’s okay to kill them? No! We believe it is as irresponsible to kill the animals as to kill the homeless people, because in both cases, the government is hiding the problem instead of solving the problem.

    My second argument is that it is inhuman to kill dogs and cats. There are three levels of analysis.

    First we may ask, why we care? But reality is that people do care about cats and dogs. There are clothes made specifically for pets. There are restaurants specifically allow us to bring dogs in. And we say dogs are men’s best friends. It is inhuman to kill whom we care.

    Secondly, there some people who live along and treat their pets as their closest friends or their family members. What would you think if your friends or family members were killed? It is cruel and inhuman.

    Thirdly, we see in this society, we already view eating dogs and cats as an cruel thing to do. We already disallow abusing dogs and cats. What’s the difference between these and killing animals? This policy is certainly inhuman.

    Instead, we would proposal an alternative solution: We would use TNR to treat the feral dogs and cats. That is, trap, neuter and return. Because it is neutered, it could not reproduce, and it would be less aggressive. For the case that the animal is infected with an disease that cannot be treated, we would keep it in the care center until it dies naturally. In addition to this, we would require a chip containing the contact information of the owner to be implanted into the animal when a person wants to keep it as a pet.

    Our government side kept saying that they want to propose this motion because it saves money. But we believe that even if it saves money, we still cannot let it passed because it is irresponsible and inhuman. Moreover, our DLO will show you that their policy actually costs more than it saves, and our policy actually solves the problem better than their policy does.

    DLO: Let me first give some rebuttals…

    Now, I will give a comparison about the cost and benefits between their policy and our alternative. First is about cost. Let’s first think about the cost between the policy and the status quo. Our government kept saying that they want to save money, but what money? In the stats quo, because we don’t do anything, we won’t need to build care centers and we won’t need to capture the animals. There is no cost at all. So their policy actually costs more money than the status quo.

    Moreover, if someone’s dog accidentally got lost, what would happen? When they capture the dog, they are going to kill it in 5 days! How can you expect them to find the real owner in 5 days? When the owner discovered that his dog was killed, tremendous harm is introduced. Also, his is going to sue the government and there would be waste of social resource. And think about the one who want to adopt the dog. Do they really expect to find an adopter in just 5 days? Even if someone comes and sees the dog in the first day, he still must think about many things and discusses with his family. When he finally makes the decision, when he starts to feel a connection between him and the dog. He would suddenly finds out that 5 days already passed, that the dog was already killed! He would feel betrayed by the government. No one would adopt animals in the care center anymore!

    Because of the tremendous cost caused by law suits, there policy clearly costs more than our alternative. And we must say that our alternative solves the problem better. First of all, because there is a chip in the dog, it is less likely for a person to abandon the dog, since he doesn’t want people to find him out. So there would not be so many feral cats and dogs at the first place. Also, it is less likely for us to treat the dogs that are accidentally lost because we can contact the owner. If no chip is present, it is unlikely that this animal belongs to someone who cares about him. And secondly, you see, the dogs are animals who have territory. When the government side kills the dogs, the environment becomes empty, and dogs that are potentially more aggressive are going to move in soon. But if we use TNR, the environment would be filled with less aggressive dogs, so that when a new comer appears, it takes time for him to establish his territory, this gives us more time to capture the dog and use TNR to treat him before any harm is made….

  2. Motion: This house believes that your body belongs to the state after death.

    Opinion: This is an extremely close debate. Most of the arguments from the government side were attacked by the opposition side. The attack was not so strong, but the GOV, for some reason, didn’t try to engage directly, but spent most of the time restating their own arguments. However, the arguments and rebuttals coming form the OPP were based on a shaky ground, which is the right for body anatomy that they didn’t prove at all. Also, there existed a big contradiction in their case which damaged their position severely. If the GOV had pointed out how the anonymous body case and family case directly violate their principle of body anatomy, the debate would have been much more clear. However, they just briefly talked about the contradiction of the family case. Actually I think there remained many weak statements in today’s debate, but neither side had picked them out, which make it extremely difficult for me to decide, but I still would prefer GOV a little bit…

  3. Motion: This house would abolish all rights of inheritance.

    Opinion: First of all, the government side came out with a rather unexpected position. I’m not saying that it was bad, but it was unexpected. But basically the main reason of the result is that, GOV is suffering from the same problem as the last round that they failed to directly engage the opposition side’s rebuttals, and this time, the rebuttals are strong so that at the end of the debate, most of the arguments coming from the government side were almost taken down by them.

    The most important principal coming from the opposition side was that one has the right to give their property to his children. They talked about the meaning of life, how the children can live on behalf of their parents, about how the money are earned by one’s own effort, and about the symbol of love. This argument may not be so strong, but the government didn’t attack it directly except for saying that one earns money mainly because of environment. This remains a deadlock for most of the time, but I think OPP is slightly stronger when Cindy, the reply speaker, talked about how a middle class man, by working slightly harder, may be able to earn a little more. Moreover, the story about one’s memory of their house that OPP talked about is so convincing, and the GOV failed to give a good rebuttal to it.

    Another issue brought up by OPP is that this policy can make people lazier. This certainly can be attacked, because they seemed to assume that this policy would have the same result as communism. GOV did try to engage by talking about the China case and that it’s different from the policy. But what’s the difference? They didn’t explain clearly. When OPP extended the case by talking about how a poor father would not work hard because his child could get a free house, I think the matter was settled down.

網路安全 – 交大修課心得

computer-security

課程資料

網路安全(英語授課)

開課:謝續平老師

修課年度:101網工所

上課的內容就是網路安全的各式議題,一開始會簡單帶過密碼學的基礎,包含:

這也約是第一次期中的範圍,接下來為了增進大家對 project 的理解,先進入後面的〈Malicious Software〉章節:

緊接著按照書的章節,討論每個主題,及簡介協定與系統:

期末考因為時間較長,範圍也較大:

這學期使用的課本是《Network Security Essentials》,這本書非常小本,以概略的方式涵蓋許多重要的網路安全議題,個人覺得還算容易閱讀。

不過其中無線網路安全的部份由於課本非常簡略不好理解,所以老師會用額外的投影片從細部講解。筆者也找了幾本書參考才終於有較好的認識,其中我比較推薦看的是《802.11 Wireless Networks》,講解的非常清楚。

網路安全和電腦安全概論及密碼學概論也有些重疊,若有上過應該會比較得心應手,但因為老師碰觸的都不會太深,如果沒上過應該也不會完全跟不上。這幾門課都是資安學程的課程。

上課方式

這堂課因為是英語授課,所以老師幾乎全程都使用英語,語調很清晰,自己覺得不會有聽不懂的問題。為了避免語言困難造成妨礙,發問的時候也可以使用中文,老師會翻譯成英語給大家。

上課的時候使用投影片講課,老師的步調適中,且講解也很易懂。如果有疑問,老師很歡迎發問。除了上課以外,也曾邀請講者前來演講,主題跟程式測試有關。

老師說有太多人試圖攻擊他,所以不要寄 email 給他,多半收不到,最好直接打電話。如果有問題也可以詢問助教,他們都很樂意回答問題,而且老師也說是能力非常優秀的學生。

考試作業

這堂課有三次期中考,學期初就會公佈考試的日期。考試內容偏重觀念,有簡答、分析、申論等等。可以感覺到老師出題有特別挑選,所以幾乎不會有需要大量背誦的題目,再加上助教都不吝於給分,只要對課程內容有一定理解,應該不難拿分。筆者平時就會跟著進度看過課本,投影片是在上課聽老師講解,考前再重新看過課本和投影片一到兩次。像這樣穩定的閱讀,其實負擔不會太大。

有四次小考,通常不會事先通知,而會在上課中突然考試,通常只考一題至兩題。主要是複習性質,所以占分不高,取三次最高分,且好像只佔期末成績的 2~4 %。

平常不點名,只是因為有突擊小考所以如果蹺課還是有差,而且老師有時會考一些只有口頭有講而課本和投影片都沒有的東西,所以有聽課還是比較好。

雖然學期初說每兩個星期就有一個作業,不過結果最後除了 3 個 projects 以外完全沒有派其他作業。三次 projects 合起來和一次期中的佔分相同。每年的 projects 主題都不相同,這次內容是圍繞在 bot 程式的相關議題,每次都有一些關聯性,而在最後整合起來。這是一個分組作業,2~3 個人一組。

在第一個 project 中,助教會提供一個 bot 程式,學生必須觀察該程式跟伺服器連結的網路封包,並紀錄彼此如何建立連線的訊息。課堂有提供一個名為 Cloudebug 的線上平台,可以在瀏覽器上連結 Windows XP 虛擬機,並對程式分析。不過也可以自行使用 Wireshark 攔截封包。

在第二個 project 中,bot 程式和伺服器建立連線後,會開始交換加密過的訊息,學生必須反組譯 bot 程式,找到助教提供的位址,解析組語並得知如何加密及解密。最後再針對封包分析,找出加密前的訊息為何。

第三個則是 bot 程式實作,包含三個部份。在這個 project 中,助教會提供幾乎已經寫好的 bot 程式及對應的伺服器程式,其中 bot 是以 C++ 所寫成,由於使用到 Windows API,助教建議使用 Visual Studio 來編輯,伺服器程式則是 Python script,不過同學並不需要針對伺服器做任何修改。

這個 project 第一個部份是要將 project 1 觀察到的溝通指令填入適當位置,並將 project 2 的解密程式填入特定函式之中,使得 bot 能和伺服器連結。

緊接著利用 Windows API 實作兩個指令:

  • 伺服器會傳送一個檔案使 bot 儲存到本地端
  • 伺服器會要求 bot 執行特定 command line 指令

最後則是要實作 Anti-debugging functions,讓程式不易被 debugger 分析,這方面可參考:

由於助教已將 bot 程式寫的非常完整,所以要實作每個功能幾乎都只要找到特定的空白函式並填入內容即可,大部分的函式都不長。可以想見助教花了非常多的心力出題。記得老師剛開始有說過由於研究所的課大家背景都不太一樣,所以會降低程式作業的難度,也因此和電腦安全概論相較起來實作的部份確實比較少。

筆者和組員主要透過 Google Drive 來共同撰寫報告以及管理檔案。這學期真的要感謝組員的幫忙,每次 project 都順利完成了。

結語

這堂課在各方面而言都非常值得,老師和助教人都很好,講課也很不錯。考試主要考觀念,所以不用太多背誦,只需理解,同時又不會改的太嚴。作業不會太難,但是又可以讓人學到東西。除此之外,給分也相當不錯。而且除了教材以外,在課堂上偶爾也能聽到一些有趣的消息。

目前資安的議題真的非常值得去接觸,老師也說擁有資安背景的人在業界是很吃香的。而據說在台灣,交大的資安課程資源也是數一數二,真的推薦大家來上這堂課。

統計學 – 交大修課心得

calculator

課程資料

統計學

開課:陳志榮老師

修課年度:101電機學院

使用的課本是《Engineering Statistics》

教了如下章節:

  • Chapter 1. The Role of Statistics in Engineering
  • Chapter 2. Data Summary and Presentation
  • Chapter 3. Random Variables and Probability Distributions
  • Chapter 4. Decision Making for a Single Sample
  • Chapter 5. Decision Making for Two Samples
  • Chapter 6. Building Empirical Models

使用投影片上課,老師通常會針對字面上做詳盡的解釋,並且對許多公式用黑板運算與證明。下課找老師問問題或者寄 email 給老師都會得到熱心的回答。

評分方式

評分方式是:

  • 點名五次: 2x5 = 10%
  • 作業: 30%
  • 期中考: 30%
  • 期末考: 40%

總分 110%,超過百分以百分計,記得好像 50~60 分都算 60,其餘不調分。

點五次名當作加分依據,點名的時候會開一份有照片的文件點名,若遲到而沒有點到則不補點,不過若有公事等原因可以和老師說明。點完5次名後的第一堂課可以發現出席率顯著的下降。

作業的話就是從課本挑習題。因為有很多統計分析,有時也要製作圖表,所以單純用手算或者使用計算機可能都不太有辦法。因此主要是使用統計軟體,課本是使用 Minitab,這套學校有授權可以下載使用。不過老師也有推薦 R,據說在學術界滿常用的。

自己因為上課有些聽不太懂,所以大部分是利用做習題的機會才弄懂課本上教的東西。說起來做練習幫助真的滿大,一開始曾試圖用閱讀的方式預習這本課本,也沒有太大成效。有鑑於習題眾多若想一一練習恐難持續,在此提供本學期作業題號,供預習的人參考:

  • Chapter 4: 13, 14, 39, 42, 44, 59, 60, 62, 65, 67, 71, 75, 76, 83, 95, 96
  • Chapter 5: 3, 11, 13, 22, 23, 41, 44, 46, 55, 62, 63, 66, 67, 68, 70
  • Chapter 6: 4, 10

這堂課的內容應該要有修過機率才比較容易理解,不過如果只是要拿到考試成績的話應該不難。考試幾乎就是考背公式,通常是 50 格,一題兩分。期末考有考一題兩分的證明。考試範圍只有 4-44-9, 5-25-7, 6-2,不過上課的範圍較多,尤其期初會上不少機率,老師說是當作複習。期末考前的時候因為有點背不下去所以突然一時興起的做了一部分公式的表,考試的題目其實就類似表中 Formulas 部份的內容,看完以後或許對於考試內容就有些感覺了:〈Statistics Notes〉

結語

認真說起來這堂課的負擔不會太重,不過每次作業其實都要花很多時間才能寫完。老師說寫考卷的時候如果有未定義的符號都須自己定義,所以筆者每此都寫了很多,幾乎都是最晚交卷的十人之一。不過總覺得可能不用寫到這種地步,因為在確認成績時其實發現普遍分數都還不錯。

還是要強調寫作業的重要,筆者在做習題的過程中對假設檢定的了解增加不少。為了準備考試而背公式時雖然會有點枯燥,不過因為不會有太多變化所以也很令人安心。

上完以後對於以前機率上學到的東西可以做什麼應用多了一點點認識。

語言學概論(一) – 交大修課心得

languages

課程資料

語言學概論(一)

開課:潘荷仙老師

修課年度:101外文系

使用的教科書是《Language Files》,雖然看起來很厚不過其實語言簡練十分易讀,順帶一提這本書似乎有在台灣出版,因此相對其他外文教科書而言特別便宜,甚至在某些網路書店上訂似乎比華通的團體價還低廉。(不過筆者發現的時候已經來不及了)

國內的語言學概論書籍除了這本外通常好像還會用《Contemporary Linguistics》《An Introduction to Language》

據稱最後一本是最簡單的,《Contemporary Linguistics》則最難懂。筆者曾試圖讀過《Contemporary Linguistics》,確實有點難上手。根據觀察,交大外文系每年語言學概論常會由不同老師開課,使用的書籍也會因而有差異。雖然上下學期也是不同老師,不過同一屆會接續使用同一本課本。

這學期一共上了4個章節:

Chapter 1: Introduction, File 1.0~1.4

介紹語言學的研究課題,提出一些常見的語言迷思。介紹如何界定語言,以及 Design features of language (書中版本和 Wikipedia 上略有不同)。

Chapter 2: Phonetics, File 2.0~2.3, 2.5, (2.6)

介紹對語音的研究,主要重點會放在發聲的部份,會敘述人的口腔等發聲構造,並且根據發聲特性分類英語中的子音母音

像是子音是以 Voicing, Place of articulation, Manner of articulation 等分類。母音則是以 Height, Tongue Advancement, Tenseness, Roundedness 等分類。

課堂上也會介紹 International Phonetic Alphabet (IPA) 這個音標系統。最後還有講到一些其他像是重音語調、長度等發音特性。

Chapter 3: Phonology, File 3.0~3.3, 3.5

這章則會介紹如何分析各種語音在語言中的分佈以及角色。提出人類會將數種不同語音當作同一種語音來理解的現象,區分 Phonemes and Allophones 的差別,並簡介 Phonological Rules。

Chapter 14: Animal Communication, File 14.0~14.3

介紹動物溝通方式和人類語言的差別,觀察幾種動物,包含小鳥和蜜蜂的溝通方式。並介紹一些研究者嘗試教導動物語言的計畫以及結果。

期中考前的範圍是第 1、14 章和第 2 章的前部份,這部份大約是對語言研究的簡介。期末考則注重在第 2、3 章,尤其注重於音韻分析。

上課方式

上課主要是透過投影片上課,老師並不會提供投影片下載,不過因為內容在課本上都有所以影響不大。上課的速度不算快,一堂課的內容可以很快的複習完,筆者在這學期中已經把課本有上的範圍重看許多遍。

除了上課以外,期中的時候有請國外學者演講。也曾觀看過跟教導動物語言有關的影片,並且撰寫相關作業。另外期末也有看電影,不過來不及看完。

比較特別的是曾經有一堂課老師要大家把棒棒糖放在舌頭上並且發聲,以觀察各種發聲時舌頭的位置,不過筆者一直有些笨拙無法感覺出什麼所以然。

個人覺得老師講課的水準很高,很容易讓人專心以及理解。雖然老師有時會展現出很嚴格或者有點兇的模樣,不過習慣以後會發現老師人其實不錯。

進入 Phonology 以後,會花很多堂課的時間解問題,這時會按照學號輪流請同學上台寫題目並一起檢討。此外大考前有段時間會讓同學問問題以準備考試。

評分方式

配分方式為:

  • 小考: 6% x 4 + 5% x 2 = 34%
  • 期中: 30%
  • 期末: 30%
  • 一份作業: 6%
  • 演講時提問加分: 2%

不過除了期中期末考是一開始就確定以外,其他部分是看考了幾次小考才決定的。每次考完E3上就會顯示自己的分數,因為不調分所以到了後期就可以大概知道自己期末成績是多少。

平時不點名,只有演講那天老師說不來就直接當掉。筆者覺得蹺課的話太可惜了,每堂課真的都值得一聽。因為是大一的課所以應該不需要什麼基礎。不過因為考試作業都要用英文回答,所以英文能力好的話應該會有幫助。這堂課雖然是必修不過學分數一學期只有兩學分,所以份量不會很多。

因為考試次數很多所以平常就常常會複習課本,老師還曾經假裝要考試來讓大家唸書,結果原來是虛驚一場。

考試題目基本上都不會太難,小考通常每次只有一兩題,只要有認真讀課本應該能有把握。期中考是直接從課本習題中抽考,期末考的題目則是與課本習題題型相同的變形。題型有申論、填充、分析、名詞解釋等等。一些子音和母音的發音特性以及 IPA 音標都要背得很熟,這樣在作分析題目的時候會比較方便。

唯一的作業是要分析某個叫 Koko 的猩猩的手語逐字搞,老師好像是為了避免抄襲所以偏好以小考來代替作業的作用。不過因為期中期末會考很多課本習題,所以其實習題幾乎都會寫過一次。也因為過程中花了很多時間研究課本習題,就順便分享出來供大家參考:〈Language Files 11th Problems〉(不過正確性無法確認)。寫完以後會感覺考試的題目比習題簡單一些。

結語

因為是孤身一人到外系修課,班上幾乎也沒有認識什麼人,修習起來真的難有照應。然而,自己覺得這真的是一堂上起來很開心的課,好久沒有課能讓我如此專心了。學過各種語音的發音方式後似乎能釐清發音上的一些疑問(雖然不見得對正音有幫助就是),而進行音韻分析也讓我對語言的認識多了幾分。筆者恰好沒有認真背過任何音標,第一次背就是 IPA,發現配合發音特性分類的話其實很容易記憶。

另外一個雖然應該早就知道不過上了課才又想起的是語言和文字的分別:「小孩總是能自然的學會語言,但所有的人都需要教導才能學會閱讀與寫作。」或許這也能解釋一些外語學習的現象吧。

一開始聽到語言學確實會有點畏懼,不過結果對我而言算是滿有趣的學科,雖然其實也只有碰觸到最粗淺的部份啦!

這堂課下學期應該會繼續進入構詞和句子的結構分析簡介。

電腦安全概論 – 交大修課心得

security

課程資料

電腦安全概論

開課:謝續平老師

修課年度:100資工系

這堂課使用的教科書是《Introduction to Computer Security》,這本課本寫的非常清晰易懂,讀起來十分流暢。上課內容就是針對各種資安議題做簡介,包含:

  • Physical Security
  • Operating Systems Security
  • Malware
  • Network Security
  • Web Security
  • Cryptography
  • Security Models and Practice
  • Distributed-Applications Security

可參考書的目錄:〈Table of Contents〉

老師說電腦安全概論是資安系列中最基礎的課程,若上完以後對其他相關課程應該比較容易上手。不過其實筆者因為必修中有密碼學概論,所以反而是後來才修電腦安全概論。這兩門課都是資安學程的課程。

上課方式

上課的時候使用投影片講課,老師的步調適中,且講解也很易懂。如果有疑問,老師很歡迎發問。除了上課以外,也曾邀請講者前來演講,主題跟手機安全有關。

老師說有太多人試圖攻擊他,所以不要寄 email 給他,多半收不到,最好直接打電話。如果有問題也可以詢問助教,他們都很樂意回答問題,而且老師也說是能力非常優秀的學生。

記得老師曾說過他有學生在 Mozilla Taiwan 工作,除了技術前瞻以外據說薪資也非常優渥,除此之外也有不少學生擁有許多優秀的成就,看得出來老師很以他的學生為榮。

考試作業

這堂課有三次期中考,學期初就會公佈考試的日期。考試內容偏重觀念,有簡答、分析、申論等等。可以感覺到老師出題有特別挑選,所以幾乎不會有需要大量背誦的題目,再加上助教都不吝於給分,只要對課程內容有一定理解,應該不難拿分。

有四次小考,通常不會事先通知,而會在上課中突然考試,通常只考一題至兩題。主要是複習性質,所以占分不高,取三次最高分。

平常不點名,只是因為有突擊小考所以如果蹺課還是有差,而且老師有時會考一些只有口頭有講而課本和投影片都沒有的東西,所以有聽課還是比較好。

這學期的作業有兩個,主要是做些分析並撰寫簡短的報告。第一個是撰寫暴力窮舉密碼的程式,以及說明如何防範暴力破解密碼。第二個則是利用 Nmap 掃描自己的電腦,並簡單分析。

每年的 projects 主題都不相同,每個 project 之間都有些許的關聯性,最後將所學組合成一個大程式。沒有分組,每個人交一份作業。這學期內容主要是透過 Windows API 實作一些功能,來完成一個鍵盤測錄程式,程式是使用 C++ 撰寫。

第一個 projcet 是透過 Winsock 和伺服器建立 TCP 連線並交換指定訊息。

第二個 project 是透過 Hooking 的方式測錄使用者的鍵盤輸入。

第三個 project 則是實作完整的 key logger 以及對應的伺服器程式,程式會測錄鍵盤輸入然後跟伺服器建立連線,透過 RC4 將結果加密並傳送到伺服器上。這個 project 中同學也可以實作各種加分功能,像是開機自動執行,隱藏程式,支援斷線重連等等。

結語

這堂課在各方面而言都非常值得,老師和助教人都很好,講課也很不錯。考試主要考觀念,所以不用太多背誦,只需理解,同時又不會改的太嚴。作業不會花上太多時間,但是又可以讓人學到東西。除此之外,給分也相當不錯。而且除了教材以外,在課堂上偶爾也能聽到一些有趣的消息。

目前資安的議題真的非常值得去接觸,老師也說擁有資安背景的人在業界是很吃香的。而據說在台灣,交大的資安課程資源也是數一數二,真的推薦大家來上這堂課。

正規語言概論 – 交大修課心得

課程資料

正規語言概論

開課:黃廷祿老師

修課年度:100資工系

這門課的課題是基礎的計算理論,研究什麼是電腦的能力和極限。介紹各種計算模型,例如 DFA, NFA, PDA, Turing machines 等等,以及其相對應的正規語言,如 regular languages, context free languages, Turing-decidable languages 等等。也會探討問題間的 Reduction 以及問題的 Complexity。使用的課本是《Introduction to the Theory of Computation》,更多相關議題可參考:〈正規語言概論〉

上課方式

上課是用老師自己編的講義作為投影片講解,有時也會配合課本的頁面。老師上課時常會點同學回答,如果有同學打瞌睡他也會熱心的叫醒大家。老師會記人的名字,筆者就曾被點名回答題目。有時老師的穿著頗為正式,下課時如果問老師問題,他會不耐其煩的細心講解。作業通常是先在上課時宣佈,其後再公佈於課程網頁上。他偶而會在上課時突擊小考。

他曾說資工有很多課會消失於時代的演進之中,但這堂課是歷久不衰的。

好像是因為有同學懷疑課本的文法,所以老師有一次和我們談談學習英文的重要性,還跟我們說學校的圖書館有 iPad 可以出借,介紹了可以在其上使用的 Merriam-Webster 英英字典(有真人發音),以及 New York Times 等讀物。

順帶一提,筆者也有用過《Longman Dictionary of Contemporary English》以及《Collins COBUILD Advanced Learner’s English Dictionary》,這三者都是非常優秀的英英字典,除了紙本外也都附有 PC 版光碟。關於英英字典也可參考:〈辭典選用的基本觀念〉〈哪本辭典的定義最好?〉

考試作業

這堂課的負擔其實沒有很重,通常是數個禮拜老師才會在上課時宣佈習題。習題內容為課本的練習題,每次都只有一兩題,很快就會寫完,有時老師也會自己出題。

基本上是不點名,只有一次發了問卷調查作為點名,不過因為上課時有突擊小考,加上作業都在上課先宣佈的關係,建議還是不要蹺課比較好。

突擊小考的內容多半是剛剛才講過的內容,所以上課專心能有回報。考題不難,通常只有一題,若對課本有一定的熟悉度,應能很快寫完。

除此之外,還有期中考和期末考。老師會在事前公佈考古題,從考古題看來,以前的考試型態似乎有不少證明題。不過這次的期中考意外的沒出證明題,而且題型偏向簡單,多數人都考的不錯。期末考出了幾題證明,不過也滿基本的,考古題感覺難很多。

考試題型分別為是非題、選擇題,及最後的簡答、計算與證明題。所有的考試都是 open book,可以自由查閱課本、講義,或任何自帶紙本參考資料。也因此考的題目都會有變化,不會跟考古題一樣。

結語

這門課使用的課本其實內容不多,而且由於較為理論與數學,可以邊看邊思考,閱讀起來並不枯燥,筆者暑假時利用通勤的時間,把課本看完了一遍,覺得幫助頗大。《Intro. to the Theory of Computation》這本書真的寫得不錯,算是在資工教科書中,十分易讀的課本之一。

由於老師出的練習題實在太少,令人感覺不踏實,所以筆者也將課本裡附有答案的習題寫過了一遍。老師並不會出一些刁難的問題,基本上只要細讀課本與講義,考試和作業應該都能把握。

資料庫系統概論 – 交大修課心得

computer

課程資料

資料庫系統概論

開課:梁婷老師

修課年度:100資工系

這學期因為 project 在期末考前一個月就要交了,所以課程也變更了一下順序。

期中考範圍:

  • Databases and Database Management Systems - 資料庫系統簡介,包含其和傳統儲存方式相比的優點
  • ER and EER Model - 使用圖像方式協助設計資料模型
  • Relational Model
  • Relation Schema Design and Functional Dependencies - 怎樣的資料表格設計才是好的設計?
  • Relational Design Algorithms and Further Dependencies

上半學期主要教我們如何將想儲存的資料,設計成適當的格式以儲存於資料庫之中。好讓我們可以開始設計專題的資料庫。後期就比較注重於資料庫系統背後的原理與架構了。

期末考範圍:

  • SQL - 一種標準化存取資料庫的語言
  • Relational Algebra - 關聯式資料庫數學理論
  • Disk File
  • File Structure - 資料庫系統檔案儲存的實做方式
  • Transactions
  • Concurrency
  • Recovery - 資料庫系統如何從當機中復原,保證資料狀態的正確性?
  • Query Optimization

使用的課本是《Database System: Models, Languages, Design, and Application Programming》,美國版書名是《Fundamentals of Database Systems》。選擇此書的原因是因為,老師覺得這本比起《Database System Concepts》容易理解。個人也稍微看過《DSC》那本,我也覺得《DSMLDAP》是比較好理解的。

不過由於老師上課投影片結合多家書籍內容,而其中許多採用的定義其實跟課本不太一樣。像是 primary index, cluster index 的定義等等,都與所使用教科書不同,需多加注意。而像是 extendible hashinglinear hashing 的操作,也和課本細節有些微不同, 考試可能會出現。

上課方式

用投影片教學。老師曾說每個讀資工系的人都有個夢想是創造自己的程式語言。她也曾想過。老師很希望有人問她問題,害羞的話寄電子郵件也無妨。

評分方式

評分如下:

  • 小考成績 15%
  • 期中考成績 30%
  • 期末考成績 30%
  • project 35% (proposal 20% demo 80%)

總分 110 分,所以就沒有調分了,最後平均約 72.5,大概有 1/6 的同學 90 以上。

小考方面總共有 7 次,有時會事先通知要小考,有時不會。7 次中,取三次高分採記。由於似乎也剛好有三次小考是有交的就直接算 100 分,所以算是點名性質,也因此不會另外每次點名。

小考可以 open book,也可和同學討論。期中期末都是 close book,這點跟去年不太一樣。

Project 的部份是1~2個人一組,以網頁界面實做一個資料庫應用程式。像是訂書系統、選課系統等等。期目自訂,一開始要先交一個 proposal,設計資料庫 schema 等等。接著再去 demo,並交一份介紹投影片。demo 感覺只要沒有什麼 bug,分數就不錯。排版應該不太佔分。

程式語言不限定,一般是用 PHP。不過特別規定不能使用一些太強大的資料庫套裝功能,而要自己直接用SQL操作。我們這組採用的是 Python 配合 Django,當然就不能使用裡頭的 models 了。

原始碼可以在 github 上觀看:animedbs。真的做了好久,簡直是心血結晶!

設計 SQL 時使用了 MySQL Workbench,感覺幫助良多。

結語

基礎方面,理論的部份還好。實做 project 的話,有些相關經驗會有幫助。我覺得這堂課修起來最辛苦的地方有兩個,首先是 project,似乎是一開始的 proposal 不小心把資料庫設計的太複雜,所以花了很久的時間才實做完成。尤其這學期我剛好修了不少實做課,所以感覺力不從心。不過可以使用任意語言這點滿令人高興的,一直想學 Django ,這次終於有機會使用。

另外一個辛苦的地方大概是定義不清的問題吧,因為投影片採用各家書籍,有時會出現不同定義,例如 natural join, equi-join,老師是說使用哪種定義都可以。不過也有一些是投影片只有一種講法,但和課本不同的情形。也有遇到公佈的小考解答解法跟老師教的其實不太一樣。助教表示僅供參考。另外就是 B+ tree 要怎麼刪除資料,課本沒有寫出詳細演算法,可能也得細心多看才能理解。這些小問題需要多加注意,所以有時滿困擾的。

平常這堂課都會有一些不同年級的同學來修。這學期應該是因為跟專題(一)衝堂,所以修課人數非常少,只有四十幾個人,相比起來是溫馨的小班教學。

辛苦的一學期終於結束了,覺得很開心。

嵌入式系統設計概論與實作 – 交大修課心得

digital-camera

課程資料

嵌入式系統設計概論與實作

開課:曹孝櫟老師

修課年度:100資工系

上課時針對嵌入式系統各方面探討,包含 bootloader 原理,OS,硬體,開發,業界情況,一些嵌入式作業系統、開發工具。實驗用的板子是是 ARM 平台,並常使用 linux 系統,所以也會提到這部份的課題。在 OCW 網站上有影音可看:〈嵌入式系統設計概論與實作〉

實驗部份主要是利用 PCM7230 板子做實驗,包含燒錄開機程式和作業系統等等。最後的實驗和專題則是在 Openmoko 手機平台上進行,不過老師說每年不一定一樣。

老師上課時有提到一本教科書《Real-Time Concepts for Embedded Systems》,內容主要是嵌入式系統實做的一些概念。如果要跟實驗比較相關的話,推薦《Building Embedded Linux Systems》,尤其對實驗 1 非常有幫助。

上課方式

上課主要是使用投影片上課。老師非常能言善道,有時一張投影片就可以講一節課。說話速度很快,內容也很有趣,有時會有一些經驗談。雖然因為不點名,而且上課內容跟實驗內容也沒有絕對關係,加上又不考試,所以後期學生較少。然而其實是很值得一聽的。

實驗的方面是以兩人為一組,每組會發一份板子等實驗用具。要自己找時間去做,然後在星期三晚上去 demo。由於一開始的實驗需要用到 RS232parallel port,但是最近的電腦很少支援,所以也有額外開放時間讓同學到實驗教室使用電腦。

評分方式

沒有期中期末考和小考,所有評分就由 8 次 lab 和最後的期末 project 決定

  • Labs 80%
  • Final Project 20%

有時候lab會有額外的 bonus 可以做,不過最後lab評分似乎是看大家做的情形來決定分數,所以如果大部分的人都有做 bonus 的話,就得做完所有 bonus 才能得到滿分。本學期課程中僅有 lab 3 的 bonus 可以讓分數超過該次實驗的滿分。

考試作業

每次實驗都需繳交報告,有時也得繳交原始碼。期末專題的部份,需繳交 proposal, slides, report,最後以簡報方式介紹自己的專題,並實際 demo。

一開始的實驗因為剛在熟悉環境所以每兩個星期交一次,後來的實驗就是每星期一次了。Lab 主題如下:

Lab 1 - Environment Setup/System Installation/Hello World

在 PC 上建立 PCM7230 平台的 toolchain,包含 gcc cross compiler, 編譯 glibc,以及燒錄開機程式, linux kernel,檔案系統等等。並執行 hello world 程式。

Bonus:

  • 撰寫 echo 程式透過 RS232 和 host 溝通。
  • 設定開機時自動執行程式。

Lab 2 - Bootloader

重新編譯 Intrinsyc i-boot-lite bootloader,加上自訂訊息,以及新增多重開機功能。實際燒錄至板子上。

Bonus: 研究 bootloader 的組語程式碼,並加上註解說明程式流程。

Lab 3 - Non-OS Embedded Application

移除 iboot bootloader 中的不必要功能,縮減大小。新增檔案加密功能,可以加密放置在 CompactFlash Card 上的檔案。

Bonus:

  • 在 CF Card 插入時自動加密其上特定或所有檔案。
  • UBoot bootloader 移植到 PCM7230 平台上。
  • 修改 UBoot,使其可以有監聽網路封包的功能。

Lab 4 - Windows CE

透過 Windows CE .NET Platform Builder 4.2 編譯並安裝 Windows CE 至板子上,透過 eMbedded Visual C++ 4.0 撰寫 hello world 程式至板子上。

Bonus:

  • 縮減 WinCE 作業系統大小。
  • 開機時自動執行 hello world。

Lab 5 - Linux Kernel and Root Filesystem

重新編譯 Linux 核心,並修改檔案系統,安裝 bash ,設定開機時自動執行程式。

Bonus: 透過各種方法縮減核心大小。

Lab 6 - Interrupt Tracing and Simple Device Driver Programming

在 linux 核心中插入訊息,觀察中斷發生流程。編譯範例驅動程式,觀察滑鼠移動時的印出訊息。

Lab 7 - Network Packet Tracing

修改 linux 核心以及 /proc 檔案系統,實做簡易網路封包監聽功能。

Lab 8 - Burning U-boot/Kernel/Root Filesystem for Openmoko

利用 Openmoko 官方提供的工具燒錄 bootloader / kernel / root filesystemNeo FreeRunner 手機上,然後執行範例程式,觀察重力加速器的數值。

Final Project

利用 Openmoko 手機平台,配合至少一種感應器,實做創意專題。也提供材料費可以購買外裝感應器。

結語

自己覺得整個課程最難的地方其實是第一個實驗,要安裝 linux 作業系統(也可安裝在 Virtual machine 上),而且因為要建立的 toolchain 平台是非常古老的版本,所以常會有奇妙的相容性必須解決,或者得使用非常古老的 linux 作業系統,途中常常要自己 Google 才能找到答案。

由於 RS232 的接頭實在太難找,但一開始沒有開放電腦教室,我們還曾去順發購買線材,從主機板上剛好有的 RS232 接頭接出來。(如果主機板完全沒有 RS232 的話,想買 RS232 卡會非常貴,不切實際)

後期的實驗大致上只要照著實驗講義做就不會有問題,如果有問題,通常是硬體有問體。(確實也曾遇到不少次硬體問題)不過在做 WinCE 實驗時,會有一些軟體似乎要在 Windows XP 上才能跑。(或者也可能是 32-bit / 64-bit 等問題)所以感覺修這堂課也重灌了很多次作業系統 (笑)

整體來說嵌入式其實不像之前學長們說得那麼辛苦,至少跟這學期的編譯器和人工智慧比起來似乎輕鬆不少,這學期也要感謝組員的幫忙所以才那麼順利。