TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
 群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
作为教育家、研究者及书籍作者,我很高兴看到这本书的完成。Python 是个有趣并且非
: R2 t5 Q" i7 z# g, _" V/ p5 X常易用的程序语言,在过去几年里,Python 逐渐地受到欢迎。Guido van Rossum 在十多年前
' T: p! s1 ~7 t2 l; B% Y开发了 Python,其简单的语法与整体感觉则是得自于 ABC,这个 1980 年代发展的教学语
5 z5 p6 {" ]$ c7 K9 W/ u2 D! P言。然而,Python 也被设计成可以解决真实的问题,并且也从其它程序语言如C++、Java、
+ q2 y+ t7 k0 P- l5 D- w3 ]Modula-3 和 Scheme 等,借用了各式各样的特征。正因如此,Python 最显而易见的特色之
- v' k# b, h `7 z5 a6 s* I一就是它广泛吸引了专业软件开发者、科学工作者、研究者、艺术家及教育家。( C. |. Z3 c7 Z8 d
虽然 Python 吸引了不同社群的人士,你可能还是会怀疑为何选用 Python?,或者为* X- c8 c# G* r/ u8 n( A, {
甚么教导用 Python 撰写程序? 回答这些问题可不简单---特别是当大众的意见都站在,如
- E& [- B w+ MC++ 和 Java 这些自讨苦吃的选择这一边的时候。然而,我想最直接的答案就是用 Python 写
' R! U8 o+ y- T7 R: s程序可以单纯地得到许多乐趣,并且更有生产力。
' y4 w3 l% r3 W5 O当我教授计算机科学课程时,我希望教学题材涵盖重要概念,又能对学生来说有趣且迷; M- r& w9 z* o0 ~( O7 n
人。可惜的是,程序设计入门课程目前倾向投注过多焦点在数学抽象概念上,且让学生因恼1 D* L) x4 c1 ]$ u' E
人问题而沮丧,如语法、编译以及看起来晦涩难解的规则等低阶细节。尽管这些抽象及形式
2 A0 O- C4 R( o! l对专业软件工程师和计划继续学习计算机科学的学生来说,非常重要,在一个入门性的课程7 s4 V7 h( d, I4 `- o5 K& V
采取这种方式大部分只会使计算机科学更无趣。教课的时候,我可不想面对一整间无精打采
. u" Z+ t) s- C4 E2 B7 ^的学生。我宁愿看到他们透过探索不同的想法、采取有创意的方式、打破成规并从错误中学 o$ a' T9 K2 d$ R6 }
习,以尝试解决有趣的问题。这么做的原因是,我不想浪费半个学期试着厘清含糊的语法问
% [; |) D( j# M' J& T/ d题、难以理解的编译器错误讯息,或是一个程序可能造成一般性保护错误的数百种方式。
/ G9 n2 C4 h7 H0 ?, y$ m我喜欢 Python 的原因之一,就是它在实做与概念上取得了很好的平衡。既然 Python 是4 I/ m z: K0 O! Q5 h
直译的,初学者几乎可以立刻学会这个语言,并做些美妙的事,而不会迷失在编译与连结的
, A+ N$ t3 H' {# q问题中。更有甚者,Python 随附大型的模块库,能够应用在各种工作上,包括网络程序设计
7 @8 K2 l4 j! [: K# J到图形处理等。具有如此实用的重点是吸引学生注意力的绝佳方式,并且能让他们完成重要! y7 v5 O; S( b+ f; q o8 }- _" L# W
的项目。然而,Python 也可以作为介绍重要计算机科学概念的优良基础。由于 Python 完整
# j& S' q3 q% f: j! d- m支持程序和类别,便可逐步引导学生认识程序抽象化、数据结构,以及对象导向程序设计等
! _7 s9 d9 [- [4 z5 w& W课题,这些全都可以应用在往后 Java 或 C++ 的课程上。Python 还向函数型程序语言借了' G G: T4 T' f- i% O8 D* I
许多功能,可以用来介绍这些以往是在 Scheme 及 Lisp 的课堂上详细介绍的概念。4 n. R+ u) y3 A R+ s' j, c
- VI -* q/ z' v: ?$ }6 }
读了 Jeffrey 的序文,我被他的评论所感动,Python 使他看见更高层次的成就以及较低
4 y) z ]8 K, j2 M0 O2 u+ }层次的挫折,而他可以工作得更快且获得较佳结果。尽管这些评论是指他的入门课程,我有( A- @ t W6 h. g) j5 r
时会以同样的理由,将 Python 应用在芝加哥大学的进阶研究所计算机科学课程。在这些课
: \5 L$ d! W. r! i% B6 z! H* w* G程里,我不断地面对将大量困难的课程资料,包含在极短的九星期学季中这种让人气馁的工
) z, a% }% I! f3 e" y作。虽然我必定可以承受使用像 C++ 这种语言所带来的大量痛苦及折磨,我常常发现这种8 S& _( A8 T2 |8 ~4 p; J5 T
方式有着不良的后果,特别是这些课程的主题不只是关于程序设计时。我发现使用 Python 让
5 L( x# E, z* f0 w2 o' K" d我能够较为集中在实际的主题上,同时也使学生能够完成重要的课程作业。3 d% I7 y" H5 u* h& L4 {4 u* ~3 C
虽然 Python 仍是年轻、发展中的语言,我相信它在教育上会有耀眼的未来。这本书在# X* C2 [ Z! w c4 A
这方向上是重要的一步。
' p7 G* ]2 e6 D1 P, sDavid Beazley,芝加哥大学,Python Essential Reference 作者 s9 i- d) B+ j/ U) ~' k
) H5 B$ O) r" ~+ }
( V( y# Y5 L' e" p |
zan
|