Snowmantw's Blog

Understand Y F = F ( Y F ); loose last remaining non-major friend.

FWD: I Feel Sorry for Computer Science Departments

| Comments

這篇文章講述了作者 Mark Engelberg 覺得目前 (美國?) 的 CS 教育,遠不夠讓一個人從四年的大學教育去專精於 CS 領域。

重點摘錄:CS 教育應該要從大學以前就開始,因為四年遠不夠讓人專精於 CS 領域。尤其是大學以前的數學教育, 都強調於微積分相關的學習,這應該要被扭轉成教導離散數學為重心。另外也要提供學生及早開始接觸 programming 的機會。

Colleges have 4 years to try to instill some meaningful level of 
expertise in students, but that's simply not enough time.

這個問題對 CS 系所來講是嚴肅的抉擇問題:到底課程要專注在我們認為一個 CS 人應該有修為這個遠景上, 還是教學專注在職業會用到的技能上?

... do we focus on foundational skills and the big picture of 
what computer science is all about, or do we focus on technical training to 
try to produce graduates who have skills with immediate appeal to companies? 

作者還提到公司為何會對學校失望:他們希望雇用的是剛好可以勝任該職務技能的人。但因為這個目標無法達成, 所以它們轉找最「聰明」的人,也就是可以最快上手的人。但對 CS 這門學科而言,類似於學位這樣的指標也很難切合這樣的要求。 雖然畢業名校這點,對於它們想要尋找有天賦之人比較有幫助。

More often than not, the knowledge gained from a CS education is 
viewed by companies as being so insufficient as to be almost irrelevant – nevertheless, 
graduating from a well-known school can be seen as a kind of proxy for the kind of 
drive and innate smarts they really are looking for.

作者又講到其他系所應該也會有這類問題。但在這點上, CS 到底有何不同?作者認為最關鍵的一點在於 其他學科的知識多少從小學就開始接觸,但 CS 所要學習的卻缺席於大學以前的教育中。

How do other departments solve this problem? 

Well, many domains are able to leverage the significant number of years
that students have already invested in grade school in English, math, and science.

以數學為例,很不幸的是,作者認為 CS 最重要的是離散數學,但這卻與大學以前的教育方針相反。 作者還提到學習微積分其實與 CS 最迫切需要的數學是最無關的科目。而對大學以前的教育卻往往強調在微積分相關的學習上。

Calculus, the pinnacle of grade school math education as it is currently structured, 
is the least relevant type of math for computer scientists. 

Computer scientists need a strong background in Discrete Math and these topics are poorly 
covered in grade school, if at all.

同時在作者心中,即使在教育很好的地區,對於讓學生提早接觸 programming 的機會也是非常貧乏的

... most places probably have it much worse in terms of providing 
kids with early exposure to programming.

要解決這個問題,很明顯的,只有提供更長遠的解決方式。這包括延長大學的畢業年限,或是相反, 讓程式設計相關的課程提早深入大學以下的學制中。

Once the problem has been laid bare like this – four years provides insufficient 
preparation for a career in computer science – it is obvious that there are only 
a couple long-term solutions.

One possibility is to extend the duration of CS education, 
another possibility is to incorporate more CS topics and exposure to 
programming into the grade school curriculum.

作者也提到為何要迫切提高程式設計的專精度:他認為程式設計將是社會上很重要的一種基礎技能,提高整體程式水平將可以使社會受益

I think a strong case can be made that our society would benefit from more CS in grade school

並且在 TED 大會上,另一位人士也提到了提高離散數學的重要性

Arthur Benjamin makes the case in his TED talk that discrete math (logic, statistics, etc.) 
is far more relevant to most walks of life than, say, calculus.

不過作者最後講了,即使我們都做到了這點,另一個更難的問題:尋找更多夠格的老師,要怎樣解決?

... how do you go about finding and recruiting qualified teachers? 

我想對於老是喊著資訊國力之類的政府,應該要抉擇:軟體產業需要更多的投入與堅持。 也許我們應該減少專注於,或說實在一點是排擠於大學、高中課程中非程式軟體相關的科目。 除非我們學制也要開始建構真正的技術類學習,分於普通學習之途。

然而更重要的應該是並認清硬體方式的生產有其極限, 而軟體產業可能是未來一大重點。然而軟體產業絕非如硬體那樣砸錢砸人數,以及其他資本就可以搞定。 畢竟大規模的「擴產」對軟體而言可能反是阻力。加上軟體的開發牽涉到台灣企業與政府最缺乏的耐心與人本思維, 要成熟可能是忍受虧損或無收入一段長時間後才能看到成果。 且對軟體設計者不能像硬體那樣靠著工業製造甚至軍隊的管理方式對待。

這些種種可能都是習慣於生產製造思維的政府與工業會被迫殘酷的轉型,或是殘酷的死亡之絆腳石。

Comments