大三上学期杂谈

来源:互联网 发布:天府广场附近美食 知乎 编辑:程序博客网 时间:2024/04/28 13:32

      大三上学期在忙碌中不知不觉就过完了,应该说大三上学期是我上大学以来最忙的一个学期,各种实验,作业,报告.......充满了整个学期。的确很累,但是也学到很多。
      刚开始开学的时候,学习任务相对较轻松,但是这时候我必须忙数学建模,为9月11号的建模做准备,经过三天72小时的奋斗,我们小组终于完成了建模论文,虽然结果不是很好,但是勉强能够让人能够接受,关键是我在数学建模中经历了那个过程,学到一种用数学思维解决现实问题的能力。
     首先谈谈数据挖掘概论,这是我们这学期新加的一门课,上课老师是我们系的大牛,也是当今国内做机器学习(主要是集成学习)的第一人,周志华老师。平时作业,数据挖掘布置了两篇论文作业:数据挖掘工具的调查和数据挖掘相关领域的研究。数据挖掘工具的调查,我主要是使用一个matlab的开源数据挖掘软件包,叫spinder,是一个相对比较新的开源包,实现了聚类,预测等等一些经典算法,它主要是一种面向对象的思想来实现这些算法的,但是不够成熟,不过今后应该还会进一步发展,将来有可能会成为一个功能强大的开源包。数据挖掘相关领域我写的是一个有关数据流挖掘的研究介绍,应该说这篇论文我准备的还是比较充分的,看了几篇经典论文,写了好几天,然而不幸的是,我的论文却走题了,被判了一个D,因此我放弃这门课的学分,同时这也是我们大学以来放弃的第一门选修课。虽然我放弃了这门课,但是在课上我还是了解到数据挖掘这个相对比较新的领域,但愿对我将来读研究生有一定的帮助。从数据挖掘这门我学到的最关键不是知识,应该是周老师那种严谨的作风,做什么事必须有规则而且我们必须严格遵守这个规则,否则你就会被规则所淘汰。同时,我看到了审题和选题的重要性,不管你怎么认真,如果你的论文跑题,就是不及格,研究选题也是比较重要的,特别读研究生或者博士生,一个好的课题与成功与否关系是很大的。
        接着我在谈谈第二门课,也是我认为这学期我收获最大的一门课,算法设计与分析。我用的教材是《Computer Algorithm:Introduction to Design and Analysis(Third Edition)》,这是我上大学以来第一门用英文原版的课程,老师是我们系的前任系主任:陈道蓄。算法课应该说是我们本科阶段最难的课程之一,但是我感觉算法课是我目前感觉到大学里面为数不多的比较成功的课程之一,陈老师就是大牛,讲课由浅入深,循序渐进,将算法设计和分析的精髓完美的给你展示出来,让我了解的许多设计策略:divided and conquer, dynamic programming, greedy strategy等等和分析方法:amortized analysis, adversary argument等等。然后算法好多内容太广泛了,他是整个计算机科学的灵魂,好多东西只是一知半解,只是知道有一个概念或者理解不是很深刻,还有待今后进一步去学习和领悟。Algorithm让我感受到计算机科学的伟大,他的好多思想都是非常朴素的,只是思考问题的角度变了,然而一个个问题就因此迎刃而解,而且时空复杂度是相当的低。当然,算法也有一些无助,面对一些难题我们还没有很好的解法,或者还没有找到相应的算法,因此人们想出许多方法,例如:approximation algorithm,probabilistic algorithm等等,同时这也是是当今算法研究的比较热点问题。总的来说,算法设计与分析确实一门好课,很能提高一个人的思维和能力,同时算法也是值得一直思考的。
       这学期另外一门比较重要的课,就是数据库原理概论(注意:这不是讲某个数据库管理软件,虽然我们实验使用DB2),数据库从最初到文件系统,到层次数据库和网状数据,再到关系数据库,以及最近一些比较新的数据库(面向对象数据,知识数据库等等)。这门课的老师是比较和蔼,上课不忙不急,给你慢慢分析,语气平缓,语调一层不变。这门课主要学习了一些数据库的基本概念(数据库,数据库管理系统,数据系统等等)、数据的建模和数据库的设计(概念模型,逻辑模型,物理模型)、关系数据库的基本理论(关系代数,规范理论等等)以及数据的一些应用(SQL、DB2等等)。总的来说,这门课是相对比较简单的一门课,但是他的那套数据建模和数据库设计的思想还是比较重要的,可以锻炼一个人对现实系统的抽象能力,关系数据库的基本理论应该也是比较重要,它是当今主流数据库的理论基础。
       这学期还有一门核心课就是计算机网络,老师是一个年轻的博士,人特别好,但是下手还是比较重的,导致绝大多数人网络都考得相对比较差。互联网在当今社会的重要性是不言而喻的,所以计算机网络这门课重要性也是不言而喻的。这门课我们主要是开放的OSI7层模型(物理层、链路层、网络层、运输层、会话层、表示层、应用层)从下往上讲的,重点是在:网络层和运输层,主讲的上层内容是:TCP/IP体系结构,下层网络包括:局域网(IEEE802.3、IEEE802.11等等),广域网(ATM等等)。应该说网络这门课的内容是比较多,但是由于种种原因我并没有花太多的时间去研究它,导致这门课我学的比较差,对许多协议内容理解不深甚至有一些不懂。其实好多协议的内容都是差不多(例如考虑各种服务,各种具体实现细节:路由,寻址,拥塞,流量控制等等),但是就是没能够融汇贯通,好多东西还有待进一步学习。同时这门课开设的实验课还是很有帮助,对我们理解某些上课内容还是有帮助的(例如ARP协议,静态路由机制),让我了解了一定东西。
       本学期还有一门专门的实验核心课,计算机组成原理实验课,是我们上学期计算机组成原理理论课的后续课程,这门课的老师是一个比较‘严格'的老师,对于各种实验要求和报告的格式非常重视,经常批评我们做法,对某些非常小的细节都是非常的认真仔细。在这门课上主要是加深了我对上学期理论课某些细节性的东西了解,原理性的东西都是一样的,但是好多设计细节在理论课上是无法讲,好多问题你必须在实验中才会碰到的。这学期我们完成了单周期CPU,多周期CPU和流水线CPU的设计,真正意义上让我们懂得CPU的原理,究竟数据通路是怎么实现,控制器是怎么实现。这门实验课,主要让我加深对计算机组成原理的了解的,更加看清楚CPU的构造。
        还开设几门选修课,除了上述的数据挖掘概论以外,还有软件工程概论、linux系统分析和管理信息系统。应该说软件工程这门课主要是让我们以小组的形式参与一个小型项目的开发,运用我们理论课学习的传统开发生命周期(问题定义,需求分析,概要设计,详细设计,软件编码,软件测试,软件维护)来指导我们的开发,虽然初始出发点的是好的,让我们更加深刻了解软件工程的思想,但是由于各种客观条件的限制和时间问题,导致我们最后不得不放弃软件工程的指导思想,为文档而写文档,为编码而编码,最终疲于完成任务,也许这让我们更加理解到软件计划和软件项目管理的重要性。Linux系统分析这门课学的也是比较失败的,主要是linux系统实在是太庞大了,想用一个学期的来学习肯定是相当的困难,内容太多太杂,很难找的一个整体,导致最后学的非常失败,虽然会写几行代码,敲几个命令,但是这应该不是学习linux系统分析的目的,linux应该可以让一个人好好研究一辈子,我们所学的只是皮毛中的皮毛,以后如需要,应该还会继续学习,现在只是打一个简单的基础吧。最后谈谈管理信息系统,主要怎样分析和设计一个系统,然而内容感觉是软件工程和数据库的合体,只是简单的把以前或者正在学的知识重新组合成了一门课(个人感觉),收获不是很大,也许会有帮助。
          最后通过复习发现,好多东西平时还是要好好学习,不要什么东西都指望到最后进行突击,这样最后的复习阶段任务是非常繁重的,也是非常痛苦的!期待下学期.......