在math+cs專業的我給出一些不成熟的小建議~
CS125
雖然cs125(計算機入門)講的非常好也非常的詳細,但對於全新手來說仍然是個不小的挑戰。每天都有一個小作業,每周一個lab,每兩周一個project。雖說跟著老師上課也能把這些作業完成,但我覺得在修這門課前未雨綢繆是極好的。在暑假的時候提前自學一些java的內容甚至做幾個小的project然後再上這門課就會很輕鬆了。CS125的打分非常的寬鬆,大概 70%的學生都能拿A。如果保證每次作業每次lab不缺席,然後周考前看看課件,拿個A+也是輕鬆的事兒。
CS126
cs126(software studio)不同於cs125有每周的周考,cs126的幾乎全部分數都放在了每周 一個的project上面。前半學期用java寫後半學期用c++寫。比較難受的是教授不會帶著學c++而是」我默認你們對c++有一定的了解了」。所以在上cs126的前半學期可以抓緊學一下c++的基礎。因為之前學過了java所以很多東西都是一樣的,應該會比較快。然後就是cs126 的code review,這門課的分數基本完全取決code review負責你的moderator。他們會按照極其嚴格的評分表來打分,嚴格要求代碼風格。比如空格沒對齊扣分,變量名描述性太差 扣分,一個函數太長扣分,javadoc寫的不好扣分,甚至github的commit有語法錯誤還要扣分。
CS173
cs173(discrete structure)個人覺得是非常簡單的一門課。每周一次作業大概10道選擇題的樣子,每周一次周考,然後還有課前需要完成的reading quiz。每周周考的題和課程網站上給的past exam高度相似。只要在考前複習一下past exam多刷兩套題,所有考試全部滿分 也是極有可能的,所以這門課可以刷A+。
CS374
374就是173的高級版,講各種算法的設計以及P等不等於NP之類的問題,可以三人組隊,所以和大佬一起上很重要。B Section比A Section難很多,想要挑戰的可以嘗試一下B Section,不過是CS必修裡平均GPA最低的課,要小心!
CS196
196是上了125的人可以報的一節one credit honors課(James Scholar的同學可以拿到2分的honors學分)。196的內容跟125沒有太大關係,主要是會學習兩門新的語言Rust和Haskell,除此之外還要與小組完成一個semester-long project。所以雖說只是一個一學分的課程,但workload還是很大的。我在上的時候因為這節課剛設計好,整節課也是高年級的學長在組織教課,所以lecture和作業安排不是很合理,需要你花很多時間去「自學」並完成每周的coding作業。project每組會由高年級的學長學姐帶領設計,完成並展示一個項目,是一個很好的鍛鍊的機會。
Sp2020這學期,作業被搬上了prairelearn,據說還去掉了Haskell的內容,總之這節課在調整,想要上的同學也不過於太擔心拿不到好的成績,整體判分還是留有餘地的,只要project努力做了就沒問題。(因為-96系列課程的特殊性,不能保證每學期的內容會完全一樣,不過想challenge一下自己的同學可以去嘗試一下)。
CS233
CS233,就是一個教如何設計CPU和如何寫彙編語言的課,主旨在於讓CS學生能夠知道最底層的CPU指令和硬體架構,這樣寫高級語言程序的時候就可以做相應優化,提升性能,主要講VerilogHDL和MIPS assembly。如果上的話可以事先預習一下。
MATH231&MATH241
math231(微積分2)和math241(微積分3)主要是靠刷題(可能是我的數學比較菜的原因)。就把老師放出來的review裡面的題,review quiz和past exam儘可能多的刷考試也不會有太大的問題。(吐槽一下)數學學院的體驗極差。math231老師還不會主動給past exam,都是課友不知道從哪兒扒下來的題分享在群裡的,作業有時候不給課本後面的題,而是教授自己出的題然後手寫拍照上傳。有時候會發現上課,討論,作業,考試完全是脫節的。但還是那句話,只要耐心刷題這都不是事兒.