我问的是为什么,还是没回复,就是这个结论怎么来的,看来还是要看离散数学才知道?
我以前写过一篇《破除“系统学习”的情结》,你提的问题是关于离散数学与数据结构两门课程,体现的却是学习的路线问题。在新时代,有新时代的选择标准,所以,这篇文章你可以参考。由于系统只提示第一次的提问,对于学员的答复,没有小红点提醒。所以,发现学员的答复是几天后的事了。之所以能发现,是他又重新提交了一个问题:
为什么连通奇数桥的地方为0个或2个的时候有欧拉回路,否则就没有?
我的观点可能将你搞乱了。放在五年之前,我可能还会采取保守的回答,直接解答你的问题即可,而这篇显罗嗦的答复中,我试图告诉你,按你的需要,按你的感觉,争取尽可能直接的方式解决问题。既然你现在学数据结构顺手,就这样学下去。若中间发现有从离散数学中寻求依据的必要,找本书翻翻即可,暂不必进到那个严密的体系中,更不必从离散数学书的第1页开始读起。这是一个知识爆炸的时代,“小步快跑,跑中调整”的策略,是应对之道。我发现,这是一个非常好的问题。因此有了下面的答复。
学员还有问题:
我们再换一种角度,讲什么离散数学、数据结构,却也纯是“合理的方案”中的之一,而非“合理的方案”一定只有这一个。叫做这个名字,里面容纳了这些内容,只不过是为了“教学的方便,开课的方便”,做了一个组合、包装而已。我们的目标不是学习了什么课程,这只是一个载体。我们的目标是学到了一些方法、一些技术、一些思维的方式,途径、路线、组合的可能,有千千万。如果是专业学生,就按此安排去做,而作为自学者,这只作为参考即可。学数据结构之前是不是一定要学离散数学
我的答复,是让参照上面的观点。的确,这样的问题,是有严格的证明的,老师只需要给出学员学习的路线即可。我没有必要在只允许500字的答疑区中玩文字。这样做的效果也并不好。
你问了一个非常好的问题,不少初学计算机的同学该会产生这个疑问(大多数有疑问不提而已,这不是好习惯),更深层地,这里可能包含着我们的学习路线的问题,尤其是需要自主安排学习的时候。
沿上面的观点,每一位学习者要根据自己的情况设计学习。如果你就是计算机专业的学生,培养方案里这样规定了,就先学离散,再学数据结构。学好离散数学,对你“专业人士”的成色,很有说服力。然而,若你接受的并不是“系统化”的培养,且将来的目标是工程领域,关不是更加核心和底层的计算科学和技术领域,直接完成数据结构的学习即可,离散甚至都不必列入计划。不是说离散不重要,而是受限于时间,受擎于陷于离散的逻辑旋涡,可以会让你本不算强大的学习支持体系半路跨塌,先捡更为直接的数据结构学起为妙。在学习的过程中,也要注意一点,就是遇到那种理论性非常强的部分,也就是一些教材中以你具备了离散数学才能学得下去的内容,可以略作了解,在不太影响全局的前提下,暂且放过。如果有必要,且有条件,学完数据结构回头再学离散数学,那又是一种风景。
这样做必然是合理的,然而,合理的却并不仅是这一个。大概所谓“科班”出身的人走的都是这条路子。但在计算机技术领域“半路出家”者中,也不乏高手和成功人士,有些甚至就是没有学过离散数学。一些在起步学习阶段学习不顺利的专业人,在基础阶段没有学好,但后来做的技术工作也能做得不错。这一类型的业内人员,直接接受了数据结构层面上体现的思维方式,掌握了相关的知识和技术,而离散数学内涵,却是在实践中逐渐悟到了,有人清楚他知道了,有人不清楚,或者真的具备了,说不出来而已。其实,说出来又要怎样,有时间干点别的更好。还有些技术岗位,是否具备这样的感悟都无所谓。
很高兴看到你能提出这么多的为什么,然而在数据结构这门课程中,更注重是什么,怎么做的问题,也只能讲到这个层面了,为什么的事情,建议找“离散数学”教材,或其他材料。数据结构中涉及的所有算法,均可以给出严格的理论证明。而计算机作为一门“构造性”的学科,基本味道就是,提出要解决的问题,构造解决的模型,然后证明这个模型解决的就是这个问题,有些时候,还能证明,唯有这样才能解决。
所有叶节点,都是原给定的节点;所有分支节点,度均为2,所以没有单分支。
【答复全文】
最典型的案例,各行都有祖师爷,这是神一级的存在。祖师爷修过什么课程?什么先学什么后学?可见,以上讨论的,全是后人生出的问题,满是追随者的思维,少了些创新者的自在。
我的答复是:
首先,作为大学的培养方案,是这样安排的。我想解读一下,其中所包含的培养目标,以及背后的学习原理假设。培养目标是,有扎实计算机科学基础的高级技术人才。离散数学从形式化的角度,表达及引导学习者通过定义、定理这一整套严密的体系,初步掌握计算机科学中最基础的知识,以及形成专业的初步计算思维能力。作为数据结构这样一门课程,显然要学好,是需要这些知识和思维的支持的。因此,大学的专业培养方案讲究“系统性”,有了这样的规定。体现的学习路线体现的是大学学习的阶段性特点,先完全掌握离散,再去将数据结构作为其应用学习,前者重纯计算层面的原理,后者引入计算机系统的特征,侧重设计和实现。这样考虑,显然是合理的。哈夫曼树是不是都是双分支,没有单分支的?有点不太懂这个哈夫曼树的构造过程,为什么要这样构造?只知道这样会让权值大的叶节点靠近根节点,小的叶节点远离根节点,为什么权值可以相加再比较呢?
免责声明:本站发布的内容(图片、视频和文字)以原创、来自互联网转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:ts@56dr.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
Copyright © 2009-2021 56dr.com. All Rights Reserved. 特网科技 版权所有 珠海市特网科技有限公司 粤ICP备16109289号
域名注册服务机构:阿里云计算有限公司(万网) 域名服务机构:烟台帝思普网络科技有限公司(DNSPod) CDN服务:阿里云计算有限公司 中国互联网举报中心 增值电信业务经营许可证B2 建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站