TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
 群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
作为教育家、研究者及书籍作者,我很高兴看到这本书的完成。Python 是个有趣并且非% F2 u$ k' r8 H- {
常易用的程序语言,在过去几年里,Python 逐渐地受到欢迎。Guido van Rossum 在十多年前
# E0 u& @" r" n# Y8 G# L" X- a) H开发了 Python,其简单的语法与整体感觉则是得自于 ABC,这个 1980 年代发展的教学语# ^: C5 k5 h2 @& \* G6 Y/ H
言。然而,Python 也被设计成可以解决真实的问题,并且也从其它程序语言如C++、Java、
1 y, [2 n+ l) H9 g8 tModula-3 和 Scheme 等,借用了各式各样的特征。正因如此,Python 最显而易见的特色之
: F5 v3 w% `9 U! l. C4 R+ \一就是它广泛吸引了专业软件开发者、科学工作者、研究者、艺术家及教育家。
* g! Z+ _( m$ _. V/ i虽然 Python 吸引了不同社群的人士,你可能还是会怀疑为何选用 Python?,或者为
% Z* `* ]& I# C j* ?甚么教导用 Python 撰写程序? 回答这些问题可不简单---特别是当大众的意见都站在,如 w4 z$ W6 G+ m! f/ ~6 O
C++ 和 Java 这些自讨苦吃的选择这一边的时候。然而,我想最直接的答案就是用 Python 写. x+ l$ [8 v8 ~$ q/ T0 n
程序可以单纯地得到许多乐趣,并且更有生产力。
. _! K8 V5 q+ K) S' L当我教授计算机科学课程时,我希望教学题材涵盖重要概念,又能对学生来说有趣且迷1 M8 S& l6 |0 G' u6 y5 e% J
人。可惜的是,程序设计入门课程目前倾向投注过多焦点在数学抽象概念上,且让学生因恼
5 u3 F& w( D5 c& g$ l人问题而沮丧,如语法、编译以及看起来晦涩难解的规则等低阶细节。尽管这些抽象及形式
" D' m V1 `9 c: G( U2 ~) `对专业软件工程师和计划继续学习计算机科学的学生来说,非常重要,在一个入门性的课程% |: x; Z6 D" Z$ ~
采取这种方式大部分只会使计算机科学更无趣。教课的时候,我可不想面对一整间无精打采! N$ p9 n4 }7 @: v1 X
的学生。我宁愿看到他们透过探索不同的想法、采取有创意的方式、打破成规并从错误中学
' g. w3 R; r0 Q8 Z4 f( r4 H习,以尝试解决有趣的问题。这么做的原因是,我不想浪费半个学期试着厘清含糊的语法问" u& d# p, o" p9 r7 U
题、难以理解的编译器错误讯息,或是一个程序可能造成一般性保护错误的数百种方式。
6 _4 \3 W/ |! {" F我喜欢 Python 的原因之一,就是它在实做与概念上取得了很好的平衡。既然 Python 是
7 Z) @; j+ M4 N+ z% ^直译的,初学者几乎可以立刻学会这个语言,并做些美妙的事,而不会迷失在编译与连结的* [9 x7 m3 D5 r
问题中。更有甚者,Python 随附大型的模块库,能够应用在各种工作上,包括网络程序设计
% z8 `8 V; z# W! h4 z8 X8 X h5 Q/ s到图形处理等。具有如此实用的重点是吸引学生注意力的绝佳方式,并且能让他们完成重要6 x x- x3 e8 d1 o* c
的项目。然而,Python 也可以作为介绍重要计算机科学概念的优良基础。由于 Python 完整7 X: Z. a" J7 _: w6 @
支持程序和类别,便可逐步引导学生认识程序抽象化、数据结构,以及对象导向程序设计等/ M( T6 D. Q C6 q' }6 P
课题,这些全都可以应用在往后 Java 或 C++ 的课程上。Python 还向函数型程序语言借了
6 p/ Q/ j s3 b- m! v- k) Y% E许多功能,可以用来介绍这些以往是在 Scheme 及 Lisp 的课堂上详细介绍的概念。% j6 O, _! _+ A0 H/ F1 S
- VI -
6 o, m5 E c) {+ o# H: Y+ i读了 Jeffrey 的序文,我被他的评论所感动,Python 使他看见更高层次的成就以及较低
5 f; Y P8 N7 B3 M; j b! }层次的挫折,而他可以工作得更快且获得较佳结果。尽管这些评论是指他的入门课程,我有6 a! F5 l3 H! H1 v
时会以同样的理由,将 Python 应用在芝加哥大学的进阶研究所计算机科学课程。在这些课
; b" \9 V( d* ]' _" T程里,我不断地面对将大量困难的课程资料,包含在极短的九星期学季中这种让人气馁的工- Y% ^: R. O% n: Q/ n8 L4 r
作。虽然我必定可以承受使用像 C++ 这种语言所带来的大量痛苦及折磨,我常常发现这种
1 y0 v* [( f* e# u/ X3 T$ a- f方式有着不良的后果,特别是这些课程的主题不只是关于程序设计时。我发现使用 Python 让
/ e: s' f5 O! \我能够较为集中在实际的主题上,同时也使学生能够完成重要的课程作业。3 ~# J: f: \* ~ i$ s: d, K
虽然 Python 仍是年轻、发展中的语言,我相信它在教育上会有耀眼的未来。这本书在
* \" X/ |! t \: Q9 F这方向上是重要的一步。
" n9 ]7 m( ~: ^& H- }- W' fDavid Beazley,芝加哥大学,Python Essential Reference 作者
. R8 D1 k- T! v( V) }1 W+ U! _5 U: {, d
; u: y4 _9 s, k! x |
zan
|