计算数学相关专业的老师和学生日常一项重要工作方式?
写作
- 论文
- 程序
- 报告
- 申请书
- 笔记
- ....
写作的过程实质是人思维外化为语言的过程. 需要外化的内容是人的思维过程和结果, 外化的目的是为了人与人、人与机器之间的交流和协作. 外化是一种转化, 当然要考虑转化的效率问题. 利用适当的工具, 我们可以大大提高思维外化的效率。 幸运的是我们已经处于计算机和互联网时代.
现在人们是以计算机为硬件基础, 以各种软件为直接工具, 并通过互联网进行跨越时间和空间的协作, 来完成写作这一过程的. 计算机化和协作化是当今人们写作的新特点. 借助计算机和互联网, 人的思维过程和结果外化的效率已经得到极大的提高.
而且现在计算机的计算速度越来越快, 远远超过人类思考速度;互联网信息海量, 而且每天还在爆炸式增长, 一个人只要有一台设备接入互联网, 就可以访问几乎所有他想要的信息. 一个人站在计算机和互联网的肩膀上, 完全可做出更有创造性的工作, 深刻地改变社会生活的方方面面, 而 这样的例子已经不胜枚举. 但不幸的是, 相对大多数人来说, 还只是少数人能有幸做到这一点.
我们面对的现实是, 国内很多计算数学专业中的大多数老师和学生(当然其它专业可能更糟糕, 就算是计算机专业也好不到那里去), 并没有能高效的利用机算机和互联网来为自己的学习, 教学和科研工作服务.
很多人使用计算机和互联网的效率非常低下.这实际上是很多学校的计算机和互联网教育与社会发展大趋势严重脱节的直接结果. 把每个学校的计算机基础教育内容看看, 你就会知道这种脱节有多么严重.
我们不能在抱怨中坐以待毙, 不能等着教育实体做出改变, 因为我们的教育实体还是只重视结果, 而对产生结果的过程满不在乎. 我们必须自己做出改变, 而且做出改变的条件已经成熟, 因为我们正处在 伟大的计算机和互联网时代. 当我们每个人做出真正改变的时候, 才能迫使我们身处其中的教育实体发生实质性的改变.
什么是写作工具. 那么好的工具与坏的工具的本质区别是什么? 我认为是开放性, 是否开放会对使用工具的人产生不同的影响:
好工具 | 坏工具 |
---|---|
尊重人的自由 | 限制人的自由 |
以人为主人 | 以人为附属 |
激发人的创造力 | 泯灭人的创造力 |
与人共同进化成长 | 与人相互限制成长 |
不断提高人的效率 | 限制人的效率提高 |
挖掘人的潜力 | 抑制人的潜力 |
如何利用计算机和互联网提供的众多的工具, 不断提高我们的写作以及与人协作的效率, 是非常值得我们关注和思考的问题.
- 硬件
- PC
- 工作站
- 大型并行机
- 操作系统
- 科学计算常用程序开发语言
- C/C++
- Linux shell programing
- Fortran
- Python a programming language that lets you work quickly and integrate systems more effectively.
- GNU Octave
- Matlab
- .....
- 通用软件工具
- 编辑器:
- vim
- emacs
- gedit
- 编译器: GCC: the GNU Compiler Collection
- 调试器: GDB: The GNU Project Debugger
- 软件构建工具:
- 版本控制软件
- Latex a high-quality typesetting system.
- Markdown
- 编辑器:
- 计算数学专业通用软件
- Message Passing Interface (MPI)
- OpenMP a specification for a set of compiler directives, library routines, and environment variables that can be used to specify high-level parallelism in Fortran and C/C++ programs.
- CUDA
- 专业方向软件包
- 数值代数
- 有限元
- 最优化
- 计算几何
- ......
学习新的软件工具或者程序开发语言的一些基本经验:
- 选择开放性的工具.
- 首要目标是入门并存活下来, 长期目标才是成为顶尖高手.
- 要了解所学工具为满足用户需求所采用的思维原型, 基本概念, 并在使用过程中不断深入了解.
- 用好搜索引擎,论坛,邮件列表解决自己大部分使用过程中遇到的问题.
- 点滴记录你所犯的错误, 问题, 解决办法, 以及你对解决问题的思考过程.
- 成为社群的一分子, 尝试回答别人遇到的问题, 分享你的经验.
- 如果工具确实没有你需要的功能, 尝试贡献这一功能.
- 不断向你的周围的人传播你所使用的好工具.
- 把自己的可重复的经验程序化,让计算机做重复的工作,使自己集中精力做更重要的事情。