四上修課心得

邁入大學部的最後一年了~升上大四之後選課的學分門檻從 15 學分下降到 9 學分,而我這學期選了 12 學分,下面簡單分享一下我這學期修的課。

必修

資訊工程專題(二)- 林盈達

就是專題 XD,沒什麼好介紹的,大部分的人都是大三下修專題一、大四上修專題二,我當然也不例外,然後專題二通常就是接續專題一做的內容繼續精進。我們這組專題一在研究 SQL injection 原理還有現有的攻擊跟防禦工具(sqlmapModSecurity 等),原本計畫要讀 sqlmap 的 source code,然後嘗試修改、加強它的功能,但是後來卡關,真的不知道怎麼切入,畢竟需要長時間的經驗累積才有辦法深入 SQL injection 這個領域,而且 sqlmap 這個工具對我們來說已經寫得很完整了,所以專題二的時候就臨時改題目,換成幫 sqlmap 寫一個圖形化使用者介面,我們的圖形化介面是以網頁的方式呈現,用 jQuery 去跟 RESTful API 溝通、跑指令,圖形化介面的原始碼放在這邊

選修

機器學習 - 洪瑞鴻、邱維辰

  • Prerequisite:
    • Calculus, Probability, Statistics, Linear Algebra, Introduction of Machine learning or equivelent
  • Course descriptions and objectives:
    • To build big picture on machine learning field and equip with the ability of implementation machine learning techniques. This course will introduce the theory behind the techniques, so a great deal of time will spend on the mathematics foundation.
    • To understand the properties of different learning algorithms and learn how to use, when to use, which to use, under different scenarios.

課程綱要連結

介紹

這是一堂研究所開的課,主要在講各種機器學習模型背後的數學原理,期中考前是洪瑞鴻老師上課,期中考後換成邱維辰老師,洪老師主要在講 Bayesian 相關的機器學習方法,而且很注重數學公式的推導,建議大家上完課要自己把公式導一遍,除了能夠徹底了解原理外,對於寫作業或是考試也都有很大的幫助,老師上課以板書為主(他用寫在 IPad 上面然後接到投影機),__需要抄筆記__,因為筆記會打分數;邱老師的上課方式就比較一般,放投影片講解,不過相較於洪老師,他的講課步調真的很快,講課內容一樣有公式推導,但是不會講得很細,感覺起來就是給學生一個 whole picture,然後投影片裡面不時就會出現一堆梗圖,不然就是什麼「這連我阿嬤都會」之類的話。

作業 (GitHub)

一共七次作業,洪老師有四次,邱老師三次,都是實作上課教過的東西,洪老師不會特別禁止使用套件,不過還是會建議大家可以全部自己寫,然後要去找助教 demo 作業;邱老師的作業會禁止使用一些現成的機器學習套件(scikit-learn),除了上傳程式碼之外還要交報告,__報告要用英文寫__,內容就是解釋你的程式在寫什麼東西,然後附上一些執行結果,還有你的觀察跟想法。

成績

洪老師的作業成績(包含筆記)只有三種分數,60、80、100,主要只是看學生對於作業以及上課內容了不了解,筆記的部分如果只是把老師上課寫的完全照抄就 60 或 80 分,有整理過才會 100,然後老師期中考有給 sampler,把 sampler 上的題目都搞懂期中考至少會有基本分數;邱老師的作業分數就是 0 到 100,作業認真寫的話要 90 分以上應該都不難。總之這門課就是作業好好寫,考試盡量寫,至於學期成績的部分不用太擔心(?),兩位老師都很佛心,我的原始分數是 84,調分之後變 94,給大家參考一下。

難易度 ★★★★☆

畢竟是研究所的課,本來就不會太簡單,但因為現在機器學習很熱門,很容易就能從網路上取得各種學習資源,整體下來不算太困難,有大學的數學基礎(微積分、機率)然後肯多花點時間也是應付得來的。

推薦程度 ★★★★★

就是好課,推薦給願意花時間而且對機器學習有興趣的人(平均下來我每天大概花三到四小時在這門課上)。

計算機系統管理 - 曾亮齊、王則涵

  • Prerequisite:
    • 基礎程式設計能力、計算機概論、計算機網路概論
  • Course descriptions and objectives:
    • 本課程將從理論面及實務面教授管理計算機系統所需的知識及技能,主要的教學目標是讓學生在完成本課程後,能具有管理伺服器的各類技術,並了解相關的系統理論。
    • 除了基礎的伺服器架設、維護以及各類指令之使用方式,我們將著重於各項服務的實際部署與維護,從單一伺服器的操作至多伺服器的協同作業。
    • 藉由實際的操作,讓學生們能夠在修完課後,能學習到系統管理的基礎技能及了解未來可能面臨的問題。
    • 為了讓學生們能學以致用,並在實際環境中驗證所學,在課程教授上,將以本系計算機中心普遍使用的 FreeBSD 作業系統為主要的教學平台。

課程綱要連結

介紹

第一堂課老師就一直強調「這堂的 loading 大概是三堂資工系主科的份量」,然後一直勸退幹嘛幹嘛的,不過我實際修起來感覺頂多兩堂課的份量,上課方式很普通,就是照投影片講而已,偶爾補充一些投影片外的東西,主要就是作業有點多。課程內容大致上就是教你如何管理系統(這堂課以 FreeBSD 作為教學平台),涵蓋的範圍很廣,從系統的安裝、開機與設定,本身的各項服務、操作指令,到架設與維護伺服器都有。

作業 (GitHub)

一共五次作業,大部份都可以從講義上找到參考資源,

  • 第一次作業就只是請你把系統裝好然後環境設定好,雖然不難但是很重要,如果沒弄好的話後面作業也不用寫了。
  • 第二次是練習 shell script,用 shell script 寫一個簡單的系統資訊查詢圖形化介面,可以查看 CPU 使用量、記憶體使用量、網路介面卡的資訊,還有檔案總管的功能,這個作業應該是希望學生熟悉 shell script,還有一些方便的指令(e.g. awk, grep, sort…)。
  • 第三次作業就是建立 FTP 伺服器,然後用 ZFS 檔案系統去做備份跟還原。
  • 第四次作業要用 NGINX 跟 PHP-FPM 建立 web server,主要有三個部分,支援 HTTP 與 HTTPS;用 MySQL 建立一個雲端儲存空間(Nextcloud);實作 WebSocket。
  • 第五次也就是最後一次作業,要設定 NIS client 與 NFS client 去連助教的伺服器,還有架設 NFS server 讓別人可以連到自己的設備;外加防火牆設定,以及登入失敗鎖 IP 的功能。

成績

五次作業(70%)還有期中期末考(各 15%),考試都是開書考,我兩次都只有帶考古題進考試而已,講義太多了不想印,而且期中跟期末基本上有七成都是考古題,只要考前願意花點時間把每題考古都弄懂,要及格一定不難,只是想要拿高分還是得花點力氣。

難易度 ★★★★☆

說實在我覺得這堂課沒有很難,但是__作業真的很花時間__,上面有提到作業都可以從講義裡面找到相關資源(現成可用的程式碼),不過作業要實作的功能通常都遠多於講義上面有提到的,所以需要一直上網查資料,還有嘗試各種設定(不過如果你對於這些工具或是設定很熟悉的話,作業應該不會花太多時間),這邊建議大家沒錢買 VMware 的話乾脆直接用 VirtualBoxVMware Player 雖然不用錢但是沒有 snapshot 的功能,VirtualBox 免費又有 snapshot,因為後面幾次作業我常常弄設定檔弄一弄就不能開機,與其在那邊上網查怎麼解決不能開機的問題,我覺得直接 rollback 會快很多。

推薦程度 ★★★☆☆

真的對系統管理有興趣(而且還要有時間)再來修,作業之間間隔半個到一個月,每個作業我大概都花一個禮拜的時間寫,作業滿分 120 到 130,我大概都拿 90% 到 95%。

生命科學 - 陳文亮、李曉青

  • Prerequisite:
    • 介紹基礎生命科學給無生物背景修課同學,藉由現代生物學科入門的課程設計,使生物學與其他科學有更多互動與交流的可能。
  • Course descriptions and objectives:
    • 以現代生物學觀點說明細胞結構、遺傳學、基因調控方式、生命起源、發育及生理等生物學基礎知識,並介紹現代生物技術原理,使學生對於生命科學由細胞發育至個體有充分之了解。
    • 與同學分享現代生物科技所引發的問題。例如:毒牛奶事件成因、反式脂肪為何對健康有害、癌症會不會傳染、昂貴的膠原蛋白保養品到底有沒有功用、酒癮或藥癮的成因、花心基因如何決定雄性外遇行為、如何鑑定親子血緣等等有趣的生物問題。
    • 介紹現代生技產業現況。

課程綱要連結

介紹

這堂課是生科系的老師開給一般生(非本系生)的通識課,不需要什麼生物基礎,而且期中、期末考都有題庫可以背,真的聽不懂上課內容至少還可以把題目背一背拿點分數。期中考前是李曉青老師上課,期中考後換成陳文亮老師,李老師的上課方式就是放投影片然後講解,投影片裡面會參雜題庫的題目,所以盡量還是不要翹課,不想聽課去聽題庫答案也好,另外李老師偶爾也會分享一些生科相關的小故事;陳老師則是以板書為主,會給投影片但就是參考用,上課幽默很有活力,然後板書寫一寫會直接跟大家說「這個會考,睡覺的趕快起來拍照」。

作業

沒有作業。

成績

主要就兩次考試(各佔 30%)還有平時成績(40%),李老師的部分上課舉手回答問題可以加分;陳老師也是,不過後來幾乎都是老師自己寫幾個選項給全班舉手投票,選對的就可以加分(可能是因為大家都不想舉手回答問題),另外提早進教室也可以加分。

難易度 ★★☆☆☆

因為我之前有修過生科系的普通生物學,所以我自己是覺得不會很難,雖然上課內容涵蓋的主題很多,但是都不會講很深。

推薦程度 ★★★★☆

我覺得不管是對於想了解生物但沒有基礎的人,或是單純想要分數的人,都很適合上課堂課。

歷史的轉捩點 - 劉河北

  • Course descriptions and objectives:
    • 從西元前五世紀的波希戰爭至當代世界的網路革命,內含中外歷史的重要變遷及關鍵發展,依時間先後簡略介紹及敘述此關鍵點對後代世界的影響。

課程綱要連結

介紹

我是因為需要通識學分才修這堂課的(˘・з・),上課方式就是放投影片說故事這樣,老師偶爾會放一些歷史影片。

作業

一個期末報告,老師會出六道題目,學生挑其中四題作就好,都是問答題,可以參考網路資源或是老師給的講義與投影片回答,不過老師特別強調回答問題的時候要包含自己對於該歷史的觀點。

成績

平時成績 50%(含課堂參與 20%、報告 30%)、期末考 50%,課堂參與其實就是點名而已,期末考的題目會從期末報告的那六題挑三題出來考,所以建議大家除了自己挑的那四題,另外兩題也練習回答一下比較好,不然到時候考試出出來不會寫就尷尬了。

難易度 ★★★☆☆

報告不要亂寫應該都有 80 分,考試的話就盡量寫(報告如果是自己寫的話考試應該不會太困難)。

推薦程度 ★★★☆☆

我自己很討厭歷史,但是因為要畢業只好選一堂歷史修。