# 臺大資工大一下修課心得 這學期修了不少大硬課,因此留點紀錄。 下面的課排序是用我認為要花費的心力來排名,由比較輕鬆的排到最累的,文章長度也是越後面越長,這樣也許能凸顯後面的課有多累 XD。 這篇文章會使用每周課後花費時間作為衡量硬度的指標,計算做作業、準備期考等時間,但不計算上課時間。這個指標是「均攤」的時間,會把作業所花費的時間約略平均成每一週的時間。 [toc] <!-- 這篇文章會偏向「心得感想」而非資訊分享,因此較少涵蓋到其他網站已經提及的資訊。詳細算分方式、教學內容請參考課程網,或是其他的心得。 --> ## 全民國防 - 防衛動員 :::info - 授課老師:余宗基 - 學分:0 (軍訓) - 等第:A - 每周課後花費時間:0.1 小時 ::: > 人生有幾個機會可以坐在將軍面前不理他?國防課是唯一一個 [name=某老師] 每堂課點名,只需要做期中報告、期末報告。課堂上老師會介紹現在國軍的戰力,以及未來的發展等等。基本上每個人都只是在做自己的事情,然後老師就在前面講的很開心。但是其實偶爾抬起頭來看看他現在在介紹什麼挺有趣,聽一下可以增強對我國國防的信心。 但要注意不能睡覺,睡覺會被老師點起來,學期一開始說被看到睡覺會扣分,但我也沒看過哪個人真的有被扣分。 點名因為是 GPS 點名,班代會點那些 GPS 怪怪的看有沒有在現場。 ## 壘球初級 :::info - 授課老師:周德賢 - 學分:1 (體育) - 等第:A+ - 每周課後花費時間:0 小時 ::: > 你們還不了解老師 [name=阿賢] 我上學期的體適能就是阿賢上的,因為阿賢很讚所以這學期繼續選他的壘球。評分是 40% 上課態度,傳接球、跑壘、打擊測驗各 20%。 前半學期內容是練習基本動作,第一次正式上課就會教傳接球,此後每一週都會用傳接球當作熱身,上課則是教打擊、跑壘等等,接著練習。後半學期本來要開始打比賽,但是因為一直下雨,所以我們班一直到第 12 周才打比賽。打比賽真的很好玩,球場上也會出現各種神奇狀況,老師就會在下課後講解這些狀況的規則。 這門壘球是真的可以學到很多東西,我自己之前沒有打過棒壘的經驗,阿賢教的讓大家都很有體驗,可以練習到要怎麼去打球。前半學期的內容可能會有點無趣,只是一直練習。但開始打比賽之後就會發現其實傳接球真的很重要,大家守備會出現各種爆笑大暴傳。 阿賢以前似乎是三商虎的球員,現在則是帶輔大棒球隊,好像還當過國家隊的教練,真的很酷。另外,這門課開在下學期,所以缺點可能只有會越上越痛苦,後面要在很熱的天氣下戶外打球,太陽真的很曬,我被曬傷過好幾次。撇開天氣的因素,這門課我很喜歡。 ## 普通物理學甲下 :::info - 授課老師:楊佩芸 - 學分:3 (資訊系必修) - 等第:A+ - 原始分數:105.9 - 每周課後花費時間:2 小時 ::: > 佩芸一生推 這門普物甜到蛀牙。評分方式是作業 40%、討論分數 10%、期中 25%、期末 25%。除此之外,還有 10% 的出席加分,以及 5% 的加分報告。這學期他採用 95% A+ 的評分尺規,但我的實得分數是 105.9,真的是非常棒。 pyy 的上課內容按照 University Physics 走,講義是他自己畫的。他的講義編排的真的很好,內容有他自己畫的圖還有課本上的圖等等,推導算式的過程都會寫在上面,所以很少有看不懂的地方,基本上讀書只需要看講義就好。 他的上課也很推,講解的部分很清楚,口條也很清晰,會顧慮到大家的上課情況。課堂上會有隨堂的 zuvio 練習,他的出席分數就是看這個 zuvio 來算。 作業是分組來做,學期初大家自己分好 4-5 人一組,每次作業要繳交小組討論的照片。改作業的時候抽小組內一個人的內容,然後全組同分。作業的難度不會到很難,但是要花時間是一定的。考慮到我們組每個人物理都不錯,我們的運作方式是每個人都寫完整份作業,最後再一起對答案。不過別組也可以一個人寫一題,最後大家再交換寫法。通常每兩周一次作業,一份作業我花 3-4 小時。 期考可以帶一面 A4 大抄,我就是把所有出現過的定理公式都抄上去,考試的時候就一直參考自己的大抄,有時候會發現自己知道要用什麼公式但沒有抄到大抄上,此時就會很崩潰。 pyy 的改作業 / 期考 policy 非常重視 Reasoning,也就是要描述為什麼會用這條式子、用到什麼定理等等。我很喜歡這個 policy,~~因為我看別人的解答很討厭看到橫空冒出一條奇怪的算式又不解釋的~~,對於一些喜歡在答案卷上直接兩三條式子寫出答案的人很痛苦,但相反的只要有寫出 Reasoning,就算計算過程大錯特錯或是答案錯也會給高分。 ## 微積分 3 / 4 :::info - 授課老師:蔡國榮 - 學分:2 / 2 (資訊系必修) - 等第:A+ / A+ - 原始分數:98 / 91.6 - 每周課後花費時間:4-6 小時 - 英語授課 ::: > 我想加入蔡國榮粉絲後援會 > By the most powerful technique in Mathematics, look at it long enough, you get the answer. [name=國榮] 前情提要:台大的微積分是用模組班的方式上課,同一個模組會在同一個時間上課,考的內容也會相同。一個模組會有若干班,由不同老師講授。例如電機、資工、資管、材料預設上同模組的課,班別就是 01-04 班。 國榮是微積分的明星老師,得過教學優良獎,~~有著性感的口音,但講話方式像 Uncle Roger~~。同模組的很多同學會跑來聽國榮的課,不同模組上課的同學會特地跑來聽國榮的課,沒去實體上課的同學會看國榮的線上課程。 剛剛提到資工系的模組班是 01-04 班,而國榮的班是 07 班,所以原本我沒辦法上到國榮的課。但我上學期就會特別跑去上國榮的課,國榮實在是太讚了,講課幽默風趣、清楚、真的可以一聽就懂,作業的題目可以練習到上課講的重點。 這學期因為我要上機器學習,跟電資學院的微積分衝堂,所以去加簽國榮的微積分。而所有微積分班只有國榮是 2 類加簽,也就是向老師索取授權碼。我的同學和我在剛放寒假、一階初選前就寄信給國榮,也很幸運的收到了回信。據說國榮的信箱隨時處於爆滿狀態,所以能不能加簽到要看運氣。有些人比較晚寄信就沒有收到回信,開學後第一堂課排隊跟國榮要加簽的人從教室頭排到教室尾,但是他一個都沒加,只能說加簽要早一點以及看運氣、也許還有寫的信的內容。 國榮班的評分方式如下,微積分 3、4 是分開來的,也會有兩個等第。 - 20% Quiz: 兩次的小考各佔 10 分 - 30% Assesment: 包含 Homework, Worksheet, WebWork, Midterm - 總分 36% capped at 30%。 - 比較特別的是國榮班特有的 Midterm,佔分 12%,但算在 Assesment 裡面,加上這項成績是 capped,所以其實 Midterm 可以沒壓力的考。 - 50% Exam: 期末考。 國榮的講義是自編的,內容很豐富,範例也易於理解。講義編排的方式有用心過,在複習的時候可以快速掌握不同定理在說什麼。 作業的部分,國榮每一周都會有作業,也是自編的題目,我寫一次大概是 3 小時,但是只有一半的作業會算分,其他是自主練習。我覺得作業跟 WebWork 一定要自己寫,不算分的作業也要練習,因為考試會有一兩題從這些地方出來,考卷上也會標題目出自哪裡,~~嘲諷那些用 Magical Way 寫作業的人~~。 Quiz 則有時候比較抖,因為沒有 cap,所以要盡量拿滿,才可以允許自己在期考的時候被開鍘。Quiz 會考那些有趣的是非題,比如 Green's Theorem 的各種使用條件,這時候讀熟國榮的講義就十分重要了。 很多人說微 3 微 4 是大魔王,我覺得可以看熟國榮的講義,加上多練題目來補償。微 3 微 4 的期考變化不多,題型有限,所以看考古題有一定幫助。 總而言之,國榮一生推,這邊也附上神秘的 FB 粉專:[蔡國榮粉絲後援會](https://www.facebook.com/p/%E8%94%A1%E5%9C%8B%E6%A6%AE%E7%B2%89%E7%B5%B2%E5%BE%8C%E6%8F%B4%E6%9C%83-Kwok-Wing-Tsoi-fans-100090291350231/) ## 普通天文學 :::info - 授課老師:藍鼎文 - 學分:3 (物理系選修,非通識) - 等第:A+ - 原始分數:98.2 - 每周課後花費時間:2-3 小時 ::: > 雖然人類在宇宙非常的渺小,但我們卻能用我們的大腦,探究宇宙的起源和演化,我覺得非常的神奇和浪漫 [name=鼎文] 普天是我這學期最喜歡的課,鼎文老師也得過教學優良獎。老師幽默風趣,作業內容有挑戰但不會太難,從作業可以學到很多東西。考試則是有念有分,但也是有難度的考試。 加簽的部分,老師的課程網上有寫加簽順序,當初有 50+ 人要簽,後來是全簽,最後好像快 150 人上課。 普天的上課內容有宇宙學、星系、恆星、最後講到行星,可以讓修課同學一窺天文學界在研究什麼,以及我們目前對宇宙的認知。這門課的定位我覺得偏向研究導向,老師經常從天文研究的角度切入天文原理,作業也包含要看一些 paper。 算分的方式是 10% 出席、30% 作業、25% 期中、30% 期末,以及 5% 的發言分。 這門課最特別的就是發言算分,可以隨時打斷老師問問題,或著回答老師的問題。其他課也許是發言加分,但這門課是寫死在分數裡面的。老師的用意是增加課堂的互動,以及讓台大的學生們更加勇於發言。第一次發言是 2 分,而後一次發言 1 分,有幾周會出現特別加分,當天發言 2 分。有些人會不敢在課堂舉手,但其實老師給很多舉手的機會,時不時就停下來問大家問題,所以給的發言機會非常非常多。 一共有 5 次的作業。由於課堂講的大多是概念,作業的內容就是實際用這些概念進行計算,也會用到那些有天文數據的網站等等。難度大約是普物上學期的內容,沒有教過的公式也會列在作業上。做完作業之後,應該可以體驗到天文學家平常在做的一點點事情。我做一次作業大概花 4-6 個小時,內容是真的很棒。 考試則是很一般的期中/期末考,有選擇、簡答、計算題。可以說有念有分,~~跟下面會出現的某些課完全不一樣~~。上課一定要做筆記,只看課程投影片會看不懂,因為投影片只有一堆的好看天文圖片跟物理算式,文字則只有最簡單的描述。另外,前面有提到上課會問很多問題,那些其實都是考點,所以筆記最好記一下這些問題,以及老師上課口述的解答。 雖然課程被歸類在物理系選修,老師學期初也特別提醒不是通識,但是對外系很友善,物理、數學基礎的要求不會很多,我覺得是對天文有興趣的人都要修的好課! ## 機器學習 :::info - 授課老師:李宏毅 (大金) - 學分:4 (電機系選修) - 等第:A+ - 原始分數:101.2 - 每周課後花費時間:4-8 小時 ::: > 各位同學大家好啊,那我們就來上課吧 [name=大金] > 各位看這篇 2021 年的論文,這可是史前時代啊 [name=大金] 大金也是明星教授,我高中就在 Youtube 看過他的機器學習課程,對我的科展真的是幫助多多,上大學之後終於可以實際參與這門課程。 學期初的加簽盛況甚至有上新聞,他的加簽表單有 1000+ 人回覆,開學第一堂課教室坐無虛席,外面的大廳也擠滿人。加簽的 policy 是電資學院全簽、剩下則是抽籤決定,最後好像有 600+ 人選課。 老師的上課都會錄影放上 yt,內容則是介紹近期最前沿的生成式人工智慧技術,所以他說這門課這學期真正的名字其實是「生成式人工智慧時代下的機器學習」。學期初會覺得為什麼用的教室這麼小一個只塞的下 100 人,但是過幾周之後就知道為什麼了,因為教室後來根本坐不到 2/3 滿,大家都聽錄影哈哈。 評分是 100% 作業。總共有 10 次的作業,多數是要完成某個 task,會看繳交的 code 跑出來的東西的 metric 如何,切分為 simple/medium/strong baseline,基本上只要跑助教給的範例 code 就可以過 simple baseline 了。其他的作業則是觀察 code 跑出來的結果,在 gradescope 回答問題,加上一些 paper 的閱讀測驗。這些作業比較像讓我們了解模型背後的原理,而閱讀測驗的難度我覺得很高 (不用 AI 的前提),可以順便培養讀 paper 的能力。 除了 100% 作業,也有很多的加分。這學期有 NVIDIA 的推廣,可以免費看要付費的課程,完成一個付費課程加 5 分。期末也有額外的機器翻譯比賽也可以加分,我認為是很甜的一門課。 這門課什麼都好,但我覺得最大的問題是~~作業太簡單了~~,很多時候作業要做的只是要調整助教 code 裡面的參數,改一下數字就可以過 strong baseline,等於是調參大賽。因此整學期下來,跟 NASA 和 DSA 相比,我反而覺得自己沒有學到太多東西,~~只是比較會改參數罷了~~。調參數聽起來很簡單,多數時候還是要試很久才可以找到過 strong 的參數,尤其機器學習的作業都要跑很久,經常是過了兩三個小時跑出來發現這參數不對。 這門課最有趣的就是運算資源了,用免費的 colab 雖然就可以通過 simple baseline,但 strong baseline 都要跑更久,colab 或 kaggle 就沒辦法跑太久,這時候要嘛課金,要嘛開始比手上的資源了。敝系有 GPU 工作站,但我都找不到要怎麼用工作站做這些作業,所以研究了一下要怎麼跑 ML 作業,附上我寫的教學:[如何在 CSIE Workstation 跑 notebook](https://hackmd.io/@onion0905/rJREAj7kxg)。(由於是簡略試出來的方法,可能不是最佳解) 這個課也是一定要跟朋友一起修的,朋友在試不出參數的時候可以給一些提示。還有一個重點是要加 line 群,非官方的 line 群真的是提示滿天飛,幫助非常大。 總而言之這也是門好課,yt 影片的留言很多羨慕可以上課的學生,我想這也是我們要好好珍惜的一個上課機會。 ## 網路管理與系統管理 (實驗) :::info - 授課老師:蔡欣穆 - 學分:1 (資訊系選修) - 等第:A+ - 原始分數:79.8 - 每周課後花費時間:15+ 小時 ::: > NASA 是門 **「好 課」** > 身為一位系統管理人員 ... (下略 500 字) [name=欣穆] ### 課程介紹與經驗 這門課的英文簡寫是 NASA (Network Administration & System Administration),是用來培訓我們系上的 NASA 團隊,管理系上的網路和電腦們。這門課是整個 NASA 培訓的一階課程,後續還有二階跟三階 (不過據說今年要改制,還不確定)。 作為培訓課程,這門課有許多特別之處: 1. 選課前要寫 HW0,通過才能選 2. 可以選擇要 1 學分或 3 學分,我是選 1 學分,選 1 學分的可以抵服學乙,此方案是資訊系限定。 3. 你可能會覺得為什麼要讓自己只拿一學分,原因是這門課是個實實在在的 GPA 炸彈 4. 期中考滿分 100 最高 51 分平均 35 分 HW0 會在寒假時公布來破壞各位的假期,難度就是這門課作業的難度,讓各位斟酌是不是要選課。雖然往年都是看 HW0 的分數篩人,但似乎今年沒有這麼多人要選這個課,所以幾乎有寫的就可以加簽到,但助教也會提醒寫不好的人斟酌選課。 課程的內容如同課名,是滿滿的網管/系統管理相關技術,囊括了 [12 個主題](https://www.csie.ntu.edu.tw/~hsinmu/site/courses/25springnasa)。上課時間老師會講有關技術的發展歷史、觀念等等,有時候會分享他在 NTU COOL 跟系上管機器的各種鬼故事。上課內容只會有觀念的部分,實際上要怎麼操作軟體則是在作業自己學。以防火牆為例,上課會講為什麼要用防火牆、防火牆的種類、防火牆如何運作...,作業則是要實際設定防火牆,把一個防火牆在虛擬機器間架起來。 ### 評分與作業 課程的評分方式是 14% Lab、7% In-Class、36% Homework、20% Midterm、23% Final。學期初說 A+ 標準是固定的 95 分、A 是 90 分,而且話說的很死。不過我們這屆總分最高 81、平均 69、A+ 線 76 分。前幾屆也是有調整,A+ 佔 15%,說不定當初只是嚇唬大家 (x) 每周都有的 Lab 算是當周作業的暖身,會是與當周作業有關的小練習。例如防火牆那週的 lab 是拿作業的軟體先做一些小練習。有時候也是補充的內容,例如 VM 那週的 lab 則是 Docker,跟當週作業比較沒有關係。lab 的設定是當週課堂內最後一節課可以完成,因此幾乎每次都可以在一小時內做完 (第二周的 shell script 不一樣,那一週太過分了)。 In-Class 則是一些關於網路/系統的簡答題,幾乎每週都有 2-3 題。雖然設定是在課堂上回答完成的題目,不過老師都沒有留時間給我們弄,所以要自己做。一週的 In-Class 可能要弄半小時到一小時。 Homework 則是實際學東西的地方,總共有 12 次的 Homework,等於除了期考外的每週都有,每次主題皆不同。作業內容是操作當週主題有關的軟體,例如 Shell script 是寫一個 shell script、DNS 要把 PowerDNS 架起來、LDAP 要架起 LDAP 並完成作業的要求設定等等。作業花費的時間極長,我自己要 15 小時以上,時間幾乎都是花在查資料、看文件,找到要怎麼做之後再去做。有幾週作業特別過分,例如第二週就出現的 Shell script 就是給大家一個震撼彈,我記得我光寫 lab 就 10 多個小時,作業寫了 20 多小時。DNS 也是惡名昭彰,大家在開始作業前還要搞定 VM、下載 PowerDNS、然後還要抓到正確的版本。 考試則是學期初自己找好的 3 個人一組,然後同組一起完成考試,分數一樣。考試的範圍跟作業會相同,期考 6 個大題分別對應到每週一個主題,但是內容只會部分重疊。以 LDAP 為例,LDAP 當週作業包含架起 LDAP、完成基本設定、設定 LDAP 通訊、權限等等。但考試內容則是包含基本設定、找到 VM 為什麼下載不了套件、寫 shell script 查 LDAP、以及大魔王的修好壞掉的 LDAP (原因甚至跟 LDAP 沒有關係)。作業跟考試雖然低度相關,但是一定要寫作業才懂得如何在考試操作軟體,以及要怎麼查才找的到資料。 考試的隊友非常非常非常重要,我的兩位隊友都很扛,所以我們在考試拿到不差的排名。考試前可以確立不同題的分工,隊友也可以在寫不出來某題的時候提供跳脫的新方向。此外,提供的考古題一定要寫,而且要寫考試當天要做的主題。雖然不可能考跟考古題一樣的內容,但是寫考古的用意是重新熟悉系統。例如 Cisco Switch 是在第四週,在考試的第八週就忘得差不多了,寫考古是讓自己找回當初寫作業的感覺,以及回味一下怎麼找資料。 考試的分數則是慘不忍睹,期中滿分 100 最高分 51 分,平均 35 分。期末滿分 117 最高分 83,平均 51 分。如果按照學期初講好的等第尺規,相當於考完期中沒人有 A XD。分數之所以如此難看是因為考試內容一個大題相當於一次的作業,而三人平均下來一個人要做兩個大題,即使已經熟悉過作業內容,要在 3 個小時完成一次作業就很困難了何況兩個。 每周上課點名,點名不算分但遲到/未到扣總分 3 分,老師的理由是「系統管理人員需要很高的紀律」。雖然我覺得上課內容滿有趣的,但如果不點名的話~~課堂都跟作業考試沒關係可能真的沒人想在週一早上 9 點到場~~。 ### 感想 課程跟作業不一樣是這門課最多人詬病的地方,上課講的內容偏向管理面,作業則是技術面的實作。每次作業都是自己學,自己查資料,說這門課是自學課也不為過。曾經有 [學長](https://yunxiurz.github.io/posts/%E5%8F%B0%E5%A4%A7%E8%B3%87%E5%B7%A5%E5%A4%A7%E4%B8%80%E4%B8%8B%E4%BF%AE%E8%AA%B2%E5%BF%83%E5%BE%97/#%E7%B6%B2%E8%B7%AF%E7%AE%A1%E7%90%86%E8%88%87%E7%B3%BB%E7%B5%B1%E7%AE%A1%E7%90%86%E5%AF%A6%E9%A9%97) 講過這門課的循環是「不會 -> 查資料 -> 會了」,這點到現在一樣沒變,因此這門課鍛鍊出來的能力其實並不是 NASA 相關能力,畢竟軟體一直換、技術三五年就更新,NASA 真正的訓練是快速找到問題、查找資料、解決問題的能力。 這門課是資訊系上我認為公平的課,這邊的公平是指起跑點的公平。很多同學不喜歡敝系的原因之一是太多早就學完的電神們,例如 DSA 跟 ADA,沒有學過的人在分數上幾乎無法跟高中已經在打競程的人競爭。但 NASA 不一樣,因為很少有人國中高中就在自己家裡搞一堆 VM 架網路和 DNS 伺服器等等。正因為沒有人在起跑點就領先,所以跟這門課其他同學反而有共患難的感情,一同被高難度的這門課蹂躪。 NASA 是一門 get your hands dirty 的課,其他課可能更多理論的內容,但 NASA 沒有什麼高大上的數學理論,只有無止盡的查資料、看文件、在終端機打一堆自己從來沒看過的指令。 欣穆在學期初就說過,修這門課不會讓你變 NASA 大神,我到學期末回首才理解老師說的是真的。即使這門課很硬內容很多,但修完反而覺得不懂的地方更多了。雖說如此,修 NASA 還是可以讓自己對於這個領域比以前有更多 (非常多) 的認識。 ### AI 與 NASA > 君不見各位只是 ChatGPT 的前端 [name=欣穆] 最後我想談論一下 AI 對這門課帶來的衝擊。欣穆在第一堂課就花了很長一段時間講 AI 與這門課的關係,他發現自從 genAI 出來之後,這門課的期考成績爛很多,因此他決定今年原則上禁止在作業使用 AI。後來他的規定放寬,可以使用 AI 但要把對話紀錄附在作業。 由於這門課的本質是「找問題 -> 查資料 -> 解決問題」,AI 的出現直接把這流程變成「把作業問題丟給 AI -> AI 給解答 -> 照著解答做完成作業」,等同於自己什麼都沒學到,因此我很同意老師反對我們在作業使用 AI。我自己是只有在卡了很久很久,才會偶爾去問 ChatGPT,其餘就用 old school 的方式看文件、找 stack overflow 等等。 AI 是這門課的糖衣毒藥,作業用起來很開心,結果到期末考會發現,自己跟 AI 都解不出來這些題目。 ### 小結 這篇篇幅有夠長,~~也許是因為在受苦之後心得特別多~~。修過 NASA 的學長曾經叫我不要修 NASA,結果我還是做死去修了。現在如果有人問我要不要修 NASA,我認為如果對 GPA 有要求的人就不要修。如果是真心想要學習的人,這門課絕對稱得上是一門好課。 ## 資料結構與演算法 :::info - 授課老師:林軒田 & 蔡欣穆 - 學分:3 (資訊系必修) - 等第:A - 原始分數:88.2 - 每周課後花費時間:20+ 小時 ::: > 我是資訊系基本教義派,這個系不叫資工系而是資訊系 [name=軒田] > 把你變成你爺爺 [name=欣穆] ### 課程介紹與評分 英文課名是 Data Structure and Algorithm,簡稱 DSA。這門課是資訊系大一下必帶,但在 DSA Judge 上可以看到不少大二大三大四大五的學長姐,也很多外系的來修。 軒田教前半學期,欣穆教後半學期。上課是講各種的資料結構,以及與其對應到的演算法。上課講的內容容易吸收,但作業跟考試就不是這麼一回事了。 評分是作業 (Handwriting) 20%、作業 (Programming) 20%、Activity 10%、Midterm 25%、Final 25%。Everything capped。 學期初講好 A+ 線固定 95 分、A 線固定 90 分。但也有說 A 線也許會調低。跟 NASA 不一樣,學期末就真的按照講好的 95 分 A+,而 A 則是 85 分、A- 80 分。 Homework 有四次,每次都分為 Handwriting 跟 Programming 兩部分。Handwriting 有證明、寫 pseudo code、根據題目寫出自己的演算法解法等等。雖然是 Handwriting,但很多人都是用 LaTeX 打好後交上去。 Programming 部分則是有兩題,一題偏實作一題偏思考。實作題可能是按照 pseudo code 寫出對應的 C code,或著是把上課提到的演算法寫出來。思考題大家都稱作 P4,因為這題是每次 Homework 的最後一題,難度非常非常高,是強迫學生想出、討論要怎麼做演算法,並實作成 C code 的題目。 除了 Homework 會有 Programming,這學期還有額外的 HW0 跟 mini-Homework 可以算在 Programming 的分數中,因此不用每題 Programming 都寫。HW0 是學期初釋出的基本程式題,給同學衡量自己的程式能力要不要修這門課。mini-Homework 則是銜接上課與作業的程式練習題,可以在做作業前熟悉上課內容。 考試則是作業 Handwriting 的加強版,純手寫考試。期中跟期末出題的老師分別是上課的老師,因此形式不一樣。期中滿分 100 最高 96 中位數 53,我認為思考的題型偏多,也幾乎每一題都要寫 pseudo code。期末滿分 105 最高 101 中位數 56,實作的題型偏多,例如給一個 B-tree,然後按照上課教的對 B-Tree 做插入刪除等等動作。 ### 感想 這門課是資訊系 [溺水式教學](https://www.dcard.tw/f/ntu/p/258908892) 的代表之一。所謂溺水式教學就是把一群人丟進海裡,有些人高中就會游泳了有些人不會。雖然看似這門課有在教怎麼游泳,但不會游泳的同學還沒來得及學會就先被淹死了,~~然後岸上的人可能還會跟溺死的同學說你怎麼不找找自己問題~~。 上課跟作業的難度是天壤之別,上課教的內容就像是新手村,結果作業就要你去打宿攤。Handwriting 的部分要活用各種上課教過的演算法,一份作業 12-15 小題,有 3-6 小題要花費的心力相等於一題計程的題目,也就是給一個敘述,按照這個敘述寫下解出這個題目的程式,只是在這個作業裡用的是 pseudo code 而不是 C code。 對於這種一份作業中需要寫 pseudo code 的題目,我很推薦乾脆直接用 Python 寫出來,然後確認自己寫對了之後,直接把 Python code 貼到作業。如此不僅能確認自己是對的,而且助教應該也比較能理解 Python 而不是每個人語法不一樣的 pseudo code(?)。 一次的 Handwriting 花費時間我大約 16-20 小時,因此欣穆也說過 NASA 跟 DSA 大約有同等的硬度。 作業中的另一部份 -- Programming -- 則是更多人哀嚎的痛苦來源。Programming 的形式如同一般的程式題目:給輸入,給敘述,按照題目要求輸出正確答案。許多同學為了 Programming 題在系館通霄,可說是害人不淺。 Programming 實作題通常比較簡單,內容有時候是把上課提到的東西時做出來,有時候是上課內容的進階版資料結構 (xor linked list, min-max heap etc.)。實作題我通常花 3-8 個小時就可以搞定,大約 200-300 行的 C code。 Programming 思考題則是許多人的夢魘,因為編號是作業第四題所以我們都說 P4。這一題的內容則是上課內容的 pro pro max 版本,要活用還要加入其他的演算法。以並查集的 P4 為例,上課教並查集,作業要做兩個帶權並查集,要互相查詢、合併、刪除 etc。思考題我通常要花 12-16 小時,大約 300-600 行 C code。 所以說一次作業 30+ 小時不是騙人,是真的很可怕。DSA 作業的截止時間有兩周,這兩周基本上就是隨時處在心情低落的狀態,連走路都在想要怎麼解題 (但其實很有用也是利用時間的好方式)。 有一個特別的作業是 mini-homework,每周會有一次,是近年新增的制度,用來彌補上課跟作業的非常大難度差距。但實際上 mini-homework 沒辦法做到這點,因為作業實在太難了,所以 mini-homework 相較之下非常水。 這門課必須稱讚的地方還是很多,可以明顯感受到老師們努力用心的在改善這門課程,完善各種制度以及對作業進行修改等等,上課也很認真在上。助教群們也非常熱心幫助同學,批改作業考試非常認真,偶有失誤也很快就改善了。這門課的教學團隊真的非常讚。 這門課很需要抱團一起修,可以一起討論作業。有 DSA 作業的那幾週,聊天的話題就會是「欸你 2-2 寫了沒」、「教我一下 P4」,同學的幫助非常大,沒有經驗的同學要獨立想出解法有一定難度。 最後是溺水式教學的部分,即使每個人都過得很辛苦,但還是有 15% 的人可以拿到 95 分以上的 A+。根據 [前 DSA TA 的說法](https://www.dcard.tw/f/ntu/p/255833790/b/36?cid=b65d85d8-db96-4762-af7f-2dfef9e6e7b8),沒有拿到 A+ 最好是找找自己問題。 總分公布後,最高 98 平均 64。但是看 IG 限動會有每個人都拿 A 的感覺。 ### 小結 因為修這門課的人很多,所以我想說心得可以少一點,別人應該寫得更豐富。如果不是必修,建議不要選這門課,把自己搞到生活爆炸健康壞去又拿不到好成績,實在不值。對於是必修的資訊系學生,祝好運 XD。 ## 結論 - 學分:19 (因為 NASA 選 1 學分所以看起來很少) - GPA:4.25/4.3 - 排名:3/134 這一個學期過去,我學到最多是如何管理時間,~~整學期我不是在做作業就是在睡覺~~,尤其好幾周都是 NASA + DSA + ML + 普天作業夾擊。 另外,這個 NASA 跟普天分別是星期一的早上跟下午,可謂是整天上太空。所以我在學期最後一個月會在星期一穿 NASA (美國那個) 的衣服去學校,但似乎沒有人很在乎,超好笑。 我這學期挺幸運的,都選到很喜歡的老師。但課真的太硬了,有機器學習還有普天同慶,而且 NASA 跟 DSA 花費的時間遠超過其他課。雖說如此,如果問我會不會再上一次這些課?是的,這些課我都會再選一次。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up