台大觀察與心得(八):大四上

在台大的日子已經進入第四年,不知不覺留在校園的日子只剩一年,讓人十分的不捨。從高中進入台大,到快要從台大畢業,這段日子我的變化很大,像是從一個物理學家變成軟體工程師,喜歡的運動從游泳變打網球。經歷了很多事情,多到我自己都常常忘記原來我曾經歷過,像是集思論壇、綠領農學市集、好幾家公司實習、參加的各種演講等等。
Continue reading

30 天 Javascript 從入門到進階:條件判斷

Gitbook 連結: https://tigercosmos.github.io/master-js-in-30-days/

條件判斷

接下來介紹控制程式的方式之一,也就是條件判斷。

條件判斷顧名思義就是針對不同的條件來判斷要做出怎樣的結果。舉例來說,現在要採收水果,但我們只要取下已經成熟的水果,還沒熟的我們要讓他繼續成熟。

或是我們有更多條件,例如大於 500 公克的蘋果放到 A 籃子,介於 200 到 500 公克的蘋果放到 B 籃子,小於 200 公克的蘋果不要摘下來。

現實生活中我們都在做各種判斷,而我們當然可以把這種判斷的工作交給電腦來做,接著讓我們來了解電腦怎樣做判斷的。

Continue reading

30 天 Javascript 從入門到進階:條件判斷

Gitbook 連結: https://tigercosmos.github.io/master-js-in-30-days/

條件判斷

接下來介紹控制程式的方式之一,也就是條件判斷。

條件判斷顧名思義就是針對不同的條件來判斷要做出怎樣的結果。舉例來說,現在要採收水果,但我們只要取下已經成熟的水果,還沒熟的我們要讓他繼續成熟。

或是我們有更多條件,例如大於 500 公克的蘋果放到 A 籃子,介於 200 到 500 公克的蘋果放到 B 籃子,小於 200 公克的蘋果不要摘下來。

現實生活中我們都在做各種判斷,而我們當然可以把這種判斷的工作交給電腦來做,接著讓我們來了解電腦怎樣做判斷的。

Continue reading

30 天 Javascript 從入門到進階:檔案讀寫

Gitbook 連結: https://tigercosmos.github.io/master-js-in-30-days/

檔案讀寫

電腦科學中資料讀寫包含存取(input, I)和輸出(output, O),這也是為什麼常常看到 I/O 這個術語的原因。在電腦科學術語中中,廣義的 I/O 包含直接對檔案(file)、緩存(Buffer)以及數據流(stream)做操作。檔案就是已經存放在儲存裝置中的文件,緩存是還在記憶體中的資料,數據流則是一串序列化的抽象資料,這再晚點會深入介紹。

資料傳輸在寫程式的時候,不管是你想要從文件中讀取資料,或是資料從網路上傳輸,亦或是資料在程式與程式之間傳送,都常常會用到。事實上我們寫程式通常也就是為了處理資料,如果沒有資料的話,還真的不曉得程式能做什麼事情!(有啦,算算質數之類的 XD)

本篇會將 NodeJS 上會用到數據型態作介紹,當作先備知識。接著只會著重在檔案讀寫講解範例,其餘像是數據流的操作、緩存的處理,待日後的進階文章才會詳細介紹。

Continue reading

30 天 Javascript 從入門到進階:函式

Gitbook 連結: https://tigercosmos.github.io/master-js-in-30-days/

函式

我們知道程式碼可以幫我們做很多事情,例如睡不著要數羊的時候,就讓程式跑個迴圈,一下就幾百幾千萬隻羊了。但是目前為止,所以工作都是被放在一起的,並且只能被執行一次。也就是說,假設我有三件工作,寫成程式碼可能會長這樣:

Continue reading

30 天 Javascript 從入門到進階:物件

Gitbook 連結: https://tigercosmos.github.io/master-js-in-30-days/

物件

這個世界由各種不同的東西(Things)組成,我們身處的宇宙、太陽系、每天繞地球的月球,山海與花花草草。

有一部電影〈The Theory of Everything〉描述一位已逝的偉大物理學家——霍金,年輕時候的愛情故事。霍金一生為追求宇宙的真理而努力,物理學家堅信世界應該是由一個可以統合並解釋所有物理現象的理論所支配,亦即萬物的理論。

在 JS 的世界中,萬物的理論就是 object 這個物件型別,這個物件型別包含各種形形色色的玩意,讓我娓娓道來。

Continue reading

30 天 Javascript 從入門到進階:環境建設與執行第一個程式

Gitbook 連結: https://tigercosmos.github.io/master-js-in-30-days/

環境建設與執行第一個程式

JS 可以當作獨立的程式直接運行,也可以跑在網頁上。本篇先介紹如何直接運行 JS 就好,因為要跑在網頁上,我們必須寫一份網頁出來,其中概念不只 JS,還必須懂 HTML,但這邊我們先了解 JS 就好,所以跑在網站上的方式待晚點再作介紹。

Continue reading

台大觀察與心得(七):大三寒假與大三下

在台大的日子已經過完三年整了,本篇記錄從大三寒假到大三下在生機系的生活。故事線大概可以分三條,研究篇、課業篇、課外篇,不過雖然我念生機系,但大部分都不是在生機系的故事就是了。

Continue reading

台大觀察與心得(四):生機系第一學期-課外活動篇

高中以前,我夢想當個物理學家。大學之後,我對世界有嶄新的認識。大一時多方聽演講,以及修了外系的課,我對其他領域的興趣慢慢浮現,我自己也有感覺,比起學術之路,我更適合走工程。總之,我轉系了,轉去生物產業機電工程,簡稱生機。

Continue reading

台大觀察與心得(三):大一暑假

這篇主要是描述大一下學期到暑假期間的心路歷程。

約莫大一下學期,我還在大氣系,寒假時有當志工,幫林博雄教授做觀測。期間認識石恩,石恩學物理的,聊得挺投機。後來林博雄需要找學生幫忙寫軟體,石恩那時在教授那邊工作,於是石恩介紹我給教授,我一直都有在接觸程式,那時的我程度真的只是比一般人好一點。不過不管,勇於接受挑戰才能更上一層樓。那時候稍微覺得對程式編寫沒問題。這又要往回說。
Continue reading

馬可夫鍊模擬 Markov Chain Simulation

        馬可夫鏈 (Markov chain) 或稱馬可夫過程 (Markov process)是一種隨機過程,在數學上只要這傳遞矩陣有一些好的性質,就可以證明經由這馬可夫鏈抽樣的分佈會收斂到想要的機率分佈。
這邊我簡單模擬有一群人,分為AB兩種狀態,並且一開始兩種狀態人數相同,而每回合 中的每個人會有 aRate 機率變 B中的每個人會有 bRate 的機率變 A。如此進行多回合。(這是 Agent-Based 而不是直接矩陣運算)