数学建模社区-数学中国

标题: 像计算机科学家那样思考 Python中文版第二版 [打印本页]

作者: madio    时间: 2020-3-2 15:53
标题: 像计算机科学家那样思考 Python中文版第二版
作为教育家、研究者及书籍作者,我很高兴看到这本书的完成。Python 是个有趣并且非
0 g3 _" {$ u% }# _( ]常易用的程序语言,在过去几年里,Python 逐渐地受到欢迎。Guido van Rossum 在十多年前
0 M3 v7 b  N) n# ]8 a# k5 x8 q2 K开发了 Python,其简单的语法与整体感觉则是得自于 ABC,这个 1980 年代发展的教学语8 o; R. N  L/ D  W! Y! T5 |8 F
言。然而,Python 也被设计成可以解决真实的问题,并且也从其它程序语言如C++、Java、" j$ W/ m) {/ R# b1 A+ D
Modula-3 和 Scheme 等,借用了各式各样的特征。正因如此,Python 最显而易见的特色之
: x6 N$ u* X% u3 G  e. p一就是它广泛吸引了专业软件开发者、科学工作者、研究者、艺术家及教育家。
+ L* t( \4 v7 d虽然 Python 吸引了不同社群的人士,你可能还是会怀疑为何选用 Python?,或者为
9 C, p! j) c0 Q, n5 `. h甚么教导用 Python 撰写程序? 回答这些问题可不简单---特别是当大众的意见都站在,如
; F1 ^" w% h' u4 @% Q0 q2 ^& ^C++ 和 Java 这些自讨苦吃的选择这一边的时候。然而,我想最直接的答案就是用 Python 写
3 O% m+ Q$ u+ q! N) @0 y程序可以单纯地得到许多乐趣,并且更有生产力。7 p7 V9 E9 {2 ^5 n# e1 `% V
当我教授计算机科学课程时,我希望教学题材涵盖重要概念,又能对学生来说有趣且迷9 G% q: z- O0 k% s. K
人。可惜的是,程序设计入门课程目前倾向投注过多焦点在数学抽象概念上,且让学生因恼
1 [) ]. z# }3 d& }* g4 O( C8 K2 `人问题而沮丧,如语法、编译以及看起来晦涩难解的规则等低阶细节。尽管这些抽象及形式
( Q. B& i( B- N( Q, {  |对专业软件工程师和计划继续学习计算机科学的学生来说,非常重要,在一个入门性的课程
7 a7 c, w  k: c; S) k$ {* h6 B采取这种方式大部分只会使计算机科学更无趣。教课的时候,我可不想面对一整间无精打采* y4 o0 J$ f1 Z0 y6 K
的学生。我宁愿看到他们透过探索不同的想法、采取有创意的方式、打破成规并从错误中学, E7 [9 X  w7 r5 |- x$ G
习,以尝试解决有趣的问题。这么做的原因是,我不想浪费半个学期试着厘清含糊的语法问: h1 u4 ]4 `$ g' j
题、难以理解的编译器错误讯息,或是一个程序可能造成一般性保护错误的数百种方式。6 E$ ?6 q+ R+ A3 j8 d6 B% K: w
我喜欢 Python 的原因之一,就是它在实做与概念上取得了很好的平衡。既然 Python 是/ g' ]3 J" `0 D" P* C
直译的,初学者几乎可以立刻学会这个语言,并做些美妙的事,而不会迷失在编译与连结的
/ R9 K1 {$ g5 r- L9 \! M8 M* j问题中。更有甚者,Python 随附大型的模块库,能够应用在各种工作上,包括网络程序设计! {3 F4 I" O8 j- P' N8 k7 g' v& `
到图形处理等。具有如此实用的重点是吸引学生注意力的绝佳方式,并且能让他们完成重要. M( ^# V7 F& I  R4 m5 q& L
的项目。然而,Python 也可以作为介绍重要计算机科学概念的优良基础。由于 Python 完整
# o# t6 `2 x1 q& E* n支持程序和类别,便可逐步引导学生认识程序抽象化、数据结构,以及对象导向程序设计等
0 q, y6 q# \" C课题,这些全都可以应用在往后 Java 或 C++ 的课程上。Python 还向函数型程序语言借了' z2 l8 c" w4 _) d# M8 L& C$ F
许多功能,可以用来介绍这些以往是在 Scheme 及 Lisp 的课堂上详细介绍的概念。& B5 [5 j1 q( y1 C& ]. u* ~( g8 c
- VI -
: c$ k- a, S! t/ {1 o读了 Jeffrey 的序文,我被他的评论所感动,Python 使他看见更高层次的成就以及较低
8 y9 d, Q) ]: I# \层次的挫折,而他可以工作得更快且获得较佳结果。尽管这些评论是指他的入门课程,我有
. _8 ^- O5 B5 l& f6 E时会以同样的理由,将 Python 应用在芝加哥大学的进阶研究所计算机科学课程。在这些课* f% B, A( G) {9 h3 O6 Z& c/ ?( n6 q
程里,我不断地面对将大量困难的课程资料,包含在极短的九星期学季中这种让人气馁的工) o( s. \0 h8 ^6 W) I3 ^6 x
作。虽然我必定可以承受使用像 C++ 这种语言所带来的大量痛苦及折磨,我常常发现这种
  b- P: f1 e( R  i) e) T+ I$ j; w方式有着不良的后果,特别是这些课程的主题不只是关于程序设计时。我发现使用 Python 让  C1 G' x+ Q3 @4 f8 i; ^9 C- Z
我能够较为集中在实际的主题上,同时也使学生能够完成重要的课程作业。
+ P3 ~, l+ a3 w& G: I虽然 Python 仍是年轻、发展中的语言,我相信它在教育上会有耀眼的未来。这本书在# J4 n* q9 u6 S  N, X
这方向上是重要的一步。
7 L: d2 u/ V, v, LDavid Beazley,芝加哥大学,Python Essential Reference 作者
3 f. Y1 r7 @% m
+ u  l( \( e9 D9 D$ H6 w6 J, \5 \9 Y* U! b

像计算机科学家那样思考 Python中文版第二版.pdf

712.34 KB, 下载次数: 1, 下载积分: 体力 -2 点

售价: 2 点体力  [记录]






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5