A. 推薦一本資料庫原理的好書。中文的,如果是翻譯的,要公認翻譯的不錯的。
計算機科學與技術學習反思錄
計算機理論的一個核心問題--從數學談起:
記得當年大一入學,每周六課時高等數學,天天作業不斷(那時是六日工作制)。頗有些同學驚呼走錯了門:咱們這到底念的是什麼系?不錯,你沒走錯門,這就是計算機科學與技術系。我國計算機科學系裡的傳統是培養做學術研究,尤其是理論研究的人(方向不見得有問題,但是做得不是那麼盡如人意)。而計算機的理論研究,說到底了,如網路安全,圖形圖像學,視頻音頻處理,哪個方向都與數學有著很大的關系,雖然也許是正統數學家眼裡非主流的數學。這里我還想闡明我的一個觀點:我們都知道,數學是從實際生活當中抽象出來的理論,人們之所以要將實際抽象成理論,目的就在於想用抽象出來的理論去更好的指導實踐,有些數學研究工作者喜歡用一些現存的理論知識去推導若干條推論,殊不知其一:問題考慮不全很可能是個錯誤的推論,其二:他的推論在現實生活中找不到原型,不能指導實踐。嚴格的說,我並不是一個理想主義者,政治課上學的理論聯系實際一直是指導我學習科學文化知識的航標(至少我認為搞計算機科學與技術的應當本著這個方向)。
其實我們計算機系學數學光學高等數學是不夠的(典型的工科院校一般都開的是高等數學),我們應該像數學系一樣學一下數學分析(清華計算機系開的好像就是數學分析),數學分析這門科學,咱們學計算機的人對它有很復雜的感情。在於它是偏向於證明型的數學課程,這對我們培養良好的分析能力極有幫助。我的軟體工程學導師北工大數理學院的王儀華先生就曾經教導過我們,數學系的學生到軟體企業中大多作軟體設計與分析工作,而計算機系的學生做程序員的居多,原因就在於數學系的學生分析推理能力,從所受訓練的角度上要遠遠在我們之上。當年出現的怪現象是:計算機系學生的高中數學基礎在全校數一數二(希望沒有冒犯其它系的同學),教學課時數也僅次於數學系,但學完之後的效果卻不盡如人意。難道都是學生不努力嗎,我看未見得,方向錯了也說不一定,其中原因何在,發人深思。
我個人的淺見是:計算機系的學生,對數學的要求固然跟數學系不同,跟物理類差別則更大。通常非數學專業的所謂「高等數學」,無非是把數學分析中較困難的理論部分刪去,強調套用公式計算而已。而對計算機系來說,數學分析里用處最大的恰恰是被刪去的理論部分。說得難聽一點,對計算機系學生而言,追求算來算去的所謂「工程數學」已經徹底地走進了誤區。記上一堆曲面積分的公式,難道就能算懂了數學?那倒不如現用現查,何必費事記呢?再不然直接用Mathematics或是Matalab好了。
我在系裡最愛做的事情就是給學弟學妹們推薦參考書。中文的數學分析書,一般都認為以北大張築生老師的「數學分析新講」為最好。萬一你的數學實在太好,那就去看菲赫金哥爾茨的「微積分學教程」好了--但我認為沒什麼必要,畢竟你不想轉到數學系去。吉米多維奇的「數學分析習題集」也基本上是計算型的東東。書的名氣很大,倒不見得適合我們,還是那句話,重要的是數學思想的建立,生活在信息社會里我們求的是高效,計算這玩意還是留給計算機吧。不過現在多用的似乎是復旦大學的《數學分析》也是很好的教材。
中國的所謂高等代數,就等於線性代數加上一點多項式理論。我以為這有好的一面,因為可以讓學生較早感覺到代數是一種結構,而非一堆矩陣翻來覆去。這里不得不提南京大學林成森,盛松柏兩位老師編的「高等代數」,感覺相當舒服。此書相當全面地包含了關於多項式和線性代數的基本初等結果,同時還提供了一些有用的又比較深刻的內容,如Sturm序列,Shermon-Morrison公式,廣義逆矩陣等等。可以說,作為本科生如能吃透此書,就可以算高手。國內較好的高等代數教材還有清華計算機系用的那本,清華出版社出版,書店裡多多,一看就知道。從抽象代數的觀點來看,高等代數里的結果不過是代數系統性質的一些例子而已。莫宗堅先生的《代數學》里,對此進行了深刻的討論。然而莫先生的書實在深得很,作為本科生恐怕難以接受,不妨等到自己以後成熟了一些再讀。
正如上面所論述的,計算機系的學生學習高等數學:知其然更要知其所以然。你學習的目的應該是:將抽象的理論再應用於實踐,不但要掌握題目的解題方法,更要掌握解題思想,對於定理的學習:不是簡單的應用,而是掌握證明過程即掌握定理的由來,訓練自己的推理能力。只有這樣才達到了學習這門科學的目的,同時也縮小了我們與數學系的同學之間思維上的差距。
概率論與數理統計這門課很重要,可惜大多數院校講授這門課都會少些東西。少了的東西現在看至少有隨機過程。到畢業還沒有聽說過Markov過程,此乃計算機系學生的恥辱。沒有隨機過程,你怎麼分析網路和分布式系統?怎麼設計隨機化演算法和協議?據說清華計算機系開有「隨機數學」,早就是必修課。另外,離散概率論對計算機系學生來說有特殊的重要性。而我們國家工程數學講的都是連續概率。現在,美國已經有些學校開設了單純的「離散概率論」課程,乾脆把連續概率刪去,把離散概率講深些。我們不一定要這么做,但應該更加強調離散概率是沒有疑問的。這個工作我看還是盡早的做為好。
計算方法學(有些學校也稱為數學分析學)是最後一門由數理學院給我們開的課。一般學生對這門課的重視程度有限,以為沒什麼用。不就是照套公式嘛!其實,做圖形圖像可離不開它,密碼學搞深了也離不開它。而且,在很多科學工程中的應用計算,都以數值的為主。這門課有兩個極端的講法:一個是古典的「數值分析」,完全講數學原理和演算法;另一個是現在日趨流行的「科學與工程計算」,乾脆教學生用軟體包編程。我個人認為,計算機系的學生一定要認識清楚我們計算機系的學生為什麼要學這門課,我是很偏向於學好理論後用計算機實現的,最好使用C語言或C++編程實現。向這個方向努力的書籍還是挺多的,這里推薦大家高等教育出版社(CHEP)和施普林格出版社(Springer)聯合出版的《計算方法(Computational Methods)》,華中理工大學數學系寫的(現華中科技大學),這方面華科大做的工作在國內應算是比較多的,而個人認為以這本最好,至少程序設計方面涉及了:任意數學函數的求值,方程求根,線性方程組求解,插值方法,數值積分,場微分方程數值求解。李慶揚的那本則理論性過強,與實際應用結合得不太緊。
每個學校本系裡都會開一門離散數學,涉及集合論,圖論,和抽象代數,數理邏輯。不過,這么多內容擠在離散數學一門課里,是否時間太緊了點?另外,計算機系學生不懂組合和數論,也是巨大的缺陷。要做理論,不懂組合或者數論吃虧可就太大了。從理想的狀態來看,最好分開六門課:集合,邏輯,圖論,組合,代數,數論。這個當然不現實,因為沒那麼多課時。也許將來可以開三門課:集合與邏輯,圖論與組合,代數與數論。(這方面我們學校已經著手開始做了)不管課怎麼開,學生總一樣要學。下面分別談談上面的三組內容。
古典集合論,北師大出過一本《基礎集合論》不錯。
數理邏輯,中科院軟體所陸鍾萬教授的《面向計算機科學的數理邏輯》就不錯。現在可以找到陸鍾萬教授的講課錄像,自己去看看吧。總的來說,學集合/邏輯起手不難,普通高中生都能看懂。但越往後越感覺深不可測。
學完以上各書之後,如果你還有精力興趣進一步深究,那麼可以試一下GTM系列中的《Introction to Axiomatic Set Theory》和《A Course of Mathematical Logic》。這兩本都有世界圖書出版社的引進版。你如果能搞定這兩本,可以說在邏輯方面真正入了門,也就不用再浪費時間聽我瞎侃了。
據說全中國最多隻有三十個人懂圖論。此言不虛。圖論這東東,技巧性太強,幾乎每個問題都有一個獨特的方法,讓人頭痛。不過這也正是它魅力所在:只要你有創造性,它就能給你成就感。我的導師說,圖論裡面隨便揪一塊東西就可以寫篇論文。大家可以體會裡面內容之深廣了吧!國內的圖論書中,王樹禾老師的「圖論及其演算法」非常成功。一方面,其內容在國內教材里算非常全面的。另一方面,其對演算法的強調非常適合計算機系(本來就是科大計算機系教材)。有了這本書為主,再參考幾本翻譯的,如Bondy & Murty的《圖論及其應用》,人民郵電出版社翻譯的《圖論和電路網路》等等,就馬馬虎虎,對本科生足夠了。再進一步,世界圖書引進有GTM系列的"Modern Graph Theory"。此書確實經典!國內好象還有一家出版了個翻譯版。不過,學到這個層次,還是讀原版好。搞定這本書,也標志著圖論入了門。 外版的書好就好在這里,最新的科技成果裡面都有論述,別的先不說,至少是「緊跟時代的理論知識」。
組合感覺沒有太適合的國產書。還是讀Graham和Knuth等人合著的經典「具體數學」吧,西安電子科技大學出版社有翻譯版。
抽象代數,國內經典為莫宗堅先生的「代數學」。此書是北大數學系教材,深得好評。然而對本科生來說,此書未免太深。可以先學習一些其它的教材,然後再回頭來看「代數學」。國際上的經典可就多了,GTM系列裡就有一大堆。推薦一本談不上經典,但卻最簡單的,最容易學的:這本「Introction to Linear and Abstract Algebra"非常通俗易懂,而且把抽象代數和線性代數結合起來,對初學者來說非常理想,我校比較牛的同學都有收藏。
數論方面,國內有經典而且以困難著稱的」初等數論「(潘氏兄弟著,北大版)。再追溯一點,還有更加經典(可以算世界級)並且更加困難的」數論導引「(華羅庚先生的名著,科學版,九章書店重印,繁體的看起來可能比較困難)。把基礎的幾章搞定一個大概,對本科生來講足夠了。但這只是初等數論。本科畢業後要學計算數論,你必須看英文的書,如Bach的"Introction to Algorithmic Number Theory"。
計算機科學理論的根本,在於演算法。現在很多系裡給本科生開設演算法設計與分析,確實非常正確。環顧西方世界,大約沒有一個三流以上計算機系不把演算法作為必修的。演算法教材目前公認以Corman等著的"Introction to Algorithms"為最優。對入門而言,這一本已經足夠,不需要再參考其它書。
再說說形式語言與自動機。我看過北郵的教材,應該說寫的還清楚。但是,有一點要強調:形式語言和自動機的作用主要在作為計算模型,而不是用來做編譯。事實上,編譯前端已經是死領域,沒有任何open problems,北科大的班曉娟博士也曾經說過,編譯的技術已相當成熟。如果為了這個,我們完全沒必要去學形式語言--用用yacc什麼的就完了。北郵的那本在國內還算比較好,但是在深度上,在跟可計算性的聯繫上都有較大的局限,現代感也不足。所以建議有興趣的同學去讀英文書,不過國內似乎沒引進這方面的教材。可以去互動出版網上看一看。入門以後,把形式語言與自動機中定義的模型,和數理邏輯中用遞歸函數定義的模型比較一番,可以說非常有趣。現在才知道,什麼叫「宮室之美,百官之富」!
計算機科學和數學的關系有點奇怪。二三十年以前,計算機科學基本上還是數學的一個分支。而現在,計算機科學擁有廣泛的研究領域和眾多的研究人員,在很多方面反過來推動數學發展,從某種意義上可以說是孩子長得比媽媽還高了。但不管怎麼樣,這個孩子身上始終流著母親的血液。這血液是the mathematical underpinning of computer science(計算機科學的數學基礎),也就是理論計算機科學。原來在東方大學城圖書館中曾經看過一本七十年代的譯本(書皮都沒了,可我就愛關注這種書),大概就叫《計算機數學》。那本書若是放在當時來講決是一本好書,但現在看來,涵蓋的范圍還算廣,深度則差了許多,不過推薦大一的學生倒可以看一看,至少可以使你的計算數學入入門。
最常和理論計算機科學放在一起的一個詞是什麼?答:離散數學。這兩者的關系是如此密切,以至於它們在不少場合下成為同義詞。(這一點在前面的那本書中也有體現)傳統上,數學是以分析為中心的。數學系的同學要學習三四個學期的數學分析,然後是復變函數,實變函數,泛函數等等。實變和泛函被很多人認為是現代數學的入門。在物理,化學,工程上應用的,也以分析為主。
隨著計算機科學的出現,一些以前不太受到重視的數學分支突然重要起來。人們發現,這些分支處理的數學對象與傳統的分析有明顯的區別:分析研究的問題解決方案是連續的,因而微分,積分成為基本的運算;而這些分支研究的對象是離散的,因而很少有機會進行此類的計算。人們從而稱這些分支為「離散數學」。「離散數學」的名字越來越響亮,最後導致以分析為中心的傳統數學分支被相對稱為「連續數學」。
離散數學經過幾十年發展,基本上穩定下來。一般認為,離散數學包含以下學科 :
1) 集合論,數理邏輯與元數學。這是整個數學的基礎,也是計算機科學的基礎。
2) 圖論,演算法圖論;組合數學,組合演算法。計算機科學,尤其是理論計算機科學的核心是
演算法,而大量的演算法建立在圖和組合的基礎上。
3) 抽象代數。代數是無所不在的,本來在數學中就非常重要。在計算機科學中,人們驚訝地發現代數竟然有如此之多的應用。
但是,理論計算機科學僅僅就是在數學的上面加上「離散」的帽子這么簡單嗎?一直到大約十幾年前,終於有一位大師告訴我們:不是。D.E.Knuth(他有多偉大,我想不用我廢話了)在Stanford開設了一門全新的課程Concrete Mathematics。 Concrete這個詞在這里有兩層含義:
首先:對abstract而言。Knuth認為,傳統數學研究的對象過於抽象,導致對具體的問題關心不夠。他抱怨說,在研究中他需要的數學往往並不存在,所以他只能自己去創造一些數學。為了直接面向應用的需要,他要提倡「具體」的數學。在這里我做一點簡單的解釋。例如在集合論中,數學家關心的都是最根本的問題--公理系統的各種性質之類。而一些具體集合的性質,各種常見集合,關系,映射都是什麼樣的,數學家覺得並不重要。然而,在計算機科學中應用的,恰恰就是這些具體的東西。Knuth能夠首先看到這一點,不愧為當世計算機第一人。其次,Concrete是Continuous(連續)加上discrete(離散)。不管連續數學還是離散數學,都是有用的數學!
理論與實際的結合--計算機科學研究的范疇
前面主要是從數學角度來看的。從計算機角度來看,理論計算機科學目前主要的研究領域包括:可計算性理論,演算法設計與復雜性分析,密碼學與信息安全,分布式計算理論,並行計算理論,網路理論,生物信息計算,計算幾何學,程序語言理論等等。這些領域互相交叉,而且新的課題在不斷提出,所以很難理出一個頭緒來。想搞搞這方面的工作,推薦看中國計算機學會的一系列書籍,至少代表了我國的權威。下面隨便舉一些例子。
由於應用需求的推動,密碼學現在成為研究的熱點。密碼學建立在數論(尤其是計算數論),代數,資訊理論,概率論和隨機過程的基礎上,有時也用到圖論和組合學等。很多人以為密碼學就是加密解密,而加密就是用一個函數把數據打亂。這樣的理解太淺顯了。
現代密碼學至少包含以下層次的內容:
第一,密碼學的基礎。例如,分解一個大數真的很困難嗎?能否有一般的工具證明協議正確?
第二,密碼學的基本課題。例如,比以前更好的單向函數,簽名協議等。
第三,密碼學的高級問題。例如,零知識證明的長度,秘密分享的方法。
第四,密碼學的新應用。例如,數字現金,叛徒追蹤等。
在分布式系統中,也有很多重要的理論問題。例如,進程之間的同步,互斥協議。一個經典的結果是:在通信信道不可靠時,沒有確定型演算法能實現進程間協同。所以,改進TCP三次握手幾乎沒有意義。例如時序問題。常用的一種序是因果序,但因果序直到不久前才有一個理論上的結果....例如,死鎖沒有實用的方法能完美地對付。例如,......操作系統研究過就自己去舉吧!
如果計算機只有理論,那麼它不過是數學的一個分支,而不成為一門獨立的科學。事實上,在理論之外,計算機科學還有更廣闊的天空。
我一直認為,4年根本不夠學習計算機的基礎知識,因為面太寬了,8年,應該差不多了......
這方面我想先說說我們系在各校普遍開設的《計算機基礎》。在高等學校開設《計算機基礎課程》是我國高教司明文規定的各專業必修課程要求。主要內容是使學生初步掌握計算機的發展歷史,學會簡單的使用操作系統,文字處理,表格處理功能和初步的網路應用功能。但是在計算機科學系教授此門課程的目標決不能與此一致。在計算機系課程中目標應是:讓學生較為全面的了解計算機學科的發展,清晰的把握計算機學科研究的方向,發展的前沿即每一個課程在整個學科體系中所處的地位。搞清各學科的學習目的,學習內容,應用領域。使學生在學科學習初期就對整個學科有一個整體的認識,以做到在今後的學習中清楚要學什麼,怎麼學。計算機基本應用技能的位置應當放在第二位或更靠後,因為這一點對於本系的學生應當有這個摸索能力。這一點很重要。推薦給大家一本書:機械工業出版社的《計算機文化》(New Perspective of Computer Science),看了這本書我才深刻的體會到自己還是個計算機科學初學者,才比較透徹的了解了什麼是計算機科學。
一個一流計算機系的優秀學生決不該僅僅是一個編程高手,但他一定首先是一個編程高手。我上大學的時候,第一門專業課是C語言程序設計,念計算機的人從某種角度講相當一部分人是靠寫程序吃飯的。關於第一程序設計語言該用哪一種。我個人認為,用哪種語言屬於末節,關鍵在養成良好的編程習慣。當年老師對我們說,打好基礎後學一門新語言只要一個星期。現在我覺得根本不用一個星期,前提是先把基礎打好。不要再猶豫了,學了再說,等你抉擇好了,別人已經會了幾門語言了。
匯編語言和微機原理是兩門特煩人的課。你的數學/理論基礎再好,也占不到什麼便宜。這兩門課之間的次序也好比先有雞還是先有蛋,無論你先學哪門,都會牽扯另一門課里的東西。所以,只能靜下來慢慢琢磨。這就是典型的工程課,不需要太多的聰明和頓悟,卻需要水滴石穿的漸悟。有關這兩門課的書,計算機書店裡不難找到。弄幾本最新的,對照著看吧。組成原理推薦《計算機組成與結構》清華大學王愛英教授寫的。匯編語言大家拿8086/8088入個門,之後一定要學80x86匯編語言。實用價值大,不落後,結構又好,寫寫高效病毒,高級語言里嵌一點匯編,進行底層開發,總也離不開他,推薦清華大學沈美明的《IBM-PC匯編語言程序設計》。有些人說不想了解計算機體系結構,也不想製造計算機,所以諸如計算機原理,匯編語言,介面之類的課覺得沒必要學,這樣合理嗎?顯然不合理,這些東西遲早得掌握,肯定得接觸,而且,這是計算機專業與其他專業學生相比的少有的幾項優勢。做項目的時候,了解這些是非常重要的,不可能說,僅僅為了技術而技術,只懂技術的人最多做一個編碼工人,而永遠不可能全面地了解整個系統的設計,而編碼工人是越老越不值錢。關於組成原理還有個講授的問題,在我學這門課程時老師講授時把CPU工作原理譽微程序設計這一塊略掉了,理由是我們國家搞CPU技術不如別的國家,搞了這么長時間好不容易出了個龍芯比Intel的還差個十萬八千里,所以建議我們不要學了。我看這在各校也未見得不是個問題吧!若真是如他所說,那中國的計算機科學哪個方向都可以停了,軟硬體,應用,有幾項搞得過美國,搞不過別人就不搞了,那我們坐在這里干什麼?教學的觀念需要轉變的。
模擬電路這東東,如今不僅計算機系學生搞不定,電子系學生也多半害怕。如果你真想軟硬體通吃,那麼建議你先看看邱關源的「電路原理」,也許此後再看模擬電路底氣會足些。教材:康華光的「電子技術基礎」(高等教育出版社)還是不錯的(我校電子系在用)。有興趣也可以參考童詩白的書。
數字電路比模擬電路要好懂得多。清華大學閻石的書算一本好教材,遺憾的一點是集成電路講少了些。真有興趣,看一看大規模數字系統設計吧(北航那本用的還比較多)。
計算機系統結構該怎麼教,國際上還在爭論。國內能找到的較好教材為Stallings的"Computer Organization and Architecture:Designing for Performance"(清華影印
本)。國際上最流行的則是「Computer architecture: aquantitative approach", by Patterson & Hennessy。
操作系統可以隨便選用《操作系統的內核設計與實現》和《現代操作系統》兩書之一。這兩部都可以算經典,唯一缺點就是理論上不夠嚴格。不過這領域屬於Hardcore System,所以在理論上馬虎一點也情有可原。想看理論方面的就推薦清華大學出版社《操作系統》吧,高教司司長張堯學寫的,我們教材用的是那本。 另外推薦一本《Windows操作系統原理》機械工業出版社的,這本書是我國操作系統專家在微軟零距離考察半年,寫作歷時一年多寫成的,教操作系統的專家除了清華大學的張堯學(現高教司司長)幾乎所有人都參加了。Bill Gates親自寫序。裡面不但結合windows2000,xp詳述操作系統的內核,而且後面講了一些windows編程基礎,有外版書的味道,而且上面一些內容可以說在國內外只有那本書才有對windows內核細致入微的介紹,
如果先把形式語言學好了,則編譯原理中的前端我看只要學四個演算法:最容易實現的遞歸下降;最好的自頂向下演算法LL(k);最好的自底向上演算法LR(k);LR(1)的簡化SLR(也許還有另一簡化LALR)。後端完全屬於工程性質,自然又是another story。
推薦教材:Kenneth C.Louden寫的「Compiler Construction Principles and Practice」即是《編譯原理及實踐》(機械工業出版社的譯本)
學資料庫要提醒大家的是,會用VFP,VB, Power builder不等於懂資料庫。(這世界上自以為懂資料庫的人太多了!)資料庫設計既是科學又是藝術,資料庫實現則是典型的工程。所以從某種意義上講,資料庫是最典型的一門計算機課程--理工結合,互相滲透。另外推薦大家學完軟體工程學後再翻過來看看資料庫技術,又會是一番新感覺。推薦教材:Abraham Silberschatz等著的 "Database System Concepts".作為知識的完整性,還推薦大家看一看機械工業出版社的《數據倉庫》譯本。
計算機網路的標准教材還是來自Tanenbaum的《Computer Networks》(清華大學有譯本)。還有就是推薦謝希仁的《計算機網路教程》(人民郵電出版社)問題講得比較清楚,參考文獻也比較權威。不過,網路也屬於Hardcore System,所以光看書是不夠的。建議多讀RFC,里可以按編號下載RFC文檔。從IP的讀起。等到能掌握10種左右常用協議,就沒有幾個人敢小看你了。再做的工作我看放在網路設計上就比較好了。
數據結構的重要性就不言而喻了,學完數據結構你會對你的編程思想進行一番革命性的洗禮,會對如何建立一個合理高效的演算法有一個清楚的認識。對於演算法的建立我想大家應當注意以下幾點:
當遇到一個演算法問題時,首先要知道自己以前有沒有處理過這種問題.如果見過,那麼你一般會順利地做出來;如果沒見過,那麼考慮以下問題:
1. 問題是否是建立在某種已知的熟悉的數據結構(例如,二叉樹)上?如果不是,則要自己設計數據結構。
2. 問題所要求編寫的演算法屬於以下哪種類型?(建立數據結構,修改數據結構,遍歷,查找,排序...)
3. 分析問題所要求編寫的演算法的數學性質.是否具備遞歸特徵?(對於遞歸程序設計,只要設計出合理的參數表以及遞歸結束的條件,則基本上大功告成.)
4. 繼續分析問題的數學本質.根據你以前的編程經驗,設想一種可能是可行的解決辦法,並證明這種解決辦法的正確性.如果題目對演算法有時空方面的要求,證明你的設想滿足其要求.一般的,時間效率和空間效率難以兼得.有時必須通過建立輔助存儲的方法來節省時間.
5. 通過一段時間的分析,你對解決這個問題已經有了自己的一些思路.或者說,你已經可以用自然語言把你的演算法簡單描述出來.繼續驗證其正確性,努力發現其中的錯誤並找出解決辦法.在必要的時候(發現了無法解決的矛盾),推翻自己的思路,從頭開始構思.
6. 確認你的思路可行以後,開始編寫程序.在編寫代碼的過程中,盡可能把各種問題考慮得詳細,周密.程序應該具有良好的結構,並且在關鍵的地方配有注釋.
7. 舉一個例子,然後在紙上用筆執行你的程序,進一步驗證其正確性.當遇到與你的設想不符的情況時,分析問題產生的原因是編程方面的問題還是演算法思想本身有問題.
8. 如果程序通過了上述正確性驗證,那麼在將其進一步優化或簡化。
9. 撰寫思路分析,注釋.
對於具體的演算法思路,只能靠你自己通過自己的知識和經驗來加以獲得,沒有什麼特定的規律(否則程序員全部可以下崗了,用機器自動生成代碼就可以了).要有豐富的想像力,就是說當一條路走不通時,不要鑽牛角尖,要敢於推翻自己的想法.我也只不過是初學者,說出上面的一些經驗,僅供大家參考和討論。
關於人工智慧,我覺得的也是非常值得大家仔細研究的,雖然不能算是剛剛興起的學科了,但是絕對是非常有發展前途的一門學科。我國人工智慧創始人之一,北京科技大學塗序彥教授(這老先生是我的導師李小堅博士的導師)對人工智慧這樣定義:人工智慧是模?
B. 中國人民大學資料庫專業屬於什麼方向系統結構,軟體與理論,還是計算機應用技術
其實現在很多人都在跨專業考研,而且其中也不少成功之人(本人也算是其中一員吧,呵呵~)。只不過跨專業得比考本專業付出更多的努力才能獲得同等的成功!
當然,相比之下,如果你想考名牌大學,我個人認為考本專業的勝算會更大些。但是不管怎樣,研究生階段的專業應該和你未來的就業是緊密結合在一起的,所以,你最好結合自己的興趣以及個人能力等等許多綜合條件來考慮。
全國范圍 與 計算機 相關的共有 13 個專業,詳細信息如下: 查詢提示: 帶*的為院校自設專業·081200 計算機科學與技術·081201 計算機系統結構·081202 計算機軟體與理論·081203 計算機應用技術·081220 計算機科學與技術(...*·081220 計算機科學與技術(...*·081220 計算機科學與技術(...*·081220 計算機科學與技術(...*·081221 計算機科學與技術(...*·081221 計算機科學與技術(...*·081280 計算機軟體與理論(軟...*·081423 土木工程計算機模擬*·081820 計算機技術與資源信...*
計算機系統結構(47)
排名
學校名稱
等級
排名
學校名稱
等級
排名
學校名稱
等級
1
清華大學
A+
4
浙江大學
A
7
西安電子科技大學
A
2
華中科技大學
A+
5
上海交通大學
A
8
復旦大學
A
3
西安交通大學
A
6
武漢大學
A
9
吉林大學
A
B+等(14個):東南大學、東北大學、北京航空航天大學、哈爾濱工業大學、北京大學、北京郵電大學、山東大學、中國科學技術大學、電子科技大學、重慶大學、北京科技大學、西北工業大學、中山大學、中南大學
B等(14個):同濟大學、北京理工大學、大連理工大學、華南理工大學、北京交通大學、湖南大學、南京理工大學、哈爾濱工程大學、四川大學、華東師范大學、上海大學、天津大學、西北大學、廣東工業大學
C等(10個):名單略
計算機應用技術(271)
排名
學校名稱
等級
排名
學校名稱
等級
排名
學校名稱
等級
1
清華大學
A+
19
武漢大學
A
37
合肥工業大學
A
2
浙江大學
A+
20
華南理工大學
A
38
蘇州大學
A
3
北京航空航天大學
A+
21
電子科技大學
A
39
江蘇大學
A
4
華中科技大學
A+
22
大連理工大學
A
40
大連海事大學
A
5
北京大學
A+
23
天津大學
A
41
中山大學
A
6
上海交通大學
A+
24
中南大學
A
42
北京化工大學
A
7
哈爾濱工業大學
A+
25
上海大學
A
43
重慶大學
A
8
北京理工大學
A+
26
南京大學
A
44
南京理工大學
A
9
東南大學
A+
27
四川大學
A
45
中國海洋大學
A
10
西安電子科技大學
A+
28
中國科學技術大學
A
46
太原理工大學
A
11
東北大學
A+
29
北京工業大學
A
47
湖南工業大學
A
12
吉林大學
A+
30
同濟大學
A
48
北京交通大學
A
13
西北工業大學
A+
31
華東師范大學
A
49
燕山大學
A
14
復旦大學
A
32
湖南大學
A
50
上海海事大學
A
15
哈爾濱工程大學
A
33
西安交通大學
A
51
新疆大學
A
16
西南交通大學
A
34
山東大學
A
52
重慶郵電大學
A
17
北京郵電大學
A
35
北京科技大學
A
53
南華大學
A
18
南京航空航天大學
A
36
安徽大學
A
54
首都師范大學
A
B+等(81個):中國礦業大學、武漢理工大學、河海大學、哈爾濱理工大學、中國人民大學、黑龍江大學、華東理工大學、鄭州輕工業學院、廣東工業大學、浙江工業大學、南京郵電大學、華中師范大學、山西大學、內蒙古大學、江南大學、沈陽航空工業學院、南開大學、蘭州理工大學、長沙理工大學、西華師范大學、華北電力大學、杭州電子科技大學、東北財經大學、西安理工大學、五邑大學、天津工業大學、南京工業大學、成都信息工程學院、天津科技大學、大連水產學院、昆明理工大學、河北工業大學、西北民族大學、浙江工商大學、長春理工大學、內蒙古科技大學、上海理工大學、西安郵電學院、廣西大學、中國地質大學、桂林工學院、青島大學、東華大學、西安建築科技大學、大連交通大學、蘭州大學、北京師范大學、遼寧工程技術大學、武漢科技學院、河南理工大學、北京信息科技大學、北方工業大學、深圳大學、遼寧大學、西安科技大學、江蘇科技大學、汕頭大學、桂林電子科技大學、浙江理工大學、黑龍江科技學院、暨南大學、沈陽理工大學、河南科技大學、湖南師范大學、南昌航空工業學院、南京師范大學、山東科技大學、遼寧石油化工大學、中國民航大學、鄭州大學、雲南大學、太原科技大學、廈門大學、江蘇工業學院、武漢科技大學、中國石油大學、安徽理工大學、中國傳媒大學、安徽工業大學、西南大學、中原工學院
B等(81個):中南林業科技大學、石家莊鐵道學院、齊齊哈爾大學、山東輕工業學院、河北大學、湖北大學、河南工業大學、沈陽工業大學、寧波大學、河北科技大學、福建師范大學、江西師范大學、湘潭大學、天津理工大學、雲南財經大學、江西理工大學、大慶石油學院、東北電力大學、重慶交通大學、河北工程大學、上海水產大學、西華大學、青島理工大學、江西農業大學、長春工業大學、華東交通大學、華南農業大學、南京農業大學、江西財經大學、西北農林科技大學、重慶工學院、西北大學、蘭州交通大學、成都理工大學、浙江師范大學、內蒙古師范大學、北京工商大學、鞍山科技大學、遼寧工學院、北京聯合大學、武漢工程大學、濟南大學、陝西師范大學、大連大學、安徽師范大學、西北師范大學、內蒙古工業大學、河南師范大學、東華理工大學、貴州財經學院、四川師范大學、河南大學、東北師范大學、福州大學、南京信息工程大學、湖南科技大學、華南師范大學、長安大學、西南科技大學、山東師范大學、煙台大學、廣西師范大學、曲阜師范大學、揚州大學、哈爾濱師范大學、山東經濟學院、西安工程大學、中北大學、西南石油大學、西安工業大學、河北農業大學、廣西民族學院、吉林農業大學、東北農業大學、貴州師范大學、廣西師范學院、山西師范大學、華北水利水電學院、遼寧師范大學、貴州大學、河北師范大學
C等(55個):名單略
上面的排名你可以參考一下,最好結合院校本身的綜合實力來考慮院校的選擇。我還幫你找了些資料,你可以參考一下。
計算機類專業考研分支方向
01中文信息處理
02模式識別
03資料庫技術
04領域數據工程
05軟體集成技術
06數據挖掘
07數字圖像處理
08科學計算可視化
09新一代系統軟體
10軟體工程
11網格計算
12智能數據處理
13智能化數據服務
14低功耗SOC
15計算機模擬
16系統模擬建模與分析
17計算機智能管理
18軟體設計方法
19分布/遷移/網路計算
20Linux操作系統及應用
21智能網路與智能通信
22網路技術與安全
23人工智慧及應用
24信息安全技術
25人工智慧與人工生命
26企業信息化軟體平台與中間件技術
27嵌入式系統研究
28寬頻網路協議研究
29實時系統軟體體系結構研究
30網路與通信系統集成電路設計
31圖像處理與表面檢測
32高性能計算
33並行編譯
計算機的核心課程大致為:數據結構,組成原理,離散數學,操作系統,編譯原理,系統結構,軟體工程,OOP,圖形學,網路,C/C++/Pascal/Asm編程語言等。而考研的科目,一般為前面的五到六科(不同學校選擇的科目會有不同)。
2010年計算機考研大綱
地址:
計算機考研全國統考復習指導及備戰建議
地址:
09年全國計算機專業排名公布
地址:
計算機考研統考行之有效的備考方案
地址:
計算機考研最好考的10所學校
地址:
考研院校選擇三大誤區
地址:
計算機專業考研經驗談 掌握方法以不變應萬變
地址:
關於計算機考研、計算機就業推薦你去計算機吧
全國碩士研究生入學統一考試計算機專業課推薦參考書目
一、數據結構
★ 嚴蔚敏、吳偉民編著:《數據結構(c語言版)》,清華大學出版社
★ 嚴蔚敏、吳偉民編著:《數據結構題集(C語言版)》,清華大學出版社
二、計算機組成原理
★唐朔飛編著:《計算機組成原理》,高等教育出版社,1999年版
★唐朔飛編著:《計算機組成原理學習指導與習題解答》,高等教育出版社,2005年9月
★白中英主編:《計算機組成原理》,科學出版社
三、操作系統
★湯小丹、梁紅兵、哲鳳屏、湯子瀛編著:《計算機操作系統(第三版)》,西安電子科技大學出版社 ★梁紅兵、湯小丹編著:《計算機操作系統》學習指導與題解(第二版),西安電子科技大學出版社,2008年9月
四、計算機網路
★謝希仁編著:《計算機網路(第5版)》,電子工業出版社
★高傳善、毛迪林、曹袖主編:《數據通信與計算機網路(第2版)》,高等教育出版社說明:
相關參考輔導書:
★《全國碩士研究生入學統一考試計算機專業基礎綜合考試大綱解析》,高等教育出版社,2008年10月
★鞏微、馮東暉主編:《2009年考研計算機學科專業基礎綜合考試全真模擬試題集》,原子能出版社,2008年10月
★陽光考研命題研究中心編寫:《2009年考研計算機科學專業基礎綜合考試教程》,中國人民大學出版社,2008年11月
希望我的回答對你有點幫助!
現行會計理論的研究方法有兩大類:
第一類,規范研究方法
(一)歸納法(Inctive approach)
•歸納法的特點是,通過對大量現象進行觀察,然後加以分類,從中概括出有關概念的內在聯系,再把它們組織或表述為理論。
•步驟:觀察(觀察與記錄全部的觀察結果)→分類(分析與分類記錄結果)→概括(從觀察到的關系中推導出會計的一般概念或原則)→驗證(驗證推導出的結論)
•歸納法的優點:不受預定模式束縛,把理論或結論建立在大量現象的基礎上。
•缺陷:個人的觀察對象和范圍有限,每個企業或經濟組織的情況不同,有關的內在聯系或數據關系也可能不同,使歸納的結論難免以偏概全。
(二)演繹法(Dective Approach)
•演繹法是從一定的基本概念出發,推導出研究對象的邏輯性結構。在會計上,演繹法應以有關財務報告目標、假設或其他概念為前提,推導出能指導會計實務的原則、准則以及相應的會計方法程序。
•推導程序:前提命題 →推導結論→驗證→具體問題
•優點:可以保持相關概念之間的內在關系,使理論構建具有邏輯嚴密性。
缺陷:演繹法推導的結論取決於前提命題,如果前提命題錯誤,則整個結論結構都將是錯誤的
(三)規范研究方法的評價
•優點:
⑴研究方法較為成熟 發展歷史悠久,較為完善
⑵可以較好地發展會計理論和實務規范會計理論的著眼點是導致良好的會計實務,也就是力求規范和超越現行的會計理論和實務,而促其發展。現有會計理論研究中的絕大部分成果是規范方法所形成的。例如美國等國家財務會計概念結構的出台,大大推動了會計理論研究的內在邏輯性,財務會計准則的嚴密性大大加強。
•缺點:
⑴方法論上有缺陷不重視實踐到認識、再實踐、再認識的循環,不少理論未經過驗證,仍屬於學術上的假設和推論。受個人視野、知識結構等影響,有些理論實際意義較小。
⑵研究方法不夠精確側重定性分析而忽略定量分析,涉及變數較多時難以揭示事物間微妙的區別聯系。現今會計目標不再單一,根據單一目標建立起的理論有效性受到懷疑。
第二大類,實證研究方法實證法作為構建會計理論的一種方法,就是要根據實際效用或實在的因果關系來選擇會計概念、原則、准則和各種程序。並且,如果這些概念、程序有助於實現管理當局的經營目的,或有助於投資人、債權人或其他使用者理解財務報表,並幫助他們進行合理的決策,則它們是有用的,否則就是不可取的。
(一)背景和理論基礎
•高通貨膨脹和經濟衰退的時代背景20世紀60年代末、70年代初,「滯漲」階段,基於歷史成本的傳統會計理論體系由於通貨膨脹失去了有效性,規范會計理論的研究成果也因為持續經濟衰退失去了現實意義。
•方法論基礎美國經濟學家 M.弗里曼「實證經濟理論」卡托斯 「精緻證偽主義」瓦茨和齊默爾曼 1978《論建立會計准則的實證研究》《實證會計理論》。
•經濟學與財務基礎20世紀60年代起對有效市場假設進行的大規模試驗驗證,結果證明有些假定條件實際並不存在。
(二)實證研究方法的程序
•⑴提出命題實證理論的發展通常是從人們意欲解釋的某種現象開始的。命題既可以是探索性的,也可能是確認性的。前者的目的在於創建新的理論,後者的目的在於檢驗和修正現有理論。命題經過驗證後可能證明是正確的,也可能證明是不正確的。
•⑵建立假設每一命題都有其賴以存在的客觀環境,如對某一命題所處的環境不加以限定,就很難對命題的正誤進行驗證。
•⑶收集資料實證研究方法對意欲驗證的命題要求完全根據實際資料進行驗證。為了實證材料更恰當,往往需要將假設具體化,使之具有可操作性,具體而言就是對假設中的概念予以嚴格定義,使之轉化為可以計量的變數,確定變數的計量方法,檢查命題的有效性和可靠性。
•⑷設計研究方案兩種基本的設計方法:
①實驗設計。一般需將研究對象分成兩群,一群接受實驗,另一群則不接受實驗,將兩組的觀察結果進行分析比較來體現實驗效果。
②調查設計。社會調查的主要方法包括問卷調查、訪談調查及利用現有資料。
•⑸驗證真偽在廣泛收集資料的基礎上,採用設計的研究方案,分析數據,從而驗證假設的真偽。假設的測試方法多種多樣,例如單變數分析法、雙變數分析法和多變數分析法等。具體選擇方法要考慮多種因素,包括假設涉及的變數數目與變數類型。
•⑹分析預測除證實或否定假設外,研究者還應對其研究結果加以引申,明確假設的現實意義和作用,以對日後可能發生的結果進行預測。
預測方面:
①說明假設的證實或否定對現有理論的意義,指出現有理論的正確性或者重建和修正的必要性,並提出實際的思路做法
②討論研究結果的實際政策意義,包括對會計准則制定者、公司管理人員等意味著什麼
③討論進一步研究的餘地和前景
(三)實證研究方法的評價
•優點:
•研究方法較為科學和准確用假設的實證檢驗代替研究者的價值判斷,對先提出命題使用客觀、可觀察、可實驗的實際證據來進行檢驗。其次,定性分析和定量分析相結合,從理論到假設再到假設的操作化,依靠數理統計等方法,分析數據,有較高的准確性。
•實踐意義較大建立在考察和驗證會計實務所得到的實際數據的基礎上的,旨在解釋會計為何如此並進行預測,側重於現實目標而不是理想目標,緊密聯系會計實務。
•拓展和深化了會計研究領域為會計理論研究提供了良好地支撐,研究者可以廣泛地利用這種研究方法,從而使會計理論覆蓋領域日益寬廣,實證會計理論成為當代西方會計理論的重要分支。
•缺點:
•關於方法論的批評關於會計政策涵義及其影響的討論也明顯帶著研究者的價值取向;仍要藉助於規范性概念結構有關的理論命題假說。
•關於研究方法的批評仍不完善的表現:
①過分強調盈利對證券價格及收益的影響,而忽略了其他相關變數的影響。
②對被觀察企業或實證證據帶有選擇偏向,即選取有利於實現假設或命題的樣本和數據。
③在驗證特定會計信息或事項的影響是,通常忽略非會計信息或事項因素的影響。
④實證研究依賴的「有效市場假說」和「資本資產定價模型」帶有較多假設前提,未必與經濟現實吻合。
•研究結論缺乏現實指導意義實證會計理論不承認會計應當如何,認為會計理論的任務是解釋和預測會計實務。因此其提出的概念理論和具體程序與方法拘泥於現行會計實務的水平。
迄今為止探索性實證會計研究的進展甚微,實證研究的大量增加並沒有帶來會計理論增加。 會計准則制定還主要依靠規范性
(四)實證研究與規范研究的互補性
•規范會計理論研究由於是從邏輯高度來把握整個會計理論研究過程,因此其研究成果往往和會計實務存在一定的差距,而實證會計理論研究則立足於會計實務,其研究成果與實務中結果比較吻合
•實證會計研究適合於對具體的會計理論問題進行證實或證偽,但如果涉及到對整個會計理論框架的研究則無能為力,此時便必須依賴規范會計研究。
•規范研究和實證研究相結合的兩方面涵義階段上的結合。開始時排除主觀價值判斷,通過實證性研究客觀地揭示該會計理論問題所蘊含的規律;在此基礎上,通過理性邏輯思維再對所揭示出的規律驚醒利用,從而構建規范會計理論。層次的結合。會計問題目標的層次越低,該會計問題與會計實務的具體方面的聯系越密切,其研究越具有實證性。例如,對會計政策選擇問題的研究實證性更強,所形成的會計理論主要是實證會計理論。反之,層次性越高,其研究越具有規范性。例如會計准則制定問題的研究規范更重。
D. 哪些資料庫不是開放獲取資源,不可無限制獲取學術論文
(一)論文名稱
論文名稱就是課題的名字
第一,名稱要准確、規范。准確就是論文的名稱要把論文研究的問題是什麼,研究的對象是什麼交待清楚,論文的名稱一定要和研究的內容相一致,不能太大,也不能太小,要准確地把你研究的對象、問題概括出來。
第二,名稱要簡潔,不能太長。不管是論文或者課題,名稱都不能太長,能不要的字就盡量不要,一般不要超過20個字。
(二)論文研究的目的、意義研究的目的、意義也就是為什麼要研究、研究它有什麼價值。這一般可以先從現實需要方面去論述,指出現實當中存在這個問題,需要去研究,去解決,本論文的研究有什麼實際作用,然後,再寫論文的理論和學術價值。這些都要寫得具體一點,有針對性一點,不能漫無邊際地空喊口號。主要內容包括:⑴研究的有關背景(課題的提出):即根據什麼、受什麼啟發而搞這項研究。⑵通過分析本地(校)的教育教學實際,指出為什麼要研究該課題,研究的價值,要解決的問題。
(三)本論文國內外研究的歷史和現狀(文獻綜述)
規范些應該有,如果是小課題可以省略。一般包括:掌握其研究的廣度、深度、已取得的成果;尋找有待進一步研究的問題,從而確定本課題研究的平台(起點)、研究的特色或突破點。
(四)論文研究的指導思想
指導思想就是在宏觀上應堅持什麼方向,符合什麼要求等,這個方向或要求可以是哲學、政治理論,也可以是政府的教育發展規劃,也可以是有關研究問題的指導性意見等。
(五)論文寫作的目標
論文寫作的目標也就是課題最後要達到的具體目的,要解決哪些具體問題,也就是本論文研究要達到的預定目標:即本論文寫作的目標定位,確定目標時要緊扣課題,用詞要准確、精練、明了。常見存在問題是:不寫研究目標;目標扣題不緊;目標用詞不準確;目標定得過高, 對預定的目標沒有進行研究或無法進行研究。
(六)論文的基本內容
研究內容要更具體、明確。並且一個目標可能要通過幾方面的研究內容來實現,他們不一定是一一對應的關系。大家在確定研究內容的時候,往往考慮的不是很具體,寫出來的研究內容特別籠統、模糊,把寫作的目的、意義當作研究內容。
基本內容一般包括:⑴對論文名稱的界說。應盡可能明確三點:研究的對象、研究的問題、研究的方法。⑵本論文寫作有關的理論、名詞、術語、概念的界說。
E. 如何利用sci/ssci資料庫開展學術研究
Social Sciences Citation Index (《社會科學引文索引》SSCI )是由美國科學信息研究所(ISI)創辦出版的引文索引資料庫,內容覆蓋包括人類學、法律、經濟、歷史、地理、心理學等55個領域。收錄文獻類型包括:研究論文,書評,專題討論,社論,人物自傳,書信等。收錄期刊為1300多種。是Web of Science中7個子庫之一。Web of Science 利用Web of Knowledge平台發布。
Web of Science 包括著名的三大引文索引(Science Citation Index Expanded、Social Sciences Citation Index和Arts & Humanities Citation Index)、兩大會議索引(Conference Proceedings Citation Index – Science和Conference Proceedings Citation Index - Social Science & Humanities)及兩大化學信息資料庫(Current Chemical Reactions 和Index Chemicus)。每條文獻的信息包括論文的參考文獻列表,允許用戶通過被引作者或被引文獻的出處展開檢索,可輕松地追溯課題的起源和發展,揭示研究之間隱含的聯系,全面掌握有關某一研究課題的過去、現在與將來。
Web of Science
•內容涵蓋自然科學、工程技術、生物醫學、社會科學、藝術與人文領域
•四十多年嚴格一致的選刊標准,精選1,5000多種核心學術期刊和會議
•獨特的引文檢索,可輕松地追溯課題的起源、發展和相互關系
•強大的信息分析和引文報告功能,分析績效,把握趨勢
•Email和RSS定製主題及引文跟蹤服務,隨時把握最新研究動態
•一次點擊鏈接全文、館藏
•藉助引證關系圖直觀展示引用關系
•藉助引文報告功能以圖形方式揭示引用活動和趨勢
•使用分析工具確定研究趨向和模式
•文獻回溯至 1900 年 ,追溯100多年的科技文獻及其影響
F. 循證學的研究方法與研究對象
所謂循證實踐,主要是針對醫學及人文社會科學的實踐領域而言的,其字面意義為「以證據為基礎的實踐」,引申為「遵循證據進行實踐」,是實踐者針對消費者(本文中的「消費者」泛指實踐者所服務的對象,按具體情境的不同,也可稱之為病人、顧客、來訪者或服務對象,等等) 的具體問題,在消費者的主動配合下,根據研究者提供的最佳證據及管理者制定的實踐指南與標准等所進行的實踐。具體說來,循證實踐是一個涉及研究者、實踐者、實踐對象與相關管理者四個方面的理論體系。首先,研究者提供與實踐相關的最佳證據。循證實踐將研究證據按其所使用的方法的「科學性」程度進行分級,大樣本、多中心的隨機控制試驗(或元分析與系統綜述)所獲得的證據級別最高,准實驗研究、相關研究及質化研究獲得的證據次之,專家意見與個人經驗位居最後。只有在高等級證據缺失的情況下,才考慮採用低等級的證據。其次,研究者進行制定相關指南與標准,建立證據資料庫,並溝通其他三方的關系。研究機構方面,除了醫學領域以外,已有多個專業人文社會科學研究機構相續建立,例如南加州大學的Hamovitch人類服務研究中心以及西南財經大學中國西部經濟研究中心。資料庫方面,截止2013年全世界已有多個專業學術資料庫收集並傳播循證證據(如表1) 。再次,實踐者根據最佳證據進行實踐。循證實踐有著相對固定的步驟,普通實踐者(不必是專家或精英)都可以遵照執行。最後,實踐對象積極參與決策。他們既要考慮實踐的成本—效益,也要考慮研究證據與實踐者的建議,與實踐者一道制定實踐的決策。最終的決策應是實踐者經驗、實踐對象的願望及研究證據之間所取得的平衡。
循證實踐的框架體系主要包括四個方面 : ①研究者的證據。即從事應用研究(或實踐相關的基礎研究) 的研究者為實踐所提供的研究證據。這些證據的來源是多方面的,可以是大樣本、多中心、雙盲的隨機對照試驗(randomized controlled trial ,RCT) 或元分析所獲得的數據,也可以是質化研究甚至單個個案研究得到的結論,還可以是專家意見或個體經驗。這些證據都可用於指導實踐,但它們對實踐的參考價值不一樣, 級別有著高低之分,RCT 及元分析獲得的證據級別最高,是指導實踐的「金標准」,而專家意見、個體經驗等證據的級別最低,只有在高級別證據不存在的情況下才可採用。②實踐者的實踐。實踐者針對消費者的具體問題,考慮他們特定的價值觀、文化與偏好等因素,根據研究者提供的最佳證據,結合自己的個人經驗採取實踐決策並完成實踐過程。相對於傳統實踐模式,循證實踐的決策過程是透明的,可以被其他實踐者所復制,為第三方機構或人員所證明,不同的實踐者應做出大致相同的實踐決策。③消費者的主動參與。根據研究證據與實踐者的建議,消費者平衡成本與效益的關系,積極地參與到實踐決策的過程中,協助實踐者制定實踐計劃,及時反饋實踐結果,與實踐者共同完成實踐過程。④管理者的協調。管理者根據循證實踐的需要,協調研究者、實踐者、消費者三者之間的關系,運用財政資助、課題申請、著作出版、論文發表等杠桿,適當地調控研究者的研究方向,規范研究證據的發表與出版,建立相應的證據資料庫,制定實踐指南或標准,並與其它第三方機構(如保險公司等) 進行溝通。這樣,循證實踐平衡了研究者、實踐者、消費者以及管理者四方的利益,將其有機地整合在一個框架體系中,為實踐領域中應用研究成果、縮短研究與實踐的距離架設了一座溝通的橋梁。
G. 美國三大檢索系統是指哪三個資料庫,寫出具體的資料庫名稱,並簡述SCIE文獻分析功能的作用。
1、SCI ,即《科學引文索引》,是自然科學領域基礎理論學科方面的重要期刊文摘索引資料庫。
它創建於1961 年,創始人為美國科學情報研究所所長 Eugene Garfield(1925.9.15).利用它,可以檢索數學、物理學、化學、天文學、生物學、醫學、農業科學以及計算機科學、材料科學等學科方面自 1945 年以來重要的學術成果信息;SCI 還被國內外學術界當做制定學科發展規劃和進行學術排名的重要依據。
2、Ei,即《工程索引》,創刊於 1884 年,由 Elsevier Engineering Information Inc. 編輯出版。主要收錄工程技術領域的論文(主要為科技期刊和會議錄論文 ) ,數據覆蓋了核技術、生物工程、交通運輸、化學和工藝工程、照明和光學技術、農業工程和食品技術、計算機和數據處理、應用物理、電子和通信、控制工程、土木工程、機械工程、材料工程、石油、宇航、汽車工程等學科領域。
3、ISTP ,即《科學技術會議錄索引》,創刊於 1978 年,由美國科學情報研究所編制,主要收錄國際上著名的科技會議文獻。它所收錄的數據包括農業、環境科學、生物化學、分子生物學、生物技術、醫學、工程、計算機科學 、化學、物理學等學科。從 1990-2003 年間, ISTP 和 ISSHP( 後文將要講到 ISSHP) 共收錄了 60 , 000 個會議的近 300 萬篇論文的信息。
H. 論文的研究方法有哪些
1、歸納方法與演繹方法:歸納就是從個別事實中概括出一般性的結論原理;演繹則是從一般性原理、概念引出個別結論。歸納是從個別到一般的方法;演繹是從一般到個別的方法。
門捷列夫使用歸納法,在人們認識大量個別元素的基礎上,概括出了化學元素周期律。後來他又從元素周期律預言當時尚未發現的若干個元素的化學性質,使用的就是演繹法。
2、分析方法與綜合方法:分析就是把客觀對象的整體分為各個部分、方面、特徵和因素而加以認識。它是把整體分為部分,把復雜的事物分解為簡單的要素分別加以研究的一種思維方法。
分析是達到對事物本質認識的一個必經步驟和必要手段。分析的任務不僅僅是把整體分解為它的組成部分,而且更重要的是透過現象,抓住本質,通過偶然性把握必然性。
3、因果分析法:就是分析現象之間的因果關系,認識問題的產生原因和引起結果的辯證思維方法。使用這種方法一定要注意到真正的內因與結果,而不是似是而非的因果關系。
要注意結果與原因的逆關系,一方麵包括「用原因來證明結果」,同時也包括「用結果來推論原因」。不同的事物,一般都一身二任,既是原因,又是結果,而且一個結果往往有不同層次的幾個原因。因此,在研究過程中,對所分析的問題必須尋根究底。
(8)資料庫學術理論研究方法解析擴展閱讀
一般高校將論文重合度30%以上定為抄襲的文章,即論文審核不通過。
在確認抄襲行為中,需要與形式上相類似的行為進行區別,具體如下:
(1)抄襲與利用著作權作品的思想、意念和觀點。一般的說,作者自由利用另一部作品中所反映的主題、題材、觀點、思想等再進行新的創作,在法律上是允許的,不能認為是抄襲。
(2)抄襲與利用他人作品的歷史背景、客觀事實、統計數字等。各國著作權法對作品所表達的歷史背景、客觀事實統計數字等本身並不予以保護,任何人均可以自由利用。但是完全照搬他人描述客觀事實、歷史背景的文字,有可能被認定為抄襲。
(3)抄襲與合理使用。合理使用是作者利用他人作品的法律上的依據,一般由各國著作權法自行規定其范圍。凡超出合理使用范圍的,一般構成侵權,但並不一定是抄襲。
(4)抄襲與巧合。著作權保護的是獨創作品,而非首創作品。類似作品如果是作者完全獨立創作的,不能認為是抄襲。
I. 數據挖掘中建立模型 採用的是什麼研究方法
1.可視化分析
大數據分析的使用者有大數據分析專家,同時還有普通用戶,但是他們二者對於大數據分析最基本的要求就是可視化分析,因為可視化分析能夠直觀的呈現大數據特點,同時能夠非常容易被讀者所接受,就如同看圖說話一樣簡單明了。
2. 數據挖掘演算法
大數據分析的理論核心就是數據挖掘演算法,各種數據挖掘的演算法基於不同的數據類型和格式才能更加科學的呈現出數據本身具備的特點,也正是因為這些被全世界統計 學家所公認的各種統計方法(可以稱之為真理)才能深入數據內部,挖掘出公認的價值。另外一個方面也是因為有這些數據挖掘的演算法才能更快速的處理大數據,如 果一個演算法得花上好幾年才能得出結論,那大數據的價值也就無從說起了。
3. 預測性分析
大數據分析最終要的應用領域之一就是預測性分析,從大數據中挖掘出特點,通過科學的建立模型,之後便可以通過模型帶入新的數據,從而預測未來的數據。
4. 語義引擎
非結構化數據的多元化給數據分析帶來新的挑戰,我們需要一套工具系統的去分析,提煉數據。語義引擎需要設計到有足夠的人工智慧以足以從數據中主動地提取信息。
5.數據質量和數據管理。 大數據分析離不開數據質量和數據管理,高質量的數據和有效的數據管理,無論是在學術研究還是在商業應用領域,都能夠保證分析結果的真實和有價值。
大數據分析的基礎就是以上五個方面,當然更加深入大數據分析的話,還有很多很多更加有特點的、更加深入的、更加專業的大數據分析方法。
大數據的技術
數據採集: ETL工具負責將分布的、異構數據源中的數據如關系數據、平面數據文件等抽取到臨時中間層後進行清洗、轉換、集成,最後載入到數據倉庫或數據集市中,成為聯機分析處理、數據挖掘的基礎。
數據存取: 關系資料庫、NOSQL、SQL等。
基礎架構: 雲存儲、分布式文件存儲等。
數據處理: 自然語言處理(NLP,Natural Language Processing)是研究人與計算機交互的語言問題的一門學科。處理自然語言的關鍵是要讓計算機」理解」自然語言,所以自然語言處理又叫做自然語言理解也稱為計算語言學。一方面它是語言信息處理的一個分支,另一方面它是人工智慧的核心課題之一。
統計分析: 假設檢驗、顯著性檢驗、差異分析、相關分析、T檢驗、 方差分析 、 卡方分析、偏相關分析、距離分析、回歸分析、簡單回歸分析、多元回歸分析、逐步回歸、回歸預測與殘差分析、嶺回歸、logistic回歸分析、曲線估計、 因子分析、聚類分析、主成分分析、因子分析、快速聚類法與聚類法、判別分析、對應分析、多元對應分析(最優尺度分析)、bootstrap技術等等。
數據挖掘: 分類 (Classification)、估計(Estimation)、預測(Prediction)、相關性分組或關聯規則(Affinity grouping or association rules)、聚類(Clustering)、描述和可視化、Description and Visualization)、復雜數據類型挖掘(Text, Web ,圖形圖像,視頻,音頻等)
模型預測 :預測模型、機器學習、建模模擬。
結果呈現: 雲計算、標簽雲、關系圖等。
大數據的處理
1. 大數據處理之一:採集
大數據的採集是指利用多個資料庫來接收發自客戶端(Web、App或者感測器形式等)的 數據,並且用戶可以通過這些資料庫來進行簡單的查詢和處理工作。比如,電商會使用傳統的關系型資料庫MySQL和Oracle等來存儲每一筆事務數據,除 此之外,Redis和MongoDB這樣的NoSQL資料庫也常用於數據的採集。
在大數據的採集過程中,其主要特點和挑戰是並發數高,因為同時有可能會有成千上萬的用戶 來進行訪問和操作,比如火車票售票網站和淘寶,它們並發的訪問量在峰值時達到上百萬,所以需要在採集端部署大量資料庫才能支撐。並且如何在這些資料庫之間 進行負載均衡和分片的確是需要深入的思考和設計。
2. 大數據處理之二:導入/預處理
雖然採集端本身會有很多資料庫,但是如果要對這些海量數據進行有效的分析,還是應該將這 些來自前端的數據導入到一個集中的大型分布式資料庫,或者分布式存儲集群,並且可以在導入基礎上做一些簡單的清洗和預處理工作。也有一些用戶會在導入時使 用來自Twitter的Storm來對數據進行流式計算,來滿足部分業務的實時計算需求。
導入與預處理過程的特點和挑戰主要是導入的數據量大,每秒鍾的導入量經常會達到百兆,甚至千兆級別。
3. 大數據處理之三:統計/分析
統計與分析主要利用分布式資料庫,或者分布式計算集群來對存儲於其內的海量數據進行普通 的分析和分類匯總等,以滿足大多數常見的分析需求,在這方面,一些實時性需求會用到EMC的GreenPlum、Oracle的Exadata,以及基於 MySQL的列式存儲Infobright等,而一些批處理,或者基於半結構化數據的需求可以使用Hadoop。
統計與分析這部分的主要特點和挑戰是分析涉及的數據量大,其對系統資源,特別是I/O會有極大的佔用。
4. 大數據處理之四:挖掘
與前面統計和分析過程不同的是,數據挖掘一般沒有什麼預先設定好的主題,主要是在現有數 據上面進行基於各種演算法的計算,從而起到預測(Predict)的效果,從而實現一些高級別數據分析的需求。比較典型演算法有用於聚類的Kmeans、用於 統計學習的SVM和用於分類的NaiveBayes,主要使用的工具有Hadoop的Mahout等。該過程的特點和挑戰主要是用於挖掘的演算法很復雜,並 且計算涉及的數據量和計算量都很大,常用數據挖掘演算法都以單線程為主。
整個大數據處理的普遍流程至少應該滿足這四個方面的步驟,才能算得上是一個比較完整的大數據處理。