TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
 群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
作为教育家、研究者及书籍作者,我很高兴看到这本书的完成。Python 是个有趣并且非, u+ p9 N" e7 H3 \) K7 q
常易用的程序语言,在过去几年里,Python 逐渐地受到欢迎。Guido van Rossum 在十多年前
h T: t+ v! d; N开发了 Python,其简单的语法与整体感觉则是得自于 ABC,这个 1980 年代发展的教学语
3 O+ C3 q ?2 |+ l( n6 ~4 ~- q言。然而,Python 也被设计成可以解决真实的问题,并且也从其它程序语言如C++、Java、
+ j. m0 w" b5 z1 f& L' L+ KModula-3 和 Scheme 等,借用了各式各样的特征。正因如此,Python 最显而易见的特色之
& D' R; g! j, A; p' }一就是它广泛吸引了专业软件开发者、科学工作者、研究者、艺术家及教育家。$ @* B1 {# W1 G- V S3 s
虽然 Python 吸引了不同社群的人士,你可能还是会怀疑为何选用 Python?,或者为
! a/ S/ y0 c0 j; E0 L甚么教导用 Python 撰写程序? 回答这些问题可不简单---特别是当大众的意见都站在,如8 g: B0 p' y9 X" K+ e" Y& K
C++ 和 Java 这些自讨苦吃的选择这一边的时候。然而,我想最直接的答案就是用 Python 写2 f' _+ P; U0 I: O# ]
程序可以单纯地得到许多乐趣,并且更有生产力。
6 L8 a# r) E$ Y7 r/ m2 k. i! c0 \: M$ m* u当我教授计算机科学课程时,我希望教学题材涵盖重要概念,又能对学生来说有趣且迷* a3 e% n- x% f0 ?; a
人。可惜的是,程序设计入门课程目前倾向投注过多焦点在数学抽象概念上,且让学生因恼 G7 o) _: B4 {% p
人问题而沮丧,如语法、编译以及看起来晦涩难解的规则等低阶细节。尽管这些抽象及形式5 F2 B+ ~0 [2 g& U
对专业软件工程师和计划继续学习计算机科学的学生来说,非常重要,在一个入门性的课程
. z* A3 j, T' t, p6 K/ p2 s采取这种方式大部分只会使计算机科学更无趣。教课的时候,我可不想面对一整间无精打采6 Q% U, q4 h, q1 Q5 h1 Q
的学生。我宁愿看到他们透过探索不同的想法、采取有创意的方式、打破成规并从错误中学
8 f8 _+ |$ u5 M# J. H, P习,以尝试解决有趣的问题。这么做的原因是,我不想浪费半个学期试着厘清含糊的语法问9 }! a% a% L4 Y& U
题、难以理解的编译器错误讯息,或是一个程序可能造成一般性保护错误的数百种方式。
/ H- w4 s% s. V# u2 j我喜欢 Python 的原因之一,就是它在实做与概念上取得了很好的平衡。既然 Python 是* T ^. x" o7 g7 R
直译的,初学者几乎可以立刻学会这个语言,并做些美妙的事,而不会迷失在编译与连结的% \* H; D/ T+ ]' G3 u
问题中。更有甚者,Python 随附大型的模块库,能够应用在各种工作上,包括网络程序设计9 j- o) z% J- p2 Q# i0 Y
到图形处理等。具有如此实用的重点是吸引学生注意力的绝佳方式,并且能让他们完成重要
4 M; j6 ?' r4 j5 |; l. J# M+ a的项目。然而,Python 也可以作为介绍重要计算机科学概念的优良基础。由于 Python 完整, W( E& s) H8 f1 I+ h: {
支持程序和类别,便可逐步引导学生认识程序抽象化、数据结构,以及对象导向程序设计等
. O- P, U- Y9 d D. s+ U [! S$ {' l0 u课题,这些全都可以应用在往后 Java 或 C++ 的课程上。Python 还向函数型程序语言借了
( o0 G7 y4 Q! t; E4 n许多功能,可以用来介绍这些以往是在 Scheme 及 Lisp 的课堂上详细介绍的概念。
+ i- i$ p" t; p( P& D- VI -
! W* Q6 U3 c9 r' k' e! s4 R1 }2 |读了 Jeffrey 的序文,我被他的评论所感动,Python 使他看见更高层次的成就以及较低. L( F2 A2 K0 e) O
层次的挫折,而他可以工作得更快且获得较佳结果。尽管这些评论是指他的入门课程,我有' A& ]% |+ N7 O2 a' x+ L
时会以同样的理由,将 Python 应用在芝加哥大学的进阶研究所计算机科学课程。在这些课
* \: H! j5 F/ J! F1 m4 t y程里,我不断地面对将大量困难的课程资料,包含在极短的九星期学季中这种让人气馁的工/ T+ N* k3 C3 f. Z0 N
作。虽然我必定可以承受使用像 C++ 这种语言所带来的大量痛苦及折磨,我常常发现这种
1 M7 D( }' l* h$ R; i( e9 u. g方式有着不良的后果,特别是这些课程的主题不只是关于程序设计时。我发现使用 Python 让
9 q8 V* i) d! W8 J" Y, |& ?8 E1 q我能够较为集中在实际的主题上,同时也使学生能够完成重要的课程作业。+ n7 B) k) s- C
虽然 Python 仍是年轻、发展中的语言,我相信它在教育上会有耀眼的未来。这本书在9 B# `) I$ ~9 s; L4 O `$ P
这方向上是重要的一步。
/ p( R( P8 ^) m: r3 @% a& N2 l: `David Beazley,芝加哥大学,Python Essential Reference 作者2 R& {7 b- i$ I/ A$ `
* {) q: }+ w: m( j$ s2 \* {" Q
# K. \7 `* {6 q3 }6 F- {. V& c2 L |
zan
|