2009年9月3日 星期四

如何撰寫論文

一篇最近在找的心經類型的文章,也看得出來老師的用心程度...以下來自MMDays


這篇文章的作者,是時任台大資管系主任莊裕澤教授,在看過研究所同學的論文proposal之後,有感而發對實驗室同學寫下的信。當年這封信只在實驗室同學、學弟妹、好友間輾轉流傳,而現在這篇文章的刊出,已經過老師的同意,用意是希望與更多朋友分享。〈文章最後改了一點字句,主要是實驗室的相關細節資訊,刪去與本文主旨無礙〉



Dear all:

  意是與其等到四、五月你們寫論文時再要求你們改進,不如利用這個寒假好好督促你們把論文的前三章寫得完整。我大致翻了所內今年提出的proposals,我們實驗室的成員大部份只在平均附近(或者低些)。我想如果再不嚴格督促你們,我們以後恐怕無法再以LAB成員自豪。

  我大概跟你們提過如何寫proposal,但可能不是很有系統。為了讓你們能把proposal及論文寫好。我花了一點時間整理自己的心得,供你們參考。


  論文大致上有五、六章。第一章是Introduction,這一章通常只佔論文整體篇幅的十分之一,卻是最關鍵的一章;它就像一個物品的包裝一樣,即使結果再好,但包裝差,也會讓整篇論文頓時失色。在國際會議論文的審稿過程中,很多委員往往僅從Introduction中評斷論文是否值得接受。Introduction要如何寫好是需要一些天份與努力的,基本上它就像在寫作文一樣,要有強而有力的開頭,在前一、二段就能帶領讀者進入你要研究的領域。接下來的幾個段落,你必須替讀者建立足夠的background,讓他們了解你論文的研究背景。

  Background建立好之後,你必須點出整個研究的動機,這是最關鍵的地方,動機不足,無法顯示你研究的重要性,變成無病呻吟,甚至連呻吟的聲音都聽不到,不曉得你到底要做什麼。動機點出來之後,通常就會說明你的研究成果及主要貢獻,也就是論文的價值之所在。在Proposal階段,這部分會以預期的方式來呈現。最後,你會花一段文字來說明整個論文的架構,並做為第一章的總結。

  除了動機要強之外,第一章一般比較容易犯的毛病是研究背景給的不充分,以及與研究動機沒有連貫性,研究背景漫無邊際的討論,然後“天外飛來”你的研究動機。切記一點,寫研究論文邏輯一定要清晰,整個章節的構思邏輯是什麼、為何這個句子要承接上個段句子、這個段落要承接上個段落等等,一定要清楚的思考過。許多論文的敗筆在於論文東一段、西一段,段落之間沒有邏輯關聯,讓論文整體雜亂無章。如何避免這樣的問題,如果你沒有天份的話,只好靠後天的努力:對於論文返覆的讀取,不厭其煩的思考句子、段落之間是否有邏輯上的問題。我個人的經驗是,我自己寫過的文章,每讀一次都有新的體會與修正。一篇論文寫完之後,我都會再從頭到尾讀一次,修改到我最近一次讀過後沒有新的修正為止。

  這樣通常會經歷四、五回合以上。我最不喜歡見到的是學生論文寫完之後,從頭到尾連一次都沒看過就送給我,裡面錯誤百出,甚至連基本的連結 (cross reference)都錯,好像要我幫他校稿一樣。你們有些人也有這樣的毛病,這樣的毛病不改是做不好學問的。以後我看到這樣的論文馬上就退。我以前念書的時候跟指導教授meeting討論論文時總是戰戰兢兢,在給他看我的論文時我自己會來回看好多次,深怕犯一些明顯的文法或邏輯錯誤,或他曾經指正過我的錯誤,我也藉此訓練出比較獨立的研究能力。這裡我感覺大多數的學生都比較缺乏獨立的研究能力,有些則完全依賴指導教授替他修改論文,甚至覺得理所當然,這是相當不正確的研究態度。


  第二章是文獻探討。在寫這章前一定要仔細思考你要探討哪些相關文獻,這些相關文獻如何分門別類,然後在第二張開頭以約一頁的篇幅描述你要survey的內容、範圍與架構。當然,你得提供充分的理由說明為何你要做這樣的組織分類。文獻探討要做的好是一門學問,它並不是把一些相關的文獻看過,然後對每個文獻作摘要即可。把相關文獻做一個有系統的分類,本身就是一種貢獻。一般而言,每個研究領域都可以拉的很廣,你在有限的空間內不可能全部涉獵,因此,你得設定一適當的焦距,決定文獻探討的領域範圍。

  在你設定的範圍內一定有許多文獻要探討,你得將這些文獻分門別類,每一類別選定一個最具代表性的文獻做這個類別的開端。接下來你得摘要這篇文獻的主要內容與貢獻,並且用比較簡單淺顯的方式讓讀者了解關鍵的技術。一般而言,這篇代表性的文獻後續多少有些follow-up繼續改進前人的結果。這時你大致不需要針對每個follow-up做仔細討論,只要用一、二句話摘要出每個follow-up改進之處即可。把比較重要的follow-up說明之後,你應該以一段話做為這個類別的結論。

  這一段話必須評論目前在這類別的研究成果大致為何,還有那些不足的地方,以及與你的研究有何關聯(如你會採用那些既有的技術,你的研究方法或成果與它們有何差異,你的研究對這個領域的貢獻為何)。

  很多人的文獻探討只摘要了別人的成果,卻少了最後這一段,無法讓人了解你的survey與你的研究議題有何關聯,也不曉得你對前人的成果看法為何。另外一個比較常見的問題就是survey不深入犀利,講得都是很表面得東西,讓人家覺得看你的survey對這領域一點幫助都沒有。

  對每個類別survey完之後你必須對這整個章節做一個結論。在這個總結裏,你必須匯整出這個領域裏目前的研究進展,還有那些不足的地方,並且從此支持你在第一章提到的研究動機,以承接下一章節。


  第三章基本上是要描述你的研究議題與方法。你必須清楚的描述及定義你的問題。有些時候,問題與定義會牽涉到你的系統或演算法所植基於的model,因此你也必須定義你用的系統model為何,有那些假設的前題。接下來就是說明你的研究方法,所須的定義與所用的核心技術。接下來就是提出你對問題的解決方案,並分析討論它的優劣。

  在proposal的階段基本上不必具體的提出解決方法,只要討論你大致將採行的措施即可。但即使如此,在proposal的階段這一章也不能馬虎的做表面的探討。一定要具一定的深度,才可以讓committee 的成員相信你對於你的研究議題有足夠的了解。這一章寫深入,你未來修改甚至更換研究題目的機率就低。


  第四章通常是對於你在第三章提出的問題解決方案做一實證,如系統模擬,比較你的方法效能為何、與既有的方法有何差異。


  第五章就是對論文做一結論,在這裡你必須重覆你整個研究的動機,再敘述你的成果,然後說明你的研究價值與貢獻。每項研究總有不盡完美之處,你的大概也不例外。因此,接下來你就要討論你的研究成果或系統還有那些可以改進之處,據此引出未來研究方向。

  第四、五章在proposal階段是不必要有的。另外,根據研究議題的差異與研究成果的大小,有些論文(特別是博士論文)在討論其研究成果時會分成兩個以上的章節來說明,因此論文總體而言會有五章以上。

  論文最後必須附上參考文獻。這是大多數人最容易忽略的地方。因此,研究態度嚴不嚴謹也很容易從這個地方看出。我已經告訴過你們參考文獻要如何編排,應該會有那些欄位。你們要確實且詳盡的去建立每筆參考文獻。另外,參考文獻的數目應該要適中。碩士論文我認為應該在30筆到40筆之間。博士論文可能多達四、五十筆以上。但也不要過度誇大,把許多不相干的都放進來。當然,這些數目都不是絕對的,它會隨研究領域和議題有所差異。

  我再花點時間跟大家談談怎樣做好survey的工作。(我用了約一天的時間整理這些東西,我的中打不好,昨晚打字打到清晨4點,只打了2/3,所以請你好好的看完!)


  Survey是做好論文的第一步,也是關鍵的一步。Survey的目的大家都知道,就是要對研究的議題有個深入且廣泛的了解,這樣才知道目前在這領域裡研究的進展已經到什麼地步,state of the art是什麼,有那些的子題及技術已經被探討,從而也可以知道那些還可以開發,那些技術可以被你的研究議題拿來應用。Survey 做的不好,最致命的打擊就是在你對你的研究議題一頭埋入,花了許多心血,好不容易熬出一些成果之後,突然才發現別人早已經發表同樣或類似的成果。

  怎樣才能把survey做的深入且廣泛呢?我的方法是你要知道在這領域裡主要的國際會議是什麼,然後把這些會議近幾年來(至少三年)所發表過的論文的title及abstract瀏覽一次,找出跟研究議題比較相關的論文(注意:是「議題」,不是「領域」)。這樣初步找出來的論文大概從十來篇到二、三十篇,甚至也可能更多。

  接著,你得把這些論文的Introduction看一遍,對它們做個初步的瀏覽,然後把這些論文依它們與你的研究議題的相關性做個大致的排序。接下來就是依序把這些論文仔細的研讀,每篇論文的重點是什麼,關鍵的技術又是什麼,都得弄得很清楚。

  我的經驗是:因為剛開始對研究議題較不熟悉,前面幾篇念起來通常較吃力。可是隨著研讀的論文愈多,你就會發現愈來愈輕鬆。

  在這個階段,你每篇研讀的論文大概都是夠水準的論文(因為他們是發表在主要的國際會議)。在研讀這些論文的時候,你得看它們探討那些相關的文獻,這些文獻你大致都得知道,並且就其中與你研究議題最相關的論文,你也得找出來仔細的研讀,並且重覆這樣子的工作一直追溯下去。你不用擔心這樣做會無止無境,因為當你從最近的一篇論文開始往前追朔,大概不超過三、四代,你就會發現不必再追朔,因為再往前追朔,你會發現它們要麼與你的研究議題愈來愈遠,要麼就是你研究領域的基本知識。如果是你研究領域應具備的基本知識,而你還不了解,那你應該回頭再修一些課把基礎打好,不該這麼早就進入你想研究的議題上。

  根據這個經驗法則,你會發現你在survey的階段只要把握一個原則:把與研究議題相關的最近幾篇論文拿出來,看看這些論文所引用的文獻有沒有你不知道的,如果沒有,那麼比這些論文早的文獻你大概都沒遺漏了。如果有,就把它們找出來仔細的研讀。隨著你研讀的論文愈多,你的功力就愈增加。當你發現拿到一篇新論文時只要看完它的Introduction之後,你就知道這篇論文的重點及猜出它用的主要技術之後,你的功力已經提昇到可以進入研究議題的階段了。在這個階段,如果論文的研讀夠深入及廣泛,你往往也可以發現新的研究議題。

  你的survey還不能在這裡停止,因為你的觸角可能尚未含蓋所有關於研究議題的文獻。你目前只有survey與研究議題相關的主要國際會議(以及會議論文所引用到的相關文獻),這些會議通常不超三到五個。目前的國際會議相當多,而且有些會議的研討議題又廣,因此有可能兩個會議的主軸不一樣,但卻含蓋類似的子題。舉例來說,假設你要研究的是peer-to-peer系統上的資訊搜尋,你大概會找專門探討peer-to-peer系統的國際會議。這個目前大概有二、三個。

  可是你知道那裡還有呢?我告訴你至少還有二、三十個可能:專門討論分散式系統裡的國際會議(這至少有五到十個,其中first tier的約三、四個,其餘為second tier),討論平行運算的國際會議(這至少也有五個),討論網路與通訊系統的國際會議(這至少十個以上),討論資料庫與資訊檢索的國際會議(這至少也有五個),相信了吧!而且還有好多新的workshop你從未聽過的。

  你一定會問:一、我怎麼知道有那些可能相關的國際會議;二、我怎麼有辦法消化完這些會議的論文?

  第一個問題得從你第一階段的論文研讀著手。在研讀這些論文的時候,你得注意它們發表在那裡,從而知道有那些可能相關的國際會議。

  第二個問題:如何消化與你的研究議題可能相關的國際會議內的論文?你把與研究議題相關的最近幾篇論文找出來,看它們是在那一年發表的。如果你研究的是熱門議題,你找到的應該是去年或今年的論文;如果你的議題冷門,那最近一篇論文有可能是好幾年前的事。不過不管是冷是熱,你都只需把相關的國際會議最近一、二年的會議議程拿來看看,有沒有與你的研究議題相關的論文發表,有的話把論文找出來仔細研讀一下這篇論文有什麼突破。

  另外,也注意一下這篇論文引用的參考文獻有沒有你尚未讀過的,沒有的話表示你前階段的survey做的很仔細,有的話你就得把這些遺漏的論文找出來研讀,並且用前面提到的方法再去追朔這篇論文三、四代以內的參考文獻,以及論文出處,找出是否還有其他的相關國際會議,並且一樣得把這些會議近一、二年的議程拿來看看是否有相關的論文發表。這些過程一定會收斂的,而當你發現沒有新的論文被你找出來之後,你的survey工作大概已經做的差不多了,可以準備收工全心投入研究議題上。通常而言,你在第二階段找到的論文不會太多,大多數的論文在survey的第一階段都會看到。

  收工之前,為防萬一,你再到Google、Siteseer及幾個主要的digital library,如IEEE, ACM, Springer等去search一下,確定沒有漏網之魚。如果你survey的深入,你應當知道要下那些關鍵字去查詢。這個步驟也可以確保如果你研究的是冷門議題,在你看到的最近一篇的論文,到近一、二年的國際會議這期間,有沒有其他的論文你沒有注意到的(因為你最後一階段的survey工作只注意相關會議最近一、二年的議程,而你看到最近的論文可能是好幾年前的東西)。

  在這裡我好像都沒提到期刊論文。一般而言,期刊論文通常比較完整,但刊登的結果往往是二、三年前的東西。就資訊科技而言,二、三年內的研究進展可能很大,因此比較新的結果通常先發表在國際會議上,發表之後,經過幾回合的修正才會投稿到期刊。所以你survey的論文比較新的東西很少會在期刊上發現。但反之,比較久的成果,有可能已整理發表於期刊上。如果是如此,那你在研讀這個成果時,最好是找已發表於期刊上的論文研讀,這樣會得到比較完整清楚的資訊。

  整個survey的階段會看完幾篇論文?這當然看你的研究議題而定。但三十篇以上是跑不掉的。如果加上你只瀏覽Introduction 的部分,那可能在五、六十篇以上。

最後,我要你們做一件事情:

  在一星期之內,把survey的工作按照我上面講的步驟重做一次。星期六之前,請你整理一個清單摘錄下列資訊,並email給我 (記住:做完整之後再email給我;我不要片段片段的接收你們的資訊):

1. 與你研究議題相關的國際會議及期刊有哪些。

2. 你找到哪些論文,論文格式請整理成bib檔格式(記住:我要的是bib檔格式,且要非常完整正確。如何做到,可以問實驗室學長。我也會請他整理一份心得告訴大家。)

3. 在你找到的論文裡,請用另一份表格整理下列資訊:請就這些論文依其與你研究議題的相關性分成三類:密切相關、相關、略為相關。同時請標記哪些是你已經仔細的研讀過的,哪些是你只瀏覽Introduction ,但有把握住整篇論文的重點。若有尚未看完的論文,也請標記。

4. 請把你列出來的所有論文電子檔以下列方式命名:

年代-會議或期刊縮寫(若不知,請以第一作者的Last Name代之)-Title的摘要。

例如:2003-SIGCOMM-Peer-to-Peer Information Retrieval Using Self-Organizing

Semanticverlay Networks.pdf

然後請你上傳這些檔案到ftp,你的個人目錄底下的paper 子目錄內。我會就你整理的清單去判斷你的survey是否足夠,再來決定你的proposal及論文應該還要做哪些工作。



Joung

2 則留言:

Troy 提到...

雖然還沒研究...但對上面提到bib有興趣的可以去這看:

http://www.bibtex.org/

Troy 提到...
作者已經移除這則留言。