為何資訊科學應被納為基礎科目

隨著全球科技業高速成長,學習資訊工程的經濟利益眾所皆知,但你知道其實資訊科學除了是專業技能外,更是提升我們解決生活中問題能力的良藥嗎?

我們今天來探討一下為什麼即使沒有興趣從事軟體工程,你也應該學點資訊科學。

二十世紀末,人類的認知與學習能力有了一百八十度的轉變:我們不再認為知識只是生冷僵硬的文字與數字記憶,而是對人類處理新資訊的能力有直接且深遠影響的 “認知積木”。知識不但能提升我們處理特定領域資訊的能力,更能促進我們學習新知識的方式,進而改變我們與周遭世界的互動模式。

所以,過去曾被我們視為填鴨式教學的語文,歷史,科學與數學等科目,現在認知心理學與教育心理學已熟悉這些學術基礎科目除了記憶型知識外,更對於資訊分析和解題能力的生成發展有直接的關係。換句話說,其實我們學習歷史不是純粹為了記憶歷史事件,學習物理也不只是背誦公式,而是藉由學習歷史來了解觀點與偏見,而透過物理來將數學應用於形容物質世界。

為什麼學習這些基礎科目能幫助我們訓練解決問題的能力呢?

讓我們先來看看物理和數學公式之間的關係。

 

 

若今天我們討論的是在知道所有變數的情況下去計算以下公式的數值:

那這只是非常平常且乏味的四則運算題,很多人還會問學了這公式到底有甚麼意義?

但今天若我們嘗試了解一顆仰角發射的球體的物理原理:

我們可以用同樣的數學公式去形容這球體離地的垂直距離。若球體本身只受地心引力影響,那其向下墜落的距離正好是(t是時間):

 

若球體純粹是仰角投射出去而沒有地心引力影響,因此其向上飛行的距離是(t是時間):

 

由於球體既是被投射又受地心引力影響,其離地距離自然成了(t是時間):

 

雖然在此我們使用的同樣是上面提及之平凡又無聊的數學公式,物理在此賦予了這些公式意義。數學公式在物理中如同積木般,讓我們可以創造出形容現實物質世界的數學模型,就好像中文字讓我們能造句形容周遭環境一般。

資訊科學其實也有同樣的作用。

知名資訊科學家 Edsger W. Dijkstra 曾說:"資訊科學和電腦之間的關係,不會比天文學和望遠鏡之間的關係更重要。"這意思就是說,資訊科學的知識是世界通用的,而不是局限於電子設備。

計算,廣義來講可解釋為改變數學物件的方法。以早期資訊科學中的狀態機(State Machine)為例,他們其實只是一種將複雜的作業程序分解為一系列之單一步驟的方法。以組裝玩具為例,要組裝一玩具車,你可以將這作業程序分解成為:

加入高溫塑膠原料 > 冷卻模型 > 上顏料 > 安裝四顆輪子 > 置入包裝紙箱

或許你已舉一反三,看出狀態機這種計算模型,其實可應用在設計和管理生產線流程,以形容生產線上的每一位員工的工作。

生產線乍聽下太過於抽象,我們不妨想想"摺衣服"這簡單的家事如何分解成為單一動作:

將上衣轉成背面 > 將上衣雙袖向內摺 > 將上衣底部向上打一小摺 > 將上衣底部向上折疊 > 將上衣轉成正面

而試想今天若你必須摺一大堆衣服,你要怎麼去增加摺衣服的速度呢?除了一個人完成這五個動作,你也可以有五個人排成一列,每個人完成一個動作後將衣服推至下一個人,這樣當下一個人在摺衣的時候,前一人可以開始摺下一件衣服。而當衣服量大量增加(就當作你開洗衣店吧!),你除了可以叫五個人排成序列摺衣外,還可以有兩個五人團隊平行作業以達雙倍成效。

這種用小步驟來形容一複雜的工作,在資訊科學中就叫做演算法(Algorithms)。由此可見,資訊科學其實是一非常彈性且強大的思考方式,可幫助我們敘述問題和解決問題。

除了形容工作以外,資訊科學也相當注重如何整理你想處理的物件,整理物件的方式就叫做資料結構(Data Structure)。

為什麼我們需要整理我們想處理的物件呢?

我們再想想摺衣服這家事好了,想像你現在有很多衣服需要管理。

當你去高級餐廳或是酒廊,店家可能會提供掛衣服的服務。掛衣小弟拿了你的大衣後會給你一個號碼牌,之後你只要憑這號碼牌就可以取衣。因為一件衣服只有一個號碼,而一個號碼也只有一件衣服,掛衣小弟拿了號碼以後馬上就可以把大衣拿給你,不需要一件一件翻找。這種用"號碼取件"的方式,在資訊科學中叫做隨機存取(Random Access)。

假若今天你有一大疊剛摺好的衣服,而你想要這疊衣服中間一件襯衫。為了防止搞亂整疊衣服,你必須把衣服一件一件拿起來放在旁邊,直到拿到你要得襯衫為止。這種從一疊物件中一次只能上最上面的物件的資料結構,就叫做堆疊(Stack)。

現在再假設你把衣服並排放著,而從前到後你用彩虹色(紅橙黃綠藍靛紫)去排列這些衣服。若你今天在找特定顏色的衣服,你可以很快地從這並排的衣服中找到自己要的顏色,這是因為這些衣服已經被排序(Sorted)。

很有意思吧?

這些日常生活中所用的技巧讓我們做家事更有效率,但我們從來都沒想過,這些技巧其實就是資訊科學!

資訊科學家逛街不只走路,更要去尋找更短、更快的路徑。資訊科學家煮飯不只是生火炒菜,我們更要在切菜、調味、炒煮、擺盤之間尋找空隙來分工和節省時間。

事實上,世界上每一個人每天都在潛意識中寫程式,只是我們不知道而已。

資訊科學的意義與用題在於幫助我們把一般解決問題的能力程序化,讓我們更容易溝通並繼續深造。學習資訊科學就好像學習單字一樣,幫助你形容自己的做事和思考方法。

我們學習中文是為了表達自己、學習社會科學是為了理解人情世故、學習科學是為了學習驗證事實,而學習數學則是為了形容物質世界的形狀、大小、數量等。

學習資訊科學,我們學習的是任何創意的基礎:觀察形容問題和設計解決方案的能力。將資訊科學納入基礎科目並大力栽培,就是在栽培下一代的思考和創意。