德國東部薩克森—安哈爾特州(Sachsen-Anhalt)首府 Magdeburg 星期五晚發生相信是襲擊的事件,一輛汽車撞向聖誕市集的人群。
(愛沙尼亞小學程式編寫課的情況;BBC影片)
歐盟數碼事務專員克魯絲(Neelie Kroes)和教育專員雅絲里奧(Androulla Vassiliou)在7月25日致函28個成員國的教育部長,呼籲提高青年的科技教育工作,她們其中特別提及的技能是程式編寫(coding--我沒譯錯吧?),建議各國在中小學課程設立程式語言課。
網主看到這個建議,不禁問:難道在21世紀,不懂程式語言(如我),已是新文盲?不過,聽過不少朋友的兒女,一、兩歲已可以自己用平板電腦瀏覽資料及玩遊戲,又覺得:幾歲學程式編寫,有何奇怪?
克魯絲和雅絲里奧在信中指出,歐盟ICT業(資訊通訊科技)在2020年前將缺少90萬名專業人員,但歐洲每年電腦科學畢業生的數目一直停滯不前。她們又說,學習程式編寫,不只有助學生在數學、科學、科技及工程的學習,亦有助培養分析思考能力、解決問題能力、團隊合作(網主註:此點我有一些懷疑)和創意,而早點有機會接觸,小朋友日後便有更大可能會選擇這職業。
歐洲沒有很多人在大學讀電腦相關學生,網主覺得有點奇怪,因為至少在香港,我所知的情況是,電腦技術人才已不少,最缺乏的是90年代中至90年代末時,但在21世紀初,由於有大量人學電腦科,因此吃香程度已遠不能跟90年代相比。當然,鼓勵年青人學電腦,都是好事,因為既可提高經濟競爭力,又可解決青年失業問題。
我不知香港目前中小學基礎教育的課程如何,但小學生要學程式編寫,確實十分新奇。不過,這即使不是很流行,但已非新意念。
波羅的海國家愛沙尼亞在2012年已向中小學全面引入必修程式編寫課程,相信是全球首個這樣做的國家。愛沙尼亞在IT上相信是全球走得最前的國家,90年代立國後不久便全力推進IT發展,人口只有大概140萬,是該國可較易把IT應用普及科的原因之一。
英國(英格蘭)在9月開始的學年亦全面引入必修程式編寫課程,5歲開始學習程式語言的基本要素,11歲開始學習至少2種程式語言。芬蘭則會在2016年引入,不會獨立成科,但會在中小學課程中不同科目(例如數學)融入程式編寫的元素。法國會把程式編寫列為小學選修科,意大利亦考慮引入。
除了歐洲,美國也有這方面討論(尤其是矽谷所在的加州),新加坡亦開始考慮這樣做,資訊通訊發展局(IDA)已開始跟教育部討論如何修改課程。
大家或者會問:小朋友學編寫程式,目的為何?事實上,編寫開放程Linux的芬蘭程式編寫家Linus Torvalds今年6月接受傳媒訪問時說過,不認為所有人都要學習這技能,程式編寫遠不如寫字計數般重要。
鼓勵程式編寫課程的人則認為,課程只是讓小孩在很小的時候便接觸,正如所有中小學都有音樂課,也不代表期望所有人日後都是音樂家,即使小孩長大後不從事電腦相關工作,但現在是數碼年代,很多東西都涉及電腦、網站、手機程式,懂得這些東西運作背後的基本邏輯,也是一個「數碼公民」的基本知識。
另外,所謂程式編寫教育,不只涉及編寫電腦軟件或手機程式,製作機械人都是這類教育的一部份。
這類課程或涉及「男女平等」考慮。在目前中小學,程式編寫不普遍下,長大會投身IT世界的,大部份都是男生(更貼切的形容是「宅男」!),但如果幾歲就開始接觸,女生也不會那麼抗拒程式編寫,日後便可能多一些女性IT人。女程式編寫員Linda Liukas寫了名為Hello Ruby的兒童書,向兒童講述程式編寫,便是為了這目標。
要推行程式編寫、或電腦教學,也有不少困難,其中一個難處是老師訓練,因為這仍是新興科目,老師即使懂程式編寫,也未必懂如何教。不過,現在多了網上資源,要訓練老師也相對較易,其中最著名的應是美國、有微軟Bill Gates、Facebook創辦人Mark Zuckerberg開腔支持的code.org。
另一個問題是課程安排,因為每週用一節課教程式編寫,便等於要有科目少一節課教授。而且,目前程式語言不是大學入學要求,十分功利的考慮下,學生、尤其高中科未必願意花時間學習。
最後就是資源問題。香港的教育資源已算充裕,外國很多國家其實教育資源很緊絀,要做得每間、或至少大部份包括公立學校在內的學校都有一定電腦等設備,以配合課程,不是易事,涉及龐大預算。另外,無論是如何富裕的國家,總會有家庭是不能支付上網費,如何協助這些學生,是另一個難題。
延伸閱讀:
BBC有關英國引入程式編寫課程面對的挑戰
BBC有關愛沙尼亞引入程式編寫課程面對的報導(影片)
《紐約時報》2014年3月有關全球程式編寫教育的文章
芬蘭有關介紹基本程式語言的指南(well,只有芬蘭話)
歐盟數碼事務專員克魯絲(Neelie Kroes)和教育專員雅絲里奧(Androulla Vassiliou)在7月25日致函28個成員國的教育部長,呼籲提高青年的科技教育工作,她們其中特別提及的技能是程式編寫(coding--我沒譯錯吧?),建議各國在中小學課程設立程式語言課。
網主看到這個建議,不禁問:難道在21世紀,不懂程式語言(如我),已是新文盲?不過,聽過不少朋友的兒女,一、兩歲已可以自己用平板電腦瀏覽資料及玩遊戲,又覺得:幾歲學程式編寫,有何奇怪?
克魯絲和雅絲里奧在信中指出,歐盟ICT業(資訊通訊科技)在2020年前將缺少90萬名專業人員,但歐洲每年電腦科學畢業生的數目一直停滯不前。她們又說,學習程式編寫,不只有助學生在數學、科學、科技及工程的學習,亦有助培養分析思考能力、解決問題能力、團隊合作(網主註:此點我有一些懷疑)和創意,而早點有機會接觸,小朋友日後便有更大可能會選擇這職業。
歐洲沒有很多人在大學讀電腦相關學生,網主覺得有點奇怪,因為至少在香港,我所知的情況是,電腦技術人才已不少,最缺乏的是90年代中至90年代末時,但在21世紀初,由於有大量人學電腦科,因此吃香程度已遠不能跟90年代相比。當然,鼓勵年青人學電腦,都是好事,因為既可提高經濟競爭力,又可解決青年失業問題。
我不知香港目前中小學基礎教育的課程如何,但小學生要學程式編寫,確實十分新奇。不過,這即使不是很流行,但已非新意念。
波羅的海國家愛沙尼亞在2012年已向中小學全面引入必修程式編寫課程,相信是全球首個這樣做的國家。愛沙尼亞在IT上相信是全球走得最前的國家,90年代立國後不久便全力推進IT發展,人口只有大概140萬,是該國可較易把IT應用普及科的原因之一。
英國(英格蘭)在9月開始的學年亦全面引入必修程式編寫課程,5歲開始學習程式語言的基本要素,11歲開始學習至少2種程式語言。芬蘭則會在2016年引入,不會獨立成科,但會在中小學課程中不同科目(例如數學)融入程式編寫的元素。法國會把程式編寫列為小學選修科,意大利亦考慮引入。
除了歐洲,美國也有這方面討論(尤其是矽谷所在的加州),新加坡亦開始考慮這樣做,資訊通訊發展局(IDA)已開始跟教育部討論如何修改課程。
大家或者會問:小朋友學編寫程式,目的為何?事實上,編寫開放程Linux的芬蘭程式編寫家Linus Torvalds今年6月接受傳媒訪問時說過,不認為所有人都要學習這技能,程式編寫遠不如寫字計數般重要。
鼓勵程式編寫課程的人則認為,課程只是讓小孩在很小的時候便接觸,正如所有中小學都有音樂課,也不代表期望所有人日後都是音樂家,即使小孩長大後不從事電腦相關工作,但現在是數碼年代,很多東西都涉及電腦、網站、手機程式,懂得這些東西運作背後的基本邏輯,也是一個「數碼公民」的基本知識。
另外,所謂程式編寫教育,不只涉及編寫電腦軟件或手機程式,製作機械人都是這類教育的一部份。
這類課程或涉及「男女平等」考慮。在目前中小學,程式編寫不普遍下,長大會投身IT世界的,大部份都是男生(更貼切的形容是「宅男」!),但如果幾歲就開始接觸,女生也不會那麼抗拒程式編寫,日後便可能多一些女性IT人。女程式編寫員Linda Liukas寫了名為Hello Ruby的兒童書,向兒童講述程式編寫,便是為了這目標。
要推行程式編寫、或電腦教學,也有不少困難,其中一個難處是老師訓練,因為這仍是新興科目,老師即使懂程式編寫,也未必懂如何教。不過,現在多了網上資源,要訓練老師也相對較易,其中最著名的應是美國、有微軟Bill Gates、Facebook創辦人Mark Zuckerberg開腔支持的code.org。
另一個問題是課程安排,因為每週用一節課教程式編寫,便等於要有科目少一節課教授。而且,目前程式語言不是大學入學要求,十分功利的考慮下,學生、尤其高中科未必願意花時間學習。
最後就是資源問題。香港的教育資源已算充裕,外國很多國家其實教育資源很緊絀,要做得每間、或至少大部份包括公立學校在內的學校都有一定電腦等設備,以配合課程,不是易事,涉及龐大預算。另外,無論是如何富裕的國家,總會有家庭是不能支付上網費,如何協助這些學生,是另一個難題。
延伸閱讀:
BBC有關英國引入程式編寫課程面對的挑戰
BBC有關愛沙尼亞引入程式編寫課程面對的報導(影片)
《紐約時報》2014年3月有關全球程式編寫教育的文章
芬蘭有關介紹基本程式語言的指南(well,只有芬蘭話)
Coding 在計算機科學 (內地有時也叫做信息科學) 和軟件工程中基本上有兩個意思:
回覆刪除1. 編程,即 programming。 這個意思用得比較廣泛。
2. 編碼學。 這門學問研究怎樣對信息進行編碼,以使得機器能夠對其進行處理。 她屬於 Information Theory 的範疇。 其中非常重要的一個概念信息熵, 我有在這個網誌的某篇討論自然語言的文章後面,留言提到過。
本文開頭提到的那麼文件裡提到的 coding, 應該是第一個意思, 網主沒有譯錯。
我在大學裡最初念的專業是 Kerninformatik, 即理論計算機科學。 畢業以後本職一直做軟件工程。 讀書加工作, 在這個領域混了大概有十多年。 對於這個問題: 不懂程式語言, 21世紀文盲? 我的答案為,完全不是。 鼓勵學生自幼就學習編程固然是好事, 但是我覺得也沒有必要把編程作為獨立的一門課讓中小學生來必修。
個人感覺,教育中小學生,最關鍵在於培養他們的(自我)學習能力, 保持他們對這個世界的好奇心, 和激發他們對某些學問的興趣。 就理工方面的基礎來說, 數學和科學遠比會兩門編程語言重要得多。 數學是最鍛煉思維能力的學科, 數學上學得紮實深遠, 再學習編程語言是比較輕而易舉的事, 上手應該很快的, 似乎沒必要在稚嫩的年紀作為必修課去學。 其實, 現代的數學教學, 很多時候已經離不開電腦軟件的配合。 尤其是要處理海量數據的統計概率什麼的, 不用電腦編寫程序真的難以想像。 而這些作為工具的編程,可以滲透在數學和科學課上教授 (Octave 或者 R), 這樣其實也就保證了每個學生多多少少會點 scripting。 除此之外, 人各有天分志趣不同, 我覺得還是尊重小孩自身的天分志趣, 讓他自己選擇科目, 幫他/她在那些方面打些基礎, 教他/她在那個領域怎樣自己學習深造, 比較好。 任何科目,文學,音樂,美術,政治,或者計算機科學,等等等等,都有她內在的價值,學紮實了都可以實現個人自我價值兼服務社會。 如果對某個科目或者手藝, 比如編程, 如果真的沒有興趣, 不必勉強的。
數學上除了基本的運算, 更關鍵是要教授小孩子數學建模的思想, 可以在中小學就開始教。 Model Thinking 可以作為必修課來教, 編程就不要必修吧。 今天教的編程語言說不定兩年後就過時了。
其實就算在計算機科學裡, 我現在覺得最重要的還是我讀書時學得比較吃力的數據結構和算法設計, 而並非某門編程語言。 Linus Torvalds 是大 geek, 很大一個原因是他的數據結構和算法設計十分紮實。 6 天時間他就可以從無到有發布現在風行全球的 Git, 不是對算法效率有深刻認識不可能做到的, 隨便你用什麼編程語言。 他首先是個數學家,然後才是編程熟練工。 Google 那兩位創始人就更是這樣, 他們最初都是數學家/科學家。 在這方面走得夠遠時, 看這世上的許多紛紛擾擾就比較清晰有方向, 知道 possiblility 在哪裡, 也知道 limit 在哪裡。 所以這些人做的很多事情我就覺得特別特別明智。 那些 geek 宅男通常並不高調, 不會常常自己出來喊口號(但是一定要有人幫他們出來喊, 否則也成不了氣候。 所以說擅長喊口號的文科生也是有很大價值), 但卻是 (或者說, 將會是) 改變世界的最大力量。
另外,就算是編程,也有兩個基本的大方向。 一個是寫 infrastructure 的, 即 compiler 編譯器解釋器等等東西, 另一個是更為 high level 一點的 application development。 後一種的門檻相對較低, 像我這種, 學計算機只是為了好找工作掙錢養家的偽 geek 一般可以勝任。 而前一種, 則十分考驗程序師的數學功力, 沒有真興趣真功夫一般做不來。
現在, 在編程上有個趨勢: 底層的算法越來越複雜, 但是表層 API (應用程序接口), 或者說人機界面, 越來越平易近人。 未來的應用程序編程語言將會很容易學, 且會有越來越多 Domain Specific Languages (就是貼近某個領域自然語言/專業講話方式的編程語言)。 所以說, 到現在也不識 “編程” 的同學大可不必緊張。 真的有心要學什麼,上手應該會快的。 其實你們現在使用專業的軟件,比如 DTP 軟件, graphic processing 軟件, 音樂製作軟件, 財務報告/分析軟件, 等等, 已經是無時無刻不在編程。 文盲? 沒有的事。
這個留言已經長到令人作嘔,可是想說的講了還不到十分之一。 太晚了算了吧,就說這些。 給喜歡玩電腦的小朋友介紹一個網站, 祝你們玩得開心:
http://scratch.mit.edu/
我自己以前寫過的幾篇相關文章:
關於中小學教育:
http://horizongermany.blogspot.com/2013/12/blog-post_31.html
2014 Google IO Keynote 概述:
http://horizongermany.blogspot.com/2014/06/google-io-2014-keynote.html
贏者通吃的人工智能經濟時代:
http://horizongermany.blogspot.com/2014/07/blog-post_14.html
關於coding--如果看看BBC對愛沙尼亞的訪問片段,小朋友是在做機械人,所以「教coding」應該不只是寫程式。而我不太清楚coding和programming的分別,所以寫po時有點猶豫
刪除另外,在香港,至少是我十多年前讀書的年代,我的大學朋友是有「計算機工程系」和「信息工程系」之分,不知兩者有何分別? 又或者,兩者可能已合併,聽聞有關電腦學科的學系不斷整合
正如你所說,在中小學教編程最大問題是很易過時,畢竟編訂課程要經過很繁瑣的官僚程序,有了決定,大家同意教什麼,那些程式可能已過時。我中學時也有學過兩年電腦程式,我一些較熟悉電腦的同學都說所學的程式其實已很過時
片中那些小機器人也是需要通過程序來控制行動的。我好像有在片中看到控制器是 host 在 Raspberry Pi (一種計算機, 大概只有半個 Nexus 5 那麼大小,售價大約每台 25 歐元。操作系統是 Linux, 極度適合用來作為各種家電的控制器) 上面。小朋友們如果想要機器人作出某些動作,是要自己編程實現的哦。
刪除Coding 和 programming 基本可以通用。我想得到的區別是,programming 還可以用在算法設計的階段。比如,你遇到一個具體問題, 用鉛筆在紙上寫下大致的解題步驟或者流程, 然後每一步可以用一些數學式子再具體細化。你這些算法設想, 行話叫做 pseudo code。 寫 pseudo code 的階段宜用 programming 這個字。 pseudo code 寫出來以後, 要用某種具體的編程語言讓計算機去運算,這個階段叫做 coding。 一般非業內人士不會計較那麼多的啦。所以你可以通用,沒有問題。
這兩個系的分別要看具體科目設置。以下只是我的猜想: 計算機工程系,可能會偏重於把計算機本身作為一個研究對象。她內部的結構,她的模塊之間怎樣進行通訊,協同工作, 等等等等。 而且這個系還會教授 Software Engineering, Computability/Computational Complexity
Theory 一類的課程。 而信息工程系,則可能是更多把信息的組織和處理作為研究對象。 比如電子信號與系統,信息理論與編碼學,電磁理論,集成電路,自動控制, 等等。 我的大學裡, 沒有信息工程系,但是有電子工程系(Electrical Engineering), 估計應該是差不多的。 是的,計算機系和電子工程系各個科目的拆拆合合頻繁發生,誰叫這些領域的發展那麼快呢。
不要擔心你學過的編程語言過時了 (過時了就過時了, 無所謂的)。 許多易學易用的 DSL (domain specific language, 即面向某行業的專用編程語言) 正在誕生或者成熟。 將來要是真的必須編程, 再去學個 DSL 應該會比十幾年前一般中學課程裡的 C/C++ 或者 Basic 什麼的更為 make sense。
我曾在中學教授電腦科20年,亦曾任考試局及課程發展局電腦科的主席,參與討論及設計中學電腦科課程,因此對程式設計課程亦略有認識。
刪除程式設計並不是所有人都要掌握的能力,對數理科同學來說,程式設計是很好的解難訓練工具,但是相對其他同學,程式設計並不容易,他們只要懂得使用某些軟件來解決本科的問題已經可以了,例如說美術科同學與其學程式編寫,不如學習用PHOTOSHOP等軟件來編輯圖片。因此20多年前,中學電腦科的課程是以程式設計為主,然而,隨著電腦的應用愈來愈廣,程式設計的比重近十多年來已不斷降低,而教授電腦的應用愈見增加。
但是,之前提及程式設計很適合理科同學學習,減低程式設計的比重豈不是對他們不利。有見及此,十多年前開始電腦科是以組合的型式來設計,同學可根據性向選修不同模組,例如有程式設計及網頁編寫等模組以供同學選修。
另外究竟幾時適宜學程式設計呢?據我的觀察,學生太早走入去程式設計的世界,不是好事,特別是這方便很有天份的同學,對他們來說,與電腦溝通很容易,程式設計會帶給他們很大的滿足感及成功感,相對來說真實世界一點也不吸引,充滿挫折,此消彼長下,他們一旦走進了電腦的世界會沉迷其中,無法自插,我會建議他們應多參與群體活動,學習與人相處的技巧,所以我主張在初中後期才學習程式編寫。
多謝主席大人參與討論!
刪除正是因為當今電腦應用無處不在,所以我上面主張在各個學科里滲透教學那個領域裡的 DSL(Domain Specific Language),而不必把某種 general purpose 的電腦語言比如 C,Java,JavaScript 之類的作為必修。GIMP (即 Photoshop 的開源版),InkScape(Illustrator 的開源版),LilyPond 等等軟件其實是不是可以看作美術,音樂等領域裡的 DSL.....
對於在數學或者信息學方面十分有天分的小孩,我倒是覺得可以早點培養。 首先,他就算從小十分十分喜歡編程,也不可能全天 24 小時對牢電腦,家長老師一定有機會有時間給他灌輸與人相處的能力。其次,其實數理方面有真正天分的人比較少見,一旦發現,不可埋沒了他的才華,初中後期才學習編程似乎好像遲了點。那樣的小孩一般來說做事比較專注,從某種角度看也是一種可貴天分。既然他天生就是比較專注比較宅,也不必常常試圖將他往人群裡趕。心一旦野掉,再收回來比較難。 還是盡可能保護一下他的單純和專注,創造條件讓他在電腦裡的世界裡有所發展。不必要求每個人都能在社會中八面玲瓏,就好像不必要求每個人都能用 C 語言熟練編寫 compiler。我自己老公就是一個超級宅男,一把年紀了心性還是跟小孩一樣,我覺得十分可愛,哈哈。
至於說,向那些樂意學編程的中小學生教教什麼語言? 我覺得,中小學生一開始,還是教點毋須考慮到內存管理或者 function pointer 之類的語言比較好。C/C++ 對小孩子來說好像太複雜了點。面向對象的編程思想比較容易領會,functional 的編程 style 也可以教一點。現在市面上比較流行的語言,個人覺得 Dart,Scala 和 Python 作為教學語言來說比較有代表性(我是指 Object Oriented 和 functional 的編程思想比較容易用這幾種語言來演示),對培養小孩子的 “碼感” 比較有好處。 而且學會了可以立刻寫 Cloud 應用程序,比較實用(Angular 據說已經有 Dart 的版本了)。
另外我覺得數學課科學課上教點編程可以幫助小朋友理解一些比較複雜的算法。 有些算法, 迭代遞歸什麼的, 光讀數學表達式可能會令小孩覺得比較抽象難以理解。 而通過編程,將每一步的結果列表觀察,很多東西就能恍然大悟。 我自己就是靠這樣學懂一些算法。
刪除最後請大家欣賞一個舞蹈, Shell sort with Hungarian folk dance:
http://youtu.be/CmPA7zE8mx0
http://en.wikipedia.org/wiki/Shellsort
感謝留言
刪除不妨說說自己的背景: 中學時讀文科(當年香港的中學一到中學四年級便要選擇讀文科/理科/商科), 但有修讀Computer Studies(根據主席所說,應該有Computer Application這一科吧? 我也不記得當時情況), 當時是學習Pascal的. 雖然讀文科, 但我對算術邏輯也很有興趣, 什麼A+B二次方=C等等, 也很喜歡.
確實,如何安排課程, 除了孩子日後長大後的技能掌握, 也要考慮心理發展,成長階段等等因素, 十分複雜, 而不只是純粹硬塞一些技巧
補充一點: 在我讀中學的年代, 電腦還不是"必須品"(當然,某程度現在也不是...), 交功課不一定要用word打字, 也沒有那麼多什麼繪圖等應用程式, 因此印象中還未流行教電腦"應用", 倒是上了大學, 就用課程教大家如何用word (!!)
刪除桑纹锦2014年8月12日 上午7:54
刪除相對 C 家族的語言,Pascal 是一種比較 “小” 的語言,也就是說,語匯 feature 不太多,確實比較適合初學者學習。 我大學時學 Information Theory and Coding 時,講課的教授給我們看他自己當學生時寫的 Reed Solomon Code decoder,問我們有沒有興趣仿照著自己寫個解碼器。 我就要了他寫的源碼來讀,他的 decoder 就是用 Pascal 寫的,十分好懂。 這個語言好像在科學界至今也頗流行。
你那個 A+B二次方=C 不是正常代碼寫法哦。 程序代碼一般是這樣寫的: C = A+B二次方。 然後下面再調用那個變量 C。 主席大人看到會很傷心的。。。。。
我倒覺得大學裡確實可以教一點 type setting 的技能,畢竟不管學生將來做哪一行,用電腦寫文檔總少不了的。 版面簡單點的文檔,比如討債信辭職信什麼的,word 一類的軟件完全可以應付,也不必在大學課堂上教。 但是, 版面複雜點的科學論文什麼的(有很多圖片,表格,算法,代碼, 腳註, 索引。。。。), 用 word 簡直就是自虐。 我大學裡寫論文的時候一開始用 word, 快要被折磨得死掉了, 就發心自學了 latex, 感覺到了天堂一樣。 先不說別的,用 latex 做出來的文檔,視覺上就比 word 做出來的美觀許多, 沒法比的。 個人覺得,大學生人人應該學 latex。 Latex 倒是應該在課堂上教。 話說,latex 的作者 Donald E. Knuth 是世界著名算法專家,得過圖林獎的。 Tex 軟件就是 Knuth 用 Pascal 家族的一個語言寫的。
琮2014年8月13日 上午4:08
刪除最近整天和人戰 LaTeX 呢XD
以一個漢字使用者來說,我覺得用 "\alpha" 儲存表示 “α” 而不是用 Unicode 儲存,就像是用 \cong 或 \tsung 儲存表示 我的名字 "琮" 一樣,是無法讓我開心接受的。
對我來說 "\alpha" 就是一個字串 "\alpha" , "α" 就是一個字元 "α",只要LaTeX還繼續把這兩個不相干的東西連在一起,我覺得我就沒辦法喜歡 LaTeX...
琮2014年8月13日 上午4:14
對了...
如果你是唸資訊科學的話...不知道你有沒有聽過dynamic scoping...
一種不太好的程式語言特性...
但很不幸的,計算機科學界大家愛用的 LaTeX 就是 dynamic scoping...
@琮:
刪除為了免得又給 blogspot 關進小黑屋, 你上面的兩個留言我答在這裡:
http://horizongermany.blogspot.de/2014/08/blog-post.html
如果你是學習Pascal的,那麼你應是96年或之後考會考的,我也有不少學生是文科背景。以往中四五是修讀Computer Studies,而Computer Applications是供中六學生選修的AS科目,另外亦有AL的Computer Studies,但只有很少學校開設。
回覆刪除在新高中學制下,以上三科已結合為一科,並提供不同模組讓同學選修,然而在新高中課程,學生可以修讀的科目減少至六至七科,選修只有二至三科,因此修讀電腦科的同學亦大為減少,十分可惜!
此外,甚麼編程語言適合中學生呢?我們當中討論過不少次,簡單來說,其實不須要趕時髦,只要培養同學正確的編程習慣就可以了,而當時出席的大學教授也指出,Pascal是很適合用作學習電腦編程。
SK
桑纹锦2014年8月12日 上午8:50
刪除不妨跟主席大人匯報下。 我是八零後內地人。 高中一年級開始就有編程課, 高二結束時的會考裡也是要考編程的。 編程課教的是 Q Basic。 除了必上的編程課,還有課餘的電腦興趣班什麼的,教的是 C, 我有去聽過一兩回,沒能堅持。 我們那時高三,也就是高中最後一年才分的文理科,也就是說,編程課是所有學生文理分班前必學的科目。 高三就沒有編程課了, 因為大家都要應付高考。 Q Basic 也是一種很小的語言。 當時並不覺得難學。 我上面提到的 Scala, Dart, Python 什麼的,他們的有些語法語匯比較適合演示或者實現一些典型的編程思想,所以我覺得比較好,倒不是純為了趕時髦。 話說,個人覺得在編程語言上趕點時髦也不是壞事。 用 Dart 很快就可以寫個解決日常生活中實際問題的小工具什麼的放到 Google App Engine 上去,馬上就可以給好多人用,這樣學生好有成就感,可以激發繼續學習的熱情的。
我老公也是計算機專業出身,研究領域是 computer vision (pattern recognition, video automatic segmentation 等等)。 博士加博士後一共做了 8 年,算法和編程都極紮實。 做博士生博士後時得過若干高等級國際學術會議裡的 best paper award。 他編程幾乎只用 C/C++, 因為他那些複雜之極的算法,確實需要比較高的執行效率. 最近他手上的項目之一有 H.265 decoder 和 encoder,已經在 github 上發布。 他十歲之前,在 HP 85 之類的電腦上, 也是用 Basic 編程的。 那時他英文都還不認識,但是編程雜誌上那些 go to 之類的語句全都自己琢磨懂了。 所以我覺得,如果是有天分的小孩,不妨早點創造條件,讓他多多編程。 小學裡就可以開始了。
匿名2014年8月13日 下午9:00
回覆刪除叫我SK就可以了,現在我已不是甚麼主席,只是一個不在其位,遠走英國的普通百姓。
很多謝你給我介紹一下內地的電腦教育情況,根據你所說,國內很注重編程,並期望所有學生均對編程有所涉獵,這是正確方向,我覺得以華人的高超數學能力,可以很容易掌握好編程技巧,只要有1-2%的學生有興趣從事這方面的工作,就足以發展中國的軟件工業了。
在香港工作時,我也嘗試走這方向,然而在制定全港的課程時,限制很大,因為普遍學校並不注重電腦科,提供的資源例如堂節有限。我很幸運,因為學校給予很大的自由度及空間,讓我可以規劃這一科的課程。
經過不停的試驗及修正後,我認為較理想的做法是初中首兩年學習電腦的不同應用,第三年方學習電腦編程,一方面讓所有學生對程式背後的操作原理有所認識,另一方面是測試他們的性向,是否將來適合修讀程式編寫。
至於修讀的電腦語言,我也覺得Q Basic易學易用,但與PASCAL等較舊的語言也面對同一困境,就是在視窗的環境下應用性不高,所以如果一些較新的語言如DART等可以很容易寫個小工具並放到 Google App Engine,這的確是很好用,但是這亦讓我想起支援及相容性等問題。
基於商業考慮,軟件商很慣常的更新軟件,而不同版本的軟件往往並不兼容,間接使一些程式失效,所以選用某一語言時,也要考慮該語言的壽命及通行性。
SK
非常抱歉,無意中刪了一些留言
回覆刪除我知道有人留了言但被Google列為垃圾留言而不能顯示,當中有人可能重覆留言,因此我在清除垃圾留言,但不小心刪了真的留言,但幸好可「救回」,找回那些留言,把相關網友的名字、留言時間及內容再po一次
Opinion updated: http://horizongermany.blogspot.com/2016/03/blog-post.html
回覆刪除