在交大資工的心得

生活

對於交大的第一印象其實是南友會在我家鄉辦的迎新活動,雖然短短的時間難以和大家混熟,但後來我還是慢慢交到了好朋友,大一時也老是丟訊息詢問會裡的學長問題。除了此類社團以外,系上也會在北中南舉辦茶會,是一開始見到大家的機會。

記得新生座談時有人曾說,來到交大校園就好像在山中修行一樣。從市區到達交大確實需經過一段路程,但交大本身其實還算平整。如果用走的想要到光復路的話,可以從校門的大學路走,不過大太陽時這段路程有點炎熱。另外的走法是穿越游泳池附近的交清小徑,從清大走出去,不少人喜歡這種走法。當然,你也可以坐公車,或免費的園區巡迴巴士等等。

清大很近,平常可以去那裡修課,甚至參加某些清大的社團。不過如果沒有足夠的動力的話,這樣的距離還是會誘發人的懶散。

從交大要到台北通常可以坐客運,在校內的便利商店可以買到目前 100 元的優惠票,由於高鐵站離交大有一段距離,加上班次較少,如果時間抓得不準,坐高鐵到台北也不見得有比客運快呢。如果像我一樣要回台南的話也有客運可坐,平常優惠時段也相當便宜,或者可以坐公車到火車站。

交大裡有泳池,也有相當高級的健身房,認識不少朋友都是那裡的常客。自己比較常去操場晨跑,或者是偶爾和朋友打羽球等等。

英語

我對社團活動並不是很熱衷,然而我很喜歡學校裡的英語活動。學校有舉辦外語圓桌,可以和老師同學一起進行英語會話練習,除了英語外也有日語、韓語、法語等等多種語言。除此之外,外文系也有舉辦英語午餐時間,和大家一起玩遊戲、對話,吃免費午餐。

圖書館底下的自習中心有不少的英文小說可以閱讀,不過我自己還是比較喜歡直接從圖書館借回來。那邊也有不少英文視聽材料,但也能自己從宿舍直接上網聽空英等英文節目,也有雜誌的電子資源可以閱讀。學校也有寫作諮詢可以請幫你看看英文的寫法。

資工的很多教科書是以英文為主,但其實多數的用語十分簡單,比起詞藻華美的小說容易多了。多看了以後,慢慢習慣相關詞彙,就會愈來愈順了。由於網路上很多資工相關資料都是英文寫成,所以英文閱讀能為自己打開很大的一扇窗,最好的學習法大概是直接去看你想看的文件資料,然後用查字典的方式想辦法看懂吧,這樣就有直接的動機(想看懂它)來學英文了。

朋友中也有人對英語特別有興趣所以修了英語學程,真的好佩服呢。

圖書館

交大的浩然圖書館是個很值得關注的地方,由於館內的座位數非常的多,如果不是考試期間幾乎都有地方可以看書,我還曾寫過〈交大浩然圖書館之非官方導引〉。很多書幾乎都找的到,尤其如果要找資工的原文書這裡真的是個大寶庫。就算交大沒有想找的書也可以透過台聯大系統從友校調書來交大,非常方便。如果還是沒有,還能向浩然推薦書籍,尤其如果是學術書籍通常都會接受推薦。

我很喜歡英文書的資源,在這裡看了好多題材,像是小說、程式設計、心理學、其他科普等等,好多都是我在高中時代幾乎難以借閱的。除了一般的自習與借閱圖書外,在樓下還可以借到 DVD,一些熱門的電影或影集都可以找的到。我偶爾也會借一些回來觀賞。

清大的新圖書館,看起來十分高級,憑交大學生證一樣可以自由進出。兩間圖書館加起來,在這裡唸書的空間絕對是非常充足。早年我去圖書館的時候偶爾就會遇見同學,打個招呼也讓人覺得愉快。只是後來見到的機會就慢慢變少了,大概是大家慢慢偏好回到寢室吧。(其實我好像也有這種傾向。)不過說真的,到圖書館還是比較容易專心,我總是盡可能的鼓勵自己來圖書館唸書。

程式設計

系上剛開始會有程式課程課程帶領大家入門,但如果要真正熟習的話還是要自己花時間練習。當然我自己覺得最好的練習方法就是程式解題,除了自己鑽研以外,學校也有 PCCA 社團提供教學與訓練,雖然說我在交大時他的主軸是培訓與選拔程式校隊成員,不過平常去問問問題,練習題目(順便吃個免費晚餐)應該也是可以的。如果有興趣鑽研的話,PCCA 會提供經費與獎金讓你有出國比賽的機會,這類程式比賽對未來的推甄或找工作應該都會加分不少。

交大資工的同學都有系上工作站的帳號,除了可以方便在各處用 putty、ssh 連上寫程式以外,上面每隔幾小時的備份機制有時也會在危機時刻發揮作用。我常常使用這個服務,讓我可以在系計中或其他教室用電腦時輕易的得到像是 git 版本控制等功能,還有另外一個我常用的功能是 screen/tmux,可以讓我保留許多視窗未來連上時繼續使用。因為工作站久久才重開一次,所以平常時間都可以保留工作視窗。

課業

如果要我說在交大資工決定課業表現的最重要因素是什麼,我想應該是認真吧。在高中時代,每個人都花上好多時間研讀課業,不斷受到外在的壓力與期待所激勵。可是在大學不是這樣,時間的運用與讀書的方式往往是自己決定的,所以妳常發現每個人花在同一堂課的時間與心力可以有莫大的差距。時間久了以後,這樣的差距無可避免的將在成績上表現出來。

還記得曾看見同學即使到了大三,就算老師沒有派作業,還是會慢慢演算課本的習題當作練習,也有人在修課前一個學期,就拿著教科書自修。這些人對我的激勵真的很大。

交大資工系上的課,主要的評分方式常是紙本的考試,出題方向有數學計算、演算法執行,也有概念理解、名詞解釋等等。有一些課會有程式作業,少數有上機的程式考試。有些期末程式專題的規模比較大,甚至會在寒暑假第一周還繼續實作才完成。也有一些課有紙本或口頭報告,不過整體而言佔分較少。

這種評分方式使得多半的課都是一分耕耘一分收獲,只要達成全部的要求,老師也不吝於給 99、甚至 100 的高分。當然,如果沒有完成要求,自然分數也拿不到。然而多數老師會根據全班平均做調分,所以還是能拿到不錯的分數。

交大資工有個特別的地方,因為學生人數眾多,必修課常會有不同老師開班,因為並沒有嚴格統一的課程要求,所以每個老師的風格都略有差異:有的會注重實作能力,有的會比較偏向考試。所以學生常有機會選擇適合自己的老師。除此之外,系上有個考古題系統,同學也常會在上面分享往年的作業與考題。

有時你會聽同學說所謂很涼的課和很甜的課,很甜的課就是可以拿到很高分的課,很涼的課則是就算整學期都沒做什麼事,也可以拿到還可以的分數。對我個人個人而言軍訓大概算是涼課的代表吧,是我收穫最少的課,也常常是我每學期最低分的課程。如果你需要靠獎學金度日的話,或許可以考慮不要修軍訓。

四年來,我每學期的學分漸漸變少,但是課業壓力反而漸漸變大,這主要是因為程式作業以及專題的影響。如果有機會重來的話,我應該會在大一時先修一點後來的課,盡可能把實作課平均分配。

修課心得

分享

說到考古題,如果你的人脈廣闊的話,或許也有機會從學長姊那裡拿到私下流傳的檔案,甚至是作業習題的參考,或者是來到系計中直接教你等等。也不知道曾在哪聽過「與其自己成為大神,不如有個忠心的大神陪在身邊。」這種說法。可惜我認識的人比較少,加上有點害羞,常常不太敢麻煩人家,所以什麼事都要自己來。也因為這樣,有段時期我非常信仰完全公開的想法,覺得私下流傳的東西實在太不公平了,應該要把考古題都公佈在網站上才是。

我想會寫這些文章多少也帶有同樣的原因吧,或許在那裡,也有不少害羞的人,不知道要去哪裡尋求協助,如果這個網誌能多少幫到這些人就好了。如果你手上也有那些能幫助人的資料,也請不吝於分享。(至於不知道課業上的問題要問誰才好的同學,千萬別忘了有兩種人其實殷切期盼你向他們詢問呢,那就是老師,還有助教。)

結語

回想起在交大日子,我真的幾乎把大部分的時間都貢獻給課業、程式還有閱讀了。其實有一些面向是我沒有深入體驗的,像是社團、系學會的運作、或者是運動類的系校隊等等。

確實,任何的觀察與心得,難免會沾上一點偏頗與一廂情願的解釋。人所能經歷事物畢竟太少,一個到遠方旅遊的人如果碰巧都遇到十分溫暖的人,或許會倉促做下該國人民都很溫暖的結論,而如果他碰巧都遇見冷漠的人,或許就會覺得該國很冷漠了。然而就像連續投擲硬幣數千次時偶爾碰見連續十次正面也不奇怪,這種機運與巧合的會面實在難以描述一地真正的性質。

可是即使詳盡的調查訪談與統計,我們所看見的依舊模糊,說人們平均戴 0.5 個眼鏡或許對個人而言沒有什麼意義,畢竟妳眼前的人要嘛是戴一個眼鏡,要嘛就是沒有戴。當妳走進一個地方,妳所見到的絕對不會是「平均值」,也不會是像量子疊加一樣同時經歷所有的一切可能,而是各種機運巧合與你自己本身交互作用所產生的唯一結果。

我在交大資工的日子,也是這樣獨特與片段的故事。有開心也有難過,有困難也有成就。關於這篇心得的背景故事,可參考:〈大學回顧〉,這真的是一段很充實的時光,相信未來的我會不時想念。

附錄:讀書效率的心得

有關讀書效率的心得其實我之前也寫了不少,像是〈跟學習有關的書籍介紹〉〈反思(1)-讀書方法論〉

在這裡我就以學校生活為角度再次概括的整理討論。

記憶原則

意義

一段沒有意義的數字或公式非常難以記住,但如果是要記住有意義的文字就比較輕鬆。賦予文字意義的方法有兩種,當要背誦的東西本來就沒有意義時,可以用類似記憶術中的聯想諧音來創造意義。在其他的情形裡則可以透過建立適當的背景知識來加強材料對你的意義。像是推導並理解每一個公式、了解理論背後的來歷與用途、或大量閱讀相關書籍等等。

在資工系裡有時會遇到一些名詞解釋的考題,若是直接背誦雖然可以應付考試但過程或許不怎麼輕鬆。我建議還是要將課本完整讀過並理解,最後再來背這些解釋,則自然水到渠成。

專注

如果不專心的話,即使讀再久的書也無濟於事。尤其對於資工的學生而言,如果一邊唸書一邊上網則效率極可能會大幅下降。目前的網路形式是一個會不斷奪取注意力並使人分心的存在,或許妳也注意到人們在網路上比較不願意也沒有能力閱讀太過長的文章。筆者認為若是要專心唸書時,到圖書館唸書仍是最佳選擇。

切割

人的專心力有限,比起連續研讀十個小時,不如每天讀一個小時讀十天。有些人可能會覺得切割太久會造成遺忘的現象,但事實上所有的努力與累積都不會白費的。從一些研究中我們發現,即使你想不起十天前背的東西,但妳再背一次時速度會快很多,而且隨著重複次數愈多,妳再次學習所花的時間就愈短。

大學的上課進度如此之快,若是妳想要在考前一次讀完根本不可能。但是如果妳之前早已讀過數次,你在考前只需要花一點時間就能複習完所有材料並且擁有比試圖一次讀完的同學更高的理解與熟悉度。

回饋

比起連續背誦一個小時,先背十分鐘,再自己考自己十分鐘,如此重複至一個小時,記憶效率可能較佳。

組織

系統化的背誦比起無系統的好。

聯想

把材料聯想在一起有助記憶。

觀想

人們特別擅長記憶圖像。

重複

一般而言重複愈多次記的愈清楚。

情境

如果你在跟記住東西時處於同樣的環境,你會比較容易回憶出來。這也就是說在考試舉行的地方唸書對於考試時的回想是有幫助的。

興趣

人只會記住有興趣的東西。盡可能的調整讀書的步調,不要讓自己失去興趣。

運動

雖然一般人可能沒有特別注意,然而適當地運動其實是可以加強認知能力的。(或者應該說都不運動認知能力會下降)即使只是每天花一點時間散步也會有效果。

我自己其實比較沒有運動的習慣,所以常常要想辦法鼓勵自己運動。高中年代幾乎每天都要騎腳踏車去離我家有點遠的學校,但大學時活動的機會就較少。

我曾試過在早上晨跑,一開始志向遠大,跑很多圈,不過後來難以為繼,最後發現如果每天都只跑個數圈,僅是維持運動量,反而能讓自己持續下去。也曾試過一週一次和朋友約好打羽球。大抵上我覺得和朋友立下約定是個不錯的機制,可以克服懶散,也能讓運動時的樂趣增加。或許讀者也可以試試晚上跟同學散步聊天吧。

在交大,學生有機會使用設備良好的健身中心以及游泳池,筆者有不少同學是那裡的常客。不過我自己並不常使用就是了,或許是因為覺得人太多很怕羞吧。

雖然這有點違反常人的直覺,但在一些研究中,我們發現增加一週體育課的次數,可以提高學校同學的平均成績。說起來保持健康的身體狀態能讓你精神充沛並更有能力學習這件事應該可以理解。另外一個額外的好處是適當的運動有助於保持心情愉快,並減少憂鬱的情形。

作息

事實上從許多學術研究中我們早已知道充足的睡眠和學業表現和心智能力的測驗結果有很大的相關,也有一些跡象顯示睡眠在創造性思考過程中佔有重要地位。(妳是否也聽過想不出答案的難題在睡完一覺後豁然開朗的故事呢?)

充足的睡眠確實至關重要,從筆者的經驗來說,睡飽的時候上課很少會想打瞌睡,即使覺得無聊也會以胡亂想或自己看書來度過時間,可一旦前晚沒有睡好,即使是平常能專心的課都能讓我眼皮沈重,難以聽講。不只是學習成效而已,剝奪睡眠更可能使考試時的速度與準確度都顯著下降。

所謂的充足不見得每個人都相同,事實上有非常少數的人可以每天睡相當少的時數而仍保精神飽滿,能夠睡到自然醒並且一天長保元氣可認為是一個不錯的指標。規律作息能夠確保每天容易入眠並讓身體充分休息,然而規律並不見得特指早睡早起,事實上有些證據顯示人會因基因或年齡的不同而呈現不同的作息型態,重點還是在於一致並充足的睡眠。

然而早睡早起的型態對於讀書而言確實有額外的好處,首先,由於大部份大學生的作息型態並不屬於早起的類型,所以早上起來的時候也比較少令人分心的事情會干擾妳。你在早上不會有機會找到人跟妳聊LINE,也不太可能有特別的活動可參加,如此一來讀書意願就會增加。而許多活動發生的晚間,由於已經很接近妳上床睡覺的時間,妳也自然比較少機會參加可能造成妳隔天疲累的活動。

其次,其實妳常常避免不掉一些早上開設的課程,而根本沒有課程會開在晚間十點以後。所以一個擁有早睡早起型態的人,他有精神的時間帶恰好也是上課的時間帶。

無奈的是即使知道如此,一個人能對其生理時鐘做的改變仍然相當有限。適當地堅持可以維持睡眠的規律,然而究竟是早睡早起或者晚睡晚起其實有很大部份是由生理決定。控制日曬的時間有點幫助,早晨盡量出外活動,而在下午避免陽光,可以稍微將睡眠時間往前調,但確實在目前的校園環境中,特別是高中以前,晚起型的學生特別容易產生睡眠債。

無論你是哪種睡眠型態的人,中午用餐後想午睡的傾向都是共通的。即使只是十到二十分鐘都好,打個小盹可以讓妳下午上課注意力較為集中。

有些人會在考試前熬夜長時讀書,這麼做有很多壞處。事實上在讀書總時間不變的情況下,將要讀的份量切割成數天逐漸讀完的效率較佳。原因至少有二,首先,人本來就難以長時維持專心,以至於不太可能連續專心讀書太久。其次,在考試前剝奪睡眠會顯著的降低認知能力,這樣去考試根本無法完全發揮真正的實力。

資工系上的課確實有不少作業,但只要提早開始撰寫,就不會像一般人說的那樣常常熬夜趕作業。筆者曾經有一段時間超修了許多要完成程式專題的課,以至於幾乎每天都在寫作業,連上課都用筆電趕作業。但即使在課業最重的這段時期,還是可以維持規律且充足的睡眠。

廣告

網路安全 – 交大修課心得

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 給老師都會得到熱心的回答。

評分方式

評分方式是:

  • 點名五次: 2×5 = 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-4~4-9, 5-2~5-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 要怎麼刪除資料,課本沒有寫出詳細演算法,可能也得細心多看才能理解。這些小問題需要多加注意,所以有時滿困擾的。

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

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