作者:該用戶名稱被禁止使用
鏈接:https://www.zhihu.com/question/597743712/answer/45331983693
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
我剛讀完大一,我盡量客觀一點評價這邊的課程。
先講講s1的課:
INFO1110,這門課講Python,講的是最基本的編程內容,數組,if-else,loop這些東西。
Lecture講的不好也不壞吧,畢竟都是非常基礎的東西。
每一周的lab會複習本周講過的內容,PHD或者honor的學生擔任tutor,複習之後當堂考試,紙筆寫代碼或者糾錯之類的,然後講綜合一點的應用,每周還有一個代碼作業,當時每周大概用2h之內完成,比如學完function之後是寫一個點單系統,有幾種指令和商品,實現增刪改查功能,用了200行以內,學完Class之後寫一個船對戰遊戲,300行左右。
Assignment大作業是實現5個文件,總的來說是實現一個大的電路,給定電路大小,實現光子的正確運動,遇到鏡子正確反射,從發射器正確發射,接收器正確接受這四個主要功能,第五個文件是寫test測試所有函數,我用了2200行實現。
Mid-semester和final都是紙筆考,期中是2h完成5道基本的代碼選擇,3道綜合代碼大題,每一個在100行以內。Final是2h完成10道選擇題,10道代碼大題,包括綜合項目,實現要求功能函數,遞歸,對象,2道寫test。
================分割線================
ELEC1601這門課講的是計算機組成原理
Lecture講的很一般,12節里7-8節都沒有講完課,之後就不講了,講完的內容也不是很好,講了一下基本的定義以後就沒有了,不解釋為什麼,不解釋怎麼用,純理論講解不嚴謹,一筆帶過,比如狀態機,我在學離散數學的時候是講輸入以後輸出是什麼,對於某一個狀態當輸入某一信號之後進入哪一個狀態,從頭畫表格開始。但是ELEC1601講的則完全不行,上來先給一個圖說輸入什麼了進入什麼了,既沒有說初始狀態是什麼也沒講為什麼輸入這個以後能進入別的狀態,甚至沒提輸入以後還要有輸出這件事。
這門課的tutorial是2個學生講的,從第一節課開始就沒有講完題過,我去問某一個題他們兩個竟然不會。
這門課的lab是3個學生帶的,實際上從來沒帶過,只是坐到那裡,所有的內容全由小組自己看slides自己討論。而且這門課有一個比較離譜的地方在於,lab的內容超前lecture,lab第一節課就要實現電路控制3個燈泡進位,按一次開關第一個亮,按2次第二個亮,就是實現2進制進位,而此時的lecture才剛講第一節課講了一下教授名字,這門課這個學期有什麼內容什麼安排,還連一個有用的知識點都沒講。
而且這門課要用c++但是沒人給你講過任何語法和內容。
那麼你可以想像一下,tutorial沒講完過題,lecture知識點講不全,lab的時候tutor完全不講東西,同時做的還是完全沒學過的東西。
===============分割線=================
MATH1061這門課講基礎的微積分和一點基礎的線代。
Lecture上講的正常發揮,上課時候會從最基礎定義開始一步步推導而不是念ppt。
tutorial則是發題自己在白板上面寫,有不會的問tutor,沒什麼特別的。
Assignment比較簡單,quiz也簡單,因為要照顧到高中沒學過數學的學生,所以題都很簡單。
Final是30道選擇題,5道大題,每道大題5個小題,都很基礎。
=================分割線===============
DATA1001這門課講的是基本的統計知識,雙盲實驗,平均數,中位數,數據分類,各種圖,中心極限,檢驗這些東西。
Lecture沒有什麼好說的,都是很基礎的內容,高中學過的,畢竟要照顧沒學過的。
Lab不太好,因為這門課為了讓學生直觀看數據是基於R語言講的,但是卻沒有任何代碼練習,他們一方面照顧到沒學過統計的學生一方面又要求學生會編程,說實話不是很理解,而且這門課3個report全是用代碼寫markdown,對於沒有編程基礎的學生很不友好。
================分割線================
講講s2的課:
INFO1113這門課是講Java,面向對象編程,靜態類,非靜態,接口,枚舉,多態,泛型,內部類之類的東西。
首先是Lecture,講的不好,純念ppt,流程是告訴你有這個東西,怎麼用,演示一遍。但是不講為什麼要有這個東西,解決什麼問題,同時這門課沒有每周練習只有作業。
那麼你可以想像,你剛學完Python,面對一個print要調用System,out,println三個東西,不知道static,main,為什麼開頭要有public class的時候就要直接開始寫作業,這門課沒有給你適應語法的時間,因為week1就有作業。
同時因為lab沒有練習,以接口舉例:你根本不知道什麼時候要用接口,為什麼我要用接口,儘管我知道接口是一份標準,我還知道只有一個抽象方法可以用lamda,我還知道可以直接定義一個接口類,後面跟的是實現這個接口的具體的類,你什麼都知道就是不知道什麼時候用,為什麼要用,只在final的時候問你了你寫一下,自己從來沒用過。
Assignemnt是實現一個遊戲,小球在固定大小窗口運動,碰到牆反彈,碰到不同顏色的牆變色,進洞加分等功能。
那麼首先第一個問題在於,這是一個GUI編程,但是你從沒學過,課上也沒解釋,你自己去翻doc才知道他給的那個現成的有好幾個已經寫出來的method的東西叫做架構,gradle,本地的jdk和配置路徑都是自己研究的。看doc才知道運行邏輯是每秒調用FPS次draw方法。mouse方法的邏輯是按照像素位置定位,press方法中的參數e類型是event,根本不知道這個event是什麼類,讀文件不是從txt裡面讀而是從Jason文件,根本不知道本質上是個數組,明明說一下就知道的事情沒有任何人說過。
這門課的紙筆quiz是公司面試題的類型,雖然是課上講過的東西但是沒有任何練習,舉個例子:匿名內部類,重寫一個抽象類的子類中的一個抽象方法,這個方法來自於父類實現的一個接口,這個接口繼承自另一個接口,最初的接口裡面有兩個方法簽名不一樣的方法,子接口中又定義了一個重名但是簽名不同的方法,最後問有什麼error或者exception。
你可能要說這很簡單,很基礎,但是沒有任何練習此前,如果你從沒刷過題能不能做出來?
===============分割線=================
MATH1064這門課講的很好,但是我感覺這門課應該放在學算法之前。
所有的內容都是手寫,沒有ppt,從為什麼要有這個東西,給出定義,從定義開始符號化,到綜合實際應用,環環相扣。
推薦所有理工學生學的一門課,是我這一年學的最嚴謹最有邏輯的課。
=================分割線===============
COMP2123,數據結構與算法講的是,鏈表,數組,堆,隊列,棧,樹,圖,dijskra,最小生成樹,分治之類的東西。
Lecture不好,沒比ELEC1601好多少,講完課了也只是講完了,課程排版和講課模式災難級的。
具體流程是,告訴你有這個東西,有什麼方法,方法功能是什麼,分析一下時間複雜度,沒有了。最能感覺念ppt是什麼感受的一門課。
不講為什麼有這個,不講數據結構怎麼實現,不講方法代碼怎麼寫,沒有任何練習題。
如果你不自學的話你甚至不知道後面的數據結構都是根據數組和鏈表實現的,而且不講指針,不自學的話甚至不知道鏈表是根據Node類中指針實現連接的,連建堆怎麼做都不知道,講到tree的時候更是災難級的,我們有一個結構叫做樹,還有個叫二叉樹,有一個樹叫紅黑樹。
你要是沒有自學過,還以為這三個沒什麼關係呢,實際上因為樹和二叉樹之間各方法時間複雜度相同,但是二叉樹在實現avl樹方面具有相當優勢才講二叉樹,avl樹會出現退化情況才有了自平衡樹,紅黑樹是一種自平衡樹,你不自學是根本不知道這回事的。
如果你不自學,那麼學完這門課你連指針都不知道。
=================分割線===============
MATH1062,多變量微積分和統計基礎
和MATH1061一樣正常發揮,除了統計部分完全重合DATA1001,我想只選微積分部分但是學校不讓,多收我一半錢,早知道上個學期不選DATA1001了,DATA1001不是必修,但是MATH1062是必修,不知道為什麼這門課是微積分和統計組合不是微積分和線代。
===============分割線=================
第一年是這樣的,等我之後學完再更新。
就這一年讀下來,我自己感覺所有工科的課講的都不怎麼滴,數學的課都挺好,一個念ppt不講原理,沒有練習全靠自學,一個從定義一點點推導,每周2頁a4紙習題。
我打算不看學校的工科的課了,所有cs的課全看國內培訓班的課,我看過mit,Stanford,華盛頓的公開課,說實話講的好是好,但是不全,國內培訓班講的全。
至於數學課目前學的這3門基礎課還不錯,等我學2000level之後再探再報。