顯示具有 程式設計 標籤的文章。 顯示所有文章
顯示具有 程式設計 標籤的文章。 顯示所有文章

2018/07/28

人人寫程式是為補習班鋪路嗎?

教育部說 5 年內半數大學生需修過程式設計,想當然又引發不少爭論,很多人覺得文組學程式幹嘛啊?該不會是要為補習班鋪路吧?屆時滿街都是程式設計補習班,一堆在學校要被當掉的人趕快到補習班惡補以求期末不要被當。

是不是要為補習班鋪路我們暫且不論,但寫程式能夠大幅減少重覆的人工,其實是值得所有人學習的。以現在來說,學個 python 寫爬蟲抓資料應該是每個科系都用的到的技能,老貓在《文科生需要會寫程式嗎?》這篇文章裡也提到中文系的學生學會程式後,更容易去古文典籍裡面撈資料,所以我覺得讓所有人學寫程式是一個不錯的方向。

Coding 程式設計 圖、Coding 程式設計

但要怎麼對文組學生教程式設計呢?非資工科系的學生需要的應該是像《氣餒止步!該怎樣教文組的人寫程式?》這篇文章裡面提到以實務為主的程式教學。但是說真的,師資很難找,因為那是許多新聞界先行者嘗試許久之後才發現的實用路徑。

現在台灣有太多科系自己還不知道需要什麼樣的程式教育,祇能請外系教授從 Hello World 開始教,但這樣的教學方式讓學生完全不知道學完程式語言能做什麼?要怎麼應用在工作上?

在教程式語言之前,各科系可能要統計一下系友畢業後的出路,他們有哪些會耗費大量人工的工作是可以利用程式來取代的,再回推回來看看大學時期需要教什麼程式設計。

這些需求可能各個科系不同,但這才會是對文組學生真正有幫助的方式。

2017/11/29

取 n 個亂數,總和為 100

現在在中興大學資工系修資訊第二專長,這學期資料結構的課程有個作業是要產生 5~10 個亂數來畫一個霍夫曼樹 (嗯,霍夫曼樹是什麼還是上網查才知道的,反正不是今天的重點),不過作業有個附加條件,就是這 5~10 個亂數的總和要為 100。

我還在頭痛這種亂數要怎麼得到咧?幾個同修第二專長的數學老師提出不同的方法來取總和 100 的亂數了。這還滿有趣的,光是取亂數就有這麼多種解法。

我怕以後忘了,所以把這些數學老師提出的方法記錄下來,也許以後用得到。為了方便說明,底下都以『取 5 個亂數,總和為 100』為例,比較統一,比較好說明。

水桶法

陳志峰老師提出一個方法,我把它稱為水桶法。先準備 5 個水桶,準備來取亂數。

準備 5 個水桶
圖、準備 5 個水桶

丟 5 面的骰子 10 次 (其實就是產生 1~5 的亂數,連續做 10 次)。

丟 5 面的骰子 10 次
圖、丟 5 面的骰子 10 次

骰子丟出 1,就在 1 號水桶上畫一筆做記號,丟出 2,就在 2 號水桶上畫一筆做記號,依此類推。

將骰子出現的點數分類計次
圖、將骰子出現的點數分類計次