UIUC 交換心得 — 修課篇

2023-08-01

前言

這篇文章我會介紹我在 UIUC 這段期間修課的心得,我最後有拿到學分的有下面這些課,加起來共 12 學分:

下面一一介紹這些課程的內容與我的個人心得,結尾有總結的感想~

CS461 Computer Security I

課程網頁:https://courses.grainger.illinois.edu/ece422/sp2023/

這堂課介紹了一些基礎的電腦安全知識,包含四大主題:application security, web security, cryptography 和 network security ,每個主題都有相對應的 homework ,需要在助教提供的虛擬機環境操作,而期中期末各有一次紙筆測驗。

感想

因為之前有一些打 CTF 的經驗,因此這堂課的實作對我來說沒有很難,是花時間下去就可以完成的。其中 network security 的 lab 滿有趣的,是要求覆現知名駭客 Kevin Mitnick (最近去世了 R.I.P.) 的 The Mitnick attack ,其牽涉到 TCP 底層的一些知識,在臺灣沒有看過相關類型的題目,因此覺得滿好玩的。紙筆測驗的題目有些也是蠻有創意的,不會死板的考知識點,而是像是給情境,然後用一個個子問題引導你回答到最終的題目。

CS391 Independent Study

這堂課嚴格來說不算課,其實就是像臺灣的大學中常見的「專題研究」,選修時需要找教授並填表單申請。

因為我開學時就加入某位教授的實驗室跟著學長做研究,因此順理成章找了該教授當作的導師,研究內容也當然是實驗室專案的內容。

CS523 Advanced Operating Systems

課程網頁: https://cs523-uiuc.github.io/spring23/index.html

這堂課透過閱讀經典論文來瞭解系統各領域所關注的議題,課堂進行方式是以討論為主:一人會先報告論文,報告完之後老師會跟大家討論這篇論文的背景、內容與優缺點等等。期末前需要交一個專案,而在這之前也需要報告專案的提案與進度。

感想

我在臺灣沒有修過這種純論文報告與討論的課程,一開始的時候很不習慣,很怕講錯或者是講的不流暢,但我後來發現我也沒有比別人差到哪裡去,因此後來就比較能適應課堂的步調,而我的期末專案也是跟實驗室在做的專案一樣。整體來說這堂課滿有收穫的,瞭解到其實很多看似新穎的概念或想法其實都是從這些非常經典的論文演變而來,並在其之上順應不同的工作場景或者是優化原有的實作方法。

ENG398 Grainger Engr: Design Your Exc

這堂課是工程學院交換生的必修課,時長只有半學期,內容大概圍繞著學校和美國的文化,像是介紹學校附近的好玩的景點或是美國的節日等等,而老師是正在就讀碩士的 UIUC 學生,因此沒什麼距離感,老師本人也很漂亮 >< 。

感想

還記得第一週是分組玩 scavenger hunt , 概念類似尋寶遊戲。當時跟瑞典人和愛爾蘭人一組去找特定學校的建築物,根本聽不懂他們在講什麼 QQ。另一個超感動的記憶是某一週的課程是情人節特輯,所以老師發了很多不同的糖果讓我們投票決定哪個最好吃,最後課堂結束還送我們一盒巧克力,超愛老師!

valentine cocolate from the teacher <3

老師送的情人節巧克力 <3

題外話一:在朋友的聊天當中得知,似乎我們這個班級在三班之中是氣氛最糟糕的,有時候老師問完問題都沒人回答,超尷尬 QQ , 所以我有時候會幫忙回答一下,讓氣氛不要那麼僵(?

題外話二:這是我們老師被採訪的文章 https://grainger.illinois.edu/news/voices/54019

KIN104 Skating Activities

這堂課也只有半學期,主要內容涵蓋了一些基本的溜冰技巧像是 foward/backward swizzles, one-foot/two-foot glides, 到最後的 two-foot spin 等等。課程進行方式是由四位 student instructors 來帶,一開始會先複習之前的動作然後再教新的動作讓學生練習。期中期末各有一次團體的三分鐘表演,需要每組自己想 synchronization 的動作以及挑選適合的音樂。每個禮拜還有非常簡單的小測驗,期中期末也有一些心得要寫。

感想

這堂課是所有課裡面最喜歡的!! instructor 們非常非常非常的 nice ,如果有動作不會,可以直接叫她們示範給你看,然後幫你看你的動作正不正確。她們也都超厲害的,在期末的時候也有小表演一下,全場掌聲超級熱烈的~ 而我覺得我是之前有學過直排輪的關係,所以好像對溜冰掌握度還算不錯,但我似乎也是班上摔倒最多次的人,基本上每堂課必摔。但我真的很享受在溜冰場上的每分每秒,特別是當在冰上全力衝刺、那種沒有摩擦的快感真的超級刺激,真的希望之後還有機會溜。

UIUC Ice Arena

溜冰場一景

BTW, 課程結束後去找我們這組的 instructor 跟她合照,她說 “You are one of the talented students I’ve ever seen” ,聽到這句話的時候我真的超開心的!

番外:那些我退選的課

我曾經有修過兩門課但後來都退了:

我承認我一開始選這兩門課只是為了刷學分 (滿足 J-1 簽證資格每學期必須至少要修 12 學分以上),但發現雖然教的東西很水,但是作業一點都不好刷欸 ==

INFO 102 這堂課像是計算機概論那種課,涵蓋知識範圍很廣但是都非常基礎,作業會要求你寫一份很冗的報告,舉例來說,某堂課教了 Python 的 ^| operator ,它會要求你寫你從實驗發現了什麼,然後學到了什麼之類的問題,而且評分極為嚴格,我寫太高級的回答還會被扣分 QQ ,而且實驗課還會強制要求出席,會點名算分數。

ECE 220 則是一堂教 assembly (用學校發明的 LC-3) 還有 C 語言的課,兩者都不難,然而一學期分別有 9/6/3 個 homeworks/labs/tests ,而且作業都是那種勞力型的作業,不需要動腦但是要實作很多細節。

反正最後我覺得修這兩課對我來說真的在浪費時間,所以去了幾次課堂和寫了幾次作業之後就都 drop 了。

Using emacs to teach the class

教授用 Emacs 超酷

200-people class

200 人規模的上課方式

感想

選課感想

當初為了選到自己想要的課可說是歷經了千辛萬苦,首先是交換生一開始不能用選課系統選本系的課,因為會有先修課程的規定,所以要寄信給行政單位手動選課,然而他們的行政處理速度非常緩慢,在 12 月底正要開始選課的時候結果行政人員跑去休假了,後來想要加選她又不回,最後是直接殺去辦公室找她才成功選到我要的課。

再來是交換生只能選 2 門 CS 的課程,申請時沒有人告訴我這條規定 QQ 。但幸運的是方法總比問題多:一個繞過的方法是,如果是與 ECE 共同開的但由 ECE 主導的不受此限制,另外一個發現是如果選了兩門課後,選 500-level 的課並經過該教授同意,他們不會要求你退掉原有的課。

修課感想

老實說我在這裡沒有修太多課程,因此我可能察覺不太出這裡與臺灣的教學差異,以下是我的觀察:

Q: 在這裡的課程怎麼宣佈課程事項還有交作業?

這裡大部分的課程都是用 Canvas 或 Moodle ,有些課程例如 CS461 會串 Github OAuth 讓學生去存取課程 orgnization 底下的專案以方便寫和交作業。

Q: 這裡的助教狀況?

我覺得跟交大最大的不同是這裡很多課程都配有很多位助教,而且會開很多 office hours 和 “discussion sections”。 前者就是開放問各種問題,後者比較偏向講解這週的作業等等。以 CS461 為例,一週的 discuss section 有 7 個時段,而 office hours 高達 11 個時段。

Q: 聽說美國的大學生都很會問問題,都很喜歡坐在最前排?

以 ECE220 為例, 前排大部分還是空著,坐的人大部分都是遲到的人。課堂上問問題也只有少數人在問,但線上論壇是滿活躍的。

Q: 這裡的作業跟交大有什麼不同?

我會說這裡有意培養大學生成為研究型的人才,課堂或者是作業會要求學生先讀論文或是相關程式的原始碼,這跟交大是完全不一樣的,交大很多課都是只給 spec 然後照著實作即可。

總而言之,第一次上全英文的課程非常新鮮有趣,也看到不同國家的學校在教一樣主題的課時各自的教育方法,很值得思考。