網頁

搜尋此網誌

2009年3月31日 星期二

Moral道德

今天談談這主題"道德",有一本書可以推薦給大家閱讀,是台大哲學系教授_林火旺教授。認識他的原因,以及買這本書的原因,起因於本校-國立台北科技大學(前身台北工專,實在太多人不曉得北科大,必須提及"台北工專"才曉得)的通識博雅講座


在2006年的博雅講座-哲學系列-當中我有幸旁聽,這一系列的講座當中,有3次是林火旺教授所主講,題目是「倫理學與政治哲學」,內容其實就是這本書「道德」的一部分。

我非常喜歡他上課的內容,動之以情、喻之以理、誘之以利、威之以勢(後面兩個沒有啦!),而且上課方式正如同他的名子,非常的熱情與活潑,就像太陽與火焰照亮人們的心,你是不會睡著的(尤其是這種哲學課)。

書中內容不在這裡講述,出版社是寶瓶文化事業有限公司,訂價是台幣280元整,有興趣的人可以去買來看看。這本書是林教授以哲學說理的方式來解釋,我們人為什麼需要有道德,不要認為哲學很難,書中第一章就是"哲學與道德",你看過之後就會明白,多說無益......

今天我要跟大家講的重點是,道德也許你感覺不重要,但其實你無法活在一個沒有道德的社會,所以此書的副標題「幸福的必要條件」,就是道德,要幸福的話,則社會上的每個人都要有道德。書上很多例子,不在這裡重複敘述。

隨著最近景氣的不好,感覺黑暗時代來臨,因為常搭火車的緣故,有發現火車站的遊民越來越多,其實還好他們有道德,還不至於顯得社會有危險。為何這麼說呢?這些遊民至少還不會拿刀砍人,或是做貪污害人的事情,搞不好最有道德的人就是這群遊民,總比那些社會地位崇高的人,表面上做些好事,實際上做些為害大家的事情,能力越大,破壞力越強!也總比那些自以為清高的教授,盡是剝削利用研究生,以高尚的學術名義來壓迫這些手無寸鐵(畢業證書)的學生,你說這種人有道德嗎?你就不要遇到,遇到真是覺得噁心(sick)。

當一個人什麼都沒有的時候,你無法用任何東西威脅他,更無法說服或是控制他,就像黑暗騎士(Dark Knight)中的小丑,這反而是更危險的。問題來了,誰也沒有辦法預料未來的世界,會不會有這種人,說他是有精神病、無道德者...等,我相信這對每個人都是危險的。

黑暗騎士(Dark Knight)經典的台詞:
  • Because he thought it was good sport.
  • Because some men aren't looking for anything logical, like money.
  • They can't be bought, bullied, reasoned or negotiated with.
  • Some men just wanna watch the world burn.
如果你很有錢,慶幸你沒有遇到瘋子,不會莫名其妙拿汽油潑你,多虧你住的房子是有道德的人建造,多虧你吃的東西是有道德的人種的...多虧有道德啊!

這讓我想到:

ycwang老師常教導我的以及他的學生們

ycwang認為這個社會和你我是有相關的,如果這個社會不好,你再怎麼好也還是不好,因為你是和這個社會結合在一起的,所以老師以前也對這個社會投入不少關懷。

比如說我很關心台灣的發展,但我不是選舉的狂熱份子,我是理性的中間選民,所以選舉的時候我會關心候選人的行為與政策,是否對台灣的未來是有所幫助的,而不是單為個人的選舉利益去做的事情。

另外,對於慈善機構的捐款我也有贊助,我認為那是一個對社會的回饋,像國外有些成功的企業家,常常會有大筆的捐款,以前認為真是莫名其妙,但是後來慢慢了解,那些企業家的用意在於幫助周圍的人變好,環境改善之後對企業賺錢的機會也會增加,如此是一個正向循環。

<結束>

慶幸,我們所處的是一個動盪的時代。政治動盪,我們更了解民主與自由的不同,了解政客的選舉手段。金融動盪,我們更了解投資理財,財團投機勾結的手段。人心動盪,我們更學習到關懷幫助他人,還有如何對付這些壞人、噁心的人。

2009年3月28日 星期六

Design Patterns 物件導向設計模式

起因於"大話設計模式"一書,我將重新學習 Design Pattern (設計模式)這項觀念,對於資訊工程類科的學生可能不陌生,但是對於一直都主修電機工程 (Electrical Engineering, EE) 的我而言是不熟悉的觀念,雖然說現在 EE 和 Information 好像沒什麼清楚的界線,這不是重點。希望你和我不懂 Design Pattern 的人,都可以互相學習這項觀念。

必須注意到:設計模式僅適用於「物件導向程式語言」,像是 C++、Java、C# 之類的程物件導向程式語言,設計模式的目的在於設計可再利用 (reusable) 的物件導向軟體

參考書籍有兩本:

1.第一本物件導向設計模式,這是台灣培生教育出版,定價550元,我在天瓏買的。
Gamma, Helm, Johnson, Vlissides著,葉秉哲譯,物件導向設計模式:可再利用物件導向軟體之要素,台北:台灣培生教育,2001。譯自:Design Patterns: Elements of resuable object-oriented software

2.第二本大話設計模式,這是悅知文化出版,定價620元,我在天瓏買的。網路上更便宜,因為我買貴了...。

程杰,大話設計模式,台北:精誠資訊(悅知文化),2009。

第二本"大話設計模式"可以說是我們正常人比較容易看懂得,而第一本"物件導向設計模式"看了會難懂,玄之又玄還是玄,玄到萬惡深淵裡面去了。可能是我的程式基礎不夠的關係,也好,就此有動機來學學這種觀念,看看能不能又得""。

"大話設計模式"作者的BLOG:http://cj723.cnblogs.com/

設計模式 (Design Patterns) 分成三大類共23種模式:(後面的符號<>中,表示模式的分類標準;符號[]中,表示大話設計模式的章節)

生成模式(Creational Patterns)<目的>
  • Abstract Factory<物件>抽象工廠模式[第15章|就不能不換嗎?—抽象工廠模式]
  • Builder<物件>建造者模式[第13章|好菜每回味不同—建造者模式]
  • Factory Method<類別>工廠方法模式[第08章|南丁格爾依然在人間—工廠方法模式]
  • Prototype<物件>原型模式[第09章|履歷影印—原型模式]
  • Singleton<物件>獨體模式[第21章|有些類別也需計畫生育—獨體模式]
結構模式(Structural Patterns)<目的>
  • Adapter<物件><類別>轉接器模式[第17章|在NBA我需要翻譯—轉接器模式]
  • Bridge<物件>橋接模式[第22章|手機軟體何時統一—橋接模式]
  • Composite<物件>組合模式[第19章|分公司=一部門—組合模式]
  • Decorator<物件>裝飾模式[第06章|穿什麼有這麼重要?—裝飾模式]
  • Facade<物件>外觀模式[第12章|多頭市場股票還會虧錢?—外觀模式]
  • Flyweight<物件>享元模式[第26章|專案多也別傻傻做—享元模式]
  • Proxy<物件>代理模式[第07章|為他人做嫁衣—代理模式]
行為模式(Behavioral Patterns)<目的>
  • Chain of Responsibility<物件>職責鏈模式[第24章|加薪非要老總批?—職責鏈模式]
  • Command<物件>命令模式[第23章|烤羊肉串引來的思考—命令模式]
  • Interpreter<物件><類別>解譯器模式[第27章|其實你不懂老闆的心—解譯器模式]
  • Iterator<物件>迭代器模式[第20章|想走?可以!先買票—迭代器模式]
  • Mediator<物件>仲介者模式[第25章|世界需要和平—仲介者模式]
  • Memento<物件>備忘錄模式[第18章|如果再回到從前—備忘錄模式]
  • Observer<物件>觀察者模式[第14章|老闆回來,我不知道—觀察者模式]
  • State<物件>狀態模式[第16章|無盡加班何時休—狀態模式]
  • Strategy<物件>策略模式[第02章|商場促銷—策略模式]
  • Template Method<物件><類別>範本方法模式[第10章|考題抄錯會做也白搭—範本方法模式]
  • Visitor<物件>訪問者模式[第28章|男人和女人—訪問者模式]
上述中文是從"大話設計模式"中整理出來的,請參考。另外依照Design Patterns的導讀來看,上述藍色字體的樣式式較簡單、最常見的模式,作者建議先從這8個先著手。

另外,大話設計模式中,總共29章,總共有23個設計模式,沒有專門講述特定設計模式的章節有:(提供大家閱讀的參考)
  • 第01章|程式碼無錯就是優?—簡單工廠模式
  • 第03章|拍攝UFO—單一職責原則
  • 第04章|升學求職兩不誤—開放-封閉原則
  • 第05章|會修電腦不會修收音機?—依賴倒轉原則
  • 第11章|無熟人難辦事?—迪米特法則
  • 第29章|OOTV杯超級模式大賽—模式總結
詳細的內容說明,請大家去閱讀這兩本書。推薦推薦!這不是廣告...

###

2009年3月27日 星期五

Joomla中文檔名問題

Joomla若在Windows主機上,會出現一般PHP中文檔名存檔的問題。

一般是用iconvConvert string to requested character encoding這個函數來解決。string iconv ( string $in_charset , string $out_charset , string $str )

像是
$tmp_name = $_FILES["thisfile"]["tmp_name"];
$name = iconv('UTF-8','BIG-5',basename($_FILES["thisfile"]["name"]));
move_uploaded_file($tmp_name,$name);

目前使用Joomla的擴充元件當中,Remository就會有問題。此外,核心元件media也會有中文檔名存檔的問題。先就Remository的解決方法說明:

joomla目錄\components\com_remository\p-classes裡面的兩個檔案:remositoryPhysicalFile.php和remositoryFile.php需要修改

remositoryPhysicalFile.php

99行
$this->proper_name = iconv('UTF-8','BIG-5',$_FILES[$key]['name']);

200行
if (move_uploaded_file($this->file_path, iconv('UTF-8','BIG-5',$destination))) {

remositoryFile.php

297行
if ($extensiontitle) $this->filetitle = iconv('BIG-5','UTF-8',$physical->proper_name);

572行
$this->realname = iconv('BIG-5','UTF-8',$physicalFile->proper_name);

另外下載的這個部分,資料庫中是用UTF-8編碼,而下載中文需要用BIG-5,因此需要做轉換。
joomla目錄\components\com_remository\c-classes中的remository_download_Controller.php

remository_download_Controller.php

133行
$downpath = iconv('UTF-8','BIG-5',$fileinfo->filePath());

165行
$displayname = iconv('UTF-8','BIG-5',$fileinfo->realname);

2009年3月22日 星期日

分享TMS320F2812學習心得

有鑑於 DSP 的學習對於很多人來說都很陌生,又有點畏懼,在此和大家分享我的 DSP 學習心得,期望能提供大家做為參考,另外也鼓勵大家不要畏懼,這種東西是很簡單的,比起你應付一些難搞的人來說,學習DSP是有道理可以依循的!

我用的是德州儀器 ( Texas Instruments Incorporated.) 的TMS320F2812這個 DSP ,因為當時念電力電子技術,需要用到所謂的數位控制,所以才用這個系列。這裡感謝胡教授 (K.I. Hwu) 的指導與實驗室的資源,有幸能參與你的計畫案,讓我們這群學生永生難忘更要感謝其碩士班學長們的教導,以及他們熱心的協助,這間實驗室的同學我太需要感謝他們了。

特別感謝黃老師 (Simon Huang) 和其實驗室同學的交流,讓我在短時間內能學習DSP這項工具,並且和我的同學一起教學相長,還有和您們一起參加「台灣大學燃料電池機的計畫,難能可貴的機會,使我見識到台大團隊的能力,由衷感謝您們,沒有您們的協助,沒有這些學習心得分享給大家。

開發用的工具是:VP2812EVM,VP2812EVM為旺陽電企業股份有限公司 (Value Provider International Corp.) 所研發生產,可以展現德州儀器公司的 TMS320F2812 DSP 大部份的特性及功能之模擬板。他是長下圖這個樣子:(有圖有真相)


要如何開始學DSP呢?

如果有人肯教當然是最好的,肯教你又不留一手的又是更少的!如果沒有也沒關係,天助自助者!基本上,你最好是學過MCU之類的微控制器,像是8051之類的,總之,你要懂一點電腦、微處理機的運作基礎原理。

假設你已經知道MCU了,也已經用過了。先恭喜你,DSP已經會了一半,因為這些東西(DSP、MCU、MPU)都是大同小異的,你可以用類比的概念來學習,察覺他們之中相同和相異之處,學起來就會更快更順手!簡單來說,一般的MCU像是轎車,DSP則像是跑車,DSP速度較快也較複雜,導致有人說他難,本來複雜的東西就比較難懂一些!

接著,上網收集DSP的所有datasheet和Example,這些都是學習的主要資料!非常重要。俗話說,模仿學習的第一步,先run一些範例程式,調一調參數,觀察其輸出變化。如果不懂,再去看datasheet,datasheet看不懂就去玩玩範例程式,這是一個疊代過程,疊幾次之後,通常你會懂一些東西。

你一定會問,靠!datasheet那麼多,要怎麼看。別的DSP我不知道,TMS320F2812來說,你大概只要印三本出來看,分別是:
  • spru078c_TMS320x281x System Control and Interrupts Reference Guide (Rev. C).pdf這是整個DSP的運作精神,了解中斷並運用中斷,還有系統中的參數(比如clock等)設定,如果都懂的話,整個DSP你都可以用的得心應手!
  • spru060d_TMS320x281x Analog-to-Digital Converter (ADC) Reference Guide (Rev. D).pdf這是做控制的輸入部分。
  • spru065c_TMS320x281x Event Manager (EV) Reference Guide (Rev. C).pdf這是控制的輸出部分。
你應該要有個疑問!啊,控制器的PI要怎麼寫呢?上面三本只有輸入跟輸出,PI要怎麼生出來。這時候Example範例程式就有用了,TI的範例當中,有三個很有用:
  • sprc097_Peripheral_Examples_v100,學DSP可以先用這個來切入,詳細又簡單的程式,可以讓你有感覺。
  • sprc087_IQmath_Library,因為TMS320F2812是Fixed-Point的處理器,如果運算需要浮點數,可以用這個Library來模擬完成此需求功能。
  • sprc080_dmclib_v322,這是用來做馬達控制的範例程式,有很多有用的Function可以參考,其中PID控制器就是一個,依樣畫葫蘆,你可以修修改改完成你要的工作。
資料收集好之後,萬事俱備,只欠東風。剩下要怎麼開始呢?我的建議是這樣:
  1. 先玩玩PWM這塊功能,用Example的範例程式也沒關西,觀察輸出的現象,改一改程式然後感覺一下DSP的行為。
  2. PWM能夠調整之後,再來玩玩ADC的部分,因為ADC是輸入功能,你要知道ADC的輸出才會有感覺,最簡單的方式是用ADC來調整PWM,怎麼寫?用兩個程式,把他"接"起來,ADC的輸出=PWM的輸入。因為PWM你已經用過了,基本上不會有錯,把ADC接近來如果不會動,大概就是ADC這塊的問題。
  3. 最後再玩玩中斷、系統這一塊,記得Simon Huang曾說過:能夠完美操作DSP的中斷,將能將DSP的功能發揮地淋漓盡致。事實也是如此!
以上大概是我學習DSP的學習心得,希望你也能夠順利學習。大致上依照這個方式來學,我想是最省時的,然後你要有個觀念:「做你能做的,改變你能改變的」,再來就是「先從簡單的開始」,你要想:「你會什麼東西,你有什麼能力,你要怎麼克服,靜下心來,一步一步就會成功」,因為我就是這樣走過來的,學DSP是簡單的,學做人處事是最難的,尤其遇到那種你無法預期的一些人。

下圖是以前用DSP做的Switching Power Supply,Power Satge是由國哲同學製作的,這是一個升壓型(Boost Type)轉換器,給大家參考參考,鼓勵你也可以做這樣的東西。

最後想跟大家提倡的觀念:

寫程式沒什麼了不起,用DSP也沒什麼了不起。程式人人會寫,電路也人人都會做,只要是接受過訓練的,做這些都沒有太大問題,差別在於等級問題,你做的可能是80分,我做的可能是79分,而做出100分的東西通常很少,也很少是一個人完成,100分的產物通常是一個Team完成!

這些東西也不過是這樣,程式是死的,而人是活的。在許可範圍內,你寫的程式其實要跟大家分享,一個人的想法一定有限,由眾人集合起來的價值會是更大的。想想看,這些程式等你死掉的時候,還會有價值嗎?DSP也許早就改朝換代了。

當Free Source很多時,資源不再是壟斷的,對所有人都有利!實在搞不懂有些人藏東藏西,怕別人知道他腦袋的東西,甚至做出自私自利傷害別人的行為,我真得不懂,也不了解。人的價值不在於這些實體,而是在於背後的精神,這些精神是別人怎麼學寫學不懂的,這才是價值!

2009年3月21日 星期六

Dear Joseph

[Dear Joseph]這篇文章,紀錄2009年3月13日與Joseph的會議內容,主要是關於建置WikiPET網站的事情,但我感觸更深的不是關於技術上的議題,而是一位長者(指導者)對於我們學生的啟發。

先談談WikiPET網站(目前這個網站尚在後開發時期,暫不公布網址),藉由這次的經驗學習到相當多的經驗,因此趕快記錄下來(t5318019的"活在當下"精神)。

建置WikiPET網站主要是發揮Web 2.0的精神:分享‧互動,這兩項的要點。內容上以電力電子技術為主,而實現的方式有Blog、Wiki這樣的平台。Joseph和我都認為內容是成功的主要因素,因此在網站建立初期,以最有限的能力來建置,所以我們用Joomla和 Google提供的服務來完成。隨後,遇到很多當初未想到的問題,非常感謝Joseph和Bo-Yuan、Yong-Kai與Prof. Lai的協助和指導。

(以上還不是本文重點,鋪陳、先鋪陳)

談話中提到很多,接下來將我有記錄跟印象的寫下來。

第一部分

談到研究方法:相依性、獨立性。我是第一次聽到,可能以前未曾學過(不能說學校沒教,學校沒教的事可多了),這裡對我的啟發是:研究是有方法的,我相信,每件事都有方法,只是我們沒去發掘而已。

在資料的這部分,談到Data→Information→Knowledge三個層面,其中DATA由程序和架構兩類組織起來,並談到關聯的概念(同意!同意!我有體會,只能傳心,無法會意。)。在學習上,又可分為精神面和實用面兩大類,學東西學到最後,我認為應該都是精神面的,所謂的理一分殊,萬宗歸一。

第二部分

Joseph對我們學生的建議。建議我們要學習向上管理、應對進退,這兩個處世道理。這很難、我相應該很難,需要時間的累積,需要生命的體會,不是說吃個藥、看個書就會的事情。Joseph並且提出「溜溜球理論」,我想這對我來說是重要的,我比較喜歡什麼事都自己來,但是最後會發現沒時間handle那麼多事,這時應該交給"值得"的部屬來處理。讓我想起一句話:The best leader is the best follower,我相信目前成功的人,以前也必定是個成功的部屬。

最後,是我最有感觸的:每個人都應該學習看事情有不同的角度,要以不同的面向來看待同一個事情。我認為看事、看人都應以這樣寬廣的心態來面對,越能有最多的面向來觀看,越能發掘更多,學習到更多知識,體悟到更多經驗。

這和精神面和實用面的概念是呼應的!事情(人、事、物)是實用面、具體的,我們越能看清楚、去除表象、體悟其精神,越能順心(這不是要賺大錢啊!),我認為人難得的是順心,我相信越成功的人一定是「順心愉快」的,這跟金錢無關,金錢只是實用面的東西!

大概先記錄這些,時間已經是半夜2:54了。

註:Blog的經營真的很花費時間,我打這篇大概快1個小時,加加減減修改一下時間就過了,可怕!我的另一個blog都快長草了。God~

向各位用心經營的Blogger致敬。

2009年3月20日 星期五

Joomla! Component

最近賴桑的東西弄得差不多了,
因為使用Joomla的系統,先把一些Component記下來,
以便之後會用到。

目前使用的component有:
  1. eXtplorer=線上版的檔案總管,通常是給administrator用的。
  2. Kunena=討論區,更能還滿強大的。
  3. Remository=提供檔案下載功能,可以區分類別來管理。
  4. Attachments for content articles=附加檔案於各文章(article)。
目前使用的module有:
  1. Vinaora Visitors Counte=瀏覽網站人數的統計,簡稱計數器。
另外,可以用的plugin有:
  1. Simple Image Popup=讓圖片popup出來。

2009年3月18日 星期三

Net & Web, Tier & Layer

和大家分享一下英文和中文的差異,
其實在讀原文書的時候,不曉得大家有沒這樣的感覺,
有些字翻成中文雖然都一樣,但是在英文卻是兩個或多個不同的字。

舉例來說,NetWeb兩個字都是翻譯成「網」
但是當你把英文書看過之後,你會了解他們是指不同的東西,
Net通常是指硬體(具體的物),Web通常是指軟體(抽象的物)。
像是網路Network,乙太網路Ethernet之類的,代表有實際的東西;
而網站Website,網頁Webpage,代表虛擬的東西。

再舉另一個例子,「層」的英文是TierLayer,同樣的道理,
Tier通常是指實體的、硬體上的分隔分層,比方多層式Multi-Tier,就是指設備之間獨立分割開來的意思;
Layer通常是指虛擬的、軟體上的分隔分層,軟體上Multi-Layer的分層就屬這方面的概念用語。

2009年3月4日 星期三

Joomla!工作紀錄

最近因為賴桑的關係,所以做web開始用Joomla!這套CMS,用了用了還發現滿不錯的。記錄一下一些基本觀念,以防萬一。

Joomla的有前台、後台的觀念,而且相當清楚。基本上以文章(article)為最小單位發佈,最大為單元(Section),一個裝另一個。其階層架構為:(中英對照)
  • Content>Section>Category>Article
  • 內容>單元>分類>文章
另外!安裝時記的要將gd和curl兩個Library打開,gd是生PDF時,若有圖片可以支援jpeg以外的檔案格式,而curl是支援Google Account認證的功能,一定要開curl才有辦法通訊。

最後,因為中文的關係。PDF需要動手改一下才能用,google一下"joomla中文pdf"問題來解決。

目前遇到的問題大概這些,之後再補述吧!

**********
joomla的eXtplorer,我裝的是2.0.1版,下載是英文版,但裝上去之後變成中文,不過有bug,中文語言檔有錯誤,錯在「"」符號,忘了第幾行。路徑是:網站跟目錄\administrator\components\com_extplorer\languages\traditional_chinese.php

2009年3月1日 星期日

程式語言Programming Language

今天談談程式語言這件事,倒不是要說哪個程式語言好、你應該學哪種程式語言...這種問題大家應該有能力上網Google一下就有了。另外,Programming Language中文應該不要翻成「程式語言」,因為Programming是一件活動,應該用「編程」來解釋「Programming」這件事較恰當貼切。

我今天要講的是,為什麼程式語言你在大學學了幾年,還是學不好的原因,請容我提出我的看法、鬼扯、胡說八道...的內容。以下看看就好

先說我自己好了,我念的是某高職,一部分是升學主義,再加上因為是電機科,電機嘛!學什麼程式語言,你只要摸摸基本電學和電機機械,會考試就好了,所以高一的計算機課程,只學了VB,還是用抄的才過的,就這樣高職再也沒摸過程式語言。

大學的話呢?算是有真的接觸程式語言,第一次學C++,真的有感覺學到"程式語言",之後大學生涯,因為做Web的關係,又摸了PHP、ActionScript等等。台北科技大學的程式課程普遍算是有紮實到,可能都遇到不錯的老師(這倒是真的,其實有人說哪間學校不好、怎樣怎樣的,我相信都是遇到不好的人,不好的老師,真希望有辦法把那些不好的人趕走...)。

嚴格說起來,我算是Coding、Programming的高手嗎?絕對不是。在這樣的程式際遇之下,沒有殘廢也難,所以我程式絕對不厲害。我要說的重點是:我自己亂學亂寫這就算了,可是我周遭的同學,為什麼程式還是不太會寫呢?他們絕對比我聰明,成績也比我好,可是怎麼會這樣呢!

我的看法是:
  1. 教程式要教的不是"語法"。課堂上常常就是教你變數宣告要怎麼寫,然後你練習,考試考這個,管他什麼程式課程,都用這種教法。學生光是記這些都頭暈了,哪裡還有興趣學程式的精神。
  2. 因為"聽說"程式很難,所以大家已經有心理障礙,萬一又遇上一個不好的老師,那這輩子註定跟程式無緣囉,好的老師真的很重要。
  3. 缺乏練習時間,如果老師沒有要求,我們學生大概也不會去寫程式,培養對程式的情感,自然就對程式沒有興趣,最後不了了之,畢業之後也不會再摸了。
大概是這幾項因素,讓一些人對程式直接說:NO。

程式不外乎就是解決問題,把解決問題的過程寫成程式給電腦計算,就這麼簡單而已。因此學校的課程應該是以"問題導向"來教程式語言。程式的語法讓學生自己去看就行了,大學生不會連書都看不懂的(都念到大學了!),除非是...

一個老師在程式語言的部分,我認為大概只要教三個基本功夫
  1. 資料型態:程式就是處理的是資料,要先對資料類型有概念才有辦法Coding。
  2. 程式判斷:由時候資料要判斷一下,才繼續接下來的工作,這時候就用"判斷"的功能。
  3. 程式迴圈:很多重覆的事情,又電腦來做最恰當了,這就是"迴圈"的功能。
至於其他什麼function函數、OOP物件導向...等等,當學生寫了程式之後,自然會想要一些更簡單的方法,這時候再讓他去學著用就好了(人的慾望無窮,只要老師說用新方法加分PASS,你看學生不學嗎!)。

至於挑哪種程式語言來教,我認為其實都差不多,每種程式語言不外乎三個基本功,先練基本功最要緊。不過最好開發環境是Open Source,比較不會有版權的問題,其實學 JavaScript也是不錯的,瀏覽器就可以執行了,JAVA的話有NetBeans可以用,Microsoft的話也有Express版可以用。

還是哪位高手寫個Web版的IDE來用,打開瀏覽器就能練習寫程式,順便整合MSN之類的,方便學生討論,或是整合網路書店、軟體商,完成上中下游的產業鏈,相信這會是造福人類的偉大創舉!利用雲端運算嗎?這並非不無可能。

並非不無可能=>這是有沒有可能的句子啊!國文課老師曾提問的深奧議題。至今好像無解...

P.S.(postscript, abbreviated P.S.)延伸閱讀:程式與香雞排http://j2se.myweb.hinet.net/article/java/003.htm

熱門文章