close

在CMU雖然常常行程很緊迫,但是時間也過得滿快的。記得上傳參加Orientation心得好像是不久前的事情,現在居然已經在寫第一學期結束後的感想了。但其實我也不知道要怎麼編排這些內容比較好,那就先來寫我上的三堂課的心得再給個總評好了。

18847G - Special Topics in Computer Systems - Computational Problem Solving for Engineers

沒錯這堂課的課名超級長,這是這堂課唯一贏過別堂課的地方,也是我第一次打出這堂課的名字,常常有人問我阿你修那堂課叫什麼,基於課名太長我都用課程性質「糞課」稱呼之。當初看到作業占50 Participation占20 Project占30,基於不想第一學期就太累的心態就選下去了。沒想到每堂課都是很介紹式的東西,類似老師每個禮拜針對一個主題做一個概略式的介紹,但是其實每堂課的內容都可以分別獨立在別堂課上整個學期。所以有一次老師自己上一上也說這堂課就是場bad movie,當上課的內容你已經學過的時候你會覺得為什麼要在這個內容上花那麼多時間,但是當你找到新東西你想好好學會的時候卻又一下就講過去了。

「中間實例故事篇幅太長,考慮到排版將移至文末附件」

總的來說我在這堂課中學到最重要的東西是EQ的提升,曾經那個受到不合理待遇就跟老師正面起衝突的那個如8+9般的我,如今也學會「放下一切去睡覺就好」的敦厚態度。我想這就是藏在這麼長串課名中想要我學會的深意吧!

2021/5/29 更新:現在這堂課課號改成18647,大家不要被騙了
 

15745 - Optimizing Compilers for Modern Architectures

當初會想要選這堂課純粹是因為剛來到匹茲堡的熱血青年覺得就是要學點在台灣比較少見到的東西。一開始教一些課本上找的到的東西(像是Dataflow Analysis、SSA),就算是有點代數的味道也還是勉強學起來了。結果到了課程中段開始代入很多學界新興研究題目,常常都是恍神結束後就下課了,根本不知所措。Project更是research類型的,從找題目開始我就不太知道在幹嘛了。幸好這門課是所有作業跟project都是兩兩組隊制,當我絕望到想要去給鹿撞死的時候,我都還有隊友可以求救討論。也因此我在這堂課學到的最重要的東西就是,CMU的同學真的很強,跟他們學習常常可以比跟老師學習還要可以學到更多。最後這門課得了A-,而分數黑洞就是唯一不能組隊的期末考試。

「人生就是由一次又一次的錯誤選擇組成的,例如選擇念了CMU跟這學期的選課,這學期我少數做對的事情之一就是這堂課選對了隊友。」
 

15213/15513/18213/18613 - Introduction to Computer Systems

沒錯這堂課課號超級多,不愧是CMU有名的課之一,好像被封為鎮校神課。他們最自豪的就是15213是CMU的郵遞區號。這堂課的課程內容其實不難理解,從二進位、Assembly Code、Stack、Memory Hierarchy、Memory Allocator、Process、Signal、I/O、Network、Thread的角度完整介紹計算機系統,不過作業的設計會滿花時間的。雖然很多東西他們也是沿用往年的,但是看的出來當年設計那些題目是花了相當的心血,例如Bomb Lab跟Attack Lab真的挺有趣的。我覺得這堂課從作業裡面學到東西的量不會輸給清大張彌彰老師的I2C跟演算法,甚至更多。雖然多數的Staff課上得真的不怎麼樣,不過看在我還是有學到東西的份上,我可以原諒他們。前述18847G跟15745在期中都有登上我的SNS嘴爆,這堂課是唯一平安度過的。後期我被一個很討厭這堂課的大哥封為213小老師,讓我不得已把不熟悉的Process, Signal, I/O都給學好,作業也早早寫好等他來問。托大哥的福最後這堂課安全下莊(愛心),目前甚至在挑戰申請這堂課的助教,希望大哥可以給我好運讓我找到頭路。總而言之這堂課是很值得花時間學好的好課,但是不要只是衝著他的名氣來上自己卻根本沒興趣,然後作業最好也是自己寫跟找人討論,不要像某些地方來的人找代寫或是開CSDN出來抄,不然只是讓你的CMU生活徒增痛苦罷了。
 

總評

不要想說高昂的學費可以換來很高的學習品質,以我遇到的情況,3堂課中大概只有1.5堂算是值回票價。所謂「領域的權威並不一定擅長教學」並不是只會在台灣發生,美國學校也會有這樣的問題,很少老師對於課程和作業的設計是對得起他領的錢的。特別很多是連準備都沒有就開課了,雖然和修課同學一起把那堂課變好是好事,但是自己什麼都沒準備就隨隨便便開一堂課,作業問題也只用兩三句話描述,真的很難想像會發生在CMU這樣的學校。台灣的高等教育CP值真的很高,所以我很想找機會問台灣的老師一個問題,「不知道看到領那麼多錢的美國老師把課設計成那個樣子,台灣老師的心裡是什麼感覺」如果是想要買F-1之後的OPT或是排H1B的機會,那或許這個學費的CP值會高一點。

另外就是印度同學很擅長破壞你的學習體驗,像是很愛用那種腔調問很多問題,這個大家都很了解了,再爆一個我的小觀察,曾經我發現當課堂在輪流上台報告的時候,印度觀眾對於印度同學的發表會認真100倍去聽 去參與,其他國家的同學報告他們就整個安靜了下來,那安靜的程度大概是你會覺得「如果以後你們上課也那麼安靜就好了」的程度吧!還有又臭又吵的印度鄰居,沒事就多回印度老家看看吧,少出來禍害世界。

雖然我常常在SNS抱怨CMU生活,不過據我所知下學期會有數位大學同學加入CMU,只能說我很慶幸沒有因為我的幹話影響到其他人的生涯抉擇。同時下學期也是很多CMU好朋友要畢業的學期,看得我是好羨慕,希望他們在擺脫CMU地獄之後有一片光明的未來。
 

附件 - 18847G 實例故事

不過這就算了,反正成績是看作業,本來想說如果可以從作業中學到什麼那也算值回票價,結果作業比上課的東西還要離譜,幾乎每個作業都會要我們使用不同的電腦(例如系上的計算機中心跟匹茲堡超級運算中心PSC) 和使用各種奇怪的工具。在各單位的電腦上我們根本沒有root權限去裝那些工具,導致每個作業有八成的時間在研究要如何在不使用root權限的情況下使用那些工具。更扯的是很明顯,老師和助教本身也不熟悉使用這些東西,作業的要求常常天馬行空,導致大家試了很久發現不可能,才在deadline前幾天改題目。另外,不知道是不是因為老師是歐洲人,對於題目的敘述常常讓人不知道要幹嘛,幾乎每道題目都要放上討論版才會知道那個題目要幹嘛。所以關於我在作業遇到的怪事就可以寫個好幾段。

某次作業要在AWS"或"PSC上使用Hadoop"或"Spark,我還想說,既然我都沒學過我就都去看看,最後我決定在PSC上用Spark。然後發現在PSC上根本不能用Spark,所以我在討論版上發問,助教居然回說我們建議你用Hadoop,關於如何在PSC上使用Spark我們還在研究,所以最好在AWS上使用Hadoop。幾個小時後助教在討論區上PO一篇Medium說去年的助教是用這篇當成tutorial,讓我們跟著上面的步驟操作。結果我用了很多次(包含砍掉AWS跟重裝AWS)還是裝不上去,在討論區上反映,助教說請照著tutorial(指那篇路邊的Medium)操作,如果不行請刪掉再裝。我當下直接放棄,想說我情願交白的也不要再跟你浪費時間了。結果過了幾天好像是因為大家都用不好,助教只好開recitation,結果助教看到我的第一句話就說,「喔你就是在討論版上問某某問題的那個嗎,別再試了,我發現那個tutorial不work,這是在浪費你的時間」.........最後是他們聯絡PSC員工開放多個Node給我們讓我們用Hadoop,結果因為老師夢想的Problem Size太大,PSC被我們班用壞,這個作業就不了了之了。

還有一次作業是全班只有我衰到,那個作業是要用不同size的blocking跑Matrix Multiplication觀察Cache Eviction對Performance的影響。沒錯很簡單的作業,所以我Deadline前五天左右就交了。還記得我說老師的英文敘述很模糊嗎,我交完作業的隔天,印度同學開始在討論版上討論作業問題中的Problem Size指的是Matrix Size還是Block Size。助教看這樣不行,就發布公告說我們把題目改成...。總之就是跟我寫的完全不一樣。害我要重寫我就整個不爽了,我就在討論版上用本名發文:「關於作業4的題目修改,我在幾天前就已經上傳了我的作業4,但很明顯,現在它已不再符合題目要求。我很願意再做修改,但是這不是第一次我們的工作量因為模糊的題目而增加,所以我要求我們所有人的新舊版本都必須被給予回饋,同時當你們在評作業分數和參與分數時,這些額外的花費時間應該被納入考慮,不然這對很早開始寫作業的同學不公平。」我是沒想到後來助教有寄信跟我道歉說什麼抱歉害你多做了一次很感謝你對這堂課的參與blah blah blah,反正這堂課就在這樣的烏龍中結束了。後來所有的作業都沒有給Feedback,他們也只是都給100,拿了一個沒什麼意義的A。

arrow
arrow

    N.Hu 發表在 痞客邦 留言(0) 人氣()