举一反三这个词,总离不开学以致用。因此,要想做到举一反三,就要深刻理解学与用的关系,或者至少懂得如何发散和升华所学到的东西。
我写文章不是为了抨击我国的教育,只是我发现,在我们接受如此的教育若干年之后,仿佛对举一反三并没有什么心得。
昨天,远在澳大利亚的一个大学同学在MSN上问了我一个数据库的问题(澳洲的大学现在已经开学了一个月了,不比美国啊。我同学现在研一),说这是他们作业,给了个场景,叫画ER图,还有设计数据库的表结构。
场景我描述一下,以一家医院为基础,病人可以打电话给接待员,然后预约诊断,确定医生、时间等,并且登记一份材料,材料上是病人的个人信息。场景就是这个样子了,ER图当然还是画实体、属性和联系,设计表结构是以ER图为基础的。
当时我一看这个场景就傻眼了,我想这个真麻烦唉,到底该怎么画啊,外国人真BT,居然出这么题难为学生,怪不得我那同学要问我。然后我们就在MSN上那一通研究啊,十多分钟也没弄出来所以然。就这么个时候,我突然想起来当年大二做数据库的课程设计时,做的是学生选课系统,我对比了一下,和这个场景极为相似。
医院就是学校——接待员就是选课系统——病人就是学生——医生就是老师,这种对照对于一个公立的大医院真是很恰当,因为大医院的医生都是坐班等着病人去的,而不是那种私人医生要去病人家里看病(私人医生可以类比为家庭教师。。。)。我记得非常清楚,当时设计这个选课系统的时候,我们——更确切的说是老师为我们,设计了主要的几张表有:
1,学生表,主键学号,即ID,属性是学生的信息
2,教师表,主键教师号,即ID,属性是教师的信息
3,课程表,主键课程号,即ID,外键教师ID,属性是上课时间、教室等等
4,选课表,主键是学生ID和课程ID,属性是考试成绩,是否通过等等
这么一来,设计得很清楚,这样设计的表,我记得是个3NF,不过也记不太清楚了。那么转换一下,对应到医院这个系统,就应该是这样的:
1,病人表,主键病人ID,属性是登记信息
2,医生表,主键医生ID,属性是医生的信息
3,诊断安排表,主键是ID,外键医生ID,属性是出诊时间、科室地点等
4,预约表,主键是病人ID加诊断安排ID,属性是诊断结果、开得处方等等
虽然第三项诊断安排不像课程说起来那样通畅,有一点牵强的意思,但是我经过反复对比,觉得这样也真的是无可厚非,这两个系统实在很是相似。
我把我的想法告诉我同学,他也同意这么做,只是不知道他作业交上去老师会不会同意。。。
说到这我想一提的就是,最初在学数据库的时候,书上的例子就是学校、院系、老师、学生,要么就是老板、员工之类的,等到作业和考试,考得还是学校、院系、老师、学生……学了考,真的是学以致用了,然后我们脑子里就记住了:哦,见到这种情况就这么设计表,如何如何的,换个花样就傻眼了。
反过来说,我认为我们在大学学了四年,出来工作几乎个个低能,为什么?第一,课逃了睡觉了;第二,老师知道你不好好学,所以也没人愿意好好教;第三,老师想好好教他也不一定有好好教的水平;第四,光学了没实践没有学以致用何来举一反三?第五,呵呵,那个还有第五吗,我不知道了。。。
另外,在很大程度上,我真的认为大学课本不如中学时代的课本编得好,我想这也很正常,中学课本全国用一套,那都磨练了多少代人了,大学课本几乎一个大学用一种,印刷错都到处都是,里面编得不好太正常了,编得好才怪。
我看看以后好好锻炼去吧,希望思维不会僵化住,那样就不好了。
缥缈落花街 月圆月缺 望峦山平川 雁返君未还 怆然晚春残 忆天上人间