電機系大學求生守則第三條

傅立葉轉換是什麼,可以吃嗎? — — 電機系大學部的課程簡介

李丞恩
Jan 18, 2022

各位好,先祝大家新年快樂!自從我上學期初寫完求生守則第二條後,收到了不少讀者的來信與留言,有些讀者認為我的建議有所幫助,甚至還有讀者為我的文章畫重點,讓我十分開心,謝謝各位的支持。另外也跟各位讀者說聲不好意思,我在上學期稍微有點忙碌,因此根據四選二法則……只好把更新拖到寒假繼續了(好啦只是在找理由)。

先恭喜各位大一學弟妹成功度過第一學期,希望這一學期,你們有找到可以信賴的同學與學長姐。這比完成自己課業上的期望更為重要。或許許多同學會對自己這學期課業或其他方面的表現不滿意,但人生大部分時間本來就是摸著石頭過河,不如意的經驗更能讓人對整個體制的遊戲規則有更深的理解。因此如果我的文章能對你的大學生活提供一點點幫助,或著免去至少一次的麻煩,那便是我的榮幸。

話不多說,我們進入這一章的正題吧。

前言

求生守則的第三條與第四條只討論兩個問題:

  • 我如何將電機系的課分類(第三條)
  • 我如何在這些課中想辦法拿到好成績(第四條)

經過一個學期,大一學弟妹們或許已經對大學的課業有初步的了解,那就是高中的讀書方法未必適合大學,且隨著年級漸增,更需要採用新的方法。網路上不乏大學讀書方法以及經驗分享的影片。在此我推薦電資院學士班畢業與我同屆的youtuber Mango Lin,以及同為清大的youtuber MushroomWang他們的影片包含大學第一現場的生活與讀書實錄,相信會有所幫助。

大學的一本課本可能比高中三年同一科的課本疊起來還要厚,此外作業、考試的型態也與高中大相逕庭。雖然我在大學時的成績老實說並不好,是全系倒數之列(系排名約70%),不過經過多次嘗試錯誤,以及與各個成績區間的同學討論,加上自己的反思,我掌握了一種相對更為全面的讀書方法──或著是心態。我們不妨先從「什麼時候該做什麼事」開始談起。

圖一、左邊各種顏色封面的書是我唸電機系有留下的講義

更進一步凝視電機系的大劇本

在上一章我們曾經說過「劇本」是電機系學生的三大法器之一。不過,在上一章的大劇本示意圖裡,我大致上將課業、社團、人際的大事件都塞了進去。我們應當為大劇本填上更多「課業」方面的細節,也就是什麼時候該修什麼課。我以清大電機系為例,本系的修業規定可以在清大課務組的網頁。其他系的讀者,也可以在貴系的系網,或貴校課務組找到修業規定。

我建議電機系大一的同學一定要預先排定自己大一大二兩年的課表。並且在這過程中遵守選課四要一不要原則

  1. 機率一定要在微積分後面修
  2. 電子學(或電子學一)一定要在電路學(或電路學一)後面修,如果真的無法達成,才考慮同時去修。
  3. 至少要學完常微分方程(或工程數學一)才學訊號與系統
  4. 要量力而為,對一般的同學而言,總學分(含軍訓、通識)落在17~21學分是最合理的,23已經嫌太多,已超出大多數人的極限,25是法定上限。我在系上只有看過兩個人可以修滿25學分還拿不錯成績的。
  5. 除非不得已,否則一學期不要超過四主科。

主科的定義是排除通識、體育、國文英文、服務學習等校定必修,以及語文課(如日、德、法語等)。因此主科除了必修課,也包含系上的選修課、外系的選修課、各種實驗課。甚至,較「硬」(修起來較辛苦)的通識課也應該算進主科(這種通識課通常是人社院各系開的課)。

不過清大電機系比較特殊,就三電一工而言,因為我們將一般理工科系的工程數學拆成三個科目:常微分方程、偏微分方程與複變函數、線性代數,並分在兩個學期上完。而且一般電機系必修兩至三學期的電子學,本系壓縮至一個學期上完[1]。他校(例如成大)必修兩學期的電路學,本系也是壓縮在一個學期上完[2],因此請務必跟學長姐或導師確認好建議的修課流程。一個比較合理的安排如下:

圖二、清大電機系必修課的修課計畫表:一個比較流行的版本

如果是清大電機的同學,我建議除了專題以外的必修課一定要在大二下修完,最糟的情況下也只能留一堂到大三。也因此,必修課請盡量不要被當,以免因為衝堂打亂整個劇本的節奏並加重自己的負擔。如果對選課有疑問,請務必參加系上的選課說明會並踴躍向系上老師提問。

至於其他系的同學,你們的修課計畫表我會建議排成這樣:

圖三、他校電機系同學的必修課計畫表範例

最後,如果是跟我一樣有輔系的同學,可能就要破例去扛五主科了。不過請注意選課規則1~4仍然不可違反。因此如果要輔系修課計畫表一定要妥善安排,為每學期安排合理的負荷。我大學時輔系數學系,因此從大二開始每學期都多出1~2堂數學系的課,直到大四下都還是一學期四主科的狀況,不可謂之不重。因此輔系前應審慎考量個人能力,我會在之後的文章繼續討論輔系這件事情。至於雙主修已超出我的理解與能力範圍,可能需要更厲害的同學說明。雙專長則是最近在清大與陽交大興起的潮流,我個人理解不深,建議詢問課務組或有經驗的同學。

電機系的課程分類介紹

承襲上文,電機系學生必須修讀的科目分為主科與非主科,根據我個人的理解與系上同學的經驗結晶,電機系的主科分成數學課、理論課、技術課以及專題四種。而非主科的課程我單獨歸為一類,統稱為其他類。在此,我們先介紹這五種課程。

接來的文章請搭配下表閱讀:

圖四、電機系的課程分類:以作者本人修過的課為例

1. 數學課:

我高中的數學補習班老師曾說:「國中數學是計算的推演,高中數學是觀念的跳躍」,那麼大學數學是什麼呢?我個人的感想是「定義、定理的堆積與經驗的累積」。大學的數學與國高中的數學有非常大的不同。高中時,我們很少專注在觀念之間如何互相推演,而更著重觸類旁通,舉一反三,在一個題目之中利用許多不同的觀念解題。比如說,當我們解一個與三角函數有關的最大最小值的問題時,可能要使用多項式中的配方法,或是向量中的柯西不等式,或是利用解析幾何判斷式子的幾何意義並畫圖等方法。同時,可能由於高中的數學觀念其實都比較簡單,因此出題老師只好加深題目的深度,因此很容易寫到較為刁鑽的題目。

不過大學的數學並不是這麼一回事,這並不是說大學數學不需要觸類旁通或題目不會有深度,而是大學數學學習起來與高中數學有很大的不同。就如同三大法則中第二條所說的,「不要自作聰明」,無論你高中數學再怎麼好,在大學只能代表你在計算上將會有一點優勢。因此即使是微積分第一堂課講了很多你以前已經聽過的東西,你都應該當成自己完全沒聽過一般虛心學習。

大學的數學都會先從「定義」(definition)和「公設」(axiom)出發。「定義」是用來介紹一個我們需要使用的數學名詞、討論的對象、或某種特定的運算。如果從高中數學舉例,就好比我們會從三角邊比或廣義角去定義什麼是三角函數,或是從集合內某子集元素的數量去定義機率一樣。至於在電機系會遇到的是學課程中,有以下的例子:

  • 在微積分中,定義什麼是極限、連續、導數等等;
  • 線性代數中,定義什麼是向量和向量空間;
  • 在機率論中,定義什麼是隨機變數;
  • 在訊號與系統中,定義什麼是LTI系統;
  • 在工程數學中,定義什麼是傅立葉轉換。

「公設」則是對於某些我們正在探討的主題,我們就預設他是對的而不予以證明,電機系會遇到的公設大致上只有兩個:微積分中實數的完備性以及機率論中的科摩哥洛夫公設(Kolmogorov axioms)。

接著,課本(或老師)會就這個定義或公設,開始推導一些對邏輯上為真的描述,就叫做「定理」(theorem)。這個推導的過程,就稱為「證明」(proof)。例如微積分中「若函數f可微則f必定連續」是一個定理,「設n為正整數,則x的n次方微分為n乘上x的n-1次方」也是一個定理。以高中數學舉例,承續上一段,「sin的二倍角公式」是一個定理、「sin²x+cos²x=1」也是一個定理,「貝氏定理」當然也是一個定理。接著,就會由這些定理和原本的定義,去推導出更多的定理,而這就是大學的數學鋪陳的方式。

電機系的數學課上課方式大致就是先講定義,然後按照上面的形式去介紹一些定理。不過,有些較為複雜的證明可能會被省略或跳過(留給數學系的同學煩惱就好了)。接著會舉幾個例子實際進行運算。因此電機系會遇到的數學課算是最好應付的一類課程,雖然我們不必背下所有證明過程,或所有公式的推導過程,但理論上,只要你確保上課時教授的筆記或PPT中,每個符號、每個名詞、每個敘述都看得懂,且能夠知道例子如何演算,以及運算的過程使用了那些定義、定理,並確實完成作業就可以了。然而上大學後不少人對數學從擅長變成一竅不通,這又是何故?以及如何解決呢?就且看下回分解。

通常電機系會遇到的數學課都是必修,但也有不少同學會在大一或大二去修離散數學,通常大三開始,除非是有意往通訊領域鑽研的同學以外,應該不會再去修數學類的課程了。不過有些同學會基於興趣去數學系修高等微積分。

2. 理論課

理論課指的是教你電機系某個領域的入門課程,其中會介紹該領域最重要的一些基本觀念、必備常識和計算方法。以必修課程來說,電機系的理論課就只有大一邏輯設計與大二、大三俗稱的「三電」,也就是電路學、電子學、電磁學。而大三大四的選修課基本上都是理論課。因此及早從這幾門課把握理論課的學習方式是很重要的。除非高中有做過類似的專題,或是高職升上來的同學,否則理論課對大多數同學應該都十分陌生。因此能否順利學習非常看重授課老師的實力。

電機系的理論課幾乎都是用PPT上課的。通常一學期會有8~12個章節,與數學課不同,一開始都會先介紹這門課實際應用的場景,以及為什麼電機系的同學要修這堂課。接著可能會介紹這個領域發展的歷史或基本的元件介紹,而後就進入正題。

我們就介紹三電與邏輯設計。邏輯設計會先介紹電腦如何使用「0」和「1」以二進位制和各種編碼方法來表示資料,接著會介紹「0」和「1」之間的各種運算方法,稱為布林代數。學會布林代數以後,就可以利用這些運算規則建立一個小小的數位電路,實現我們想要的功能,比方說:設計一個讓五個人投票同意或反對並計票的裝置、設計一個執行兩位數加法運算的機器等等。再之後就會開始探討整個數位電路的狀態如何隨時間變化、以及如何電腦如何儲存資料等主題。

電路學則著重研究「電阻、電感、電容」這三種元件組合而成的直流或交流電路,以及其可以達成的功能。與直觀感受不同,這堂課反而比較貼近數學而非物理。舉例來說,我們常常需要使用大一常微分方程所教的拉普拉斯轉換和傅立葉轉換去分析這類電路。如果是兩學期的電路學,可能還會教一些三相電路或磁耦合電路等主題,但清大電機系的電路學只有一學期,似乎就沒有提及。

電子學則是除了電阻、電感、電容以外,還要研究各種電晶體組合而成的電路,例如放大器(Amplifier)、震盪電路(Oscillator)、電流鏡(Current Mirror)等等。建立這些電路的目標是因為,假設我們在電路一端輸入的電壓隨時間的變化是Vin(t),我們會希望在電路的另一端能輸出想要的電壓或電流波形Vout(t)。因此電子學中所研究的電路,範圍會比電路學還要更多,這也是為何要先修完電路學再修電子學的緣故。話雖如此,我很推薦想要就讀電機系的高中生先去翻一翻電子學的課本(記得找中譯本),例如Smith或Razavi這兩位作者的課本,不必求理解,但是就先看看這東西符不符合你的胃口。

至於電磁學就與物理比較有關了,第一學期會先複習微積分中的向量分析,接著探討靜電和靜磁的物理現象。如果是兩學期制的電磁學,第二學期會使用馬克士威方程組去探討更深入的電磁場現象。

隨著理論的深入,相同的主題可能會得到更深一層的探討。例如邏輯設計中我們設計一個數位電路,在大二電子學中,由於數位電路的元件(邏輯閘)也是由電晶體和其他電路元件組成,因此我們會將這些元件全部畫出來,並計算輸入與輸出間的關係;到了大三大四的積體電路設計導論,我們還要會估計這個電路輸入與輸出的延遲是多少,以及如何調整這個電路以滿足我們規定的一些需求(例如延遲不可超過多久,功率消耗不可大於多少等等),並且還要能畫出電路的「線路布局」(layout)。

圖五、電路圖與layout:左上是and邏輯閘,左下是電路圖,右邊是畫在IC上的layout

而大三大四的理論課的選擇就因人而異。以我們這一屆為例,比較熱門的選修課有:類比電路分析與設計、積體電路設計導論、計算機結構、數位訊號處理概論、計算機網路概論等。有興趣的同學可以自行上網搜尋這些課在上什麼。

3. 技術課

技術課指的是需要大量實作的課程,而為了學習這項技術,可能需要(事先或同時學習)一些理論,並且在課程中大量的實作許多作品。以電機系來說,所有實驗(除了普通物理實驗外)以及大一的「計算機程式設計」就屬於技術課。

說到電機系的技術,那是絕對離不開「寫程式」的。即使是本系必修的「電子電路實驗」也有要寫程式的實驗主題!但這並不是說你如果沒有在高中先學過寫程式就不適合念電機系。沒有人是一生下來就會寫程式的,「寫程式」這件事上,起步得早與起步的晚,差異只在於你在電機系生活最一開始(大概大一上期中考前)的辛苦程度差異而已。長期來看大家都要付出相同的努力。

大一的程式設計是我認為最重要的技術課,通常各校電機系的程式設計是教C、C++、Python這三個主流語言的其中之一。學習程式語言都是先從掌握他的語法與各種功能的使用開始,這也是大一程式設計的上課方式。教我程式設計的教授曾說,這門課的目的就是把函式(function)寫「好」。換言之,你必須寫一個「好的」程式,使輸入的資料能夠產生正確的輸出是最基本的要求。至於怎樣的程式算是「好的」程式,可以從這個程式是否精簡、執行時間是否足夠短、是否較不會消耗電腦運算資源,以及他人是否容易讀懂等方面來評斷。當時我們的教授會用這些標準要求我們,如果你的教授不會,也最好如此要求自己,因為這對未來與他人合作寫程式的情形會有很大的幫助。

在日後的其他課程,如果要用到其他程式語言,任何老師都是不會再重新教一次的,頂多請助教花一兩個晚上幫各位做簡單的介紹。不過程式語言只要學會一種,學習另一種就會很快。例如我在大學時就學會了C、C++、Python、MATLAB、Verilog五種語言,甚至也有接觸R和Linux的shell script。由此可知只要大一程式設計學的好,往後的課程所使用的語言就很容易觸類旁通。我建議可以找一個暑假把另外兩種程式語言學好。例如學校教C,就可以在暑假自學C++和Python。

有些電機系有資料結構或演算法的課,同學可以依照其要求實作的多寡來判斷屬於理論課或技術課。

至於實驗課,通常會建議先修過相關的理論課再去修讀。比方說若要修數位訊號處理實驗,就最好先修過數位訊號處理導論;要修積體電路設計實驗,就最好先修過積體電論設計導論,依此類推。但也有一些例外,例如嵌入式系統與實驗。通常一門實驗課會有七到十二個實驗,每次實驗開始前會先由教授介紹該實驗的原理,接著由助教介紹實驗所需的器材與實驗步驟,之後就是開始實驗。

如果是自己有興趣的實驗,那其實做起來並不會太痛苦。對大學生而言,實驗課做到晚上甚至半夜是常有的事情,而實驗課有一個很重要的功能,那就是「敦親睦鄰」。因為實驗的過程都是有問題才去找助教或教授協助debug,但如果剛好助教都其他人找去時,就只能和同學互相研究,或請已經做出來的同學協助了。而許多同學做完實驗後也很樂意留下來繼續協助其他同學。因此說實驗課是一個發覺同學長才,以及交換情報的重要社交場所也不為過。

4. 專題課

電機系的專題總共要做兩學期,雖然許多系上教授建議同學在大三下再開始做,但其實大部分的同學大二下就會開始找教授並參加系上的專題說明會,然後升大三的暑假就開始做,一般會盡量在大三下做完以免卡到研究所申請。專題的題目會與指導教授的研究有關,一般來說專題都會由該教授的研究生或博士生帶領。

不過這就會出現一個兩難。即將升大三的同學只修完了最基本的必修課,對於專業的課程仍一無所知,因此升大三暑假和大三上學期是很難有進度的;加上本系的專題在五月底就必須做完,因此‘實際能進行的時間只有四個月左右。一般而言專題生在升大三暑假和大三上學期會先學習研讀與報告相關論文,以增進對該主題的了解,並在寒假確定專題題目後開始進行研究,並在最後三個星期左右開始撰寫實作報告。我建議要做專題的同學,能積極的參與是最好,但也不必因為進度而太過焦慮,一般而言專題會橋到船頭自然直的(意味深)。如果選擇大三下和大四上做專題也會是類似的情形,若大三上已修過相關的課程,做起來可能會順利些,不過就很難在研究所申請(十月初)之前做完。總之這就是一個取捨,各位可以依自己的狀況自行決定。

專題是電機系同學的重頭戲,對於日後研究所申請以及實習、甚至就業的申請都有重大的影響。若能找到知名的教授擔任指導教授是最好,但即使是找其他教授,若能夠確實做完並能夠清楚向他人介紹自己的專題在做什麼,有什麼學術貢獻,那麼就已經是很成功的結果了。

5. 其他課

我將主科以外的科目(普物與普物實驗例外)都放進其他課程。首先我們先討論必修的英文課、服務學習、體育課以及你比較沒有興趣的通識課。這些課只要你能確保他不會因為時間等因素,造成你主科學習上的困擾就好。

接著是普通物理實驗,之所以歸類在其他課,是因為我、以及我們清大電機系同屆幾乎所有同學,一致認為普通物理實驗對我們日後在電機系的學習沒有任何的幫助,純粹只是造成我們痛苦以及浪費時間而已。我有聽說有學弟妹向系上爭取廢除普通物理實驗必修,但似乎沒有下文。

至於普通物理,由於歸類進電機系的理論課也很奇怪(因為普物一都是力學和熱學),因此就只好歸類進其他類。不過,由於普物與高中物理有極大的相似性,所使用的微積分並不到太困難的程度,因此通常不大會造成困擾。以本校來說,普物分成物理系普物、普物A與普物B三種。電機系修的是普物B,而普物B的給分也普遍不會太刁難同學。若真的在學習上遇到困難,應該在第一時間請教助教、其他同學,或學校安排的輔導學長姊。[3]

一般大學也會有國防課,就看你想不想修。據我所知現在還是可以折抵兵役的。而且國防課通常給分也很好看,可以拉高GPA。此外女生也可以修國防課。

最後是通識課和外語課[4][5],選擇自己有興趣的課就可以了。但是如果選不到自己喜歡的課,基於三大觀念的的一條「量力而為」,因為你是電機系的同學,而且你時間有限,因此要盡量選輕鬆的通識課。另外重申一次,大一上不要選通識課,會累死。前面說過總學分(含軍訓、通識)落在17~21學分是最合理的,這大約是四門主科加上一到兩門通識課,以及一些其他類課程的學分數。

總結

本文總結了電機系五種課程的介紹:數學課、理論課、技術課、專題課以及其他。下一章,我們要各個擊破,探討應該如何尋找對自己來說每種課程最適合的讀書策略。最後,請各位大一的同學盡快排定必修課的修課時程,並維持一學期17~21學分的安排。

[1] 沒錯,Razavi的一到十二章在一學期上完,也就是教到frequency response那邊。

[2] 本系似乎不會教三相電路和磁耦合電路。

[3] 比如清大的圖書館輔導員。

[4] 如必修英文以外的英文課、日、法、德、西語等。

[5] 有些學校,例如本校的外語課不算通識學分。

求生守則第一條: 大學生必備的妙妙公式 — 論大學生活的樣貌

求生守則第二條:欣賞日出之美──電機系學生的生活

求生守則第三條:傅立葉轉換是什麼,可以吃嗎? — 電機系大學部的課程簡介

--

--