" Python First " Programming Learning

就在 Java 成為 C/C++ 之外主流 Programming 課程使用語言沒幾年後, 對於 Java 適用性的討論也逐漸開始, 主要以興起的 Scripting Languages 為挑戰對象, 其中又以 Python [1][2] 以及 Ruby [3][4] 為多.

大部分的 Papers 是以 Languages 的特性去論述改為使用 Scripting Languages 的優點, 以及目前使用 Java 對於學生太過複雜等. 不過通常這些特性與實際學習上的影響之間, 有甚麼樣的連結很難說清楚, 而透過問卷對於學生的調查, 通常又受限於問題內容的表達方式, 使得調查結果是否能反應特定的問題有所疑慮.

相較之下我就喜歡 [1] 的說明方式, 利用範例程式碼本身的資訊來比較. 例如一個簡單的 Java Hello World 程式碼其實就暗藏了相當多的 Programming Concepts ( 以下所有圖片取用自 [1] ),


相對來說 Python 的程式碼就比較不具有學生不容易在短時間內理解的資訊 ( 可惜 Paper 沒有直接用一模一樣的程式碼來比 ),


這是很具體的比較, 就我之前當 T.A. 的教學經驗, 其實學生最困擾問題之一是, 在沒有面對任何 Programming Languages 經驗的情況下, 一下子就要弄清楚一段程式碼文字, 裡面一堆不認識的詞彙. 想像如果我們在學英文時是被要求直接看一段英文段落來學, 即便已經知道單字了, 也會是很痛苦吧.

另外在 [1] 中, 也利用一小段落說明 Java 比較適合作為 Second Programming Language to Learning. 基本上我同意這樣的意見, 但是目前似乎在 Python 到 Java, 或是 Ruby 到 Java 之間, 沒有為 Novice Programmer 去探討在 Syntax 以及 Semantics 之間的銜接, 以降低兩個階段之間轉移的 Learning Curve, 同時讓 Student 知道學習不同的 Programming Languages 之間, 可被轉移 (Transferable) 的學習經驗.


References

[1] A. Radenski, " Python First : A Lab-Based Digital Introduction to Computer Science," Proceedings of the 11th Annual SIGCSE Cconference on Innovation and Technology in Computer Science Education, pp.197-201, 2006

[2] Linda Grandell, Mia Peltomäki, Ralph-Johan Back and Tapio Salakoski, "Why Complicate Things?: Introducing Programming in High School using Python," Proceedings of the 8th Australian Conference on Computing Education, pp.71-80, 2006

[3] Robert J. Sheehan, "Teaching Operating Systems with Ruby," Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, pp.38-42, 2007

[4] A. Ortiz, "Language Design and Implementation using Ruby and the Interpreter Pattern," Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education, pp.48-52, 2008

0 意見:

Designed by Posicionamiento Web | Modified by seLain | Bloggerized by GosuBlogger | Blue Business Blogger