这学期会专注于编程。语言是不能一次学太多的,所以这个学期自学的内容如下:
- C++
- wxWidgets
- OpenGL
- Emacs
- Scheme
- LaTex
具体来讲,就是:
- 学习Linux下亲自用Make和Gcc编译的感觉。
- 学习一些C风格的东西。
- 完成类BasedNum的扩充、性能分析(使用vTune)和性能提高。在这个过程中要学习“动态编译”源代码中的Extend类,这要涉及到一点点汇编,要求只限于能够读懂,能够稍用以提高性能。
- 用wxWidgets为BasedNum类开发一个计算器。
- 实现一个自己的排序模版。包括:简单选择排序、堆排序(这包括了二叉树的平衡和堆类的实现)、冒泡排序、双向冒泡排序、快速排序、线性插入排序、折半插入排序、希尔排序。尝试移植到Scheme上。
- 结合wxWidgets和OpenGL,开发一个小型3D引擎。这里头包括的工作有:实现全屏,实现位图和ttf文件的读写,实现通过一堆点来生成所有的多边形和法线,完成光照、材质、贴图的实现,一个方便的GUI用以生成这些点、一个场景和摄像机的架设、实现一个抽象的可移动物体的类用于继承。
- Emacs的一般性运用已经掌握了,主要想开发它实现OpenGL的缩进,要不,找到一个别人的宏也是可以的。体验其他精彩的宏。
- Scheme主要是尽可能地阅读SICP——为什么电子书是英文原版哪?如果读不下去,买本中文版的回来也可以。
- LaTex,学会输入一般的数学式子就可以了。扩充内容:MetaPost的学习。
这里提出了这么多任务,其实主要是对自己想到自己可以做用来练习这些知识的一些事情。毕竟已经用一个暑假很认真地看了Bjarne Stroustrup的《C++程序设计语言》,Larry R.Nyhoff的《C++数据结构导引》,Kenneth C.Louden的《程序设计语言——原理与实践》(主要看讲Scheme部份),还买回来了F.S.Hill,JR的《计算机图形学——用OpenGL实现》。
提出这些任务,并非真的要完成这么多简直是好高鹜远的任务,而是告诉自己需要学习的方面。实际完成多少,酌情而定。